999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的μCOS—Ⅲ系統(tǒng)移植的設(shè)計(jì)

2015-06-27 08:40:32馬昊張冬陳豹
科技創(chuàng)新與應(yīng)用 2015年18期

馬昊 張冬 陳豹

摘 要:隨著嵌入式系統(tǒng)產(chǎn)品漸漸完善,并在全世界各行業(yè)得到廣泛應(yīng)用,通過移植嵌入式操作系統(tǒng),計(jì)算機(jī)可以更好地管理內(nèi)存,并且在很大程度上提高系統(tǒng)的實(shí)時(shí)性。文章主要介紹了μCOS-Ⅲ操作系統(tǒng)在基于ARM Contex-M3為內(nèi)核的STM32處理器的移植要點(diǎn),并且實(shí)現(xiàn)了源碼公開的嵌入式實(shí)時(shí)操作系統(tǒng)μCOS-Ⅲ在STM32處理器上的成功移植。

關(guān)鍵詞:μCOS-Ⅲ;STM32處理器;移植

引言

隨著人類社會經(jīng)濟(jì)的不斷發(fā)展,科研領(lǐng)域不斷的拓寬,嵌入式系統(tǒng)產(chǎn)品漸漸完善,并在全世界各行業(yè)得到廣泛應(yīng)用。通過移植嵌入式操作系統(tǒng),計(jì)算機(jī)可以更好的管理內(nèi)存,并且在很大程度上實(shí)現(xiàn)了系統(tǒng)的實(shí)時(shí)性。μCOS-Ⅲ作為一個(gè)微型實(shí)時(shí)操作系統(tǒng),包括了一個(gè)操作系統(tǒng)最基本的特性,使用匯編語言和C語言編寫的μCOS-Ⅲ的構(gòu)思巧妙,結(jié)構(gòu)簡潔精煉,可讀性很強(qiáng),作為一個(gè)源碼開放的嵌入式操作系統(tǒng),用戶只要做很少的工作就可以把它進(jìn)行移植和維護(hù)。

1 實(shí)時(shí)操作系統(tǒng)μCOS-Ⅲ和STM32處理器

1.1 實(shí)時(shí)操作系統(tǒng)μCOS-Ⅲ

μCOS-Ⅲ的前身是由美國嵌入式系統(tǒng)專家Jean J.Labrosse于1992年推出的嵌入式操作系統(tǒng)μCOS,經(jīng)過了不斷的完善和擴(kuò)充,形成現(xiàn)在的μCOS-Ⅲ。

μCOS-Ⅲ是一個(gè)可以基于ROM運(yùn)行的、可裁減的、搶占式、實(shí)時(shí)多任務(wù)內(nèi)核,具有高度可移植性。所謂的移植,在一個(gè)平臺環(huán)境能夠成功運(yùn)行的程序,將它搬運(yùn)到另一個(gè)平臺環(huán)境,并且使其成功運(yùn)行。發(fā)展至今的μCOS-Ⅲ,特別適合于微處理器和控制器,并且已經(jīng)移植到近40多種處理器體系上,涵蓋了從8位到64位的各種CPU。

μCOS-Ⅲ源碼可分為:與應(yīng)用程序相關(guān)的文件、與計(jì)算機(jī)硬件相關(guān)的文件和系統(tǒng)內(nèi)核的各種服務(wù)文件。用戶在移植時(shí),需要對與計(jì)算機(jī)硬件相關(guān)的文件進(jìn)行修改:如OS_CPU.H文件,OS_CPU_A.ASM文件和OS_CPU_C.C文件。而系統(tǒng)內(nèi)核的各種文件,如:OS_CORE.C、OS_FLAG.C、OS_MBOX.C、OS_MUTEX.C等,與應(yīng)用程序相關(guān)的文件:INCLUDES.H和OS_CFG.H則不需要修改。

1.2 STM32處理器

STM32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。我們所采用的STM32F103型,其內(nèi)核為ARM32位Cortex-M3 CPU,最高工作頻率72MHz,1.25DMIPS/MHz。ECOPACK封裝,最多高達(dá)112個(gè)的快速I/O端口,最多多達(dá)11個(gè)定時(shí)器,最多多達(dá)13個(gè)通信接口,具有3種模式:休眠,停止,待機(jī)模式的低功耗,可以使其廣泛的應(yīng)用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問控制等。

