支援前導0指令的CPU
configUSE_PORT_OPTIMISED_TASK_SELECTION 設定為 1
考慮到 RAM 的消耗,宏 configMAX_PRIORITIES 最好設定為一
個滿足應用的最小值
RTOS最高優先級configMAX_PRIORITIES-1
configUSE_TIME_SLICING 定義為 1 多個任務可以共用一個優先級,數量不限
處于就緒态的優先級相同的任務就會使用時間片輪轉排程器擷取運作時間
建立任務:
1 xTaskCreate()或 xTaskCreateStatic()
如果一定要從任務函數中退出, vTaskDelete(NULL)來删除此任務
從任務函數中傳回或退出的話就會調用configASSERT(),必須定義
configASSERT()
2 不一定要用延時函數,主要是要用任務切換API函數就可以
如:請求信号量、隊列等,甚至直接調用任務排程器,延時最常用
3 任務控制塊,存儲任務的屬性
TCB_t (新版) tskTCB(舊版)
使用函數 xTaskCreate()建立任務的時候就會自動的給每個任務配置設定
一個任務控制塊
根據某些宏決定哪些需要編譯,與裁剪有關
4 任務堆棧
任務切換儲存現場用
建立任務的時候需要給任務指定堆棧
使用的函數 xTaskCreate()建立任務(動态方法)xTaskCreate()自動建立
任務堆棧
xTaskCreateStatic()建立任務(靜态方法)手動定義任務堆棧,堆棧首位址
作為參數傳給函數參數puxStackBuffer
StackType_t 堆棧大小資料類型,是uint32_t,堆棧實際大寫是定義大小
的4倍
本文轉自飛行萌51CTO部落格,原文連結:http://blog.51cto.com/8527508/1936768 ,如需轉載請自行聯系原作者