如何用JavaScript 搞定嵌入式开发

 我来答
分享快乐555

2017-06-25 · 传递知识,造就未来,你的所得,我的快乐!
分享快乐555
采纳数:4647 获赞数:12336

向TA提问 私信TA
展开全部
作者:知乎用户
链接:https://www.zhihu.com/question/29170563/answer/94419176
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

用一个 JavaScript 平台来做嵌入式开发,确实是简单的事情复杂化了。
表面上来看,所谓用 JavaScript 来点亮一个 LED 什么的,代码是简单了,但是它简单,是基于一个复杂的平台基础上的,很多产品如何搭载和使用这个平台本身就是很难解决的问题,这个问题比用什么语言编程复杂多了。
譬如,一个设备,电路板只有一个硬币大小,为了配合设备的结构,形状也有特定要求,有3个按键,控制一个可调光的 LED ,以及开关机,用电池供电,具备低电量提醒和自动休眠功能,必须尽可能延长电池使用时间。
这就是在嵌入式开发中遇到的需求,一个 PIC12 单片机就可以解决。
而为了让一套 JavaScript 平台运行在上面,我要不要设计一个专门的软硬件环境?那徒增了很多不必要的工作量,仅仅是为了用另一种语言,更抽象地控制一个 LED 灯?
还是说你能帮我设计这套平台,那么怎么收费?如果我要出货 100 万套,成本控制,生产,各种 EMC 之类的测试,都是你帮我解决吗?
那不是变成了外包了吗?
嵌入式开发门槛太高,最大的问题在于和实体世界太接近,无法做太多抽象,不同的需求,最佳解决方案会根据实际情况产生非常大的差异;越是抽象了,就离嵌入式越远,抽象本身就是和嵌入背道而驰的。
而且,对硬件做抽象,那不就是相当于重新走了一次发明软件的路了吗?
电脑就是一种经过抽象的“嵌入式设备”。我要做一个产品,直接把一部 PC 塞进去是不是更好?
或者其他运行 Linux 的设备,我喜欢用什么语言,什么环境开发不可以? JavaScript 可以,Python 可以,或者其他什么 ooxx 语言都可以。
所以是没必要的?那当然不是,部分细分市场的需求还是可以满足的。
http://ruff.io 这种,虽然对于真正的嵌入式开发领域而言基本没什么意义,但是却为初学者和一般爱好者提供了一个相当不错入门环境。
三种嵌入式开发

第一种单片机
第二种是DSP
这2类编程一般用C,偶尔用汇编。这2类做的系统有的是裸机,有的运行实时操作系统。但是不要被操作系统这几个字迷惑了,他跟Windows,linux之类的差别非常大,怎么说呢,举个例子吧,我们部门做dsp的,他们写程序用c,但是不同于我们学习的C,因为他们没有标准库,没有浮点数运算,基本不用乘法(没有硬件乘法器,一般用移位),然后内存非常小,一般就几k,这种条件下不大可能写的出js虚拟机,就算google逆天写出来了,ram也不够用,他们经常用掉90%多内存,然后我听他们讨论最多的就是内存不够。哦,对了,他们操作系统用的是ucos,这个系统是开源的,有兴趣你可以去看下,5500行代码,有个德国人移植到Windows上了,csdn上有下载,不过是用lcc编译器编译的,改一点点就可以用vc或者gcc编译,当然,这个和在dsp上运行有本质区别,他是用多线程模拟硬件时钟中断的。
第三类是ARM M系列
其实也是单片机,功能稍微强大点。
第四类是ARM9系列 ,ARM A系列
这类可以运行高级操作系统了,比如linux,android,虽然性能和资源比pc差很多,但是编程方式已经差不多了。我们部门就用ARM9,运行linux,有屏幕的设备界面用qt,没界面的一般用php或者是cgi提供网页(web服务器用boa),逻辑一般用c,不过现在貌似要全面切换成qt和lua。
ab916943003
2017-06-26 · TA获得超过103个赞
知道答主
回答量:172
采纳率:40%
帮助的人:46.6万
展开全部
估计搞不定 哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
已过俾写
2017-06-25 · TA获得超过295个赞
知道答主
回答量:218
采纳率:20%
帮助的人:51.1万
展开全部
殖厚颜无耻冻剐期末悸
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式