ST公司針對STM32提供了STM32庫作為函數(shù)接口,使得開發(fā)人員得以脫離最底層的寄存器操作,有開發(fā)快速、易于閱讀、維護(hù)成本低等優(yōu)點(diǎn)。

2 μCOS-Ⅲ的移植

2.1 修改OS_CPU.H文件

μCOS-Ⅲ的內(nèi)核使用一個(gè)周期時(shí)鐘中斷,以計(jì)算任務(wù)延時(shí)時(shí)間和進(jìn)行任務(wù)調(diào)度,在STM32中,這樣的時(shí)鐘中斷正適合由SysTick來提供。因?yàn)镺S_CPU_SysTickHandler()函數(shù)與STM32庫所提供的stm32F10x_it.c文件中的SycTick_Handler()函數(shù)功能一樣,都是使用SysTick的中斷處理,所以我們采用SycTick_Handler()函數(shù)。因此,相應(yīng)的對于OS_CPU.H文件的操作是:注釋掉OS_CPU_SysTickHandler()和OS_SysTickInit()函數(shù)的聲明。

2.2 修改OS_CPU_C.C

OS_CPU_SysTickHandler()和OS_CPU_SysTickInit()函數(shù)的定義在OS_CPU_C.C文件中,由于我們采用了STM32官方庫提供的函數(shù)來對SysTick進(jìn)行中斷處理,所以我們要把OS_CPU_C.C的OS_CPU_SysTickHandler()和OS_CPU_SysTickInit()這兩個(gè)函數(shù)注釋掉。

2.3 修改OS_CPU_A.ASM文件

我們下載的μCOS-Ⅲ移植工程是在官方的IAR編譯環(huán)境下建立的,IAR在匯編的語法方面和我們使用的MDK編譯器有一點(diǎn)區(qū)別,所有我們對匯編文件的部分指令做如下修改:在OS_CPU_A.ASM文件中,將原來的PUBLIC指令改為EXPORT,它們是等價(jià)的。(見表1)

2.4 修改CPU_A.ASM文件

在CPU_A.ASM匯編文件中,仍有因編譯環(huán)境的不同而引起的錯(cuò)誤,修改的方法同修改OS_CPU_A.ASM文件一樣,將原來的PUBLIC指令改為EXPORT。除此之外,在CPU_A.ASM文件中某些標(biāo)號帶有冒號,如“CPU_CntLeadZeros:”、“CPU_RevBits:”、

“CPU_WaitForInt:”和“CPU_WaitForExpect:”,為了適應(yīng)編譯環(huán)境,需要將其中的冒號去掉。

2.5 修改STM32F10X_IT.C文件

為了實(shí)現(xiàn)和完成完整的中斷,我們需要將STM32F10X_IT.C文件原有的PendSV_Handler空函數(shù)注釋掉,同時(shí)編寫SysTick中斷服務(wù)函數(shù),代碼如表2:

我們可以看到,在SysTick的函數(shù)中調(diào)用了3個(gè)函數(shù),它們都是μCOS源碼定義的函數(shù),其基本功能如下:

(1)OSIntEnter()函數(shù),對用于表示中斷嵌套層的變量OSIntNesting加1,它與OSIntExit()函數(shù)成對出現(xiàn),在進(jìn)入中斷服務(wù)函數(shù)時(shí),都應(yīng)該包含這兩個(gè)函數(shù),中斷服務(wù)的內(nèi)容位于這兩個(gè)函數(shù)之間。

(2)OSIntExit()函數(shù),除了對嵌套層數(shù)OSIntNesting減1表示退出中斷外,還具有任務(wù)調(diào)度功能。

(3)OSTimeTick()函數(shù)主要工作是對系統(tǒng)統(tǒng)計(jì)事件的變量OSTime加1,另外,它還會遍歷所有任務(wù),對延時(shí)任務(wù)的時(shí)間減1。

至此,我們對μCOS的源碼針對編譯環(huán)境做了修改,將SysTick中斷修改到STM32所提供的STM32F10X_IT.C文件后,就基本完成了μCOS的移植了。

3 系統(tǒng)測試

我們現(xiàn)在需要對移植好的代碼做一個(gè)簡單的測試,通過編寫流水燈任務(wù)來驗(yàn)證移植的成功。流水燈任務(wù)的部分代碼如表3:

運(yùn)行后我們發(fā)現(xiàn)實(shí)驗(yàn)板的流水燈按照循環(huán)的方式一直閃爍,驗(yàn)證了μCOS-Ⅲ在STM32處理器核上的成功移植。

