最近忽然觉得,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++学厚实了,不然或许不久的将来,你会跟不上这个职业。