JerryScript:物联网开发者的得力工具
摘要:本文档以Linux开发环境及realview-pbx-a9开发板为例,简单介绍LiteOS上jerryscript命令的使用。
本文分享自华为云社区《Jerryscript—让开发者事半功倍》,作者:Lionlace。
物联网设备在CPU性能和内存空间方面皆存在严格受限,在使用V8引擎这类大型引擎时难免存在诸多不便。在此背景下,JerryScript引擎诞生了。JerryScript是由三星开发的一款炙手可热的轻量级引擎,其目的是让JavaScript开发者能够更好地构建物联网应用,它可以在RAM小于64KB和Flash小于200KB的设备上运行。
JerryScript的主要特征有:
- 完全符合ECMAScript 5.1标准;
- 为ARM Thumb-2编译时,二进制大小为160K;
- 针对低内存消耗进行了高度优化;
- 以C99编写,以实现最大的便携性;
- 快照支持将JavaScript源代码预编译为字节代码;
- 成熟的C API,易于嵌入应用程序。
目前LiteOS已适配的开发板中可以支持其运行的开发板为:realview-pbx-a9。
本文档以Linux开发环境及realview-pbx-a9开发板为例,简单介绍LiteOS上jerryscript命令的使用。
使能jerryscript
首先设置realview-pbx-a9的默认配置,在Linux系统的LiteOS源码根目录下,执行如下命令:
~/Huawei_LiteOS$ cp tools/build/config/realview-pbx-a9.config .config
执行如下命令打开LiteOS menuconfig菜单启用jerryscript
~/Huawei_LiteOS$ make menuconfig
按如下路径开启jerryscript组件及jerry命令
Components --->
FileSystem --->
[*] Enable RAMFS
Language --->
[*] Enable Jerryscript
注:RAMFS为可选组件,如选择该组件,可生成一个/ramfs/hello.js示例文件,在LiteOS的shell中执行jerry /ramfs/hello.js命令可查看其运行结果, jerryscript组件依赖vfs,开启jerryscript组件后,vfs即自动开启。
保存退出,此时LiteOS会从github自动下载jerryscript源代码,关于在线组件的自动下载,请查阅在线组件下载流程。待下载完成后,执行如下命令编译LiteOS工程。
~/Huawei_LiteOS$ make clean;make -j
编译成功后将在out/realview-pbx-a9/lib目录下生成组件静态库文件libjerryscript.a,生成的系统镜像文件为Huawei_LiteOS.bin。
注:下载需要Linux主机可以访问互联网,并安装git。
jerry命令
查看jerry命令是否生效:
按上述方法使能jerryscript后,jerry命令会被编译进系统镜像文件中。使用串口工具,进入shell,输入help命令后,如果显示jerry命令,则表明已经生效。
Huawei LiteOS # help
*******************shell commands:*************************
date free help hwi jerry log memcheck stack
swtmr systeminfo task uname watch
Huawei LiteOS #
查看jerry命令的使用帮助信息:进入shell, 输入jerry -h。
Huawei LiteOS # jerry -h
Usage: jerry [options]
Options:
-h, --help print this help
-v, --version print tool and library version
FILE input JS file
Huawei LiteOS #
运行hello.js文件
Huawei LiteOS # jerry /ramfs/hello.js
Hello, wlorld! I'm JerryScript.
Huawei LiteOS #
jerryscript目前适配接口有限,仅支持运行本地js文件,后续将持续适配更多接口以方便使用。
JerryScript:物联网开发者的得力工具的更多相关文章
- Android开发者的演示工具——asm.jar
作为Android开发者,我们有时候需要给客户或者其他人演示我们的Android作品.我们可以使用类似豌豆荚.360手机助手这样的软件,今天我来介绍一个Android开发者的演示工具--asm.jar ...
- web开发者性能优化工具(一)
web开发者性能优化工具 1 数据包嗅探器(在性能优化时,查看页面(包括页面中全部资源)的加载过程) HttpWatch (http://www.httpwatch.com/) 把网络流量用图形的 ...
- Mac 开发者常用的工具
转载:http://www.oschina.net/news/53946/mac-dev-tools 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 Ma ...
- 开发者如何利用工具快速开发出完美APP
文|移动互联网李建华 微信:ydhlwdyq 传统的个人开发者,要想开发出一个完美的APP要 经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上 ...
- iOS开发者的管理工具-CocoaPods安装
1. 安装 Ruby 对于iOS开发者,CocoaPods是最方便使用的第三方管理工具了,但是怎么安装CocoaPods呢,安装CocoaPods之前,要确保mac已经安装上Ruby,但在安装Ruby ...
- Vue UI:Vue开发者必不可少的工具
译者按: Vue开发工具越来越好用了! 原文: Vue UI: A First Look 译者: Fundebug 本文采用意译,版权归原作者所有 随着最新的稳定版本Vue CLI 3即将发布,是时候 ...
- iOS开发者有价值的工具集
转载于:http://www.cocoachina.com/applenews/devnews/2014/0307/7936.html 我一直比较推崇聪明地工作要远胜于刻苦地工作.使用正确的工具可以帮 ...
- Android开发者的四大工具
1. Basic4Android Basic4Android是Android平台上一个简单而又强大的可视化快速应用开发工具,它可被用来开发和测试数据库通信,甚至可以被用来开发2D的即时游戏! 主要特性 ...
- linux网络开发者定位问题常用工具和命令总结
本文章来自我的微信个人技术公众号---网络技术修炼,公众号中总结普及网络基础知识,包括基础原理.网络方案.开发经验和问题定位案例等,欢迎关注. Linux网络开发者面临的问题往往比较复杂,因此需要使用 ...
- Mac开发者必备实用工具推荐
最近一个师兄给我推荐了一些Mac上的实用工具,用起来非常顺手,能提高不少开发效率.于是就想着把自己之前用过的其他工具也整理一下,一块推荐给大家,希望能对大家有帮助. Alfred 目前Mac下最好用的 ...
随机推荐
- ELK7.x环境部署
1.Elasticsearch (ES)配置: 部署配置ES,需要配置JDK环境,JDK是Java语言的软件开发工具包: 下载JAVA jdk源码包: wget https://mirrors.yan ...
- Dynamics CRM中自定义页面实现附件管理包含下载模板、上传、下载、删除
前言 附件使用的Dynamics CRM平台本身的注释表annotation存储,将附件转换成二进制字节流保存到数据库中,因自带的注释在页面中显示附件不够直观,特做了一个单独的附件管理自定义页面,通过 ...
- 机器学习|K邻近(K Nearest-Neighbours)
本文从概念.原理.距离函数.K 值选择.K 值影响..优缺点.应用几方面详细讲述了 KNN 算法 K 近临(K Nearest-Neighbours) 一种简单的监督学习算法,惰性学习算法,在技术上并 ...
- Filter入门实例
一.介绍 Filter:Filter是Servlet的"加强版",它主要用于对用户请求进行预处理,也可对HttpServletResponse进行后处理,是个典型的"处理 ...
- .Net8 Blazor 尝鲜
全栈 Web UI 随着 .NET 8 的发布,Blazor 已成为全堆栈 Web UI 框架,可用于开发在组件或页面级别呈现内容的应用,其中包含: 用于生成静态 HTML 的静态服务器呈现. 使用 ...
- 4 HTTP的“四层”和“七层”
目录 1 四层:TCP/IP 网络分层模型 2 七层:OSI网络分层模型 3 TCP/IP 协议栈的工作方式 1 四层:TCP/IP 网络分层模型 四层是指TCP/IP 网络分层模型. 第一层:&qu ...
- 【Python】【OpenCV】定位条形码(二)moments和HuMoments
根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域. cv2. ...
- WeLM微信自研NLP大规模语言模型
2022年9月份微信AI推出自研NLP大规模语言模型WeLM ,该模型是一个尺寸合理的中文模型,能够在零样本以及少样本的情境下完成包多语言任务在内的多种NLP任务.openai的chatgpt是在20 ...
- CentOS 7.3 操作系统 详解安装手册
CentOS 7.3 操作系统 安装手册 在安装ESPC前(绿盟WAF.IPS等外置日志中心),需要确保已经在计算机中正确安装CentOS 7.3 x86_64(内核版本为3.10.0-514.el7 ...
- Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)
依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...