功能简介

更新时间:2018-09-18 15:26:39

什么是嵌入式 Javascript 开发?

嵌入式 Javascript 开发是面向嵌入式设备,用 Javascript 语言来开发嵌入式设备上的应用。Javascript 语言开发嵌入式设备应用,具备如下优点:

  • 简单:语法不涉及指针,内存分配和释放,内存管理由 Javascript 引擎完成

  • 灵活:解释性语言,不需要编译即可运行,方便调试,升级和业务扩展

  • 高效:最新的 Javascript 引擎 已经支持 JIT,Javascript 的执行性能已经接近 C/C++

  • 跨平台:不同平台,不同硬件,一份代码,都可以运行

  • 生态丰富:目前存在大量用 Javascript 实现的开源模块(如 NodeJS )

针对嵌入式设备硬件资源有限的特点,阿里巴巴自主开发了轻量级的 Javascript 运行引擎 TinyEngine ,围绕 TinyEngine,实现了与嵌入式系统相关的 Native 扩展对象和函数,用 Javascript 编写大量的硬件驱动程序和软件模块。开发者可以导入已有的驱动程序和软件模块,用 Javascript 快速开发嵌入式应用。</span>

嵌入式设备的 Javascript 开发过程示意图

TinyEngine开发流程.jpg | center | 752x423

开发调试过程可简单归纳为:

  1. 拥有一款 TinyEngine 已经支持的硬件
  2. 烧录 TinyEngine 系统固件
  3. 配置网络(联网或网络调试)
  4. 用 Javascript 开发嵌入设备程序
  5. 运行和调试 Javascript 程序

在 Link Develop 开发平台上,嵌入式 Javascript 开发环境各部分之间关系如下图所示:

image.png | center | 747x430

由上图可见,LinkDevelop 平台上,用 Javascript 开发嵌入式设备主要涉及到:云端 LinkDevelop 上的嵌入式 Javascript 开发工作台,运行在本地调试主机上的 DeviceAgent,设备端上的 TinyEngine 运行环境。

主要功能组件

嵌入式 Javascript 开发工作台

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

image.png | center | 747x376

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

  • 创建新项目

  • 打开已有项目

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

  • 连接 DeviceAgent

  • 运行应用

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

DeviceAgent 设备调试代理

DeviceAgent 是运行在本地调试主机上的一个后台应用程序。DeviceAgent 一方面通过串口或网络与嵌入式调试设备连接,可下载 Javascript 应用程序,启动或者停止设备端上的 Javascript 应用运行,发起或断开设备设备连接,并能在局域网内,搜索TinyEngine 目标设备。
另一方面,DeviceAgent 与云端的嵌入式 Javascript 开发工作台通讯,接收云端的应用程序下发或烧写命令。

TinyEngine 运行环境

TinyEngine 是专门为嵌入式设备提供的 Javascript 运行时环境,它提供极轻量级的JSE,设备抽象模型,应用编程框架,以及相关的辅助开发和调试工具,</span>是整个环节的核心部分,TinyEngine 官方开源地址: https://github.com/aliyun/TinyEngine . TinyEngine 具备如下特点:

  • 多芯片和硬件支持

    支持大多数主流嵌入式的 MCU 和 SoC,包括乐鑫 ESP8266,ESP32; 庆科 MK3060,MK3080; STMicro STM32F1xx,STM32F4xx,STM32F7xx 系列

  • 应用编程框架

    实现各种硬件,文件系统,网络等扩展对象和 API,可直接连接阿里的 LinkDevelop 或 LinkPlatform IoT 云平台,内建应用管理组件,支持多应用分发和 OTA 升级

  • 设备驱动模型

    抽象硬件驱动模型,可以用 Javascript 开发硬件驱动程序,还提供大量的 IoT 相关的设备驱动,包括各种传感器,控制器,以及显示驱动

  • 集成开发调试工具

整个 TinyEngine 软件系统架构图如下:

TinyEngine架构.jpg | center | 747x420

  • TinyEngine 已支持硬件列表
芯片型号
厂商
硬件配置
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
嵌入式设备上的 Javascript 运行时环境,包括 Javascript 引擎,应用编程框架,驱动编程框架
TinyEngine 固件
TinyEngine 镜像,包括 Bootloader,RTOS,TineEngine,烧录在嵌入式设备上
Javascript 本地扩展
为了硬件和或性能的要求,用 Native C 编写的 Javascript 对象,本地扩展对象会透出相应的 Javascript API,供 上层的 Javascript 应用调用
LD
LinkDevelop 开发平台,阿里巴巴为IoT开发者提供的一站式开发平台
JS
Javascript 简称
JSE
Javascript Engine 简称,Javascript 解释器,Javascript 运行引擎
嵌入式 Javascript 开发工作台
嵌入式设备 Javascript 的 Web 开发和调试环境和工具,部署在云端,属于 LinkDevelop 一站式开发平台。

results matching ""

    No results matching ""