<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MDK RTX的Cortex-M3多任務(wù)應用設計

基于MDK RTX的Cortex-M3多任務(wù)應用設計

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò ) 收藏
1 MDK RL—RTX和COrtex—M3概述

MDK開(kāi)發(fā)套件源自德國Keil公司,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開(kāi)發(fā)工具。MDKRL—IUX是一個(gè)實(shí)時(shí)操作系統(RTOS)內核,完全集成在MDK編譯器中。廣泛應用于A(yíng)RM7、ARM9和Cortex-M3設備中。它可以靈活解決多任務(wù)調度、維護和時(shí)序安排等問(wèn)題?;赗L—I訂X的程序由標準的C語(yǔ)言編寫(xiě),由Real—View編譯器進(jìn)行編譯。操作系統依附于C語(yǔ)言使聲明函數更容易,不需要復雜的堆棧和變量結構配置,大大簡(jiǎn)化了復雜的軟件設計,縮短了項目開(kāi)發(fā)周期。

Cortex—M3是一個(gè)32位的核。它是首個(gè)基于A(yíng)RMv7M架構,主要針對價(jià)格敏感但又具備高系統效能需求的嵌入式應用設計,如微控制器、汽車(chē)車(chē)體系統及網(wǎng)絡(luò )裝置等。它內核緊湊,性能更高,采用了Thumb一2指令集架構,中斷時(shí)間更短,標準化內存映射,帶有內置SysTick的集成式NVIC。 SysTick能定期地產(chǎn)生異常請求,作為系統的時(shí)基,計時(shí)更準確。

MDK RL—RTX和Cortex—M3都源自ARM公司。ARM公司將其無(wú)縫整合在MDK開(kāi)發(fā)套件中,因此將RL—RTX移植到Cortex—M3上非常適合。RL—RTX作為一個(gè)全功能的內核,可以結合實(shí)時(shí)軟件庫中的其他組件。例如,加入實(shí)時(shí)庫中RL—Flasht文件系統組件,就可以讀寫(xiě)標準SD卡和 MMC卡上面的文件;加入RL—TCPnet組件,可應用于HTTP Web,ServeI’、TFTP Server和SMTP Client等??蓴U展性強,應用廣泛。

2 基于COrtex—M3硬件平臺的構建

STM32F103VB是ST公司基于Cortex—M3的處理器。它有1個(gè)128 KB Flash,1個(gè)20 KB SRAM,4個(gè)16位定時(shí)器,100個(gè)可編程的I/0引腳,具有I2C、SPI、USB、15SART和CAN接口,2路10通道12位A/D轉換器,RTC功能模塊,WDT功能和高級電源管理功能。

系統的數據緩存RAM和程序存儲器Flash為芯片自帶,系統外接A/D轉換器構成控制器?;贑ortex-M3核的最小系統框圖如圖1所示。



基于該平臺,設計一個(gè)超溫報警器。使用美國半導體Dalias公司的智能溫度傳感器DS18820采樣,LCD顯示溫度數值,如果短時(shí)間內溫度超出正常溫度,蜂鳴器發(fā)出100 dB警報且LED燈閃爍示警??梢赃M(jìn)一步在該平臺上進(jìn)行擴展,加入GPS和GPRS模塊,當溫度超出設定范圍時(shí),GPS將現場(chǎng)經(jīng)緯度以及時(shí)間通過(guò)GPRS 以短信方式發(fā)送給監控中心,GPRS模塊自動(dòng)撥打有關(guān)人員移動(dòng)電話(huà)或固定電話(huà)報警。

3 MDK RL—RTX的配置與移植

RL—RTX在任務(wù)管理方面不僅支持搶先式任務(wù)切換,而且支持時(shí)間片輪轉切換。在基于時(shí)間片的輪轉任務(wù)機制下,CPIJ的執行時(shí)間被劃分為若干時(shí)間片,由 RL—RTX分配一個(gè)時(shí)間片給每個(gè)任務(wù),在該時(shí)間片內只執行這個(gè)任務(wù)。當時(shí)間片到,在下一個(gè)時(shí)間片中無(wú)條件地執行另外一個(gè)任務(wù)。所有任務(wù)都輪詢(xún)一次后,再回頭執行第一個(gè)任務(wù)。

RL—RTX最多可以定義256個(gè)任務(wù),所有任務(wù)都可以同時(shí)激活成為就緒態(tài)。RL—RTX用戶(hù)任務(wù)具有表1所列的幾個(gè)狀態(tài)。



一般情況下,任務(wù)切換由時(shí)間片控制,但有時(shí)需要用事件控制任務(wù)切換。RL—RTX事件主要有超時(shí)(Timeout)、間隔(Interval)和信號 (Signal)三種。

Timeout:掛起運行任務(wù)指定數量的時(shí)鐘周期,調用OS_DLY_WAIT函數的任務(wù)將被掛起,直到延時(shí)結束才返回到Ready狀態(tài),并可被再次執行。延時(shí)時(shí)間由SysTick衡量,可以設置從1至OxFFFE的任何值。

Interval:時(shí)間間隔,任務(wù)在該時(shí)間間隔中不運行,該時(shí)問(wèn)間隔與任務(wù)執行時(shí)間獨立。

Signal:用于任務(wù)間通信,可以用系統函數進(jìn)行置位或復位。如果一個(gè)任務(wù)調用了wait函數等待Signal未置位,則該任務(wù)被掛起直到Signal 置位,才返回READY狀態(tài),可再被執行。

RL—RTX中主要的系統函數說(shuō)明如表2所列。



RL—RTX為每個(gè)任務(wù)都分配了一個(gè)單獨的堆棧區,各個(gè)任務(wù)所用堆棧位置是動(dòng)態(tài)的,用task_id記錄各堆棧棧底位置。有多個(gè)嵌套子程序調用或使用大量的動(dòng)態(tài)變量時(shí),自由空間會(huì )被用完。使能棧檢查(Stack Checking),系統會(huì )執行OS_STK_0VERFLOW()堆棧錯誤函數進(jìn)行堆棧出錯處理。RL—RTX堆棧管理如圖2所示。



RL—RTX選擇Cortex上定時(shí)器1產(chǎn)生周期性中斷,相鄰中斷之間的時(shí)間就是時(shí)間片的長(cháng)度。在其中斷服務(wù)程序中進(jìn)行任務(wù)調度,并判斷執行了延遲函數的任務(wù)的延時(shí)時(shí)間是否到。這種周期性的中斷形成了RL—RTX的時(shí)鐘節拍。采用Cortex—M3的處理器STM32F103VB的CPU時(shí)鐘頻率為72 MHz,VPBDIV分頻值為4,輸出的時(shí)鐘頻率為18 MHz。系統推薦的時(shí)間片為1~lOO ms。

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: MDKRTXCortex-M

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>