このブログは、FreeRTOSを使用して現在のタスクリスト、タスクステータスの優先度、使用率、およびその他の情報を印刷する方法を記録するために使用されます。
1. vTaskList
vTaskList()を使用して印刷します
- タスク名
- タスクステータス
- 優先度
- 残りのスタック
- タスク番号
使用例は次のとおりです。
void app_main()
{
xTaskCreate(test_task, "test_task", 4096, NULL, 6, NULL);
static char InfoBuffer[512] = {
0};
while (1) {
vTaskList((char *) &InfoBuffer);
printf("任务名 任务状态 优先级 剩余栈 任务序号\r\n");
printf("\r\n%s\r\n", InfoBuffer);
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
対応するログは次のように出力されます。
任务名 任务状态 优先级 剩余栈 任务序号
main R 1 2996 2
IDLE0 R 0 1232 3
test_task B 6 3460 5
Tmr Svc B 1 2684 4
esp_timer B 22 3632 1
2. vTaskGetRunTimeStats
vTaskGetRunTimeStats()を使用して印刷します
- タスク名
- 実行カウント
- 使用率
使用例は次のとおりです。
void app_main()
{
xTaskCreate(test_task, "test_task", 4096, NULL, 6, NULL);
static char InfoBuffer[512] = {
0};
while (1) {
vTaskGetRunTimeStats((char *) &InfoBuffer);
printf("\r\n任务名 运行计数 使用率\r\n");
printf("\r\n%s\r\n", InfoBuffer);
vTaskDelay(2000 / portTICK_PERIOD_MS);
}
}
対応するログは次のように出力されます。
任务名 运行计数 使用率
main 56475 <1%
IDLE0 4091951 48%
test_task 4328356 50%
Tmr Svc 35 <1%
esp_timer 17606 <1%