摘要:本文档以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:物联网开发者的得力工具的更多相关文章

  1. Android开发者的演示工具——asm.jar

    作为Android开发者,我们有时候需要给客户或者其他人演示我们的Android作品.我们可以使用类似豌豆荚.360手机助手这样的软件,今天我来介绍一个Android开发者的演示工具--asm.jar ...

  2. web开发者性能优化工具(一)

    web开发者性能优化工具 1   数据包嗅探器(在性能优化时,查看页面(包括页面中全部资源)的加载过程) HttpWatch (http://www.httpwatch.com/) 把网络流量用图形的 ...

  3. Mac 开发者常用的工具

    转载:http://www.oschina.net/news/53946/mac-dev-tools 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 Ma ...

  4. 开发者如何利用工具快速开发出完美APP

    文|移动互联网李建华 微信:ydhlwdyq 传统的个人开发者,要想开发出一个完美的APP要 经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上 ...

  5. iOS开发者的管理工具-CocoaPods安装

    1. 安装 Ruby 对于iOS开发者,CocoaPods是最方便使用的第三方管理工具了,但是怎么安装CocoaPods呢,安装CocoaPods之前,要确保mac已经安装上Ruby,但在安装Ruby ...

  6. Vue UI:Vue开发者必不可少的工具

    译者按: Vue开发工具越来越好用了! 原文: Vue UI: A First Look 译者: Fundebug 本文采用意译,版权归原作者所有 随着最新的稳定版本Vue CLI 3即将发布,是时候 ...

  7. iOS开发者有价值的工具集

    转载于:http://www.cocoachina.com/applenews/devnews/2014/0307/7936.html 我一直比较推崇聪明地工作要远胜于刻苦地工作.使用正确的工具可以帮 ...

  8. Android开发者的四大工具

    1. Basic4Android Basic4Android是Android平台上一个简单而又强大的可视化快速应用开发工具,它可被用来开发和测试数据库通信,甚至可以被用来开发2D的即时游戏! 主要特性 ...

  9. linux网络开发者定位问题常用工具和命令总结

    本文章来自我的微信个人技术公众号---网络技术修炼,公众号中总结普及网络基础知识,包括基础原理.网络方案.开发经验和问题定位案例等,欢迎关注. Linux网络开发者面临的问题往往比较复杂,因此需要使用 ...

  10. Mac开发者必备实用工具推荐

    最近一个师兄给我推荐了一些Mac上的实用工具,用起来非常顺手,能提高不少开发效率.于是就想着把自己之前用过的其他工具也整理一下,一块推荐给大家,希望能对大家有帮助. Alfred 目前Mac下最好用的 ...

随机推荐

  1. Unity EditorWindow GUI裁剪

    Unity2017,想在编辑器自己实现一个类似TreeView的东西 public void OnGUI(Rect rect) { // ... for (int i = 0; i < 100; ...

  2. 使用Kali Linux进行主机发现实验

    主机发现 [实训目的] 掌握主机扫描的工作原理,学会使用ping等扫描工具,发现网络当中活跃的主机. [场景描述] 在虚拟机环境下配置4个虚拟系统"Win XP1" "W ...

  3. 堆优化模拟退火(List-Based Simulated Annealing|List-Based SA|LBSA|模拟退火) 算法

    图炸了的话请多刷新几次(upd:8.9) 堆优化模拟退火(List-Based Simulated Annealing) 算法 引入 堆优化模拟退火(List-Based Simulated Anne ...

  4. Codeforces Round 848 (Div. 2)C

    B. The Forbidden Permutation 一定要注意题目中说的是对于all i满足才算不好的,我们做的时候只要破坏一个i这个a就不算好的了,被这一点坑了,没注意到all. #inclu ...

  5. 20.2 OpenSSL 非对称RSA加解密算法

    RSA算法是一种非对称加密算法,由三位数学家Rivest.Shamir和Adleman共同发明,以他们三人的名字首字母命名.RSA算法的安全性基于大数分解问题,即对于一个非常大的合数,将其分解为两个质 ...

  6. springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析

    一.SpringCloud 简介 Spring Cloud 是一系列框架的有序集合如服务发现注册.配置中心.消息总线.负载均衡.熔断器.数据监控等. SpringCloud 将多个服务框架组合起来,通 ...

  7. Python 包管理器入门指南

    什么是 PIP? PIP 是 Python 包管理器,用于管理 Python 包或模块.注意:如果您的 Python 版本是 3.4 或更高,PIP 已经默认安装了. 什么是包? 一个包包含了一个模块 ...

  8. CodeDesk-一个新款跨平台桌面开发框架

    CodeDesk 的灵感来自 Electron和Photino.这是一个基于 .NET 的开源项目. CodeDesk 的目标是使开发人员能够在跨平台的本机应用程序中使用 Web UI(HTML.Ja ...

  9. 26. 干货系列从零用Rust编写正反向代理,如何发布Rust项目到Docker

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,内网穿透,后续将实现websocket代理等,会将实现 ...

  10. [NOIP 考前备战] 线段树刷题

    备战线段树 T1 AcWing .1275. 最大数 查询最大值 + 单点修改 #include <bits/stdc++.h> #define int long long using n ...