适用于微控制器的JavaScript

2020-11-23 11:41:19

Moddable SDK是开发工具和运行时软件的组合,可为微控制器创建应用程序。

与现代计算机和移动设备相比,微控制器是高度受限的设备。与Moddable SDK一起使用的典型微控制器具有大约45 KB的可用内存,1 MB的ROM ROM,并以80 MHz运行。 Moddable SDK在构建时和运行时均使用许多不同的技术,以在这些设备上有效地工作。

开发的主要编程语言是JavaScript。 Moddable SDK中心的XS JavaScript引擎以高于99%的一致性实现了2019 JavaScript语言标准。 [1]目标微控制器的约束可能会限制可以由单个应用程序组合使用的语言功能的数量。

Moddable SDK中实现的JavaScript语言与网页和Node.js中使用的语言相同。但是,运行脚本的微控制器与个人计算机,服务器或移动设备完全不同。这些差异通常需要使用JavaScript的不同方法。 Moddable SDK中的API和对象完全不同,其设计目的是最大程度地减少内存使用。带来您现有的JavaScript使用经验,但准备以不同的方式考虑性能,代码大小和内存使用。 [2]

尽可能实际地,Moddable SDK是用JavaScript实现的。 Moddable SDK的某些部分以C语言实现,以提高性能或直接访问本机API。 [3]没有C ++。

为微控制器构建高效软件的重要部分是在构建时进行的。 Moddable SDK包含许多用于构建过程的工具和选项。 [4]花一些时间来学习这些以获得最佳效果。

[1]另请参见:XS一致性[2]另请参见:XS差异[3]另请参见:C中的XS [4]另请参见:工具,清单

Moddable SDK实现了网络套接字和各种基于套接字的标准安全网络协议,包括HTTP / HTTPS,WebSocket,DNS,SNTP和telnet。

还支持蓝牙低功耗(BLE)协议,从而支持BLE外围设备和中央设备的开发。

Commodetto,一种提供2D图形API的位图图形库。 Commodetto包括轻量级Poco渲染引擎,这是一个显示列表渲染器,能够一次高效地渲染一条扫描线,从而消除了对帧缓冲区的需求,从而节省了大量内存。

Piu,基于Commodetto构建的用户界面框架。 Piu是一个基于对象的框架,可以更轻松地创建复杂的响应式布局。

Moddable SDK还包括用于图像格式转换,图像压缩,图像旋转,字体压缩等的命令行工具。构建系统会自动使用这些工具。

Moddable SDK实现了各种硬件协议,包括数字(GPIO),模拟,PWM和I2C。还提供了许多常用的现成传感器驱动程序和相应的示例应用程序。

xsbug JavaScript源代码级调试器是功能齐全的调试器,它支持XS平台的调试模块和应用程序。

与其他调试器类似,xsbug支持设置断点,浏览源代码以及检查调用堆栈和变量。 xsbug调试器还提供实时工具,以跟踪内存使用情况并分析应用程序和资源消耗。

入门文档提供了针对macOS,Linux和Windows的安装,配置和构建Moddable SDK的分步说明。它还包括用于构建可修改硬件模块以及ESP8266和ESP32微控制器的示例应用程序的说明。

examples文件夹包含150多个示例应用程序,它们演示了如何使用Moddable SDK的许多功能。许多资源不足一页的源代码来集中于演示如何使用特定功能。

请记住,并非每个示例都与每个设备目标兼容。 readme.md文档提供了构建示例和信息的指南,可帮助您找到所需的示例类型。

有关Moddable SDK支持哪些微控制器和开发板的信息,请参见下面的“支持的硬件”部分。如果您还没有任何硬件,则Moddable SDK还包括在macOS,Linux和Windows上运行的模拟器。这些是入门的好方法,并且作为开发加速器非常宝贵。

当您准备自定义示例应用程序或从头开始构建自己的应用程序时,可以使用所有JavaScript API的文档和源代码。所有文档均以markdown格式提供。组成Moddable SDK运行时的软件模块位于modules目录中。

文档,示例和模块目录共享一个公共结构,以使查找信息变得简单。

网络:网络套接字和建立在套接字上的协议,包括HTTP,WebSocket,DNS,SNTP,telnet和TLS;还有Wi-Fi和BLE API。

硬件模块Moddable 1,Moddable 2和Moddable 3是开发人员可以轻松使用廉价的硬件探索Moddable SDK的硬件模块。每个设备都有入门指南:

Moddable SDK还包括对Espressif的ESP8266和ESP32,Silicon Labs的Gecko的四种型号以及高通公司的QCA4020 CDB的支持。

有关受支持平台的完整列表,请参见example文件夹中readme.md文档的“目标平台”部分。

我们已使用ESP8266和ESP32测试了各种SPI显示器。这些显示的视频演示在我们的网站上。接线指南可在documentation / displays文件夹中找到。相应的显示和触摸驱动程序的源代码可在modules / drivers文件夹中找到。

build:特定微控制器目标,模拟器和在tools目录中的build工具生成文件所需的文件。

示例:具有Moddable SDK的许多功能的示例应用程序。 readme.md文档提供了构建示例和信息的指南,可帮助您找到所需的示例类型。

license:Moddable SDK中提供的软件的许可协议。贡献者许可协议也在此处。

模块:组成Moddable SDK运行时的软件模块。这些包括网络,图形,用户界面,硬件访问,加密原语和设备驱动程序。所有模块都具有JavaScript API。许多模块部分使用C实现。

工具:使用Moddable SDK构建应用程序的工具。这些工具包括用于图像格式转换,图像压缩,图像旋转,字体压缩,处理本地化字符串,编译资源以及从JSON清单文件构建应用程序的命令行工具。此外,XS源级调试器xsbug在这里。

xs:XS JavaScript引擎,包括其编译器和链接器,以及test262执行外壳。

Moddable SDK是根据包括GPL 3.0,LGPL 3.0,Apache 2.0和Creative Commons Attribution 4.0许可证的许可证组合提供的。许可证目录包含有关使用的许可证和许可选项的其他信息。 Moddable网站上的许可文章介绍了其他背景和商业许可选项。

我们努力确保Moddable SDK中没有安全漏洞。尽管如此,几乎消除所有这些几乎是不可能的。鼓励使用我们的软件识别潜在安全问题的安全研究人员打开一个未解决的问题。我们将尽快做出回应。如果您愿意,也可以通过电子邮件报告安全问题。

如果您是独立开发人员,建议您打开一个问题。我们将尽快响应您,问题的答案也会使其他开发人员受益。

对于对使用JavaScript和Moddable SDK为产品提供动力的好处感兴趣的公司,Moddable提供咨询服务来帮助您入门。我们可以提供设计,实施,培训和支持方面的帮助。

您也可以在Twitter(@moddabletech)上与我们联系。在Twitter上关注我们是跟上我们所做工作的最佳方式-我们在此处发布有关新博客帖子的公告以及其他Moddable新闻。