《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > μC/OS-III在MSP430F5529上的移植與應(yīng)用
μC/OS-III在MSP430F5529上的移植與應(yīng)用
來(lái)源:電子技術(shù)應(yīng)用2013年第10期
汪成義
湖北經(jīng)濟(jì)學(xué)院 電子工程系,,湖北 武漢430205
摘要: 以MSP430F5529及相關(guān)外圍電路為硬件平臺(tái),系統(tǒng)地分析了μC/OS-III的體系結(jié)構(gòu),,介紹了移植的主要工作,,并以多功能防盜窗控制器的設(shè)計(jì)為對(duì)象,,描述了應(yīng)用系統(tǒng)中功能與多任務(wù)的關(guān)系,驗(yàn)證了μC/OS-III移植的有效性與實(shí)用性,。
中圖分類(lèi)號(hào): TP316.2
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)10-0015-03
Porting and application of μC/OS-III on MSP430F5529
Wang Chengyi
School of Electronic Engineering, Hubei University of Economics, Wuhan 430205,,China
Abstract: Based on MSP430F5529 and related peripheral circuits, this paper systematically analyzes the structure of μC/OS-III and intruduces the main work of porting. By designing a multifunctional anti-theft window controller as the object, the paper also describes the relationship of the function of the application system and multitasks,and proves the fact that the porting μC/OS-III can be put into use and practice.
Key words : μC/OS-III,;MSP430F5529,;porting;task oriented,;application

    作為第三代嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核,,μC/OS-III主要是為適應(yīng)32位處理器的發(fā)展和業(yè)界近幾年對(duì)系統(tǒng)的新要求,,在μC/OS-II的基礎(chǔ)上開(kāi)發(fā)的一個(gè)不限總?cè)蝿?wù)數(shù),、不限同優(yōu)先級(jí)任務(wù)數(shù)的實(shí)時(shí)內(nèi)核。μC/OS-III不僅延續(xù)了μC/OS-II所具有的可裁剪性,、可固化性,、可搶占性和高可靠性,而且具有資源管理,、同步和任務(wù)間的通信能力,,具有獨(dú)特的實(shí)時(shí)內(nèi)核配置機(jī)制、運(yùn)行時(shí)的性能檢測(cè)能力,,具有新的快速中斷源響應(yīng)機(jī)制[1],,以及通過(guò)引入新的時(shí)鐘節(jié)拍機(jī)制確保了系統(tǒng)的實(shí)時(shí)性不受任務(wù)數(shù)目的影響[2],。而這些獨(dú)特的特性也是在16位處理器上進(jìn)行應(yīng)用開(kāi)發(fā)時(shí)特別需要的。美國(guó)Micrium公司已先后推出了超過(guò)45種架構(gòu)的μC/OS-II源代碼版本,,并從2011年起,,陸續(xù)推出μC/OS-III源代碼的純內(nèi)核版和基于多個(gè)32位處理器架構(gòu)的μC/OS-III源代碼正式發(fā)布版本(一下簡(jiǎn)稱(chēng)正式版),μC/OS-III內(nèi)核代碼也充分考慮到了對(duì)16位處理器的兼容性,,但對(duì)具體的16位處理器的支持較少,,即使有,也要求片內(nèi)資源為高配置的型號(hào),。另一方面,,美國(guó)德州儀器(TI)公司的MSP430系列16位微控制器(MCU)具有業(yè)內(nèi)領(lǐng)先的混合信號(hào)處理能力,也是目前行業(yè)內(nèi)功耗最低的MCU之一,,其中的MSP430F5529是一款具有集成USB的新型MCU,,有著豐富的片內(nèi)外設(shè)。本文擬將μC/OS-III在MSP430F5529上進(jìn)行移植,,并通過(guò)典型的應(yīng)用設(shè)計(jì)對(duì)移植的有效性與實(shí)用性進(jìn)行驗(yàn)證,。