4 結(jié)束語

作為一個(gè)成熟的嵌入式操作系統(tǒng),μCOS-Ⅲ已經(jīng)被廣泛移植于各種體系的微型處理器上了。在嵌入式技術(shù)高速發(fā)展的今天,基于ARM為內(nèi)核的微處理器憑借ARM優(yōu)秀的體系結(jié)構(gòu)被運(yùn)用于各種行業(yè)。通過研究μCOS-Ⅲ的移植,可以使得它在更廣泛的平臺得到應(yīng)用,更促進(jìn)嵌入式技術(shù)的發(fā)展。

參考文獻(xiàn)

[1]劉火良,楊森.STM32庫開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.

[2]任哲.嵌入式操作系統(tǒng)基礎(chǔ)μC/OS-II和Linux(第2版)[M].北京:北京航空航天大學(xué)出版社,2011.

[3]野火開發(fā)板配套資料.μC/OS-Ⅲ在STM32的移植詳解[Z].

[4]Joseph Yiu.ARM Contex-M3 權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué),2009.

[5]許倫輝,修科鼎.基于ARM處理器的μCOS-II移植[J].科技廣場,2010.

[6]鄧中亮,何雙亮.基于ARM的嵌入式操作系統(tǒng)μC/OS-II的移植研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007.

作者簡介:馬昊(1994-),男,本科在讀,現(xiàn)就讀于徐州工程學(xué)院信電學(xué)院電子信息科學(xué)與技術(shù)專業(yè)。

主站蜘蛛池模板: 一本大道AV人久久综合| 亚洲无码视频一区二区三区| 在线免费亚洲无码视频| 国产网站一区二区三区| 精品国产香蕉在线播出| 极品国产在线| 国产精品久久国产精麻豆99网站| 亚洲免费福利视频| 久久精品中文字幕免费| 99热免费在线| 国产乱人激情H在线观看| 国产精品密蕾丝视频| 92精品国产自产在线观看 | 一级高清毛片免费a级高清毛片| 国产xxxxx免费视频| 日韩123欧美字幕| 国产91丝袜在线播放动漫 | 国产一区二区丝袜高跟鞋| 久久男人视频| 无码精品国产dvd在线观看9久| 精品福利一区二区免费视频| 亚洲无线国产观看| 波多野结衣一级毛片| 全部免费特黄特色大片视频| 无码国产伊人| 色天天综合久久久久综合片| 91精品啪在线观看国产91| av午夜福利一片免费看| 国产精品无码一区二区桃花视频| 波多野结衣AV无码久久一区| 久久精品丝袜| 欧美日韩国产综合视频在线观看| 亚洲国产综合精品一区| 国产亚洲精品自在久久不卡| 国产尹人香蕉综合在线电影 | 2022国产91精品久久久久久| 91亚洲精选| 噜噜噜久久| 国产精品林美惠子在线播放| 亚洲精品桃花岛av在线| 无码福利视频| 亚洲乱强伦| 亚洲一区二区三区麻豆| 无码'专区第一页| 欧美精品一二三区| 波多野结衣视频网站| 国产欧美一区二区三区视频在线观看| 一级爱做片免费观看久久 | 在线播放精品一区二区啪视频| 国产欧美日韩视频一区二区三区| 99久久成人国产精品免费| 波多野结衣AV无码久久一区| 亚洲日韩精品综合在线一区二区| 亚洲色图欧美| 欧美成人a∨视频免费观看| 日韩视频福利| 日韩免费成人| 国产精品思思热在线| 免费午夜无码18禁无码影院| 欧美性精品不卡在线观看| 99久久99视频| 国产在线观看一区二区三区| 国产成人精品亚洲日本对白优播| 欧美日韩在线亚洲国产人| www.99在线观看| 一级成人a做片免费| 国产精品亚洲专区一区| 99久久精品免费视频| 亚洲成人动漫在线观看| 青草视频久久| 日韩在线视频网站| 在线视频97| 欧美精品一二三区| 亚洲欧美成人在线视频| 国产亚洲精品97在线观看| 国产真实乱子伦精品视手机观看| 色综合a怡红院怡红院首页| 免费欧美一级| 午夜福利免费视频| 亚洲天堂高清| 欧美精品v欧洲精品| 亚洲国产高清精品线久久|