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

讓新人快速實現(xiàn)μc/os II在arm上的移植方法

2016-07-01 09:59:32作者陳若冰蘭州大學(xué)
電子制作 2016年9期
關(guān)鍵詞:嵌入式用戶系統(tǒng)

作者 / 陳若冰,蘭州大學(xué)

?

讓新人快速實現(xiàn)μc/os II在arm上的移植方法

作者 / 陳若冰,蘭州大學(xué)

為了應(yīng)用系統(tǒng)在一個專用計算機系統(tǒng)上對可靠性、功能、功耗的要求,嵌入式系統(tǒng)應(yīng)運而生。為了充分發(fā)揮嵌入式系統(tǒng)的優(yōu)勢,在嵌入式系統(tǒng)上移植操作系統(tǒng)顯得很必要了。所以我們將本文討論以下問題:1.一個新人如何快速實現(xiàn)μc/os II操作系統(tǒng)在arm處理器上的移植;2.新人常見的障礙及解決方法

新人;移植;ARM;μc/os II

前言

對一個新人來說,在嵌入式系統(tǒng)上移植操作系統(tǒng)最難的是無從下手。本文就是讓新人能快速上手,深入了解。5個步驟,2個常見問題,簡單明了,同時便于學(xué)習(xí)的深入。

1. 為什么要進行μc/os II在ARM上的移植?

1)嵌入式系統(tǒng)需要操作系統(tǒng)來滿足其越來越高的cpu位數(shù)對處理能力以及可靠性的要求,沒有操作系統(tǒng),發(fā)揮不出裸機功能,即便其能跑動,添加應(yīng)用程序或用戶有什么需求都需要極其熟悉其硬件及編程才行,這就相當(dāng)于只有開發(fā)者能使用了,還很麻煩。2)ARM處理器功耗小,快速并且小型,它本身就具有適合跑操作系統(tǒng)的特性。3)μc/os II是一款實時操作系統(tǒng),保證在一定時間完成特定功能,易實現(xiàn)多任務(wù)處理,它有很強的可移植性。

2.移植的5個步驟

(在IAR開發(fā)環(huán)境下,讓整個系統(tǒng)工作在管理模式下移植,主要是移植OS_CPU_C.C和OS_CPU_A.S這兩個文件)

■2.1 移植OS_CPU_C.C,主要是初始化堆棧結(jié)構(gòu):OSTaskStkInit函數(shù)

其目的是讓堆棧處于剛剛發(fā)生過中斷的狀態(tài),因為任務(wù)不會一被創(chuàng)建就被執(zhí)行,為使后面的調(diào)度會一致,先要把改任務(wù)指針及返回地址都指向函數(shù)入口,被調(diào)度時從堆棧恢復(fù)剛開始的地方走。

■2.2 啟動μc/os II:通過在主程序中調(diào)用OSStart()函數(shù)

(從這步開始,開始移植OS_CPU_A.S) 真正實現(xiàn)uC/OS-II啟動運行是通過OSStart()函數(shù)來調(diào)用OSS-tartHighRdy()函數(shù)的,是為了讓優(yōu)先級狀態(tài)最高的進入就緒狀態(tài)任務(wù)運行。OSStart函數(shù)原型:

■ 2.3任務(wù)級的任務(wù)切換函數(shù):OSCtxSw()

其功能是在當(dāng)觸發(fā)了更高的優(yōu)先級任務(wù)以后,要調(diào)用OSCtxSw進行任務(wù)切換,原理如下:

(1)將當(dāng)前處理的通用寄存器(RO-R12、R14),PC寄存器和當(dāng)前的CPSR寄存器值壓入當(dāng)前任務(wù)堆棧中;(2)按下列順序,將馬上要切換任務(wù)的SP值,SPSR,RO-R12,R14和PC寄存器的值恢復(fù)到各自當(dāng)前處理器的值中;(3)上述功能全恢復(fù)后就續(xù)表中最高任務(wù)優(yōu)先級的運行。

■2.4 中斷級的任務(wù)切換函數(shù):OSIntCtxSW()

它的功能是在中斷里面觸發(fā)了更高的優(yōu)先級而進行任務(wù)切換。由于是中斷,進入時是已經(jīng)保存了被中斷任務(wù)的cpu現(xiàn)場,就不用像上面那樣一個一個地恢復(fù)了,只需調(diào)整指針值。下面是詳細代碼,任務(wù)級的任務(wù)切換函數(shù)和下面代碼大部分也是一致的。

2.5 OSIntEnter()、OSIntExit():用于對中斷中的任務(wù)切換,它們必須在中斷處理函數(shù)中成對使用(否則系統(tǒng)可能奔潰)。前者用于判斷中斷發(fā)生是否在uC/OS-II整個系統(tǒng)啟動后,否則所有的系統(tǒng)功能均不能提供給用戶使用。后者用于在用戶編寫的中斷服務(wù)代碼執(zhí)行完畢以后調(diào)用,以保證“處于就緒狀態(tài)下優(yōu)先級最高的任務(wù)始終能得到系統(tǒng)的所有資源”。

3. 注意的2個要點

■3.1 搞清TCB、ECB兩個數(shù)據(jù)結(jié)構(gòu)

