目錄
前言
筆錄草稿
源碼分析
LOS_TaskDelete函數源碼分析完整源碼
參考連結
20201009
LiteOS 2018
需要會通用連結清單
進入處理前,需要進入任務臨界
通過任務ID來擷取任務句柄
根據各種狀态進行處理
處于 OS_TASK_STATUS_UNUSED (未使用) 狀态
退出
處于 OS_TASK_STATUS_RUNNING (運作态) 且排程被鎖定了
解鎖任務排程
處于 就緒态 或 阻塞态 或 阻塞隊列态
處于 OS_TASK_STATUS_READY (就緒态)
從就緒清單中删除該節點
取消該任務的就緒态
處于 OS_TASK_STATUS_PEND(阻塞态) 或 OS_TASK_STATUS_PEND_QUEUE(阻塞隊列态)
處于 OS_TASK_STATUS_DELAY (延時态)或 OS_TASK_STATUS_TIMEOUT(逾時态)
從時間清單中删除該任務
被删除的任務需要做一些複位處理
初始化任務狀态
初始化任務事件相關的一些變量
被删除的任務s是否處于運作态
是
不能完全删除該任務,因為,排程過程中需要該任務參與
把目前任務插入到回收清單中,待運作建立任務函數時在進行回收處理。(其它RTOS都是在空閑任務中處理)
把目前任務(被删除的任務)copy到最低優先級的任務中,即是比空閑任務還低一個優先級的備用任務中,被賦給 g_stLosTask.pstRunTask,用于下main排程使用
解鎖中斷
排程
否
标記為未使用狀态
直接放到空閑清單中
釋放任務堆空間
初始化棧頂指針
LiteOS源碼連結
常見問題
華為開發者社群
華為LiteOS官方教程
我的源碼
包含 裸機源碼
LiteOS 工程模闆
其它關于 LiteOS 的 demo 及 note