国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于MDK RTX的Cortex-M3多任務(wù)應(yīng)用設(shè)計(jì)

發(fā)布時(shí)間:2010-5-12 19:03    發(fā)布者:李寬
關(guān)鍵詞: Cortex , MDK , RTX
1 MDK RL—RTX和COrtex—M3概述

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

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

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

2 基于COrtex—M3硬件平臺(tái)的構(gòu)建

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轉(zhuǎn)換器,RTC功能模塊,WDT功能和高級(jí)電源管理功能。

系統(tǒng)的數(shù)據(jù)緩存RAM和程序存儲(chǔ)器Flash為芯片自帶,系統(tǒng)外接A/D轉(zhuǎn)換器構(gòu)成控制器。基于Cortex-M3核的最小系統(tǒng)框圖如圖1所示。



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

3 MDK RL—RTX的配置與移植

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

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



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

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

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

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

RL—RTX中主要的系統(tǒng)函數(shù)說明如表2所列。



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



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

使用RL—RTX,包含以下幾個(gè)步驟:

第1步,由于RL—RTX集成在MDK開發(fā)套件中,在使用MDK創(chuàng)建工程后,需要在工程中添加RTX內(nèi)核選項(xiàng)。選擇Project→Options for Target,在Operating下拉框中選擇RTX內(nèi)核,使得在編譯時(shí)把RL—RTX所需的庫編譯進(jìn)去。

第2步,在嵌入式應(yīng)用程序的開發(fā)中使用RL—RTX內(nèi)核,須對(duì)其進(jìn)行配置。復(fù)制\Keil\ARM\Startup目錄下RTX_Config.c文件到工程文件夾并添加到工程中。該文件中,部分配置參數(shù)說明如表3所列。



基于Cortex—M3平臺(tái)的超溫報(bào)警器,可以設(shè)計(jì)3個(gè)任務(wù)并發(fā),分別進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)處理和數(shù)據(jù)顯示。3個(gè)任務(wù)較小,系統(tǒng)安排的任務(wù)棧足夠使用,棧的容量以32位無符號(hào)整型定義,容量為64字。選擇硬件平臺(tái)片上定時(shí)器1。

DSl8820具有300 ms的更新速率,在采集數(shù)據(jù)過程中,通過多次采集取平均值,數(shù)據(jù)采集任務(wù)執(zhí)行的時(shí)間為30 ms,數(shù)據(jù)處理任務(wù)執(zhí)行時(shí)間為40 ms,數(shù)據(jù)顯示任務(wù)執(zhí)行時(shí)間為20 ms。根據(jù)公式,對(duì)響應(yīng)時(shí)間的要求:t(響應(yīng)時(shí)間)=N(進(jìn)程數(shù)目)×q(時(shí)間片)。總體響應(yīng)時(shí)間為90 ms,進(jìn)程數(shù)目為3,因此時(shí)間片設(shè)置為30 ms合適。在任務(wù)OS_IDLE_DEMON()中添加休眠代碼,空閑時(shí)系統(tǒng)休眠,降低功耗。

第3步,復(fù)制\Keil\ARM\Startup下Retarget.c文件到工程文件夾中,并添加到工程中。

修改文件,使其包含如下內(nèi)容:



該文件的目的是避免半主機(jī)方式軟件中斷,因?yàn)檫@時(shí)所有中斷都由RL—RTX統(tǒng)一管理。半主機(jī)是用于ARM目標(biāo)的一種機(jī)制,可將來自應(yīng)用程序代碼的輸入/輸出請(qǐng)求傳送至運(yùn)行調(diào)試器的主機(jī)。它由一組已定義的SWI操作來實(shí)現(xiàn)。庫函數(shù)調(diào)用相應(yīng)的SWI(軟件中斷),然后調(diào)試代理程序處理SWI異常,并提供所需的與主機(jī)之間的通信。

4 應(yīng)用設(shè)計(jì)

4.1 多任務(wù)應(yīng)用設(shè)計(jì)

根據(jù)圖1所示的最小系統(tǒng)框圖,采用由表及里 (out—side-in approach)分解應(yīng)用的方法設(shè)計(jì)多任務(wù)。該應(yīng)用的上下文框圖如圖3所示,中間的圈表示軟件應(yīng)用,矩形框表示應(yīng)用的輸入和輸出設(shè)備。箭頭標(biāo)有具體含義名,表示輸入和輸出通信的流程。



根據(jù)上下文框圖以及避免“資源沖突”原則,將對(duì)同一個(gè)外設(shè)的訪問放在同一個(gè)設(shè)備中,無論何時(shí)切換任務(wù),都不會(huì)對(duì)任何獨(dú)立的“外設(shè)”造成影響。

將應(yīng)用分解為4個(gè)任務(wù),RL—RTX的第一個(gè)任務(wù)必須是系統(tǒng)任務(wù)Init Task,該任務(wù)用來初始化其他3個(gè)任務(wù),任務(wù)創(chuàng)建完畢后,3個(gè)任務(wù)都處于READY狀態(tài);第2個(gè)任務(wù)t_phase_ADC Task用來讀取A/D采樣的數(shù)據(jù);第3個(gè)任務(wù)t_phase_DEA Task用來處理采樣的數(shù)據(jù);第4個(gè)任務(wù)t_phase_DIS Task用來將數(shù)據(jù)送到LCD液晶屏上,顯示、控制LED燈閃爍和蜂鳴器高頻報(bào)警。圖4顯示了任務(wù)觸發(fā)的流程。

