資料介紹
引言
在開發(fā)嵌入式系統(tǒng)時(shí),一般選擇基于ARM 和uC/ OS - II 的嵌入式開發(fā)平臺(tái),因?yàn)锳RM 微處理器具有處理速度快、超低功耗、價(jià)格低廉、應(yīng)用前景廣泛等優(yōu)點(diǎn)[1 ] 。 將uC/ OS - II 移植到ARM 系統(tǒng)之后,可以充分結(jié)合兩者的優(yōu)勢(shì)。 如果一個(gè)程序在一個(gè)環(huán)境里能工作,我們經(jīng)常希望能將它移植到另一個(gè)編譯系統(tǒng)、處理器或者操作系統(tǒng)上,這就是移植技術(shù)。移植技術(shù)可以使一種特定的技術(shù)在更加廣泛的范圍使用,使軟件使用更加靈活,不局限于某一條件.uC/OS - II 是由Jean J 。 Labrosse 先生編寫的完整的可移植、固化、裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核.uC/ OS - II 的源代碼完全開放,這是其他商業(yè)實(shí)時(shí)內(nèi)核無(wú)法比擬的[2 ] 。 它是針對(duì)嵌入式應(yīng)用設(shè)計(jì)的,在設(shè)計(jì)之初就充分考慮了可移植性,它的大部分源代碼都是用高可移植性的ANSIC 編寫的[3 ] 。 uC/ OS - II可以移植到從8 位到64 位的不同類型、不同規(guī)模的嵌入式系統(tǒng),并能在大部分的8 位、16 位、32 位、甚至64 位的微處理器和DSP 上運(yùn)行。 由于uC/ OS - II是一個(gè)實(shí)時(shí)操作系統(tǒng),所以如果將它嵌入到ARM處理器上,就能夠進(jìn)一步簡(jiǎn)化ARM系統(tǒng)的開發(fā)。

圖1 uC/ OS - II 文件體系結(jié)構(gòu)
1 uC/ OS - II 的移植
uC/OS - II 的文件系統(tǒng)結(jié)構(gòu)包括核心代碼部分、設(shè)置代碼部分、與處理器相關(guān)的移植代碼部分[4 ] 。 結(jié)構(gòu)如圖1 所示。其中最上邊的軟件應(yīng)用層是uC/ OS - II 上的代碼。 核心代碼部分包括7 個(gè)源代碼文件和1 個(gè)頭文件。 功能分別是內(nèi)核管理、事件管理、消息隊(duì)列管理、存儲(chǔ)管理、消息管理、信號(hào)量處理、任務(wù)調(diào)度和定時(shí)管理。 設(shè)置代碼部分包括2 個(gè)頭文件,用來(lái)配置事件控制塊的數(shù)目以及是否包含消息管理相關(guān)代碼。 而與處理器相關(guān)的移植代碼部分則是進(jìn)行移植過(guò)程中需要更改的部分,包括1 個(gè)頭文件OS CPU. H ,1 個(gè)匯編文件OS CPU A. S 和1 個(gè)C 代碼文件。實(shí)際上將uC/ OS - II 移植到ARM 處理器上,需要完成的工作主要是以下三個(gè)與體系結(jié)構(gòu)相關(guān)的文件:OS CPU. H ,OS CPU. C 以及OS CPU A. S[5 ] 。
1. 1 OS CPU. H 的移植
文件OS CPU. H 中包括了用# define 語(yǔ)句定義的與處理器相關(guān)的常數(shù)、宏以及類型。 移植時(shí)主要修改的內(nèi)容有:與編譯器相關(guān)的數(shù)據(jù)類型的設(shè)定;用#define 語(yǔ)句定義2 個(gè)宏開關(guān)中斷;根據(jù)堆棧的方向定義OS STK GROWTH等。
在將uC/ OS - II 移植到ARM 處理器上時(shí),首先進(jìn)行基本配置和數(shù)據(jù)類型定義。 重新定義數(shù)據(jù)類型是為了增加代碼的可移植性,因?yàn)椴煌木幾g器所提供的同一數(shù)據(jù)類型的數(shù)據(jù)長(zhǎng)度并不相同,例如int型,在有的編譯器中是16 位,而在另外一些編譯器中則是32 位。 所以,為了便于移植,需要重新定義數(shù)據(jù)類型,如INT32U 代表無(wú)符號(hào)32 位整型。 typedefunsigned int INT8U ,就是定義一個(gè)8 位的無(wú)符號(hào)整型數(shù)據(jù)類型。 其次就是對(duì)ARM 處理器相關(guān)宏進(jìn)行定義,如ARM處理器中的退出臨界區(qū)和進(jìn)入臨界區(qū)的宏定義,退出臨界區(qū)宏定義[5 ] : # define OS EXITCRITICAL () ARMDisable Int ( ) / / 關(guān)中斷,進(jìn)入臨界區(qū)宏定義# define OS ENTER CRITICAL ( ) AR2MEnableInt () / / 開中斷。 最后就是堆棧增長(zhǎng)方向的設(shè)定。 當(dāng)進(jìn)行函數(shù)調(diào)用時(shí),入口參數(shù)和返回地址一般都會(huì)保存在當(dāng)前任務(wù)的堆棧中,編譯器的編譯選項(xiàng)和由此生成的堆棧指令就會(huì)決定堆棧的增長(zhǎng)方向[6 ] ,定義為# define OS STK GROWTH 1.
在開發(fā)嵌入式系統(tǒng)時(shí),一般選擇基于ARM 和uC/ OS - II 的嵌入式開發(fā)平臺(tái),因?yàn)锳RM 微處理器具有處理速度快、超低功耗、價(jià)格低廉、應(yīng)用前景廣泛等優(yōu)點(diǎn)[1 ] 。 將uC/ OS - II 移植到ARM 系統(tǒng)之后,可以充分結(jié)合兩者的優(yōu)勢(shì)。 如果一個(gè)程序在一個(gè)環(huán)境里能工作,我們經(jīng)常希望能將它移植到另一個(gè)編譯系統(tǒng)、處理器或者操作系統(tǒng)上,這就是移植技術(shù)。移植技術(shù)可以使一種特定的技術(shù)在更加廣泛的范圍使用,使軟件使用更加靈活,不局限于某一條件.uC/OS - II 是由Jean J 。 Labrosse 先生編寫的完整的可移植、固化、裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核.uC/ OS - II 的源代碼完全開放,這是其他商業(yè)實(shí)時(shí)內(nèi)核無(wú)法比擬的[2 ] 。 它是針對(duì)嵌入式應(yīng)用設(shè)計(jì)的,在設(shè)計(jì)之初就充分考慮了可移植性,它的大部分源代碼都是用高可移植性的ANSIC 編寫的[3 ] 。 uC/ OS - II可以移植到從8 位到64 位的不同類型、不同規(guī)模的嵌入式系統(tǒng),并能在大部分的8 位、16 位、32 位、甚至64 位的微處理器和DSP 上運(yùn)行。 由于uC/ OS - II是一個(gè)實(shí)時(shí)操作系統(tǒng),所以如果將它嵌入到ARM處理器上,就能夠進(jìn)一步簡(jiǎn)化ARM系統(tǒng)的開發(fā)。