在上面的移植函數(shù)的使用和更改中,我們頻繁提到TCB、ECB這兩個數(shù)據(jù)結(jié)構(gòu),離開了數(shù)據(jù)結(jié)構(gòu),內(nèi)核什么也完成不了。任務(wù)控制塊TCB中包含了每個創(chuàng)建的任務(wù)的全部信息,μc/os II會給每個創(chuàng)建的任務(wù)分配一個TCB。 事件控制塊ECB的總數(shù)由用戶所需要的信號量、郵箱和消息隊列的總數(shù)決定。在調(diào)用OSInit()時,執(zhí)行了OS_InitEvent-List()函數(shù),所有ECB被鏈接成一個單向鏈表—空閑ECB鏈表。每當(dāng)建立一個信號量、郵箱或者消息隊列時,就從該鏈表中取出一個空閑ECB,并對它進行初始化。

■3.2 對ARM體系的發(fā)生的異常的分析

異常就是由內(nèi)部或外部資源產(chǎn)生并且引起處理器去處理的事件。在執(zhí)行所有異常程序之前,處理器狀態(tài)寄存器必須被保存下來,以便當(dāng)異常處理程序完成時處理器狀態(tài)寄存器

能被恢復(fù)。由于異常模式對應(yīng)各自的異常類型,系統(tǒng)模式由于其不受限制地訪問系統(tǒng)內(nèi)部所有資源的特性最適合作為操作系統(tǒng)正常運行的模式,而用戶模式適用于用戶運行進程時用,它通過限制用戶對處理器模式的更改權(quán)限(比如中斷)以保護系統(tǒng)的運行正常。然而中斷任務(wù)的開始就是要將現(xiàn)場保護到堆棧中去,它大大占用了ARM的開銷。在不需要任務(wù)切換時,中斷開始執(zhí)行時產(chǎn)生的開銷明顯浪費處理器寶貴的時間。所以要在中斷開始執(zhí)行的階段將寄存器暫時保存在中斷模式的堆棧中,在調(diào)用函數(shù)時,μc/os II判斷是否要任務(wù)切換。注意,建議在移植的過程中把工作模式切換在管理模式,因為在用戶和系統(tǒng)模式下,使用LDM指令時,會導(dǎo)致對不可預(yù)知的錯誤。

4. 結(jié)論

上述步驟便于μc/os II在arm上的移植,且對于新人起到快速入門的作用,對于其深入了解和日后操作起到良好奠基與引導(dǎo)作用。

* [1]Jean J.Labrosse. MicroC/OS-II The Real-Time Kernal[M].北京:北京航天航空大學(xué)出版社,2002

* [2]開發(fā)人員. IAR Embedded Workbench IDE User Gui[M].IAR開發(fā)公司,2001

* [3]任哲.嵌入式實時操作系統(tǒng)μc/os II原理及應(yīng)用[M]北京:北京航天航空大學(xué)出版社,2004

* [4]杜春蕾.ARM體系結(jié)構(gòu)與編程[M].北京.清華大學(xué)出版社.2003

猜你喜歡
嵌入式用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
搭建基于Qt的嵌入式開發(fā)平臺
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
主站蜘蛛池模板: 国产一区在线视频观看| 国产99热| 亚洲a级毛片| 精品欧美视频| 99久久国产综合精品2023| 激情视频综合网| 久操线在视频在线观看| 91原创视频在线| 亚洲人成日本在线观看| 亚洲天堂2014| 中文字幕人成乱码熟女免费| 最近最新中文字幕免费的一页| 国产三级成人| a在线亚洲男人的天堂试看| 第一区免费在线观看| 精品国产美女福到在线不卡f| 91九色国产porny| 亚洲an第二区国产精品| 在线观看免费国产| 九一九色国产| 国产美女一级毛片| 日韩色图区| 国产肉感大码AV无码| 色成人综合| 日日碰狠狠添天天爽| 成人中文字幕在线| 香蕉色综合| 高清亚洲欧美在线看| 无码aⅴ精品一区二区三区| 午夜老司机永久免费看片| 99视频国产精品| 97亚洲色综久久精品| 国产三级韩国三级理| 久久精品aⅴ无码中文字幕 | 伊人久久婷婷| 国产浮力第一页永久地址| 在线看片国产| 无码'专区第一页| 性色生活片在线观看| 亚洲午夜福利在线| 四虎成人精品在永久免费| 精品无码人妻一区二区| 亚洲欧洲日产国产无码AV| 国产欧美日韩视频一区二区三区| 精品无码一区二区在线观看| 亚洲中文字幕97久久精品少妇| 婷婷亚洲综合五月天在线| 免费中文字幕在在线不卡| 国产一级毛片在线| 国产尹人香蕉综合在线电影| 成人在线视频一区| www.youjizz.com久久| 最新亚洲av女人的天堂| 超碰91免费人妻| 欧美啪啪精品| 国产成人三级在线观看视频| 91精品啪在线观看国产| igao国产精品| 亚洲永久视频| 精品1区2区3区| 成人国产小视频| 国产免费网址| 久久精品66| 亚洲欧美一区二区三区图片| 黄色网在线免费观看| 国产精品视频3p| 亚洲中文字幕在线一区播放| 91网红精品在线观看| 午夜丁香婷婷| 99中文字幕亚洲一区二区| 亚洲人网站| 国产成熟女人性满足视频| 91av国产在线| 在线免费a视频| 91尤物国产尤物福利在线| 亚洲黄色片免费看| 爱色欧美亚洲综合图区| 波多野结衣无码中文字幕在线观看一区二区 | 亚洲精品777| 国产噜噜噜视频在线观看 | 国产欧美视频在线| 成人国产精品网站在线看|