定義任務(wù):





使用os_tsk_create創(chuàng)建任務(wù)t_phase_ADC、t_phase_DEA、t_phase_DIS。

os_tsk_delete_self刪除自身任務(wù),實(shí)現(xiàn)任務(wù)切換。任務(wù)的創(chuàng)建和初始化是在主函數(shù)中定義的:



任務(wù)初始化完畢后,3個(gè)任務(wù)都處于就緒狀態(tài)。t_phase_ADC任務(wù)用來采樣,多次采樣取平均值,通過給任務(wù)t_phase_DEA發(fā)信號(hào) signal_func(t_phase_DEA),喚醒t_phase_DEA任務(wù)。



os_evt_wait_and進(jìn)行控制。該任務(wù)判斷采樣的數(shù)據(jù)是否在警戒溫度范圍內(nèi),如果出現(xiàn)溫度異常,置標(biāo)志位為1。執(zhí)行完自身任務(wù)后,通過 signal_func(t_phase_DIS),將喚醒t_phase_DIS任務(wù)。



t_phase_DIS任務(wù)用來在LCD液晶屏上顯示溫度值。如果發(fā)現(xiàn)標(biāo)志位為1,則LED燈閃爍和蜂鳴器高頻報(bào)警。

4.2 應(yīng)用設(shè)計(jì)測(cè)試

采用基本RMA可調(diào)度性測(cè)試。式1用來完成系統(tǒng)的基本RMA可調(diào)度性測(cè)試。



這里:Ci為與周期性任務(wù)i相關(guān)的最壞執(zhí)行時(shí)間,Ti為與任務(wù)i相關(guān)的周期,n為任務(wù)的個(gè)數(shù)。

U(n)是利用系數(shù),式1的右邊是理論處理器利用率的上界。如果給定一組任務(wù),其處理器利用率小于理論利用率上界,則這組任務(wù)是可調(diào)度的。U的值隨n的增加而下降;當(dāng)n的值為無限時(shí),最終收斂于69%。

表4總結(jié)了使用RMA進(jìn)行調(diào)度的3個(gè)任務(wù)的特性。



使用式1,該應(yīng)用設(shè)計(jì)處理器利用率計(jì)算如下:



應(yīng)用設(shè)計(jì)總的利用率是27.42%,低于78%的理論邊界。此4個(gè)任務(wù)的系統(tǒng)是可調(diào)度的,該應(yīng)用設(shè)計(jì)是成功的。

結(jié)語

本文描述了如何在Cortex—M3上使用MDK RL—RTX的方法,并給出了一個(gè)簡(jiǎn)單的多任務(wù)應(yīng)用設(shè)計(jì)。可以看出多任務(wù)的程序設(shè)計(jì)被大大簡(jiǎn)化了,它不但滿足多個(gè)任務(wù)的時(shí)間要求,降低了開發(fā)難度,而且程序的可讀性和可維護(hù)性也有了很大的提高。利用MDK RL—RTX構(gòu)建的嵌入式工業(yè)控制系統(tǒng)具有成本低、性能高等特點(diǎn),應(yīng)用廣泛,有著良好的發(fā)展前景。

參考文獻(xiàn)

   1. 李寧 ARM 開發(fā)工具RealView MDK使用入門 2008
   2. 任哲 ARM 體系結(jié)構(gòu)及其嵌入式處理器 2008
   3. Cesar Marquez Chin Identification of arm movements using correlation of electrocorticographic spectral components and kinematic recordings 2007(2)
   4. 查看詳情
   5. Li Qing Real-time concepts for Embedded Systems 2003

作者:武漢理工大學(xué) 方安平  武永誼
來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2008 (12)
本文地址:http://m.qingdxww.cn/thread-11208-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲性影院 | 99视频在线观看高清 | 亚洲欧美日韩综合精品网 | 亚洲最黄网站 | 欧美在线不卡 | 极品美女高清视频在线观看 | 欧美一区2区三区4区公司二百 | 亚洲国产成人精品激情 | a毛片毛费观看 | 91免费视频播放 | 日本高清不卡在线观看 | 新版资源天堂中文 | 三级网站在线看 | 亚洲国产香蕉视频欧美 | 国产亚洲欧美一区 | 亚洲欧美韩国日本 | 亚洲成人欧美 | 亚洲精品中文字幕午夜 | 久久综合给会久久狠狠狠 | 2023中文字幕在线观看 | 黄色免费观看视频网站 | 欧美一区二区三区免费播放 | 视频在线一区二区 | 91中文字幕在线视频 | 久久久久国产精品免费 | 九九免费高清在线观看视频 | h网站免费看 | 亚洲一区二区三区不卡在线播放 | 欧美黄色tv | 亚洲欧洲精品成人久久曰影片 | 视频在线一区二区 | 亚洲日韩中文字幕一区 | 精品一区二区三区的国产在线观看 | 国产日韩精品一区二区 | 久久91精品国产91久久跳舞 | 亚洲一区中文 | 精品视频69v精品视频 | www.中文字幕.com | 国产动漫在线 | 三级纯黄| 韩国理论片妈妈的朋友 |