1、函數(shù) taskYIELD()
此函數(shù)用于進行任務切換,此函數(shù)本質(zhì)上是一個宏。
2、函數(shù) taskENTER_CRITICAL()
進入臨界區(qū),用于任務函數(shù)中,本質(zhì)上是一個宏。
3、函數(shù) taskEXIT_CRITICAL()
退出臨界區(qū),用于任務函數(shù)中,本質(zhì)上是一個宏。
4、函數(shù) taskENTER_CRITICAL_FROM_ISR()
進入臨界區(qū),用于中斷服務函數(shù)中,此函數(shù)本質(zhì)上是一個宏。
5、函數(shù) taskEXIT_CRITICAL_FROM_ISR()
退出臨界區(qū),用于中斷服務函數(shù)中,此函數(shù)本質(zhì)上是一個宏。
6、函數(shù) taskDISABLE_INTERRUPTS()
關(guān)閉可屏蔽的中斷,此函數(shù)本質(zhì)上是一個宏。
7、函數(shù) taskENABLE_INTERRUPTS()
打開可屏蔽的中斷,此函數(shù)本質(zhì)上是一個宏。
8、函數(shù) vTaskStartScheduler()
啟動任務調(diào)度器。
9、函數(shù) vTaskEndScheduler()
關(guān)閉任務調(diào)度器。
此函數(shù)僅用于 X86 架構(gòu)的處理器,調(diào)用此函數(shù)以后所有系統(tǒng)時鐘就會停止運行,所有創(chuàng)建的任務都會自動的刪除掉(FreeRTOS 對此函數(shù)的解釋是會自動刪除所有的任務,但是在 FreeRTOS 的源碼中沒有找到相關(guān)的處理過程,有可能要根據(jù)實際情況編寫相關(guān)代碼,亦或是 X86 的硬件會自動處理?筆者不了解 X86 架構(gòu)),多任務性能關(guān)閉。可以調(diào)用函數(shù)vTaskStartScheduler()來重新開啟任務調(diào)度器。此函數(shù)在文件 tasks.c 中有如下定義:
void
vTaskEndScheduler
(
void
)
{
portDISABLE_INTERRUPTS();
//關(guān)閉中斷
xSchedulerRunning=pdFALSE;
//標記任務調(diào)度器停止運行
vPortEndScheduler();
//調(diào)用硬件層關(guān)閉中斷的處理函數(shù)
}
函數(shù) vPortEndScheduler()在 port.c 中有定義,這個函數(shù)在移植 FreeRTOS 的時候要根據(jù)實際使用的處理器來編寫,此處沒有實現(xiàn)這個函數(shù),只是簡單的加了一行斷言,函數(shù)如下:
void
vPortEndScheduler
(
void
)
{
configASSERT(uxCriticalNesting==
1000U
L);
}
10、函數(shù) vTaskSuspendAll()
掛起任務調(diào)度器,調(diào)用此函數(shù)不需要關(guān)閉可屏蔽中斷即可掛起任務調(diào)度器,此函數(shù)在文件tasks.c 中定義。
11、函數(shù) xTaskResumeAll()
此函數(shù)用于將任務調(diào)度器從掛起壯態(tài)恢復。
12、函數(shù) vTaskStepTick()
此 函 數(shù) 在 使 用 FreeRTOS 的 低 功 耗 tickless 模 式 的 時 候 會 用 到 , 即 宏 configUSE_TICKLESS_IDLE 為 1。當使能低功耗 tickless 模式以后在執(zhí)行空閑任務的時候系統(tǒng)時鐘節(jié)拍中斷就會停止運行,系統(tǒng)時鐘中斷停止運行的這段時間必須得補上,這個工作就是由 函數(shù) vTaskStepTick()來完成的,此函數(shù)在文件 tasks.c 中定義。
-
嵌入式
+關(guān)注
關(guān)注
5210文章
20680瀏覽量
337362 -
FreeRTOS
+關(guān)注
關(guān)注
14文章
499瀏覽量
67286
發(fā)布評論請先 登錄
Cortex-M內(nèi)核使用FreeRTOS特別注意事項
FreeRTOS實時內(nèi)核使用指南-中文
Zynq中使用FreeRTOS的空閑鉤子函數(shù)時在SDK中的設(shè)置
freertos使用指南與各類型函數(shù)詳細說明
內(nèi)核使用FreeRTOS的特別注意事項有哪些?
關(guān)于FreeRTOS內(nèi)核的配置說明
FreeRTOS任務控制API函數(shù)介紹
FreeRTOS中的API函數(shù)功能分析及調(diào)用方法
從0到1學習FreeRTOS:FreeRTOS 內(nèi)核應用開發(fā):(一)移植FreeRTOS到STM32第一部分
FreeRTOS高級篇7---FreeRTOS內(nèi)存管理分析
FreeRTOS系列第13篇---FreeRTOS內(nèi)核控制
FreeRTOS系列第11篇---FreeRTOS任務控制
FreeRTOS系列第6篇---FreeRTOS內(nèi)核配置說明
FreeRTOS內(nèi)核實現(xiàn)與應用開發(fā)實戰(zhàn)指南
ESP32模塊的FreeRTOS內(nèi)核分配
FreeRTOS中內(nèi)核控制函數(shù)
評論