www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]MDK RL—RTX是ARM公司推出的最新實(shí)時(shí)多任務(wù)內(nèi)核,Cortex—M3是ARM公司最新發(fā)布的嵌入式處理器。將RL—RTX實(shí)時(shí)多任務(wù)內(nèi)核應(yīng)用到cortex—M3處理器上,可大大提高代碼密度,減少系統(tǒng)內(nèi)存,提升系統(tǒng)性能。本文介紹了RL—RTX在Cortex—M3上的移植以及多任務(wù)應(yīng)用設(shè)計(jì)方法。

1 MDK RL—RTX和COrtex—M3概述
   
MDK開發(fā)套件源自德國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等??蓴U(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)警器。使用美國半導(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)。

[!--empirenews.page--]

    一般情況下,任務(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í)間片的長度。在其中斷服務(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í)間片)??傮w響應(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)容:

    [!--empirenews.page--]
    該文件的目的是避免半主機(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ā)展前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營業(yè)收入7.54億元至8.33億元,同比增長60.24%至77.03%;歸母凈利潤預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國)在華深耕經(jīng)營12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過140,...

關(guān)鍵字: 中國智造 BSP 手機(jī) CAN

要問機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

南京2022年10月17日 /美通社/ -- 日前《2022第三屆中國高端家電品牌G50峰會(huì)》于浙江寧波落幕,來自兩百余名行業(yè)大咖、專家學(xué)者共同探討了在形勢(shì)依然嚴(yán)峻的當(dāng)下,如何以科技創(chuàng)新、高端化轉(zhuǎn)型等手段,幫助...

關(guān)鍵字: LINK AI BSP 智能家電

數(shù)字電源

15504 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