ucos源碼讀後總結
轉載請註明原文出處,http://www.cnblogs.com/flyingcloude/p/6992351.html
花了將近一個星期的時間將ucos的源碼大致的通讀了一遍,在這裏先進行總結一下,以便以後繼續深入學習。
(1)ucos的源碼結構:
與處理器類型無關的代碼:OS_CORE.C
OS_FLAG.C
OS_MBOX.C
OS_MEM.C
OS_MUTEX.C
OS_Q.C
OS_SEM.C
OS_TIME.C
uC/OS-II.C
uC/OS-II.H
uC/OS的配置文件(與應用程序有關)
OS_CFG.H
INCLUDES.H
與處理器類型有關的代碼
OS_CPU.H
OS_CPU_A.ASM
OS_CPU_C.C
(2)ucos的特點
多任務,最多可以支持64個任務,但是每個任務的優先級必須不一樣,而且有兩個任務已經被系統占用。
內核可剝奪,當就緒任務隊列中有高優先級的任務到達時,當前運行的任務讓出CPU使用權。
(3)ucos的程序架構
系統的啟動以及運行過程:
先進行系統初始化OSInit();
然後進行創建任務等工作。
最後運行OSStart(),在OSStart()運行時,系統運行任務優先級最高的任務。
在系統運行時,任務跟任務之間的通信可以使用“信號量”、“郵箱”、“消息隊列”進行通信。
任務在運行的時候,當遇到阻塞時,會進行一次OS_Sched(),當所有的用戶任務都不需要執行時,系統開始執行系統自帶的空閑任務,當有任務就緒時再重新開始執行。然後外部定時器驅動OSTimeTick函數,進行對任務的狀態進行管理。
轉載請註明原文出處,http://www.cnblogs.com/flyingcloude/p/6992351.html
ucos源碼讀後總結