1 應(yīng)用系統(tǒng)的硬件設(shè)計(jì)
1.1 總體設(shè)計(jì)目標(biāo)

    通過(guò)設(shè)計(jì)一款低成本多功能防盜窗控制器,驗(yàn)證μC/OS-III在MSP430F5529上也具有適用性,。由于MSP-430F5529是一款只有8 KB內(nèi)存(SRAM)的中檔16位微控制器,,而μC/OS-III對(duì)內(nèi)存的消耗很大,所以其移植的成功并不能保證應(yīng)用功能可以順利運(yùn)行,。因此,,本應(yīng)用系統(tǒng)按照防盜窗控制器的實(shí)際功能需要,選擇一組典型功能進(jìn)行了具體設(shè)計(jì),。
1.2 硬件結(jié)構(gòu)與模塊功能
    本應(yīng)用系統(tǒng)的硬件結(jié)構(gòu)如圖1所示,。其中的按鍵有2個(gè),用于工作模式切換,、運(yùn)行參數(shù)調(diào)整等,;振動(dòng)式傳感器選用基于香港萬(wàn)保剛公司的振動(dòng)開(kāi)關(guān)SW-18015P構(gòu)建的模塊,用于感知強(qiáng)力擊打,、撬動(dòng)式入侵等,;觸摸式位置感應(yīng)器選用的是多個(gè)電容式觸摸開(kāi)關(guān),以便在測(cè)試系統(tǒng)中以低成本方式模擬或代替?zhèn)鹘y(tǒng)的紅外感應(yīng)式,、位移式多種傳感器,;發(fā)光二極管共有8支,兼顧狀態(tài)顯示,、入侵位置直觀(guān)顯示,、報(bào)警顯示等功能;液晶屏用于各類(lèi)提示信息、報(bào)警信息,、狀態(tài)信息的顯示和類(lèi)似電子鐘等附加功能的顯示,。虛線(xiàn)框部分包括語(yǔ)音、消息,、傳動(dòng)機(jī)構(gòu)等的處理,,用于后期擴(kuò)展、完善,。

2 μC/OS-III的體系結(jié)構(gòu)與移植
2.1 基于移植者視角的μC/OS-III體系結(jié)構(gòu)

    為適應(yīng)各種不同硬件平臺(tái)的需要,,μC/OS-III系統(tǒng)在體系結(jié)構(gòu)的設(shè)計(jì)上,采用了模塊化的方式,,將需要移植和不需要移植的程序進(jìn)行了有效劃分,。同時(shí),對(duì)實(shí)際應(yīng)用系統(tǒng)各種外圍電路的底層支持也是操作系統(tǒng)應(yīng)完成的工作,。在實(shí)際分析代碼關(guān)系,、模塊關(guān)系和應(yīng)用任務(wù)與系統(tǒng)模塊依賴(lài)關(guān)系的基礎(chǔ)上,可總結(jié)出能反應(yīng)系統(tǒng)移植工作重點(diǎn)的μC/OS-III體系結(jié)構(gòu),,如圖2所示,,其中的粗實(shí)線(xiàn)部分為移植工作的重點(diǎn)模塊。

    圖2中以四層結(jié)構(gòu)全面反應(yīng)了一個(gè)基于μC/OS-III開(kāi)發(fā)的應(yīng)用系統(tǒng)的總體結(jié)構(gòu),。圖中硬件層的3個(gè)實(shí)線(xiàn)框是移植能否成功的前提,,即目標(biāo)處理器必須具有定時(shí)器和能周期性產(chǎn)生中斷的機(jī)制,MSP430F5529已經(jīng)具備,。點(diǎn)劃線(xiàn)框中的應(yīng)用系統(tǒng)外設(shè)是指本應(yīng)用系統(tǒng)的各種片外輸入,、輸出與控制硬件電路模塊,每增加一個(gè)不同類(lèi)別的模塊,,也就增加了移植的工作量,。
    虛線(xiàn)框部分的應(yīng)用層,其設(shè)計(jì)與實(shí)現(xiàn)工作不屬于移植工作,,但實(shí)際應(yīng)用系統(tǒng)的功能是由應(yīng)用層具體實(shí)現(xiàn),,系統(tǒng)移植后的性能也由應(yīng)用層進(jìn)行實(shí)際驗(yàn)證。2個(gè)配置頭文件在應(yīng)用層,、內(nèi)核層,、硬件相關(guān)層都有涉及。其中,,OS_CFG_APP.H中的內(nèi)容主要是與具體應(yīng)用有關(guān)的常量,,包括任務(wù)堆棧大小,、任務(wù)的優(yōu)先級(jí)等,;OS_CFG.H中的內(nèi)容主要是與內(nèi)核有關(guān)的常量,如CPU時(shí)間戳使能的設(shè)置等。兩者中常量的設(shè)置可在滿(mǎn)足任務(wù)調(diào)度需要并符合實(shí)際硬件特性的前提下靈活進(jìn)行,。
