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下最好用的 ...
随机推荐
- 怎么用Python写一个浏览器集群框架
这是做什么用的 框架用途 在采集大量新闻网站时,不可避免的遇到动态加载的网站,这给配模版的人增加了很大难度.本来配静态网站只需要两个技能点:xpath和正则,如果是动态网站的还得抓包,遇到加密的还得j ...
- vscode编写keil工程项目
vscode 前言 1 安装vscode 2 安装插件 2.1 设置中文 2.2 安装Keil Assistant 2.3 常用安装 3 快捷键 前言 我使用vscode只是用来为了弥补keil编写的 ...
- 操作PDF的方法
PDF的内容提取.转换见上篇 PDF操作: 旋转 删除 合并 拆分 转成图片 导出内嵌资源图片 两页合并成一页 添加.去除密码 添加水印 PDF旋转某一页 var document = pdfView ...
- (Good topic)卡牌分组(3.27leetcode每日打卡)
给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数. 仅当你可选的 X &g ...
- mysq数据库查询之分组查询
一.什么是分组查询分组查询:将查询结果按照指定字段进行分组二.分组查询的基本语法select 查询字段 from 表名 [where 条件] group by 分组字段名 [having 条件表达式] ...
- iOS信号量造成线程优先级反转
在并发队列使用信号量会可能会造成线程优先级反转 一.在iOS16 & XCode14上遇到 - 使用信号量造成线程优先级反转问题 提醒 经过查询资料,发现是在XCode14上增加了工具,比如 ...
- 2. Shell 条件测试
重点: 条件测试. read. Shell 环境配置. case. for. find. xargs. gzip,bzip2,xz. tar. sed. 1)位置 变量 位置变量:在 bash She ...
- [USACO2007OPENS] Fliptile S
题目描述 FJ 知道,智商高的奶牛产奶量也大,所以他为奶牛们准备了一个翻动瓦片的益智游戏. 在一个 \(M \times N\) 的方阵上(\(1 \leq M,N \leq 15\)),每个格子都有 ...
- [ABC264F] Monochromatic Path
Problem Statement We have a grid with $H$ rows and $W$ columns. Each square is painted either white ...
- Rong晔大佬教程学习(2):取指
1.rvseed_defines.v(定义了一些参数,没有实际意义) 该文件定义了一些基本参数,在后续的代码中都会调用该文件 // simulation clock period `define SI ...