![基于ARM7的嵌入式操作系統(tǒng)_c_OS_平臺(tái)的剖析與實(shí)現(xiàn)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/d3503039-f372-439a-9e9c-2feba05f003b/d3503039-f372-439a-9e9c-2feba05f003b1.gif)
![基于ARM7的嵌入式操作系統(tǒng)_c_OS_平臺(tái)的剖析與實(shí)現(xiàn)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/d3503039-f372-439a-9e9c-2feba05f003b/d3503039-f372-439a-9e9c-2feba05f003b2.gif)
![基于ARM7的嵌入式操作系統(tǒng)_c_OS_平臺(tái)的剖析與實(shí)現(xiàn)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/d3503039-f372-439a-9e9c-2feba05f003b/d3503039-f372-439a-9e9c-2feba05f003b3.gif)
![基于ARM7的嵌入式操作系統(tǒng)_c_OS_平臺(tái)的剖析與實(shí)現(xiàn)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/d3503039-f372-439a-9e9c-2feba05f003b/d3503039-f372-439a-9e9c-2feba05f003b4.gif)
![基于ARM7的嵌入式操作系統(tǒng)_c_OS_平臺(tái)的剖析與實(shí)現(xiàn)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/24/d3503039-f372-439a-9e9c-2feba05f003b/d3503039-f372-439a-9e9c-2feba05f003b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第24卷第2期2009 年6月安徽工程科技學(xué)院學(xué)報(bào)Journal of Anhui University of Technology and Science Vol. 24. No. 2J un. ,2009文章編號(hào):167222477(2009 0220055203基于ARM7的嵌入式操作系統(tǒng)c/OS 2平臺(tái)的剖析與實(shí)現(xiàn)陶保壯(淮南聯(lián)合大學(xué)計(jì)算機(jī)系, 安徽淮南232038摘要:嵌入式操作系統(tǒng)發(fā)展的運(yùn)用, 能夠簡(jiǎn)化嵌入式系統(tǒng)的應(yīng)用開(kāi)發(fā), 有效地確保系統(tǒng)的穩(wěn)定性、安全性和可靠性. 因此嵌入式實(shí)時(shí)操作系統(tǒng)在目標(biāo)處理器平臺(tái)上的移植就成為嵌入式軟件開(kāi)發(fā)的基礎(chǔ), 以此為背景, 從算法實(shí)現(xiàn)和運(yùn)行測(cè)試的角
2、度出發(fā), 系統(tǒng)闡述了嵌入式操作系統(tǒng)c/OS 2移植到S3C44B0X 的芯片的移植過(guò)程和步驟. 最終使嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)得以實(shí)現(xiàn).關(guān)鍵詞:嵌入式;S3C44B0X; 實(shí)時(shí)內(nèi)核c/OS 2; 移植中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A隨著后PC 時(shí)代的到來(lái), , 嵌入式系統(tǒng)硬件的規(guī)模越來(lái)越大, 功能越來(lái)越強(qiáng), 進(jìn)行統(tǒng)一協(xié)調(diào)、指揮和有效控制, 要的. 而操作系統(tǒng)是一個(gè)通用的程序, 必須結(jié)合所用處理器的性能指標(biāo)進(jìn)行修改、移植, 嵌入式操作系統(tǒng)c/OS 2平臺(tái)的實(shí)現(xiàn)的移, .1c/OS 2c/OS 2, 是一個(gè)源代碼公開(kāi)、可固化、可裁剪占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng), 它運(yùn)行就緒狀態(tài)下優(yōu)先級(jí)最高的任務(wù),其絕
3、大部分源碼是用便于移植的C 語(yǔ)言編寫(xiě), 小部分匯編語(yǔ)言代碼已被壓縮到最低限度, 使之可供不同構(gòu)架的微處理器上使用1.c/OS 2屬于可剝奪型實(shí)時(shí)內(nèi)核, 結(jié)構(gòu)小巧, 最小內(nèi)核可編譯至2K. 系統(tǒng)內(nèi)核提供的基本服務(wù)主要是負(fù)責(zé)多任務(wù)間的的共享數(shù)據(jù), 同步與通信等. c/OS 2所具有執(zhí)行效率高, 占用空間小, 實(shí)時(shí)性能好和可擴(kuò)展性能強(qiáng)等特點(diǎn)受到廣大用戶的青睞. 圖1說(shuō)明了c/OS 2文件組織與硬件的關(guān)系. c/OS 2圖1軟件體系結(jié)構(gòu)2c/OS 2II 在S3C44B0X 上的移植2移植就是指使一個(gè)實(shí)時(shí)內(nèi)核能在多個(gè)微處理器或微控制器上運(yùn)行. 本文采用了SAMSUN 公司的S3C44B0X 芯片, 開(kāi)
4、發(fā)環(huán)境采用Keil uVision3, 基本滿足開(kāi)發(fā)要求.S3C44BOX 是一款基于ARM7D TM I (內(nèi)核 16/32位的SOC 芯片. 該芯片片上功能很強(qiáng)大, 技術(shù)成熟, 應(yīng)用廣泛,160管腳L Q FP 封裝;8K 字節(jié)的Cache , 外部擴(kuò)充存儲(chǔ)器(FP/EDO/SRAM/SRAM/ROM/SDRAM 控制 ;8個(gè)外部中斷源; 向量中斷控制器可配置優(yōu)先級(jí)和向量地址等, 具有低成本、低功耗、高性能等優(yōu)點(diǎn)3.移植工作主要集中在與處理器相關(guān)的3個(gè)文件中:OS_CPU.H 、OS_CPU_C.C 、OS_CPU _A.S. 其中:OS_CPU.H 文件主要包含與編譯器相關(guān)的數(shù)據(jù)類型定義
5、、堆棧類型定義、兩個(gè)宏定義和幾個(gè)函數(shù)說(shuō)明;OS_CPU_C.C 包含與移植有關(guān)6個(gè)C 函數(shù), 為OSTaskInit ( ,OSTaskCreate Hook ( ,OSTaskDel 2收稿日期:2009202220作者簡(jiǎn)介:陶保壯(19722 , 男, 安徽淮南人, 碩士, 講師. 56安徽工程科技學(xué)院學(xué)報(bào)第24卷Hook ( ,OSTaskSw Hook ( ,OSTaskStat Hook ( ,OSTime Tick_Hook ( , 除第一個(gè)任務(wù)堆棧初始化函數(shù)外的其它5個(gè)函數(shù)為鉤子函數(shù), 可以沒(méi)有實(shí)際內(nèi)容, 但必須要聲明, 由系統(tǒng)函數(shù)調(diào)用, 用于擴(kuò)充自己需要的功能. OS_CPU_
6、A.S 中包含與移植有關(guān)的4個(gè)匯編語(yǔ)言函數(shù), 為OSStart HighRdy ( ,OSCt xSw ( , OSInt Ct xSw ( ,OSTickISR ( .2. 1OS_CPU.H 文件移植c/OS 2II 不使用C 語(yǔ)言中short ,int 和long 等數(shù)據(jù)類型定義, 因?yàn)樗鼈兣c處理器類型相關(guān), 隱含不可移植性. 此文件中主要包含與編譯器相關(guān)數(shù)據(jù)類型定義、堆棧類型定義、兩個(gè)宏定義和幾個(gè)函數(shù)說(shuō)明. 數(shù)據(jù)類型定義部分代碼如下1:typedef unsigned short IN T16U ;/316位有符號(hào)整數(shù)3/typedef unsigned long IN T32U ;/
7、332位無(wú)符號(hào)整數(shù)#define OS_STK_GROWT H 1/3堆棧增長(zhǎng)方向從上向3/typedef signed long IN T32S ;/332位有符號(hào)整數(shù)3/typedef float FP32;/3單精度浮點(diǎn)數(shù)3/typedef unsigned int OS_ST K;/3堆棧入口寬度為16位3/下滿遞減堆棧3/#define OS_EN TER_CRITICAL( cpu_sr=OS_CPU_SR_Save( ;/3關(guān)中斷, 執(zhí)行臨界代碼3/#define OS_EXIT_CRITICAL( OS_CPU_SR_Restore (cpu_sr ;/3開(kāi)中斷3/在本例移植中
8、, 使用軟中斷指令SWI 作為底層接口, . 在Keil uVision3中, 用關(guān)鍵字_swi聲明一個(gè)不存在的函數(shù), 能號(hào). SWI 函數(shù)部分代碼如下5:_swi(0x00 void OS_TASK_SW (void ;/3(OS_EN TER_CRITICAL(void ;/3關(guān)中換函數(shù)3/_swi(0x01 void ;/3最高的任務(wù)3/3/_swi(0x03 void OS_EXIT_CRITICAL (void ;/3開(kāi)中斷3/2. 2文件移植c/OS 2中, 每個(gè)任務(wù)要有自己的堆??臻g, 以便進(jìn)行任務(wù)切換時(shí)能將當(dāng)時(shí)處理器現(xiàn)場(chǎng)保存到任務(wù)堆棧空間中, 在下次執(zhí)行時(shí)再恢復(fù)出來(lái). 因此必先
9、確定任務(wù)堆棧結(jié)構(gòu), 而任務(wù)堆棧結(jié)構(gòu)與CPU 體系結(jié)構(gòu)、編譯器密切關(guān)聯(lián). 本移植堆棧結(jié)構(gòu)如圖2所示. OSEnterSum 用于任務(wù)切換時(shí)保存和恢復(fù)各自O(shè)SEnter 2Sum 值, 以便實(shí)現(xiàn)中斷的嵌套.OSTaskSt k Init ( 函數(shù)關(guān)鍵代碼如下:3-stk =(unsigned int task ;/3pc 3/3-stk =(unsigned int task/3lr 3/3-stk =0;/3r12. . . . . r1, 其它同理3/3-stk =(unsigned int pdata ;/3r0, 第一個(gè)參數(shù)用r0傳遞3/3-stk =(SVC32MODE|0x0| ;/3
10、cp sr 關(guān)閉irq ,fiq 3/3-stk =(SVC32MODE|0x0 ;/3spsr IRQ , 關(guān)閉FIQ 3/return (OS_STK 3 stk ;/3堆棧指針保存在任務(wù)的OS_TCB 中3/此文件中的幾個(gè)系統(tǒng)規(guī)定的hook 函數(shù)在本移植將它們都設(shè)為空函數(shù).2. 3OS_CPU_A.S 文件移植OSStart HighRdy ( 、OSCtxSw ( 、OSIntCtxSw ( 、OSTickISR ( . 圖2任務(wù)的堆棧結(jié)構(gòu)4OS_CPU_A.ASM 的改寫(xiě)是移植的難點(diǎn), 它需要用戶主要編寫(xiě)4個(gè)匯編語(yǔ)言函數(shù)5:多任務(wù)啟動(dòng)函數(shù)OSStart ( 調(diào)用OSStart Hig
11、ht Rdy ( 函數(shù), 運(yùn)行優(yōu)先級(jí)最高的任務(wù). 用戶在調(diào)用該函數(shù)之前, 必須至少建立一個(gè)或更多任務(wù). OSCt xSw ( 函數(shù)是由任務(wù)級(jí)任務(wù)切換函數(shù)OS_TAS K_SW( 調(diào)用, 實(shí)現(xiàn)從低優(yōu)先級(jí)向高優(yōu)先級(jí)切換. 文中任務(wù)級(jí)切換是通過(guò)SWI 軟中斷來(lái)實(shí)現(xiàn)的. 軟中斷的異常處理程序掛接到CPU 內(nèi)核, 通過(guò)修改啟動(dòng)代碼里的異常向量表實(shí)現(xiàn). 中斷服務(wù)程序與CPU 芯片相關(guān), 中斷源的掛接通過(guò)增加匯編接口的支持來(lái)實(shí)現(xiàn), 即在文件IRQ. S 的適當(dāng)位置添加如下的程序代碼4:IRQ. Handler HANDL ER IRQ. Exception ; IRQ 中斷OSInt Ct xSw ( 是中
12、斷級(jí)任務(wù)切換函數(shù), 在中斷退出時(shí)由函數(shù)OSInt Exit ( 調(diào)用. 此函數(shù)基本原理與任務(wù)級(jí)切換相同, 只是由于進(jìn)入中斷時(shí)已保存了被中斷任務(wù)的環(huán)境變量, 就不進(jìn)行類似操作, 只需要對(duì)堆棧指針進(jìn)行調(diào)整即可. 部分代碼如下: 第2期陶保壯:基于ARM7的嵌入式操作系統(tǒng)c/OS 2平臺(tái)的剖析與實(shí)現(xiàn)57LDR r4,addr_OSTCBCur;/3得到當(dāng)前任務(wù)的TCB 地址STR r5,r4;/3設(shè)置新的當(dāng)前任務(wù)的TCB 地址3/LDMFD sp ! ,r4/3新任務(wù)cpsr 出棧3/MSR CPSR_cxsf,r4LDMFD sp ! ,r0-r12,lr ,pc;/3r0-r12,lr &
13、;pc出棧, 運(yùn)3/LDR r5,addr_OSTCB HighRdy ;/3得到高優(yōu)先級(jí)任務(wù)的TCB 地址3/LDR r5,r5;/3得到堆棧指針3/LDR sp ,r5;/3切換到新的堆棧3/行新任務(wù)3/系統(tǒng)時(shí)鐘節(jié)拍中斷函數(shù)OSTickISR ( 是一個(gè)周期性中斷, 為內(nèi)核提供時(shí)鐘節(jié)拍. 其周期決定了內(nèi)核所能給應(yīng)用系統(tǒng)提供的最小時(shí)間間隔服務(wù). 本移植中,IRQ 是受c/OS 2II 管理的中斷, 對(duì)FIQ 不處理. 時(shí)鐘節(jié)拍的移植可通過(guò)匯編宏完成. 完成上述工作后, c/OS 2II 就可以運(yùn)行在A RM 處理器上了.3移植測(cè)試測(cè)試操作系統(tǒng)移植代碼的正確性可以在沒(méi)有應(yīng)用程序的情況下進(jìn)行.
14、換句話說(shuō), 就是讓內(nèi)核自己測(cè)試自己. 在Keil uVision3下編譯、鏈接成可執(zhí)行的. axf 文件后, 通過(guò)SU PERJ TA G 下載到目標(biāo)板中(博創(chuàng)44B0X 實(shí)驗(yàn)箱 . 筆者通過(guò)以下測(cè)試用例(編寫(xiě)了OSTaskIdle Hook ( 函數(shù), 每2000L ED , 驗(yàn)證了系統(tǒng)移植是成功的.void OSTaskIdle Hook (void static i =0;if (i %20000=0 /3每20000, 3/(i L ED i +;(SE 3L ED 3/4結(jié)束語(yǔ)c/OS 2II 是一個(gè)有優(yōu)勢(shì)的嵌入式實(shí)時(shí)操作系統(tǒng), 有良好的應(yīng)用前景. 本文通過(guò)具體事例, 實(shí)現(xiàn)了實(shí)時(shí)內(nèi)核
15、c/OS 2II 在S3C44B0X 上的移植. 通過(guò)簡(jiǎn)單的任務(wù)例程, 在Keil uV_ision3及開(kāi)發(fā)板下進(jìn)行了調(diào)試, 從而驗(yàn)證了移植的準(zhǔn)確性, 此移植的成功為c/OS 2II 嵌入式實(shí)時(shí)系統(tǒng)的復(fù)雜應(yīng)用, 提供了基本條件. 參考文獻(xiàn):1杜春雷. ARM 體系結(jié)構(gòu)與編程M .北京:清華大學(xué)出版社,2003:792181.2J ean J ,L sbrosse ,. c/OS 2II :the Real Time KernelM .北京:中國(guó)電力出版社,2001:902168.3K irk Zurell. 嵌入式系統(tǒng)的C 程序設(shè)計(jì)M .北京:機(jī)械工業(yè)出版社,1272259.4周立功. ARM
16、 微處理器基礎(chǔ)與實(shí)踐:2版M .北京:北京航空航天大學(xué)出版社,2005:1352261.5黃燕平. c/OS ARM 移植要點(diǎn)詳解M .北京:北京航空航天大學(xué)出版社. 2005.6曹巧媛. 單片機(jī)原理及應(yīng)用M .北京:電子工業(yè)出版社,2001:432159,73289.R esearch of c/OS 2platform B ased on ARM 7TAO Bao 2zhuang(Dept. of comp. , Huainan Unit University , Huainan 232038,China Abstract :Atp resent , t he t raditional f
17、oreground/background system has become a major bottleneck t hat hinder t he develop ment of embedded systems. But t he int roduction of Embedded Operating System , can simplify t he application develop ment of embedded system and can also insure a system sstability , relia 2bility. Takes t his as background , t he transplant
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)房設(shè)備維護(hù)與保養(yǎng)培訓(xùn)教程
- 2024秋七年級(jí)語(yǔ)文上冊(cè) 第四單元 13《植樹(shù)的牧羊人》說(shuō)課稿 新人教版
- 環(huán)保理念在商業(yè)空間設(shè)計(jì)中的應(yīng)用研究
- 5琥珀說(shuō)課稿-2023-2024學(xué)年四年級(jí)下冊(cè)語(yǔ)文統(tǒng)編版
- 現(xiàn)代學(xué)校管理體系中的遠(yuǎn)程教育策略
- 環(huán)保材料在現(xiàn)代建筑設(shè)計(jì)中的應(yīng)用
- 2024年五年級(jí)英語(yǔ)下冊(cè) Unit 2 Can I help you Lesson 9說(shuō)課稿 人教精通版(三起)
- 18富饒的西沙群島 第二課時(shí)(說(shuō)課稿)-2024-2025學(xué)年語(yǔ)文三年級(jí)上冊(cè)統(tǒng)編版
- 8《蝴蝶的家》說(shuō)課稿-2024-2025學(xué)年四年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版 -
- 現(xiàn)代商業(yè)綜合體的綠色建筑與節(jié)能技術(shù)分享
- 城市基礎(chǔ)設(shè)施修繕工程的重點(diǎn)與應(yīng)對(duì)措施
- 油氣勘探風(fēng)險(xiǎn)控制-洞察分析
- GB 12710-2024焦化安全規(guī)范
- 2022年中考化學(xué)模擬卷1(南京專用)
- 【??途W(wǎng)】2024秋季校園招聘白皮書(shū)
- 2024-2025銀行對(duì)公業(yè)務(wù)場(chǎng)景金融創(chuàng)新報(bào)告
- 2025屆鄭州市高三一診考試英語(yǔ)試卷含解析
- 《我國(guó)個(gè)人所得稅制下稅收征管問(wèn)題研究》
- 建筑工程三通一平技術(shù)方案
- 水庫(kù)工程施工組織設(shè)計(jì)
- 氣流粉碎機(jī)課件
評(píng)論
0/150
提交評(píng)論