uC/OS II 的架構
下載了兩個例子,跟蹤了一天,與大家分享如下:
1、uC/OS II 的核心源碼是和硬體無關的任務進程管理器,這部分源碼不會有任何硬體相關的檔,它們一般放在Source檔夾中;
2、不同的 CPU 需要編寫和 uC/OS II 核心源碼配套工作的幾個hardward depedance檔,這些檔只有os_cpu.h、os_cpu_a.asm、os_cpu_c.c是必要的,另兩個是可選的(option);
3、上述的 CPU 幾個hardward depedance檔需要自己來寫,但 uC/OS II 官方網站有寫好的可以下載;它們的區別是:自己可以寫的很精簡,而官方的為了滿足通用性,添加了很多你可能用不到的定義,對初學者來說,看官方的源代碼很容易迷糊。如果有必要,還要寫相關的BSP(board suport package),它們用於初始化一些 CPU 定義檔之外的硬體裝置(device)。
4、寫你自己的任務代碼,放在 main() 函數中創建任務並啟動它們。app_cfg.h 檔就定義了這些任務的原型和連接參數。下面這張圖就指示出這些檔的關係:
五、由上圖可以看出,uC/OS II 核心只有任務進程(process)管理的內容,除此之外:你需要自己添加 CPU 的定義檔、板級支持包(BSP)、任務的應用源代碼(application source code)。由這四部分構成整個軟體工程,最後連接到目標板(target board)來運行。
六、在 IDE 中構建 uC/OS II 軟體工程,你要做的是:
a、創建新工程;
b、創建四個文件組;
[APP] 用來放你的任務代碼和包含了main函數的檔;
[BSP] 板級支援包,為特定的硬體系統提供硬體上電初始化和特殊的服務API;
[CPU] 為系統所使用的 CPU 提供和 uC/OS II 核心代碼握手的檔;
[OS_CODE] 這就是 uC/OS II 源代碼(官方下載檔包解壓後,在Source目錄下的所有檔)
c、首先將 uC/OS II 核心源代碼導入相應的檔組;
d、編寫另三個軟體組的源代碼檔;
e、編譯和調試
七、注意:據說 uC/OS II 某些定義符和 Keil MDK 不相容,需要修改,所以我不打算在 Keil 下學習了;官方的例子直接支持 IAR For ARM,在 IAR 下學習將輕鬆很多;而 IAR 的工程目錄擴展定義在工程的 Option 選項下,設置目錄是在 C和彙編的標籤 Preprocessor 下進行。用戶工程目錄的根是:$PROJ_DIR$,在這裏設置你工程中的四個軟體組的目錄,不然,許多頭文件會報告找不到或無法打開。
這就是例子所帶的文檔,放在這裏方便大家參考。
AN-1014.pdf
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。