基于M D K RTX的COrtex―M3多任務應用設計
MDK開發(fā)套件源自德國Keil公司,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。MDKRL―IUX是一個實時操作系統(tǒng)(RTOS)內(nèi)核,完全集成在MDK編譯器中。廣泛應用于ARM7、ARM9和Cortex-M3設備中。它可以靈活解決多任務調(diào)度、維護和時序安排等問題。基于RL―I訂X的程序由標準的C語言編寫,由Real―View編譯器進行編譯。操作系統(tǒng)依附于C語言使聲明函數(shù)更容易,不需要復雜的堆棧和變量結構配置,大大簡化了復雜的軟件設計,縮短了項目開發(fā)周期。
Cortex―M3是一個32位的核。它是首個基于ARMv7M架構,主要針對價格敏感但又具備高系統(tǒng)效能需求的嵌入式應用設計,如微控制器、汽車車體系統(tǒng)及網(wǎng)絡裝置等。它內(nèi)核緊湊,性能更高,采用了Thumb一2指令集架構,中斷時間更短,標準化內(nèi)存映射,帶有內(nèi)置SysTick的集成式NVIC。SysTick能定期地產(chǎn)生異常請求,作為系統(tǒng)的時基,計時更準確。
MDK RL―RTX和Cortex―M3都源自ARM公司。ARM公司將其無縫整合在MDK開發(fā)套件中,因此將RL―RTX移植到Cortex―M3上非常適合。RL―RTX作為一個全功能的內(nèi)核,可以結合實時軟件庫中的其他組件。例如,加入實時庫中RL―Flasht文件系統(tǒng)組件,就可以讀寫標準SD卡和MMC卡上面的文件;加入RL―TCPnet組件,可應用于HTTP Web,ServeI’、TFTP Server和SMTP Client等。可擴展性強,應用廣泛。
2 基于COrtex―M3硬件平臺的構建
STM32F103VB是ST公司基于Cortex―M3的處理器。它有1個128 KB Flash,1個20 KB SRAM,4個16位定時器,100個可編程的I/0引腳,具有I2C、SPI、USB、15SART和CAN接口,2路10通道12位A/D轉(zhuǎn)換器,RTC功能模塊,WDT功能和高級電源管理功能。
系統(tǒng)的數(shù)據(jù)緩存RAM和程序存儲器Flash為芯片自帶,系統(tǒng)外接A/D轉(zhuǎn)換器構成控制器?;贑ortex-M3核的最小系統(tǒng)框圖如圖1所示。
基于該平臺,設計一個超溫報警器。使用美國半導體Dalias公司的智能溫度傳感器DS18820采樣,LCD顯示溫度數(shù)值,如果短時間內(nèi)溫度超出正常溫度,蜂鳴器發(fā)出100 dB警報且LED燈閃爍示警??梢赃M一步在該平臺上進行擴展,加入GPS和GPRS模塊,當溫度超出設定范圍時,GPS將現(xiàn)場經(jīng)緯度以及時間通過GPRS以短信方式發(fā)送給監(jiān)控中心,GPRS模塊自動撥打有關人員移動電話或固定電話報警。
3 MDK RL―RTX的配置與移植
RL―RTX在任務管理方面不僅支持搶先式任務切換,而且支持時間片輪轉(zhuǎn)切換。在基于時間片的輪轉(zhuǎn)任務機制下,CPIJ的執(zhí)行時間被劃分為若干時間片,由RL―RTX分配一個時間片給每個任務,在該時間片內(nèi)只執(zhí)行這個任務。當時間片到,在下一個時間片中無條件地執(zhí)行另外一個任務。所有任務都輪詢一次后,再回頭執(zhí)行第一個任務。
RL―RTX最多可以定義256個任務,所有任務都可以同時激活成為就緒態(tài)。RL―RTX用戶任務具有表1所列的幾個狀態(tài)。
評論