官方文档:https://linkdevelop.aliyun.com/device-doc#ebagtb.html
LD中使用 TinyEngine 的开发过程和步骤
LD基于TingEngine对JS的能力提供在线JavaScript开发工作台,使用在线JS开发与传统使用C语言开发具有以下优点:
简单:语法不涉及指针,内存分配和释放,内存管理由 Javascript 引擎完成
灵活:解释性语言,不需要编译即可运行,方便调试,升级和业务扩展
高效:最新的 Javascript 引擎 已经支持 JIT,Javascript 的执行性能已经接近 C/C++
跨平台:不同平台,不同硬件,一份代码,都可以运行
生态丰富:目前存在大量用 Javascript 实现的开源模块(如 NodeJS )
使用在线JS工作台进行设备开发可以总结为以下过程:
开发调试过程可简单归纳为:
拥有一款 TinyEngine 已经支持的硬件
烧录 TinyEngine 系统固件
配置网络(联网或网络调试)
用 Javascript 开发嵌入设备程序
运行和调试 Javascript 程序
初识LD JS在线开发工作台
在线WebIDE的好处就是开发者的可以不必在开发过程中安装各类复杂的软件与环境,且可以跨设备进行开发与调试,具有很多优点。
嵌入式 Javascript 开发工作台是 Web 版的 Javascript 开发工具,部署在云端,可以通过浏览器打开该工作台。嵌入式 Javascript 开发工作台主要是面向嵌入式设备的 Javascript 开发,除了具有基本的 Javascript 开发和调试功能,还有调试设备连接,应用运行,以及驱动程序,软件模块的导入等功能。嵌入式 Javascript 开发工作台外观如下图所示:
嵌入式 Javascript 应用开发工作台具有如下几个功能:
创建新项目
打开已有项目
导入第三方驱动或软件模块
连接 DeviceAgent
运行应用
设置设备的 WIFI 网络 (ssid 和 password )
认识下默默后台运行的DeviceAgent
DeviceAgent是默默运行在本地的一段基于Node.js开发的脚本,负责扫描你本地电脑的硬件端口,并与开发板通过驱动建立连接,DeviceAgent还有一份神圣的职责就是建立本地和云端IDE的连接,在使用WebIDE工具进行代码编写和编译时,整个过程发生在平台的服务器,编译好的文件通过DeviceAgent与服务器建立连接,再将编译好的设备App下载到本地进行运行。整个交互过程如下图所示:
开发前需要注意的
- 目前TinyEngine支持的硬件有限,理论上一次开发可以跑在所有的嵌入式平台上,查看支持的硬件,请参照官方Github以及下表(2018年11月):
| 芯片型号 | 厂商 | 硬件配置 | JSE | OS |
|---|---|---|---|---|
| ESP32 | 乐鑫 | ROM:448KB SRAM:520KB+ |
LiteJSE Duktape |
AliOS-Things,FreeRTOS,UCOSII |
| STM32F/L4XX | 意法 | ROM:1MB SRAM:320KB+ |
LiteJSE Duktape |
AliOS-Things,FreeRTOS,UCOSII |
| EMW3060/ EMW3080 |
庆科 | ROM:2MB SRAM:256KB |
LiteJSE Duktape |
AliOS-Things |
| STM32F103X | 意法 | FLASH:256KB SRAM:64KB |
LiteJSE | UCOSII |
| STM32F7XX | 意法 | FLASH:2MB SRAM:512KB+ |
LiteJSE Duktape |
AliOS-Things,FreeRTOS,UCOSII |
- 受限于设备资源,TinyEngine目前并非支持所有的语法,TinyEngine目前支持自主开发的LiteJSE(支持语法少),和开源的DuktapeJSE(支持ES5.1的语法)参见:https://linkdevelop.aliyun.com/device-doc#uzhqf8.html 往保守里写,问题不大!
JSE:Javascript Engine 简称,Javascript 解释器,Javascript 运行引擎,负责解释JavaScript语法
TinyEngine调用板级资源
多说无益,datasheet靠谱:https://linkdevelop.aliyun.com/device-doc#ew6yyr.html
TinyEngine调用传感器模块和上云能力
多说无益,datasheet靠谱:https://linkdevelop.aliyun.com/device-doc#apeg39.html
