日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

任务——μ/COS-II读书笔记

發布時間:2025/1/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 任务——μ/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读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。