FreeRTOS 任務設計注意事項

2021-10-08 11:26:02 字數 492 閱讀 2439

1.   freertos中程式執行的上下文包括:

1) 中斷服務函式是一種需要特別注意的上下文環境,它執行在非任務的執行環境下(一般為晶元的一種特殊執行模式(也被稱作特權模式)),在這個上下文環境中不能使用掛起當前任務的操作,不允許呼叫任何會阻塞執行的 api 函式介面

中斷服務程式最好保持精簡短小,快進快出,一般在中斷服務函式中只做標記事件的發生,然後通知任務,讓對應任務去執行相關處理,因為中斷服務函式的優先順序高於任何優先順序的任務,如果中斷處理時間過長,將會導致整個系統的任務無法正常執行。

2)任務

任務的執行時間一般是指兩個方面,一是任務從開始到結束的時間(任務執行時間),二是任務的週期(任務執行週期)。

必須考慮任務的時間,一般來說處理時間更短的任務優先順序應設定更高一些

確保任務不會被錯過時間響應

FreeRTOS任務切換

任務切換一共兩種方式 系統節拍器中斷 呼叫portyield。但是,最終都是產生pendsv中斷。systick異常處理入口 void xportsystickhandler void 開啟中斷 vportclearbaseprifromisr 請求排程 define portyield 系統節拍器...

FreeRTOS空閒任務

空閒任務在啟動排程器的時候被建立 啟動排程器 void vtaskstartscheduler void else endif if xreturn pdpass else else 空閒任務的作用包括 保證系統至少有乙個任務在執行 檢查等待終結列表中是否有任務並釋放它們。空閒任務 static p...

FreeRTOS 任務管理

1.freertos 任務不允許以任何方式從實現函式中返回 他們絕不能有一條 return 語句,也不可能執行到函式的末尾。如果乙個函式不需要,可以將其刪除,如在任務中使用函式vtaskdelete null 將當前任務刪除。2.在啟動任務排程器 oskernelstart 前,最好只建立乙個起始任...