elk 项目为微控制器开发了一个紧凑的 JavaScript 引擎

新版本的 elk 2.0.9 JavaScript 引擎现已推出,旨在用于微控制器等资源受限的系统,包括具有 32KB RAM 和 2KB 闪存的 ESP30 和 Arduino Nano 板。 要运行提供的虚拟机,100 字节内存和 20 KB 存储空间就足够了。 该项目代码是用C语言编写的,并在GPLv2许可证下分发。 要构建该项目,C 编译器就足够了 - 无需使用其他依赖项。 该项目由物联网设备操作系统 Mongoose OS、mJS JavaScript 引擎和嵌入式 Mongoose Web 服务器(用于西门子、施耐德电气、博通、博世、谷歌、三星和高通等公司的产品)的开发人员开发)。

Elk 的主要目的是为 JavaScript 中的微控制器创建固件,以执行各种自动化任务。 该引擎还适合将 JavaScript 处理程序嵌入到 C/C++ 应用程序中。 要在代码中使用该引擎,只需将 elk.c 文件放在源代码树中,包含 elk.h 头文件并使用 js_eval 调用即可。 允许从 JavaScript 脚本调用 C/C++ 代码中定义的函数,反之亦然。 JavaScript 代码使用不生成字节码且不使用动态内存分配的解释器在与主代码隔离的受保护环境中执行。

Elk 实现了 Ecmascript 6 规范的一小部分,但足以创建工作脚本。特别是,它支持一组基本的运算符和类型,但不支持数组、原型、this、new 和 delete 表达式。 建议用let代替var和const,用while代替do、switch和for。 没有提供标准库,即没有这样的 Date、Regexp、Function、String 和 Number 对象。

来源: opennet.ru

添加评论