随笔分类 -  quickjs

摘要:一、前言 quickjs是标准的js引擎,不可能直接运行ts文件。所以需要对ts文件,进行编译,编译成符合当前版本的js脚本,然后在运行。 二、简单ts例子 安装typescript,就有tsc编译器。使用npm之类安装。使用 tsc --init 创建项目,此时会得到一个tsconfig.js 配 阅读全文
posted @ 2023-12-15 16:38 无脑仔的小明 阅读(432) 评论(0) 推荐(1) 编辑
摘要:一、前言 茴香豆的“茴”字有多少种写法?这篇博客不是为了炫技,是JS就是这么多种情况。比如C语言,就只能通过函数调用,没有类的概念。比如Java,就只能通过类、对象的方式。不能单独创建函数。哪怕main函数也要包装成一个class。而JS,即可以提供函数,也可以提供类。 在ES5之前,JS还没有模块 阅读全文
posted @ 2023-12-14 19:28 无脑仔的小明 阅读(844) 评论(0) 推荐(0) 编辑
摘要:零、前言 默认的quickjs,是js引擎,需要自己移植类似curl库,才能使quickjs有http请求功能。js引擎+一些本地功能调用=js运行时。 一、libcurl库 这个库的安装或编译,也是比较麻烦的事情,特别是需要使其支持https访问,配置和编译更是麻烦。因此,还是使用上次提到的vcp 阅读全文
posted @ 2023-12-11 14:32 无脑仔的小明 阅读(884) 评论(0) 推荐(0) 编辑
摘要:一、前言 这次通过这两篇博客,对libuv再次深入了解。因为后面结合iotjs,txiki.js会有很多地方用到libuv库。同时由于上一篇libuv博文是跟lvgl结合的。这一篇则比较纯粹的见解libuv库的使用。 二、默认的setTimeout例子,了解原理 1 import {setTimeo 阅读全文
posted @ 2023-12-08 15:09 无脑仔的小明 阅读(478) 评论(0) 推荐(0) 编辑
摘要:一、模块封装、类封装 通过quickjs,封装JS模块,然后可以通过import 导入对应模块,还可以导入具体的类。全部代码如下。 1 #include "quickjs-libc.h" 2 #include <stdio.h> 3 #include <inttypes.h> 4 #include 阅读全文
posted @ 2023-12-05 14:43 无脑仔的小明 阅读(368) 评论(0) 推荐(0) 编辑
摘要:一、使用qjsc编译字节码 hello.js console.log("Hello World") qjsc.exe -c hello.js 1 const uint32_t qjsc_hello_size = 78; 2 3 const uint8_t qjsc_hello[78] = { 4 0 阅读全文
posted @ 2023-12-04 17:47 无脑仔的小明 阅读(309) 评论(0) 推荐(0) 编辑
摘要:零、前言 默认quickjs 是有setTimeout函数的实现的。但是由于js的进程与ui进程会有冲突,因此,需要通过重写quickjs的setTimeout,改用系统进程实现才行。 这里以大部分基于quickjs开源的框架中使用最多的libuv作为底层库。 一、编译libuv库 通过github 阅读全文
posted @ 2023-12-01 10:10 无脑仔的小明 阅读(425) 评论(0) 推荐(0) 编辑
摘要:实现本次使用quickjs的最主要目的,就是通过程序动态加载js,然后调用lvgl函数库,实现渲染。以达到类似小程序的效果。后续还会实现类似小程序效果,通过quickjs解析xml(html),编译成js然后调用lvgl库,实现界面渲染。通过quickjs会调用c语言提供的底层功能,如wifi、蓝牙 阅读全文
posted @ 2023-11-29 09:09 无脑仔的小明 阅读(310) 评论(0) 推荐(0) 编辑
摘要:QuickJS调用C函数,这个可以参考官方的std、os进行实现。 外部库 core.h 1 #include <string.h> 2 #include "quickjs-libc.h" 3 #include "cutils.h" 4 5 extern JSModuleDef *js_init_m 阅读全文
posted @ 2023-11-28 19:35 无脑仔的小明 阅读(469) 评论(0) 推荐(0) 编辑
摘要:零、前言 之前搞过在嵌入式中引入Lua作为脚本,以实现动态执行效果。详见(https://www.cnblogs.com/wunaozai/p/14087370.html)但是众所周知原因,其实Lua远远没有JS好,一方面是目前前端的如日中天,加之前端开源的库很多。很多都可以复用。 在选型用哪个JS 阅读全文
posted @ 2023-11-24 16:09 无脑仔的小明 阅读(2457) 评论(0) 推荐(2) 编辑
摘要:由于最近在学习quickjs,把学习过程中遇到的问题和功能验证的过程都记录下来,这篇是quickjs入门学习的目录导航。 一、基础篇 1. https://www.cnblogs.com/wunaozai/p/17850789.html quickjs在嵌入式中的应用 2. https://www. 阅读全文
posted @ 2023-11-24 15:57 无脑仔的小明 阅读(556) 评论(0) 推荐(0) 编辑