2.2 與CPU相關(guān)的源程序移植
    與CPU相關(guān)的源程序分成兩部分,,一部分是μC/OS-III內(nèi)核源文件與CPU相關(guān)的部分,集中放在OS_CPU.H,、OS_CPU_A.ASM和OS_CPU_C.C 3個(gè)文件中,;另一部分是應(yīng)用層源程序與CPU及編譯器相關(guān)的部分,主要放在CPU_CORE.H,、CPU_CORE.C,、CPU_DEF.H、CPU.H和CPU_A.ASM 5個(gè)文件中,。
    由于μCOS-II的廣泛使用,,Micrium公司在其網(wǎng)站中上傳了大量基于不同架構(gòu)處理器的μCOS-II正式版源碼,雖然μC/OS-III在內(nèi)核方面與μCOS-II有較大差異,,但與CPU相關(guān)部分差別不大,,這就為那些得不到Micrium公司直接支持的處理器平臺(tái)提供了一條減輕移植工作量的有效途徑。μC/OS-III的設(shè)計(jì)者在參考文獻(xiàn)[1]中就明確建議先進(jìn)行μCOS-II的移植,,再進(jìn)行μC/OS-III的移植會(huì)比較順暢,。下面就基于MSP430F5438的μCOS-II正式版中與CPU相關(guān)的源文件,說(shuō)明各文件的主要內(nèi)容,,以及進(jìn)行μC/OS-III向MSP430F5529移植的主要工作,。
    (1)OS_CPU.H:依照參考文獻(xiàn)[1]中的提示,將μCOS-II原有數(shù)據(jù)類(lèi)型定義和進(jìn),、出臨界區(qū)宏定義移動(dòng)到CPU.H中,,保留上下文切換的函數(shù)原型聲明等。
    (2)OS_CPU_A.ASM(后綴可能不同,下同):將匯編子程序分別改名為OSCPUSaveSR和OSCPURestoreSR,程序其他部分不變,。
?。?)OS_CPU_C.C:依照參考文獻(xiàn)[1]中的提示,將鉤子函數(shù)改名或去掉,,如將OSInitHookBegin改為OSInitHook,;數(shù)據(jù)類(lèi)型按CPU.H中的定義改。
    (4)CPU_CORE.H:為CPU_CORE.C提供函數(shù)原型的聲明等,,不變,。
    (5)CPU_CORE.C:初始化CPU時(shí)間戳定時(shí)器及相關(guān)操作等,不變,。
    (6)CPU_DEF.H:集中定義了一組依賴(lài)于CPU的常量,,如堆棧生長(zhǎng)方向、CPU字的大小及存儲(chǔ)模式等,,是為了適應(yīng)不同的處理器和編譯器[3],,不變,。
    (7)CPU.H:依照參考文獻(xiàn)[1]中的提示,將數(shù)據(jù)類(lèi)型定義和進(jìn),、出臨界區(qū)宏定義移到此文件,,并在每個(gè)數(shù)據(jù)類(lèi)型前加上“CPU_”,如CPU_INT8U等,。
    (8)CPU_A.ASM:主要是子程序CPU_SR_Save和CPU_SR_Restore的定義,,不變。
