新聞中心

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

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏
最近突然覺(jué)得,C++++將是以后嵌入式開(kāi)發(fā)的主流,就此進(jìn)行一些分析。

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

本文引用地址:http://www.butianyuan.cn/article/201611/323465.htm

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

當(dāng)然也有人說(shuō):當(dāng)一個(gè)單片機(jī)夠強(qiáng)悍了,功能要求復(fù)雜了,就會(huì)上操作系統(tǒng)。有了操作系統(tǒng),就方便的多了。但是我想說(shuō),有了操作系統(tǒng),它為我們管理整個(gè)系統(tǒng)的資源,分配內(nèi)存CPU,但是程序要實(shí)現(xiàn)的具體功能還是要我們來(lái)開(kāi)發(fā),開(kāi)發(fā)復(fù)雜的具體功能,我們還是要更簡(jiǎn)單,更有效的開(kāi)發(fā)語(yǔ)言。就像即使我們使用了windows操作系統(tǒng),但是我依然需要用Visual C++來(lái)開(kāi)發(fā)。

為了用C++做嵌入式開(kāi)發(fā),可恨而又厲害的小日本早早的就提出了embedded C++,去掉了標(biāo)準(zhǔn)C++中的一些低效率,不常用的功能,而保留下C++面向?qū)ο蟮囊恍﹥?yōu)秀特性,既保證了性能低的不多,又能用C++優(yōu)勢(shì)的面向?qū)ο箝_(kāi)發(fā)。

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

而為什么現(xiàn)在C語(yǔ)言開(kāi)發(fā)還是主流呢?當(dāng)你學(xué)了C以后再學(xué)C++,你就會(huì)發(fā)現(xiàn),C++和C其實(shí)相差很遠(yuǎn)的,偉大的譚浩強(qiáng)曾經(jīng)說(shuō)過(guò):即便你學(xué)過(guò)C,對(duì)C很熟悉,請(qǐng)記住學(xué)習(xí)C++你得把它當(dāng)做一門(mén)全新的語(yǔ)言來(lái)學(xué)。這樣的結(jié)果是,現(xiàn)在還在行業(yè)上工作的老一輩工程師不會(huì)去新學(xué)C++來(lái)開(kāi)發(fā),而他們也教學(xué)生用C開(kāi)發(fā),學(xué)生理所應(yīng)當(dāng)?shù)恼J(rèn)為開(kāi)發(fā)就得用C。就算已經(jīng)考慮到用C++了,但是為了和老工程師共同開(kāi)發(fā),只能放棄使用C++。

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

再看看最近看見(jiàn)周立功的一則微博留言:


這就更堅(jiān)定了我的想法。

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



關(guān)鍵詞: C++嵌入式開(kāi)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