嵌入式應(yīng)用設(shè)計(jì)模式
一、軟件開(kāi)發(fā)
單片機(jī)生產(chǎn)廠(chǎng)家不斷增多,單片機(jī)品種層出不窮。單片機(jī)廣泛選擇是當(dāng)今產(chǎn)品開(kāi)發(fā)的一個(gè)重要環(huán)節(jié)。每個(gè)單片機(jī)系列的指令系統(tǒng)不同,與指令系統(tǒng)對(duì)應(yīng)的匯編助記符就不同。匯編語(yǔ)言的不兼容性使得在一種單片機(jī)上編制的程序,在另一種單片機(jī)上不能運(yùn)行,單片機(jī)重新選型后程序必須重新編制。匯編語(yǔ)言的難記、難讀及易搞混,每個(gè)匯編程序員深有同感。自己編制的程序過(guò)一段時(shí)間修改時(shí),往往要重讀很大部分,經(jīng)過(guò)長(zhǎng)時(shí)間回憶才能找到問(wèn)題所在。修改別人留下的匯編源程序,若程序的注釋說(shuō)明不詳細(xì)、程序的思路不清晰、子程序使用不夠多的話(huà),還不如自己重新編制。
用C語(yǔ)言編程是單片機(jī)軟件開(kāi)發(fā)的必然趨勢(shì)。C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。C語(yǔ)言有功能豐富的庫(kù)函數(shù)、運(yùn)算速度快、編譯效率高、可移植性好,而且可以直接實(shí)現(xiàn)對(duì)系統(tǒng)硬件的控制。C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,支持當(dāng)前程序設(shè)計(jì)中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。采用C語(yǔ)言也不必對(duì)單片機(jī)和硬件接口的結(jié)構(gòu)有很深入的了解,編譯器可以自動(dòng)完成變量存儲(chǔ)單元的分配,編程者專(zhuān)注于應(yīng)用軟件部分的設(shè)計(jì)即可,這樣大大加快了軟件的開(kāi)發(fā)速度。采用C語(yǔ)言可以很容易地進(jìn)行單片機(jī)的程序移植工作,有利于產(chǎn)品中單片機(jī)的重新選型。采用C語(yǔ)言,可針對(duì)單片機(jī)常用的接口芯片編制通用的驅(qū)動(dòng)函數(shù),針對(duì)常用的功能模塊、算法等編制相應(yīng)的函數(shù)。這些函數(shù)經(jīng)過(guò)歸納整理可形成專(zhuān)家?guī)旌瘮?shù),供廣大的單片機(jī)愛(ài)好者使用、完善,這樣可大大提高國(guó)內(nèi)單片機(jī)軟件設(shè)計(jì)水平。C語(yǔ)言可讀性的特點(diǎn),更容易使大家借鑒前人的開(kāi)發(fā)經(jīng)驗(yàn),提高自己的軟件設(shè)計(jì)水平。對(duì)于C語(yǔ)言生成代碼的時(shí)空效率,一般來(lái)講,程序代碼長(zhǎng)度增加20%,程序執(zhí)行速度約減慢20%。這在片內(nèi)程序存儲(chǔ)器不斷擴(kuò)大、晶振頻率不斷提高的今天,已不是主要考慮的問(wèn)題。況且,這是和優(yōu)秀的匯編程序員編制代碼的比較。當(dāng)然,非常注重代碼效率的場(chǎng)合可以是以C語(yǔ)言為主,匯編語(yǔ)言為輔。匯編語(yǔ)言掌握到只要可以讀懂程序,在時(shí)間要求比較嚴(yán)格的模塊中進(jìn)行程序的優(yōu)化即可。在可移植性方面,單片機(jī)C語(yǔ)言都符合ANSIC標(biāo)準(zhǔn),差別主要是有關(guān)片內(nèi)資源的不同配置及使用,這可以通過(guò)采用不同的頭文件,經(jīng)過(guò)少量的加工就可以實(shí)現(xiàn)。隨著國(guó)內(nèi)單片機(jī)開(kāi)發(fā)工具研制水平的提高,現(xiàn)在的單片機(jī)仿真器普遍支持C語(yǔ)言程序調(diào)試,為單片機(jī)編程使用C語(yǔ)言提供了便利的條件。單片機(jī)的C語(yǔ)言相對(duì)微機(jī)的C語(yǔ)言要好學(xué)得多,它沒(méi)有微機(jī) C語(yǔ)言有關(guān)文件的使用,也不必掌握標(biāo)準(zhǔn)輸入輸出設(shè)備有關(guān)的格式要求。北京航空航天大學(xué)出版社出版的《單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)》(修訂版)教材是專(zhuān)為沒(méi)有C基礎(chǔ)的人編寫(xiě)的,大量的實(shí)例可引導(dǎo)大家進(jìn)入單片機(jī)C時(shí)代。嵌入式微處理器是以C、C++甚至JAVA語(yǔ)言進(jìn)行編程的,并普遍采用RTOS。
在嵌入式應(yīng)用中使用RTOS是由于嵌入式應(yīng)用一般是計(jì)算機(jī)實(shí)時(shí)系統(tǒng),有兩個(gè)重要特性:實(shí)時(shí)性和可靠性。實(shí)時(shí)性標(biāo)準(zhǔn)常用“系統(tǒng)響應(yīng)時(shí)間”來(lái)衡量,即當(dāng)一外部事件發(fā)生,系統(tǒng)能在多少時(shí)間內(nèi)響應(yīng)事件。RTOS分強(qiáng)實(shí)時(shí)和弱實(shí)時(shí)兩種。強(qiáng)實(shí)時(shí)RTOS用于對(duì)時(shí)間要求比較嚴(yán)格的場(chǎng)合??煽啃詷?biāo)準(zhǔn)常用系統(tǒng)平均無(wú)故障運(yùn)行時(shí)間,即平均的故障間隔時(shí)間MTBF來(lái)衡量。操作系統(tǒng)(OS)是一組計(jì)算機(jī)程序的集合,用來(lái)有效地控制和管理計(jì)算機(jī)的硬件和軟件資源,即合理地對(duì)資源進(jìn)行調(diào)度,并為用戶(hù)提供方便的應(yīng)用接口。它為應(yīng)用支持軟件提供運(yùn)行環(huán)境,即對(duì)程序開(kāi)發(fā)者提供功能強(qiáng)、使用方便的開(kāi)發(fā)環(huán)境。OS的前身就是監(jiān)控程序,類(lèi)似于單片機(jī)仿真器的監(jiān)控程序。RTOS是多任務(wù)的,每個(gè)用戶(hù)的應(yīng)用程序可以設(shè)計(jì)成多個(gè)不同的任務(wù),這些任務(wù)可以并發(fā)執(zhí)行,提高系統(tǒng)的吞吐量,更有效地利用系統(tǒng)資源。常用的任務(wù)調(diào)度算法為:優(yōu)先級(jí)加輪詢(xún)、非搶占式優(yōu)先級(jí)調(diào)度、按優(yōu)先級(jí)搶占的調(diào)度算法。任務(wù)間通信與同步機(jī)制為:郵箱、隊(duì)列、信號(hào)量、事件標(biāo)志。劃分任務(wù)時(shí),任務(wù)之間的通信要盡可能少,這樣可以簡(jiǎn)化設(shè)計(jì)?;谌蝿?wù)的設(shè)計(jì)可擴(kuò)展、可管理、可大大提高系統(tǒng)的可靠性。RTOS提供給用戶(hù)的是各種系統(tǒng)調(diào)用。中斷、時(shí)間基準(zhǔn)及定時(shí)的管理都由RTOS完成。采用RTOS編程可大幅度縮短程序的開(kāi)發(fā)時(shí)間。RTOS一般都可裁剪、移植,適用于多種硬件環(huán)境,可以和應(yīng)用程序一起固化到應(yīng)用系統(tǒng)中。隨著后PC時(shí)代的來(lái)臨,微軟維納斯計(jì)劃推出WindowsCE,我國(guó)女?huà)z計(jì)劃推出自主版權(quán)的Hopen實(shí)時(shí)多任務(wù)操作系統(tǒng)。 “3C”結(jié)合的信息家電問(wèn)世,RTOS引起國(guó)內(nèi)業(yè)界的極大關(guān)注。國(guó)內(nèi)已引入pSOS、VRTX、VxWorks、QNX、Nucleus等RTOS以及 CMX和RTXC小型適合單片機(jī)的帶源代碼的RTOS。免費(fèi)公開(kāi)內(nèi)核的RTLinux和μCOS也是使用的熱點(diǎn)。清華大學(xué)出版社出版了《工業(yè)控制計(jì)算機(jī)實(shí)時(shí)操作系統(tǒng)》。國(guó)際上很有名的有關(guān)μCOS的專(zhuān)著《MicroC/OS-iiTheRealTimeKernel》不久將在國(guó)內(nèi)翻譯出版。 RTOS會(huì)更加深入人心,嵌入式應(yīng)用軟件開(kāi)發(fā)由匯編、C向RTOS發(fā)展。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
c++相關(guān)文章:c++教程
晶振相關(guān)文章:晶振原理
評(píng)論