2.3 μC/OS-III板級(jí)支持包的移植
    板級(jí)支持包的移植與硬件環(huán)境有關(guān),,即使是相同的處理器,,只要硬件不同,就需要移植,。具體可分為三塊:硬件抽象層,、外設(shè)支持庫(kù)和板級(jí)支持包上層。外設(shè)支持庫(kù)直接從處理器廠(chǎng)家(即TI公司)網(wǎng)站下載獲得即可,,是文件夾名為F5xx_F6xx_Core_Lib的一組源文件[4],,提供如電源管理、時(shí)鐘處理等基本函數(shù)庫(kù),。
    硬件抽象層是對(duì)處理器之外所有硬件進(jìn)行驅(qū)動(dòng)的底層軟件,,是應(yīng)用層軟件對(duì)硬件的操作能否實(shí)現(xiàn)的關(guān)鍵,一般需要依據(jù)具體的硬件按照模塊的方式逐一進(jìn)行編程,,如本設(shè)計(jì)中的振動(dòng)傳感器電路模塊,,在硬件抽象層編寫(xiě)了針對(duì)性的硬件驅(qū)動(dòng)程序HAL_SHAKESWITCH.C,分別定義了初始化,、中斷使能,、中斷去使能、中斷處理4個(gè)函數(shù),,最后在應(yīng)用任務(wù)中實(shí)現(xiàn)了相應(yīng)的實(shí)時(shí)報(bào)警功能,。
    板級(jí)支持包上層主要指BSP.C和BSP.H兩個(gè)文件。BSP.H主要是配合BSP.C進(jìn)行函數(shù)原型的聲明,。BSP.C則主要是定義一組函數(shù),,以供應(yīng)用層程序使用,如初始化硬件的BSP_Init()函數(shù)及相關(guān)聯(lián)的輸入輸出類(lèi)函數(shù),、中斷使能設(shè)置的BSP_IntEnAll()函數(shù)等,。實(shí)際編寫(xiě)B(tài)SP.C時(shí),借用了μCOS-II正式版中的對(duì)應(yīng)文件,,結(jié)合硬件抽象層和外設(shè)支持庫(kù),,依據(jù)外圍硬件和應(yīng)用需要進(jìn)行了擴(kuò)展。
3 應(yīng)用層程序的設(shè)計(jì)與實(shí)現(xiàn)
3.1 面向任務(wù)方法劃分系統(tǒng)功能

    基于μC/OS-III的應(yīng)用層程序應(yīng)設(shè)計(jì)成面向任務(wù)的程序結(jié)構(gòu),,而傳統(tǒng)的基于無(wú)操作系統(tǒng)嵌入式系統(tǒng)的程序采用的是前后臺(tái)式的程序結(jié)構(gòu),。前者更能保障系統(tǒng)的實(shí)時(shí)性,,且在功能較多時(shí),程序設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程比后者更加高效,,但前者的內(nèi)存開(kāi)銷(xiāo)大,,任務(wù)不宜過(guò)多,。本應(yīng)用系統(tǒng)的功能與任務(wù)的關(guān)系如表1所示,。

