联发科陈柏儒:让MCU更加适合物联网

原创
服务器
最常见的互联网相关的应用场景,像智能家居中的智慧冷气、智慧台灯、智慧音箱,智慧浇花器等。物联网最重要的是具有联网能力,远端是云,从终端的物到云之间,家里只有一条光纤,中间有一个类似于路由器的角色,帮把终端的产品装置到人的指令通过gateway上传到云端

【51CTO.com原创稿件】2016年8月26-27日,由51CTO.com主办的【WOT2016移动互联网技术峰会】在北京粤财JW万豪酒店隆重召开。自2012年以来,WOT品牌大会秉承专注技术、服务技术人员的理念已经成功举办十一届,不仅积累了大量的专家资源,更获得广大IT从业者和技术爱好者的认可和好评,并成为业界重要的技术分享及人脉拓展平台。

[[174192]]


在大会上,联发科资深工程师陈柏儒进行了主题为“MCU 與 lightweight javascript engine 的邂逅”的主题演讲,以下是演讲整理。
物联网提出新挑战
最常见的互联网相关的应用场景,像智能家居中的智慧冷气、智慧台灯、智慧音箱,智慧浇花器等。物联网最重要的是具有联网能力,远端是云,从终端的物到云之间,家里只有一条光纤,中间有一个类似于路由器的角色,帮把终端的产品装置到人的指令通过gateway上传到云端。以上是很常见的举例,以家庭市场来看物联网是这样。


联发科去年年底有针对gateway部分推出Linux base,叫做7688。这样等级的晶片,常见的类别因为是Linux base,属于MPU,可能有比较好的运算资源,比如580MHB,有可能配合256MB以上的,或者是32MB以上的空间。Linux base有一个先天的问题,一开始开机需要比较长的时间,以7688来看差不多1-2分钟左右。因为属于比较高度的运算,通常需要长时间插电状态,晶片也相对比较贵。


终端的市场,今天买一个智慧台灯,当使用者回到家很高兴地插在电源上,每一次插要等2分钟,智慧台灯才开始工作,这个情境对于很多使用者的体验非常不好。最近几年,甚至终端的产品会建议使用MCU,大陆的用法是单晶片,其实需要资源比较少,目前常常看到100多KB RAM或者256KB RAM,储存空间也非常少,可能1-2MB的储存空间,好处是开机时间短,省电,甚至是晶片更便宜。


这样的应用场景跟晶片的选择,今天主题是介绍怎么让JavaScript跑在更多的应用,以刚才的场景来看,云端是一个Server,用Node.js跑,右下角是MPU,通常有Linux base,因为Node.js本身有对于Linux base这层以上做很多丰富资源,像7688以Node.js为主。现实市面上,因为大家都很习惯Node.js,本身所需要的资源,最基本的资源要安装、下载,资源就使用miga.js本身需要执行的内容需要120MB以上,对于单晶片非常有挑战。


js挖掘芯片潜能
联发科今年年终推出一款晶片,ARM Cortex-M系列的晶片,本身环境是256KB RAM,2MB flash左右的空间。陈柏儒曾经尝试先用公司的晶片完成想要在js带给大家更多玩法,真的困难重重,但是不用担心,因为在过去五年来,国外很多社群,Lightweight JavaScript engine,都相当红。


在中国可能会有一个常听到的名字,Tiny.js engine,如果没有听过没有关系,想必一定听过Espruino,其实是基于Tiny.js engine做出来的产品。Tiny.js engine是最早盛行在单晶片的js engine,原来是由一个高中生自己做,想把js跑在上面,自己写一个很简单的interpreter。现在来看参考价值不高,在五年前的时代,在js engine强调边parse边解析,这样的做法也相当与给后期很多js engine很棒的参考。


因为Espruino带出了一些喜欢js的爱好者,本身有一些项目在大公司,像高通、Samsung,有一些大公司本身也有一些资源,高通背后有Allseen联盟,相当于js的潜力,自己研发出duktape engine,他们提供alljoyn.js部分。Samsung有一个CTO组织,自己研发出Jerryscript,集成其他API包成IoT.js。


让Jerryscript engine更加完善
Jerryscript的架构,左边Parser产生bytecode,中间是针对bytecode做优化,虚拟优化或者某一些演算法前进的优化,然后再带入。这些是目前在市面上比较常见,而且比较稳定的Level js engine架构。


把engine全部放在7687开发上,做一个简单的比较,为什么光有Jerryscript engine还不够,发现这个原因,想要另外开一个专案,来改善现有Jerryscript engine的盲点。一开始针对LICENSE,以V7来看,在LICENSE部分属于GPL,不管是商业使用一定要开源,可能有些客户不是很喜欢,当初在V7 engine因为这个原因把它化掉。还有一些其他原因,比如有ECMA 5一些规范V7没有做完,V7是强调让大家可以改进,让Jerryscript engine符合ECMA 5的标准。


开始比较Jerry和Duktape部分,Duktape有一个很大的部分,在RAM的资源消耗是一个很大的关键因素,Jerry其实每一次可能js那一层到底层所谓js binding层,通常有一个RAM,可以消耗30-70KB,Duktape接近96KB,开始把Duktape先化掉。***选用engine基于Jerryscript发展所有leverage node.js。

【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】

责任编辑:云中子 来源: 51cto
相关推荐

2016-08-27 17:03:29

联发科物联网

2019-08-22 17:15:02

物联网大数据运输

2014-11-04 09:14:39

2019-07-19 08:38:55

物联网智慧城市智能照明

2016-09-02 14:38:55

物联网

2022-09-15 14:08:29

物联网IoT

2009-10-27 09:47:39

2015-09-24 10:00:15

物联网MCU

2017-04-19 10:18:57

Zephyr物联网

2015-12-02 15:18:05

物联网物联网技术

2009-03-01 22:10:08

联发科无线通信芯片

2012-06-25 09:59:06

联发科晨星收购

2009-03-12 08:42:38

AndroidWMMTK

2014-10-31 17:38:36

2024-01-04 10:19:48

2023-06-13 23:21:35

2009-12-14 09:29:24

联发科员工奖金

2020-04-15 18:54:45

零售店物联网智能

2019-01-27 22:15:37

物联网技术城市管理物联网
点赞
收藏

51CTO技术栈公众号