你会用什么程序语言写固件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你会用什么程序语言写固件?相关的知识,希望对你有一定的参考价值。

几年前的4月,编译程序软件供应商Keil Software (现在已是ARM的一部分)在某嵌入式系统技术杂志上刊登了一则广告,宣传他们为8051架构开发的新COBOL语言编译程序;但内行人一看就知道那是个愚人节的玩笑。

8051架构/嵌入式系统用的COBOL语言真的是非常荒谬而好笑的点子,我还特地打电话给该公司的总裁,恭喜他想出这么幽默的笑话,而他告诉我真的有人想要订购那样的产品!这反映了我们目前仍然会看到的、为嵌入式系统开发案选择编程语言的某些心态,理想抱负似乎总胜过现实。

技术分享
8051架构专用的COBOL语言?不要怀疑,那真的是愚人节的玩笑!

 

你要是常去Slashdot或其他类似的嵌入式开发网站,都会看到关于编程语言的讨论;D语言是最新的热门编程语言吗?还是Swift?我一天到晚收到人们想要以C#语言编写固件之相关信息的电子邮件;而也常会听到有人说现在整个世界的潮流是Java,如果不跟上就落伍了。

 

整个世界?事实上在嵌入式领域,大致上只有使用两种语言:C与C++;根据Embedded.com (EE Time姊妹网站)曾做过的统计,读者们主要使用的语言如下图(X轴的单位是百分比):

 

 

技术分享
Embedded.com统计读者最常用的嵌入式编程语言

 

而显然令人惊讶的是,就连C++的市占率都没有赢过C。在选择编程语言时,必须要考虑到软件开发者的普遍性,不然如果你请不到精通某种特定语言的工程师,恐怕就得花费很长的时间以及高昂的训练成本,否则就会失败。

 

我 曾经被请去帮忙一个在瑞典的、面临失败的开发案,就是用C++语言写的;我想该语言是与该应用程序自然契合,但他们是为何会做这样的选择?那家公司的副总裁告诉我,他曾在《商业周刊(Business Week)》读到一篇文章,说C++可让任何东西立即可重复使用,所以他才决定使用该种语言。

 

那个开发案有40个工程师参与,但只有一个新来的毕业生,有过面向对象(object-oriented)的经验,另外39个人则试着从工作中学习。这会是一场灾难,他们需要实践、抛弃式的项目来取得经验,一个因为不会出货、所以就算犯错也没关系的项目。

 

C语言已经在这个领域存在30年,而且没有退出的迹象;现在有很多更好的选择,我希望能转移到Ada语言、甚至至更好的SPARK,但除非有更多经过训练的工程师,这恐怕不会发生。身为嵌入式设计工程师的你用的是哪一种语言?C与C++仍然健在吗?

图纸装订 http://www.biyinjishi.com/products/a60-b6050/
个性印品 http://www.biyinjishi.com/products/a65/
照片打印 http://www.biyinjishi.com/products/a65-b6510/
照片冲印 http://www.biyinjishi.com/products/a65-b6510/
冲印照片 http://www.biyinjishi.com/products/a65-b6510/d100117/
数码照片 http://www.biyinjishi.com/products/a65-b6510/d100118/
lomo卡 http://www.biyinjishi.com/products/a65-b6510/d100119/
明信片 http://www.biyinjishi.com/products/a65-b6510/d100120/
拼图海报 http://www.biyinjishi.com/products/a65-b6510/d100121/
照片墙 http://www.biyinjishi.com/products/a65-b6510/d100122/
挂历 http://www.biyinjishi.com/products/a65-b6520/d100122
台历 http://www.biyinjishi.com/products/a65-b6520/d100122
普通台历 http://www.biyinjishi.com/products/a65-b6520/d100124/
创意台历 http://www.biyinjishi.com/products/a65-b6520/d100125/
高端台历 http://www.biyinjishi.com/products/a65-b6520/d100126/
分月挂历 http://www.biyinjishi.com/products/a65-b6520/d100127/
单张年历 http://www.biyinjishi.com/products/a65-b6520/d100128/
相册 http://www.biyinjishi.com/products/a65-b6530/d100128
简装照片书 http://www.biyinjishi.com/products/a65-b6530/d100130/

以上是关于你会用什么程序语言写固件?的主要内容,如果未能解决你的问题,请参考以下文章

你会用AngularJS,但你会写AngularJS文档么?

高效率完成工作的12种热门编程语言,你会用几个?

你会用哪种语言自学SICP? [关闭]

学习嵌入式怎么入门和提高?嵌入式开发教程pdf

比物理线程都好用的C++20的协程,你会用吗?

STM32白话文教程固件库点灯