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