问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用javascript 搞定嵌入式开发

发布网友 发布时间:2022-04-28 16:03

我来回答

3个回答

热心网友 时间:2022-04-24 04:43

作者:知乎用户
链接:https://www.hu.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。

热心网友 时间:2022-04-24 06:01

估计搞不定 哈哈

热心网友 时间:2022-04-24 07:36

殖厚颜无耻冻剐期末悸
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
理想液晶电视LED328O出现开机画面后无任何反应 我的photoshop 8 .0版本不知道为什么打不开 安徽医科大学临床医学院新增专业有哪些 intelx79主板怎么样 怎样防范电信诈骗,如何应对诈骗信息? yyds怎么回复 在看守所未判人员,却生了重病该怎么办?好无助的我求贵人帮助 持刀伤人导致轻微伤属于什么案件 持刀故意伤人致轻微伤的处罚和赔偿情况分别是什么 美国本土大部分处于什么纬度主要气候类型是什么中 什么是嵌入式jsp ?有这个吗? 用JavaScript做嵌入端的开发有可能吗 光大银行信用卡卡费高达1188元怎么回事 有什么好的管理二进制文件的方法 怎样把音乐文件转换成二进制文件? 二进制数怎么转换成二进制码然后保存到文件中的?如图 在VB中,如何将二进制文件 转换为十六进制文件 咳出血是怎么回事? 哪儿都不痛突然咳出血来怎么回事 如何将二进制码转换回文本文件 咳嗽有血是怎么回事 如何用c语言.把文本文件转换成二进制文件 为什么突然咳嗽会咳出血? 如何将ascii格式的二进制文件转换成十进制文件 咳嗽出血是怎么回事?拜托各位大神 怎么把二进制文件转换成文本文件 咳出血是怎么回事 怎样把二进制文件转换为原来的文件 咳嗽出血是怎么回事? 如何将文件转换成二进制文件 node.js可以做嵌入式开发吗 JavaScript网页开发与Java Web开发的区别与联系又是什么? 什么是JS语言? js文件中iframe是什么意思 如何防止衣服起皱? 天津失业保险缴费费率 衣服怎么叠放才不会皱,或者皱了怎么解决 怎么样叠衣服没有折痕而且不皱! 如何去除室内甲醛等有害物质 抖音里卖家的福利链接怎么设置不卡灯牌不能拍的 福建省失业保险费率 怎样去除屋里的甲醛? 糯玉米煮熟变黑还能吃吗 玉米发黑能吃吗 什么是黑甜糯玉米 黑糯玉米是转基因吗? 手机里的照片怎么能标注上尺寸 求问手机什么软件可以做到标注尺寸 手机绘图软件,怎样进行尺寸标注 美国常青藤联盟有哪些