3.2 系統(tǒng)測(cè)試及說(shuō)明
    為驗(yàn)證μC/OS-III在MSP430F5529上移植的可行性,并研究實(shí)際應(yīng)用時(shí)的限制與定位,,本應(yīng)用系統(tǒng)的測(cè)試分為單任務(wù)測(cè)試,、系統(tǒng)測(cè)試和系統(tǒng)受限測(cè)試3個(gè)階段。

 


    (1)單任務(wù)測(cè)試:按照表1中各任務(wù)的功能安排,,編寫(xiě)并逐個(gè)調(diào)試,、實(shí)現(xiàn)單個(gè)或部分任務(wù)的功能,初步驗(yàn)證了移植的可行性,。
    (2)系統(tǒng)測(cè)試:測(cè)試多任務(wù)應(yīng)用系統(tǒng)的功能實(shí)現(xiàn)與任務(wù)間的配合,、協(xié)調(diào),主要有4方面功能:①平時(shí)可提供時(shí)鐘或溫濕度顯示類(lèi)功能,;②若有暴力式入侵,,會(huì)感知并及時(shí)提供不同方式的告警;③若有攀爬式入侵,,能感知位置并及時(shí)提供包含位置信息的多方式告警,;④實(shí)時(shí)顯示系統(tǒng)當(dāng)前狀態(tài)信息等。為便于測(cè)試觀(guān)察,,系統(tǒng)顯示安排如下:液晶顯示分8行,,用于顯示當(dāng)前工作模式(用于區(qū)分日常服務(wù)模式和自動(dòng)告警模式)、攀爬式入侵的提示與狀態(tài),、暴力式入侵的提示與狀態(tài),、系統(tǒng)運(yùn)行的狀態(tài)信息等;8只LED燈同步提供了狀態(tài)與入侵位置信息,。實(shí)際測(cè)試過(guò)程表明,,以上四個(gè)方面的功能在實(shí)驗(yàn)環(huán)境下的同一應(yīng)用軟件中可穩(wěn)定實(shí)現(xiàn),并能借助液晶屏,、LED燈等實(shí)時(shí)觀(guān)察到,,系統(tǒng)被入侵時(shí)的輸出處理正確。
    (3)系統(tǒng)受限測(cè)試:測(cè)試系統(tǒng)的潛在限制:①系統(tǒng)在實(shí)現(xiàn)上述功能時(shí),,任務(wù)不能太多,,8個(gè)以?xún)?nèi)為宜,原因是受8 KB內(nèi)存限制,;②每個(gè)任務(wù)的堆??臻g不宜太大,,并要逐個(gè)分別計(jì)算,以夠用為限,,對(duì)開(kāi)銷(xiāo)過(guò)大的任務(wù)要進(jìn)行適度優(yōu)化,,原因同①;③液晶屏適宜選用單色的小顯示屏,,如102×64或128×64的單色屏,,不宜用真彩色的大屏,原因是受MSP430F5529的內(nèi)存及刷新處理能力限制,。
    測(cè)試結(jié)果表明,,將實(shí)時(shí)操作系統(tǒng)μC/OS-III移植到只有8 KB內(nèi)存的中檔16位微控制器MSP430F5529是可行的??紤]到MSP430F5529片內(nèi)還有2 KB專(zhuān)用于USB的SRAM也有可被借用的潛力[5],,MSP430微控制器F5系列中還有16 KB、32 KB和66 KB內(nèi)存的型號(hào),,再考慮到MSP4300微控制器所具有的低功耗,、低成本特點(diǎn),以及μC/OS-III在實(shí)時(shí)性和編程高效性方面的優(yōu)勢(shì),,若以μC/OS-III+ MSP430的組合作為設(shè)計(jì)平臺(tái),,可突破上述限制,從而進(jìn)一步形成高,、低端系列化多功能防盜窗控制器產(chǎn)品,,也可為其他產(chǎn)品的設(shè)計(jì)提供參考。
參考文獻(xiàn)
[1] LABROSSE J J.μC/OS-III:The real-time kernel[M].  Micriμm Press,,2011.
[2] 宮輝,,龔光華,黃土琛,,等.μC/OS-III中的高效  時(shí)鐘節(jié)拍管理機(jī)制[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,
2012(12):79-81.
[3] Micriμm,Inc..μC/CPU user′s manual[Z].2010.
[4] Texas Instruments Inc..MSP-EXP430F5529 experimenter   board user′s guide[Z].2011.
[5] Texas Instruments Inc.Datasheet:MSP430F551x/MSP430F552x mixed signal microcontroller[EB/OL].(2009-05-01). http://www.ti.com/lit/ds/symlink/msp430f5529.pdf.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。