作者:佚名 来源:本站原创 点击数:1030 更新时间:2012年10月08日 【字体: 】
好久没在51hei写文章了,今天心血来潮,写一篇玩玩。
最近突然觉得,C++将是以后嵌入式开发的主流,就此进行一些分析。
暑假的时候在车队帮忙做仪表,顺便玩玩液晶屏。在做界面的时候,突然发现C++的类在开发界面的时候,带来的的优势是C没法比的,把显示的内容作为类的成员变量,界面的生成与修改的函数也放在类里,这样就可以很好的对显示屏上的各个模块进行很好的管理,极大的提高程序的可维护性。
从这个切入点开始考虑,IAR开发环境是带C++编译器的。也就是可以尝试用C++给单片机开发程序。就在考虑,C++会不会是以后单片机开发的主流呢?首先当然大家就会说,性能,C++的效率没有C高。但是由此会思考,现在单片机的性能有了极大的提高,就简单的说,ST公司的STM32单片机,便宜的到10多块一片,32位的,72M主频的contex-M3内核,相对于原来的51单片机ram,rom也大了好多,这样看,单片机性能有了富余,而市场需要的是程序员能够开发更大型,功能更强大的程序。用户喜欢更花哨,更漂亮的界面,更多的功能,为了这些功能,牺牲少量的效率,对于现在的单片机来说是完全能够接受的。而对于大型一点的程序,C++就是一个重要的工具,面向对象的思想,就是让程序员更加方便的开发管理大型程序。
当然也有人说:当一个单片机够强悍了,功能要求复杂了,就会上操作系统。有了操作系统,就方便的多了。但是我想说,有了操作系统,它为我们管理整个系统的资源,分配内存CPU,但是程序要实现的具体功能还是要我们来开发,开发复杂的具体功能,我们还是要更简单,更有效的开发语言。就像即使我们使用了windows操作系统,但是我依然需要用Visual C++来开发。
为了用C++做嵌入式开发,可恨而又厉害的小日本早早的就提出了embedded C++,去掉了标准C++中的一些低效率,不常用的功能,而保留下C++面向对象的一些优秀特性,既保证了性能低的不多,又能用C++优势的面向对象开发。
再一个看可行性:首先,C++和C是兼容的,这样,原来的C的库,可以直接平滑过渡到C++上,让C和C++同时存在。同时,更底层的汇编也可以相应的增加进来,在汇编层面上的优化,C++的效率将会有极大的提升。同时给予C++的嵌入式操作系统也就可以轻松实现了。例如uCos II的任务切换之类的功能也可以轻松实现。当然,网上确实出现C++封装好的uCos II操作系统。而且一个大家很熟悉的嵌入式操作系统:symbian就是用C++开发的。
而为什么现在C语言开发还是主流呢?当你学了C以后再学C++,你就会发现,C++和C其实相差很远的,伟大的谭浩强曾经说过:即便你学过C,对C很熟悉,请记住学习C++你得把它当做一门全新的语言来学。这样的结果是,现在还在行业上工作的老一辈工程师不会去新学C++来开发,而他们也教学生用C开发,学生理所应当的认为开发就得用C。就算已经考虑到用C++了,但是为了和老工程师共同开发,只能放弃使用C++。
而我们看未来,当大量的图形界面,大量的功能,以及更多的代码复用要求,C++越来越重要,这也将是为了的趋势。虽然有人提出嵌入式java等想法....将来的将来,大概,也许会有人用,但是,既然C++已经是高效的面向对象语言,可以轻松的做变相对象的开发,和C,汇编有很好的兼容性,为什么我们还要换平台,用别的优势不大的编程语言。
再看看最近看见周立功的一则微博留言:
这就更坚定了我的想法。
就此,提醒一些同在努力想要做嵌入式开发的同学,可以尝试用C++开发了,即使现在暂时用不上,你也要把C++学扎实了,否则可能不久的将来,你会跟不上这个行业。
纯属个人想法,如有疑问或者我有什么说错的地方,请联系我。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。