FreeRTOS システムのカーネル制御機能

FreeRTOS の一部の関数は、システム カーネルによってのみ使用され、ユーザー アプリケーションでは通常は使用できません. これらの API 関数は、システム カーネル制御関数です.

カーネル制御機能

名前が示すように、カーネル制御機能は、FreeRTOS カーネルによって使用される機能です. 通常、アプリケーション層プログラムはこれらの機能を使用しません. これらの機能は、次の図に示すように、FreeRTOS 公式 Web サイトで見つけることができます.
ここに画像の説明を挿入
ここに画像の説明を挿入

1. 関数 taskYIELD()
この関数はタスクの切り替えに使用され、この関数は本質的にマクロです

2. 関数 taskENTER_CRITICAL() が
クリティカル エリアに入り、基本的にマクロであるタスク関数で使用されます。

3. 関数 taskEXIT_CRITICAL() は、
タスク関数で使用され、基本的にマクロであるクリティカル セクションを終了します。

4. 関数 taskENTER_CRITICAL_FROM_ISR() は
クリティカル セクションに入り、割り込みサービス関数で使用されます. この関数は本質的にマクロです.

5. 関数 taskEXIT_CRITICAL_FROM_ISR() は
クリティカル領域を終了し、割り込みサービス関数で使用されます. この関数は本質的にマクロです.

6. 関数 taskDISABLE_INTERRUPTS() は、
マスカブル割り込みをオフにします. この関数は本質的にマクロです.

7. 関数 taskENABLE_INTERRUPTS() は、
マスク可能な割り込みを有効にします. この関数は本質的にマクロです.

8. 関数 vTaskStartScheduler() は、
タスク スケジューラを開始します。

9. 関数 vTaskEndScheduler() は、
タスク スケジューラを閉じます。

10. 関数 vTaskSuspendAll() は
、タスク スケジューラを一時停止します。この関数を呼び出すと、タスク スケジューラを一時停止するためにマスカブル割り込みを閉じる必要はありません。

11. 関数 xTaskResumeAll()
この関数は、タスク スケジューラを一時停止状態から再開するために使用されます。

12. 関数 vTaskStepTick()
この関数は、FreeRTOS の低電力ティックレス モードを使用する場合、つまりマクロ
configUSE_TICKLESS_IDLE が 1 の場合に使用されます。低電力ティックレス モードが有効な場合、アイドル タスクの実行時にシステム クロック ティック割り込みの実行が停止し、システム クロック割り込みの実行が停止する時間を補う必要があります。この作業は関数 vTaskStepTick( )

おすすめ

転載: blog.csdn.net/Dustinthewine/article/details/130098812