<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/201611/323465.htm

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

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

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

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

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

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

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


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

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



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

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();