基于μC/OS-II的便攜式飛行參數數據卸載器
3 嵌入式系統移植及實現功能
嵌入式實時操作系統μC/OS-II是一個可移植、固化、裁剪的占先式實時多任務內核,要想在μC/OS-II內核上進行應用程序的開發,就要在μC/OS-II的基礎上建立完整的實時操作系統。一個相對完整的嵌入式實時多任務操作系統,需要進行較多擴展工作。為外部設備建立相應的API函數,創建圖形用戶界面函數和建立文件系統等。
μC/OS-II的工作流程為首先進行操作系統初始化OSInit(),主要完成任務控制塊初始化。隨后就可以開始創建新任務OSTaskCreate()、初始化任務堆棧區。最后調用OSStait()函數,啟動多任務調度。在多任務調度開始后,啟動時鐘節拍源開始計時。當中斷時,系統把當前正在執行的任務掛起,保護現場,進行中斷處理。
μC/GUI是μC/OS-II設計者所開發的一種用于嵌入式應用的圖形支持軟件。μC/GUI的主要特點有:通過可選組件可以實現個性定制。具有豐富的開發工具和小封裝的特點。可適用各種內存容量的系統。相比較其它常用的GUI而言,μC/GUI具有其獨特的優勢,并且可以方便地移植到μC/OS-II系統上。
3.1 系統軟件移植
文中基于μC/OS-II內核系統軟件結構的整體框圖如圖3所示。本文引用地址:http://www.104case.com/article/193415.htm
(1)系統外圍設備的硬件部分。系統外圍設備的硬件部分是保證系統能夠實現指定功能的最底層的部分。系統外圍設備硬件部分包括:液晶屏LCD、Flash存儲器、文件管理控制芯片、鍵盤驅動芯片、JTAG調試接口等。
(2)驅動程序模塊。驅動程序是連接底層的硬件和上層的應用程序接口API函數的紐帶,每個器件的開發都有一個通用API驅動,API對該驅動程序的結構,函數和參數名稱都進行了標準化。如stm32f10x固件庫里提供了各種資源的接口,可方便地利用庫函數對GPIO、SPI等外設接口進行編程。
(3)操作系統的API函數。在操作系統中提供標準的API函數,可以加速用戶應用程序的開發,在API函數中,提供了大量的常用模塊簡化應用程序的編寫,如任務管理函數、時間管理函數、信號量管理函數等。
(4)實時操作系統的多任務管理。μC/OS-II作為操作系統內核,主要任務是完成多任務間的調度和同步。在建立多任務時指定優先級,對μC/OS-II這個可剝奪內核而言,讓進入就緒態的優先級最高的任務開始運行。
(5)用戶應用程序。用戶的應用程序建立在系統的主任務基礎之上。用戶應用程序主要通過調用系統的API函數對系統進行操作,完成用戶的要求。在用戶的應用程序中也可以創建自己的任務。任務之間的協調主要依賴于系統對任務的調度以及任務優先級的分配。
(6)通用圖形界面。用戶將配置好LCD驅動的μC/GUI加入μC/OS-II實時操作系統之中,利用一個任務對GUI進行初始化,隨后進行相應的功能顯示。
評論