官方文档: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工作台进行设备开发可以总结为以下过程:
在LD平台上如何基于TinyEngine实现JS开发 - 图1
开发调试过程可简单归纳为:

  1. 拥有一款 TinyEngine 已经支持的硬件

  2. 烧录 TinyEngine 系统固件

  3. 配置网络(联网或网络调试)

  4. 用 Javascript 开发嵌入设备程序

  5. 运行和调试 Javascript 程序

初识LD JS在线开发工作台

在线WebIDE的好处就是开发者的可以不必在开发过程中安装各类复杂的软件与环境,且可以跨设备进行开发与调试,具有很多优点。

嵌入式 Javascript 开发工作台是 Web 版的 Javascript 开发工具,部署在云端,可以通过浏览器打开该工作台。嵌入式 Javascript 开发工作台主要是面向嵌入式设备的 Javascript 开发,除了具有基本的 Javascript 开发和调试功能,还有调试设备连接,应用运行,以及驱动程序,软件模块的导入等功能。嵌入式 Javascript 开发工作台外观如下图所示:
在LD平台上如何基于TinyEngine实现JS开发 - 图2

嵌入式 Javascript 应用开发工作台具有如下几个功能:

  • 创建新项目

  • 打开已有项目

  • 导入第三方驱动或软件模块

  • 连接 DeviceAgent

  • 运行应用

  • 设置设备的 WIFI 网络 (ssid 和 password )

认识下默默后台运行的DeviceAgent

DeviceAgent是默默运行在本地的一段基于Node.js开发的脚本,负责扫描你本地电脑的硬件端口,并与开发板通过驱动建立连接,DeviceAgent还有一份神圣的职责就是建立本地和云端IDE的连接,在使用WebIDE工具进行代码编写和编译时,整个过程发生在平台的服务器,编译好的文件通过DeviceAgent与服务器建立连接,再将编译好的设备App下载到本地进行运行。整个交互过程如下图所示:
在LD平台上如何基于TinyEngine实现JS开发 - 图3

开发前需要注意的

  1. 目前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
  1. 受限于设备资源,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