色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 學習中遇到ostasksuspend該怎么用

學習中遇到ostasksuspend該怎么用 時間:2018-03-02      來源:未知

做過單片機的,相比都用過51、STM32等等系列,當今比較主流的單片機以STM32系列的為主,當在用STM32單片機一段時間之后就會手癢癢去嘗試使用一下操作系統,那么就一定會接觸到uC/OS-II,說到uC/OS-II那么就一定會有任務這樣的概念。

任務在創建后將從睡眠態轉換到就緒態,就緒的任務如果調用OSTaskSuspend將被阻塞,也就是被剝奪CPU的使用權而暫時中止運行,轉到阻塞狀態。通過OSTaskSuspend將任務轉到阻塞態被稱為掛起任務。

被掛起的任務不能運行,知道其他任務以該任務的優先級作為參數調用OSTaskResume來恢復它,才能將該任務的狀態重新設置為就緒狀態。當該任務是就緒的高優先級的任務時,又可以得到調度而重新占領CPU,回到運行態。

一個任務如果無事可做,且優先級又較高,長期占有CPU,那么其他的任務將得不到運行而“餓死”。因此,任務在不需要運行的時候應該放棄CPU,掛起就是其中的一種策略,除此之外還有任務延時等策略。

學習中遇到OSTaskSuspend該怎么用

由上圖可知,在運行過程的任務因為調用OSTaskSuspend而被掛起到阻塞態。阻塞態的任務因為其他任務以該任務的優先級作為參數調用OSTaskResume而得到恢復,恢復到就緒態。就緒的任務在優先級變為高的情況下終得到了運行。

值得注意的是,掛起一個任務并非將其轉換掛起態,而是阻塞態。任務因為中斷失去CPU控制權才會轉換為掛起態,掛起態的任務在中斷結束后直接回到運行態。這兩者是有明顯的區別的。

函數OSTaskSuspend用來暫時停止一個任務的執行,將任務轉換為阻塞態。如果傳遞給OSTaskSuspend的參數是OS_PRIO_SELF,則將阻塞自己,如果prio是其他任務的優先級,則將阻塞其他的就緒任務。

根據該函數執行過程中的各種情況,返回值包括:

OS_ERR_NONE:如果成功掛起一個任務

OS_ERR_TASK_SUSPEND_IDLE:如果試圖阻塞空閑任務。

OS_ERR_PRIO_INVALID:非法的優先級

OS_ERR_TASK_SUSPEND_PRIO:要掛起的任務不存在

OS_ERR_TASK_NOT_EXITS:要掛起使用互斥信號量的任務。

另外有一點需要特別注意的是,如果掛起了一個任務,那么要注意這個任務是否在等待某些事件的發生,需要防止在事件發生的時候阻塞了的任務因為事件的發生而運行。

調用時要十分小心,如果你想掛起一個等待事件(郵箱,消息,隊列)的任務,事件到來的時候你將阻止這個任務運行。

注意:OSTaskSuspend()需要與OSTaskResume()恢復掛起的任務成對使用

上一篇:嵌入式設計是什么意思

下一篇:嵌入式系統存儲器

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 欧美国产日韩中文字幕在线| 国产欧美一区二区三区视频| 欧美另类老女人| 欧美特黄级在线| 欧美极品美女电影一区| 午夜精品久久久久久久男人的天堂 | 久久视频这里只有精品| 亚洲人午夜精品| 日韩一级裸体免费视频| 欧美大片第1页| 欧美在线观看日本一区| 国产精品美女久久| 欧美成人精品在线| 午夜精品一区二区三区在线播放| 日本一区二区三区四区视频| 国产在线精品一区免费香蕉| 精品伊人久久97| 欧美日韩福利视频| 国产精品久久久久久久久久 | 午夜精品一区二区三区视频免费看| 欧美一级大片在线观看| 亚洲精品女av网站| 日韩中文字幕国产| 欧日韩不卡在线视频| 亚洲成人精品久久| 久久成人亚洲精品| 国产精品444| 亚洲免费电影在线观看| 日韩欧美在线观看| 成人免费大片黄在线播放| 一区二区三欧美| 91成人精品网站| 亚洲在线免费观看| 欧美噜噜久久久xxx| 国产日韩欧美另类| 久久成人av网站| 国产精品一区二区三区毛片淫片| 亚洲全黄一级网站| 日本欧美中文字幕| www.美女亚洲精品| 成人国产精品久久久|