圖1 uC/ OS - II 文件體系結(jié)構(gòu)
1 uC/ OS - II 的移植
uC/OS - II 的文件系統(tǒng)結(jié)構(gòu)包括核心代碼部分、設(shè)置代碼部分、與處理器相關(guān)的移植代碼部分[4 ] 。 結(jié)構(gòu)如圖1 所示。其中最上邊的軟件應(yīng)用層是uC/ OS - II 上的代碼。 核心代碼部分包括7 個(gè)源代碼文件和1 個(gè)頭文件。 功能分別是內(nèi)核管理、事件管理、消息隊(duì)列管理、存儲(chǔ)管理、消息管理、信號(hào)量處理、任務(wù)調(diào)度和定時(shí)管理。 設(shè)置代碼部分包括2 個(gè)頭文件,用來(lái)配置事件控制塊的數(shù)目以及是否包含消息管理相關(guān)代碼。 而與處理器相關(guān)的移植代碼部分則是進(jìn)行移植過(guò)程中需要更改的部分,包括1 個(gè)頭文件OS CPU. H ,1 個(gè)匯編文件OS CPU A. S 和1 個(gè)C 代碼文件。實(shí)際上將uC/ OS - II 移植到ARM 處理器上,需要完成的工作主要是以下三個(gè)與體系結(jié)構(gòu)相關(guān)的文件:OS CPU. H ,OS CPU. C 以及OS CPU A. S[5 ] 。
1. 1 OS CPU. H 的移植
文件OS CPU. H 中包括了用# define 語(yǔ)句定義的與處理器相關(guān)的常數(shù)、宏以及類型。 移植時(shí)主要修改的內(nèi)容有:與編譯器相關(guān)的數(shù)據(jù)類型的設(shè)定;用#define 語(yǔ)句定義2 個(gè)宏開關(guān)中斷;根據(jù)堆棧的方向定義OS STK GROWTH等。
在將uC/ OS - II 移植到ARM 處理器上時(shí),首先進(jìn)行基本配置和數(shù)據(jù)類型定義。 重新定義數(shù)據(jù)類型是為了增加代碼的可移植性,因?yàn)椴煌木幾g器所提供的同一數(shù)據(jù)類型的數(shù)據(jù)長(zhǎng)度并不相同,例如int型,在有的編譯器中是16 位,而在另外一些編譯器中則是32 位。 所以,為了便于移植,需要重新定義數(shù)據(jù)類型,如INT32U 代表無(wú)符號(hào)32 位整型。 typedefunsigned int INT8U ,就是定義一個(gè)8 位的無(wú)符號(hào)整型數(shù)據(jù)類型。 其次就是對(duì)ARM 處理器相關(guān)宏進(jìn)行定義,如ARM處理器中的退出臨界區(qū)和進(jìn)入臨界區(qū)的宏定義,退出臨界區(qū)宏定義[5 ] : # define OS EXITCRITICAL () ARMDisable Int ( ) / / 關(guān)中斷,進(jìn)入臨界區(qū)宏定義# define OS ENTER CRITICAL ( ) AR2MEnableInt () / / 開中斷。 最后就是堆棧增長(zhǎng)方向的設(shè)定。 當(dāng)進(jìn)行函數(shù)調(diào)用時(shí),入口參數(shù)和返回地址一般都會(huì)保存在當(dāng)前任務(wù)的堆棧中,編譯器的編譯選項(xiàng)和由此生成的堆棧指令就會(huì)決定堆棧的增長(zhǎng)方向[6 ] ,定義為# define OS STK GROWTH 1.
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式實(shí)時(shí)操作系統(tǒng)μC、OS-II在ARM上的移植.
- 詳解μC/OS-II在ARM平臺(tái)上移植 13次下載
- μC/OS-II 在Nios上的移植
- uCOS II 在SkyEye 上的移植分析
- ARM7內(nèi)核上的uCOS II嵌入式系統(tǒng)移植
- uc/os-ii在ARM處理器上的移植
- 實(shí)時(shí)操作系統(tǒng)OS-II在ARM7上的移植
- 基于ARM的嵌入式操作系統(tǒng)μC/OS-II的移植
- μC/OS-II在PC機(jī)上移植的設(shè)計(jì)與實(shí)現(xiàn)
- 基于uc/os-ii 的嵌入式GUI研究與應(yīng)用
- μC/OS-II 在LPC2210上的移植實(shí)現(xiàn)
- 嵌入式μC/OS-II在LPC2104上的移植及通信設(shè)計(jì)
- 實(shí)時(shí)操作系統(tǒng)μC/OS-II 在LPC2210 上的移植研究
- μC OS-II 在Nios 上的移植1
- μC OS-II 在S3C44B0X 處理器上的移植
- 基于μC/OS-II和TMS320LF2407A實(shí)現(xiàn)集散式數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) 2.9k次閱讀
- 基于實(shí)時(shí)嵌入式操作系統(tǒng)mC/OS-II實(shí)現(xiàn)GPRS終端系統(tǒng)的設(shè)計(jì) 3.2k次閱讀
- 基于MC9S12DP256芯片和μC/OS-II實(shí)現(xiàn)CCP軟件的設(shè)計(jì) 3.9k次閱讀
- 基于嵌入式工控模塊和μC/OS-II實(shí)現(xiàn)車載狀態(tài)監(jiān)控系統(tǒng)的設(shè)計(jì) 2.8k次閱讀
- 基于C8051F015芯片在開發(fā)板上實(shí)現(xiàn)μC/OS-II的移植 2.8k次閱讀
- 基于μC/OS-II操作系統(tǒng)實(shí)現(xiàn)在P89V51RD2微控制器上運(yùn)行 1.1k次閱讀
- 基于μC/OS-II操作系統(tǒng)在SPCE061A上的移植優(yōu)化研研究 1.1k次閱讀
- 51單片機(jī)對(duì)μC/OS-II實(shí)時(shí)操作系統(tǒng)的移植 3k次閱讀
- LPC213X通過(guò)μC/OS-II的多種移植方案 974次閱讀
- 淺論uC/OS-II 在電動(dòng)車電池管理系統(tǒng)中的應(yīng)用研究 1.8k次閱讀
- LPC2119簡(jiǎn)介 μC/OS-II在LPC2119上的移植 3.3k次閱讀
- 車輛調(diào)度系統(tǒng)的整體設(shè)計(jì) UC/OS-II的內(nèi)核調(diào)度機(jī)理 1.6k次閱讀
- 基于STM32的嵌入式測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 9.5k次閱讀
- 嵌入式設(shè)備設(shè)計(jì)的內(nèi)核uc/os-ii api使用手冊(cè)大全 4.7k次閱讀
- 用AndesCore N1033A-S處理器實(shí)現(xiàn)μC/OS-II的移植 4.7k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊(cè)
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊(cè)
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊(cè)
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊(cè)
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊(cè)
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊(cè)
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動(dòng)汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說(shuō)明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論