當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]摘要:首先介紹μC/OS-II操作系統的特點,重點分析μC/OS-II在EP7312上的移植方法,介紹μC/OS-II在EP7312中的開發(fā)過程。 關鍵詞:嵌入式操作系統 μC/OS-II EP73

摘要:首先介紹μC/OS-II操作系統的特點,重點分析μC/OS-II在EP7312上的移植方法,介紹μC/OS-II在EP7312中的開發(fā)過程。 關鍵詞:嵌入式操作系統 μC/OS-II EP7312 引 言   隨著Internet和后PC時代的到來,嵌入式系統的應用愈來愈廣泛,嵌入式產品在人們的生活中無處不在。今天,嵌入式系統帶來的工業(yè)年產值已超過 1萬億美元,已經在IT產業(yè)中占有很大的比重。   通常,應用程序對嵌入式軟件的基本要求是體積小、執(zhí)行速度快、具有較好的裁減性和可移植性。嵌入式軟件的靈魂是嵌入式操作系統。在特定的操作系統之上開發(fā)應用軟件,可以讓程序開發(fā)人員屏蔽掉很多低層硬件細節(jié),使得應用程序調試方便、移植簡單、易維護,同時開發(fā)周期也短。目前,實時操作系統很多,如 VxWorks、Window CE、pSOS、QNX、LynxOS等等。這些操作系統都具有高可靠性、很強的實時性等特點,但它們都是商業(yè)操作系統,價格昂貴,人們往往很難接受。 μC/OS-II的出現是對這些商業(yè)操作系統的一個很大的沖擊。μC/OS-II是源碼公開的實時操作系統,是一個自由操作系統。程序開發(fā)人員可以改寫源代碼,使之符合自己的要求。裁減掉不需要的部分,使操作系統變得小巧、靈活,并且能滿足用戶特定操作系統的需要。 1 μC/OS-II簡介   μC/OS-II并非一個完整的實時操作系統,它只是一個實時內核。μC/OS-II不像其它實時操作系統一樣,提供給用戶的是一個標準的API函數,程序開發(fā)人員利用操作系統提供的API函數進行應用程序的開發(fā)。要想在μC/OS-II內核上進行應用程序的開發(fā),就需要程序開發(fā)人員在實時內核的基礎上建立自己的實時操作系統。首先,把μC/OS-II移植到自己的硬件目標板上,寫出相應的驅動程序以及用戶圖形界面等等;在這些接口函數之上,加上用戶自己的應用程序,就構成了嵌入式軟件。 2 μC/OS-II在EP7312上的移植   μC/OS-II的移植條件是:只要該處理器有堆棧,有CPU內部寄存器入棧、出棧指令;使用的C編譯器支持內嵌匯編(inline assembly)或者該C語言可擴展,可連接匯編模塊,使得關中斷、開中斷能在C語言程序中實現。Cirrus Logic公司生產的EP7312芯片內部采用的是ARM720T處理器,內部有37個寄存器。其中R13通常用作堆棧指針。堆棧尋址是隱含的,堆棧指針所指定的存儲單元就是堆棧的棧頂,堆棧尋址通常有兩種方式向上生長和向下生長。ARM處理器有ARM和Thumb兩種指令集。每種指令集都有豐富的指令可以對堆棧進行操作。堆棧指針指向最后壓入堆棧的有效數據,稱為滿堆棧(full stack);堆棧指針指向下一個數據項放入的空位置,稱為空堆棧(empty stack)。根據堆棧的生長方向不同,可以生成4種類型的堆棧,即滿遞增、空遞增、滿遞減、空遞減。我們所使用的ARM SDT(ARM Software Development Kit)開發(fā)系統內含的編譯器,同樣也支持內嵌匯編,所以μC/OS-II完全可以移植到EP7312上。

  μC/OS-II核心代碼很小,程序開發(fā)人員要把它移植到自己的目標板中只需做少量的工作。圖1是μC/OS-II硬件和軟件的體系結構。   雖然μC/OS-II大部分源代碼是用C語言寫的,但是完成和處理器一些有關的代碼時,還是必須要用匯編語言來實現的。寄存器的讀、寫只能通過匯編語言的存儲和加載指令來實現。要使μC/OS-II能夠正常工作, 處理器必須滿足以下要求: ?、?處理器的C編譯器能產生可重入代碼;  ② 用C語言可以打開和關閉中斷; ?、? 處理器支持中斷,并且能夠產生定時中斷(通常在10"100Hz之間); ?、?處理器能夠支持容納一定量數據的硬件堆棧;  ⑤ 處理器有將堆棧指針和其它寄存器讀出和存儲到堆?;騼却嬷械闹噶?。   μC/OS-II的移植包括以下幾個部分。 (1)設置與編譯器有關的代碼[OS_CPU.H]   在不同的處理器中有不同的字長,所以必須定義一系列數據類型以確保移植的正確性。另外,在μC/OS-II中,不使用C的short、int和 long等數據類型,這些都是和編譯器相關的。下面就是μC/OS-II定義的一部分數據類型。 typedef unsigned char BOOLEAN; typedef unsigned char INT8U; /*無符號8位整數 */ typedef signed char INT8S; /*有符號8位整數 */ typedef unsigned int INT16U; /*無符號16位整數 */ typedef signed int INT16S; /*有符號16位整數 */ typedef unsigned long INT32U; /*無符號32位整數 */ typedef signed long INT32S; /*有符號32位整數 */ typedef float FP32; /*單精度浮點數 */ typedef double FP64; /*雙精度浮點數 */   μC/OS-II需要先禁止中斷訪問代碼的臨界區(qū),并且在訪問完畢后重新允許中斷。μC/OS-II定義了兩個宏來禁止和允許中斷:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。 #define OS_ENTER_CRITICAL() IRQFIQDE #define IRQFIQDE __asm { mrs r0, CPSR; stmfd sp!, {r0}; orr r0, r0, #NOINT; msr CPSR_c, r0; } #define OS_EXIT_CRITICAL() IRQFIQRE #define IRQFIQRE __asm { ldmfd sp!, {r0}; msr CPSR_c, r0; } #endif   (2)編寫4個匯編語言函數[OS_CPU_A.S]   μC/OS-II的移植實例要求用戶編寫4個簡單的匯編語言函數: OSStartHighRdy() OSCtxSw() OSIntCtxSw() UCOS_IRQHandler 詳細內容見本刊網絡補充版(http://www.dpj.com.cn)。   (3)用C語言編寫6個與操作系統有關的函數[OS_CPU_C.C] 這6個函數是: OSTaskStkInit() OSTaskCreatHook() OSTaskDelHook() OSTaskSwHook() OSTaskStatHook() OSTaskTickHook()   這6個函數只對OSTaskStkInit()編寫代碼,后5個函數必須聲明,但是內部并沒有代碼。OSTaskCreate()和 OSTaskCreateExt()通過調用OSTaskStkInit()來初始化任務的堆棧結構。這個函數的移植代碼,可參考文獻[3]。 3 測試、編寫驅動和應用程序   做完以上工作以后,就要測試移植的是否正確。測試一個μC/OS-II實時內核并不復雜,就是讓這個實時內核在自己的目標板上跑起來。開始時,可以運行一些簡單的任務和時鐘節(jié)拍中斷任務,如果調試成功就可以在上面添加應用程序。   μC/OS-II移植完成以后,就要在這個實時內核之上編寫接口驅動程序。由于嵌入式操作系統體積更小,功能更強,且快速、穩(wěn)定,更具有針對性,因此不像其它操作系統那樣,對系統的所有接口設備都需要驅動、管理、調度和監(jiān)視。由于嵌入式產品是針對特殊的用途而設計的,有很強的專一性,因此,在編寫驅動程序時內容更精簡,更具有穩(wěn)定性,編寫出的驅動模塊更小。編寫驅動程序應完成以下基本功能:①對設備初始化和釋放;②把數據從內核傳送到硬件和從硬件讀取數據;③讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據;④檢測和處理設備出現的錯誤。實現了以上功能以后,一個嵌入式操作系統就基本構成了。   完成了μC/OS-II的移植和驅動程序的編寫以后,利用操作系統提供的API函數編寫應用程序,調用μC/OS-II中與應用程序相關的系統服務。調試通過后,固化到目標板上,這個嵌入式應用軟件就完成了。[!--empirenews.page--]

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