保姆级linux和单片机上移植duktape

Duktape介绍

Duktape 是一个轻量级的嵌入式 JavaScript 引擎,专注于可移植性和低占用率。

Duktape 可以被轻松地集成进一个 C/C++ 项目中:只需要将 duktape.c、duktape.h 和 duk_config.h 三个文件加入你的构建项目中,并使用 Duktape API 来实现 C 代码与 ECMAScript 函数的双向调用。

主要特性

  • 可嵌入、可移植、低占用:能够运行在 256kB 闪存(Flash)和 64kB 系统内存(RAM)的平台上;
  • 兼容 ECMAScript E5/E5.1 标准,并借鉴了 ECMAScript E6 的部分特性;
  • 支持 Khronos/ES6 的 TypedArray 对象和 Node.js 的 Buffer 对象;
  • 内置调试器;
  • 内置正则表达式引擎;
  • 内置 Unicode 支持;
  • 最小限度的平台依赖;
  • 整合了引用计数机制和 mark-and-sweep 垃圾回收机制;
  • 自定义特性,如协同程序(coroutines)、内置日志框架、内置基于 CommonJS 的模块加载框架;
  • 属性(property)虚拟化中使用了 ECMAScript E6 Proxy 对象的一个子集;
  • 以字节码转储(dump)/加载的方式,来对已编译函数进行缓存;
  • 采用 MIT 自由许可协议。

代码和内存占用

_ x86 默认 x86 低端内存 x86 全低端内存
代码 170kB 150kB 200kB
启动内存 68kB 35kB 4kB

官网链接:https://duktape.org/index.html

移植到linux

首先到官网下载最新的duk的包 https://duktape.org/download.html

保姆级linux和单片机上移植duktape_第1张图片

 拷贝到linux目录下后进行解压

保姆级linux和单片机上移植duktape_第2张图片

 解压后得到以下目录

 duk提供了demo Makefile。这里执行 Makefile.cmdline

得到了可执行文件 duk

 现在可以交互式地运行 ECMAScript 代码:

保姆级linux和单片机上移植duktape_第3张图片

 你也可以从一个文件中运行 ECMAScript 代码

保姆级linux和单片机上移植duktape_第4张图片

 

将Duktape集成到您的程序

命令行工具只是一个嵌入Duktape的程序示例。将Duktape嵌入程序非常简单:

运行duktape-N.N.N/tools/configure.py为生成配置duktape。结果是一个包含duktape.c、duktape.h和duk_config.h的目录。

将duktape.c、duktape.h和duk_config.h添加到构建中,并从程序的其他地方调用DuktapeAPI

Duktape可分发(Duktape-N.N.N.tar.xz)src/目录包含Duktape默认配置的预配置头文件和源文件,通常可以按原样使用。如果需要,配置工具允许您自定义Duktape选项,例如为低内存目标优化Duktape,并启用/禁用功能。有关详细信息和示例,请参阅编译和配置Duktape以进行构建。

可分发文件包含一个非常简单的示例程序hello.c,它说明了这个过程。使用预配置的Duktape头文件和源文件编译测试程序,例如:

 自己写一个测试程序试试

保姆级linux和单片机上移植duktape_第5张图片

 移植到单片机

这里用的是全志XR872的MCU

首先把文件加入到工程中

保姆级linux和单片机上移植duktape_第6张图片

写一个测试程序

保姆级linux和单片机上移植duktape_第7张图片

 烧录到板子后运行结果:

 试试在板子上运行js代码:

保姆级linux和单片机上移植duktape_第8张图片

 运行结果:

保姆级linux和单片机上移植duktape_第9张图片

 搞定收工

 

 

你可能感兴趣的:(Duktape,linux,运维,服务器,单片机)