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

艾欧体(Aiouti)物联网资讯:2016年8月26到27日,由51CTO.com主办的“WOT2016移动互联网技术峰会”在北京粤财JW万豪酒店隆重召开。

自2012年以来WOT品牌大会秉承专注技术、服务技术人员的理念已经成功举办十一届,不仅积累了大量的专家资源,更获得广大IT从业者和技术爱好者的认可和好评,并成为业界重要的技术分享及人脉拓展平台。

联发科陈柏儒在大会上联发科资深工程师陈柏儒进行了主题为“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。

欢迎转载,转载请注明作者和出处!:IOT-艾欧体 » 联发科陈柏儒:让MCU更加适合物联网

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址