任务——μ/COS-II读书笔记
2.1?任務的基本概念
任務種類:
1.用戶任務:解決應用問題。(由應用程序設計者編寫)
?
2.系統任務:為應用程序提供某種服務。(由系統提供)
?
任務組成:
1.任務控制塊:保存任務屬性。
2.任務堆棧:保存任務工作環境。
3.任務程序代碼
?
?
任務鏈表:多個任務鏈接而成。
?
?
?
2.1.1?任務的狀態
?
1.睡眠狀態:任務沒有被配備任務控制塊或剝奪了任務控制塊時的狀態。
2.就緒狀態:任務被配備了任務控制塊且在任務就緒表中進行了登記的狀態。
3.運行狀態:任何時刻只能有一個任務處于運行狀態。
4.等待狀態:之前在運行的任務,現在需要等待一段時間?或?需要等待一個事件發生?再運行時的狀態。
5.中斷服務狀態:正在運行的任務響應中斷申請去執行中斷服務程序的狀態。
?
任務狀態轉換圖:
?
?
?
2.1.2?用戶任務代碼的一般結構
?
1.?用戶任務代碼的一般結構
??μC/OS-II任務的代碼結構是一個帶有臨界段的無限循環。(在運行OS_ENTER_CRITICAL()?和?OS_EXIT_CRITICAL()來控制任務何時響應中斷,何時屏蔽中斷。)
?
2.?用戶應用程序的結構
??
????void MyTask1(void *pdata) //定義用戶任務1
????{
????for(;;)
{
......
}
}
?
void MyTask(void * pdata) //定義用戶任務2
{
for(;;)
{
......
}
}
?
void MyTask3(void * pdata) //定義用戶任務3
{
for(;;)
{
......
}
}
?
void main()
{
......
OSInit(); //初始化μC/OS-II
......
OSTaskCreate(MyTask1,......); //創建用戶任務1
OSTaskCreate(MyTask2,......); //創建用戶任務2
OSTaskCreate(MyTask3,......); //創建用戶任務3
......
OSStart(); //啟動任務
......
}
?
主函數main()只負責創建和啟動用戶任務,而由操作系統調度運行用戶任務。
?
2.1.3 ?系統任務
μC/OS-II定義了兩個為應用程序服務的系統任務:空閑任務(每個應用程序必須使用) 和 統計任務(每秒計算一次CPU在單位時間內被使用的時間,把計算結果以百分比的形式存放在變量OSC-PUUsage中。 ?應用程序根據實際需要選擇使用)。
?
1.?空閑任務
?
?
?
2.?統計任務
?
??要使用統計任務需要:
??1.把定義在系統頭文件OS_CFG.H中的系統配置常數OS_TASK_STAT_EN設置為1。
??????2.在創建統計任務之前調用函數OSStatInit()對統計任務進行初始化。
?
2.1.4?任務的優先權及優先級別
例:若應用程序的優先級別為28個,則該應用程序最多安排26個任務。(優先級26自動賦給統計任務,優先級27自動賦給空閑任務)
總結
以上是生活随笔為你收集整理的任务——μ/COS-II读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: led流水灯——51单片机程序
- 下一篇: seg显示时间——51程序