物联网设备种类越来越多,用户接受度越来越高,设备厂商一直试图找到一款简单并能应用于未来物联网开发板的开发环境,从而缩短设备开发周期。目前来看,Zephyr操作系统可用C语言编程,但是编写程序需要大量的专业知识储备,而JavaScript接口可以让工程师免去大量复杂的基于原生语言的编程工作。因此,英特尔将JavaScript引入了Zephyr操作系统,定名为ZJS开发环境。对比基于V8的Node.js需要太大的内存,ZJS开发环境更适用于内存较小的系统。当用户使用该工具编写应用程序时,ZJS开发环境可以向工程师提供Node.js API和JavaScript API子集,以及使用它们构建应用程序的工具,其中包括传感器、执行器和通信器。对于那些已经掌握JavaScript技能的开发人员,ZJS开发环境简单易学,可以快速建立原型。
ZJS再度升级, V0.3功能更加完善
随着Zephyr和JavaScript的不断更新,为提供更完善的功能,ZJS也在进行相应的升级。今年4月,ZJS 团队在Github上发布了ZJS的0.3版本,该版本基于稳定的Zephyr 1.7和***的JerryScript版本进行开发,采用newlib技术实现动态分配内存。为了更好地满足开发者需求,添加了新的功能模块,包括OCF模块、UDP数据传输模块、文件系统模块、芯片温度检测模块;控制台模块增加了新的对外接口:time、timeEnd和 assert;在ashell模式下和Web IDE配合使用,可以支持WebUSB,还能更好的清除运行过的脚本文件,避免常驻。
新版本对部分开发板的支持内容也做了升级,在K64F的开发板上支持I2C数据传输,在Arduino 101的引导程序中增加动态分配x86/arc的存储空间;在开发方面,为标准参数定义宏处理,添加ZVAL宏变量去完成jerry_value_t自动清理机制,使用持续集成工具Travis来加速合并和缓存;在测试方面,为常用测试行为添加Assert.js模块。
针对SDK 0.9推出解决方案,使用内存要充足
ZJS开发环境的优势是JavaScript 使用者可以在不同的环境下编程,如PC、云端、移动端和物联网设备上,这些代码可以重用,从而提高工作效率,然而JavaScript引擎会消耗一部分系统RAM和ROM,因此在资源严重受限的设备上就减少了留给应用程序的存储空间。关于SDK0.9的使用,Zephyr创建了一套解决方案。开发者需要注意的是,***不要在debug模式下使用SDK 0.9创建工程,同时如果开发者想使用SDK 0.9去创建ashell/ide工程,还须使用“ROM = 250”。如果无法达到这个要求,建议开发者继续使用SDK 0.8.2。
同时该版本还定义标准的错误类型,改善了创建流程,例如简单的ashell/ide标签、修复在MAC上的创建过程。更多细节可以通过API documentation和 ashell documentation来进一步了解。
关于Zephyr项目
Zephyr 项目是一款小型且可扩展的操作系统,尤其适用于资源受限的系统,可支持多种架构;该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行二次开发,以支持***硬件、工具和设备驱动程序;该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备。