新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > C++嵌入式開發(fā)

C++嵌入式開發(fā)

作者: 時間:2016-11-29 來源:網絡 收藏
最近突然覺得,C++++將是以后嵌入式開發(fā)的主流,就此進行一些分析。

暑假的時候在車隊幫忙做儀表,順便玩玩液晶屏。在做界面的時候,突然發(fā)現C++的類在開發(fā)界面的時候,帶來的的優(yōu)勢是C沒法比的,把顯示的內容作為類的成員變量,界面的生成與修改的函數也放在類里,這樣就可以很好的對顯示屏上的各個模塊進行很好的管理,極大的提高程序的可維護性。

本文引用地址:http://2s4d.com/article/201611/323465.htm

從這個切入點開始考慮,IAR開發(fā)環(huán)境是帶C++編譯器的。也就是可以嘗試用C++給單片機開發(fā)程序。就在考慮,C++會不會是以后單片機開發(fā)的主流呢?首先當然大家就會說,性能,C++的效率沒有C高。但是由此會思考,現在單片機的性能有了極大的提高,就簡單的說,ST公司的STM32單片機,便宜的到10多塊一片,32位的,72M主頻的contex-M3內核,相對于原來的51單片機ram,rom也大了好多,這樣看,單片機性能有了富余,而市場需要的是程序員能夠開發(fā)更大型,功能更強大的程序。用戶喜歡更花哨,更漂亮的界面,更多的功能,為了這些功能,犧牲少量的效率,對于現在的單片機來說是完全能夠接受的。而對于大型一點的程序,C++就是一個重要的工具,面向對象的思想,就是讓程序員更加方便的開發(fā)管理大型程序。

當然也有人說:當一個單片機夠強悍了,功能要求復雜了,就會上操作系統。有了操作系統,就方便的多了。但是我想說,有了操作系統,它為我們管理整個系統的資源,分配內存CPU,但是程序要實現的具體功能還是要我們來開發(fā),開發(fā)復雜的具體功能,我們還是要更簡單,更有效的開發(fā)語言。就像即使我們使用了windows操作系統,但是我依然需要用Visual C++來開發(fā)。

為了用C++做嵌入式開發(fā),可恨而又厲害的小日本早早的就提出了embedded C++,去掉了標準C++中的一些低效率,不常用的功能,而保留下C++面向對象的一些優(yōu)秀特性,既保證了性能低的不多,又能用C++優(yōu)勢的面向對象開發(fā)。

再一個看可行性:首先,C++和C是兼容的,這樣,原來的C的庫,可以直接平滑過渡到C++上,讓C和C++同時存在。同時,更底層的匯編也可以相應的增加進來,在匯編層面上的優(yōu)化,C++的效率將會有極大的提升。同時給予C++的嵌入式操作系統也就可以輕松實現了。例如uCos II的任務切換之類的功能也可以輕松實現。當然,網上確實出現C++封裝好的uCos II操作系統。而且一個大家很熟悉的嵌入式操作系統:symbian就是用C++開發(fā)的。

而為什么現在C語言開發(fā)還是主流呢?當你學了C以后再學C++,你就會發(fā)現,C++和C其實相差很遠的,偉大的譚浩強曾經說過:即便你學過C,對C很熟悉,請記住學習C++你得把它當做一門全新的語言來學。這樣的結果是,現在還在行業(yè)上工作的老一輩工程師不會去新學C++來開發(fā),而他們也教學生用C開發(fā),學生理所應當的認為開發(fā)就得用C。就算已經考慮到用C++了,但是為了和老工程師共同開發(fā),只能放棄使用C++。

而我們看未來,當大量的圖形界面,大量的功能,以及更多的代碼復用要求,C++越來越重要,這也將是為了的趨勢。雖然有人提出嵌入式java等想法....將來的將來,大概,也許會有人用,但是,既然C++已經是高效的面向對象語言,可以輕松的做變相對象的開發(fā),和C,匯編有很好的兼容性,為什么我們還要換平臺,用別的優(yōu)勢不大的編程語言。

再看看最近看見周立功的一則微博留言:


這就更堅定了我的想法。

就此,提醒一些同在努力想要做嵌入式開發(fā)的同學,可以嘗試用C++開發(fā)了,即使現在暫時用不上,你也要把C++學扎實了,否則可能不久的將來,你會跟不上這個行業(yè)。



關鍵詞: C++嵌入式開

評論


技術專區(qū)

關閉