ESP-IDFのFreeRTOSについて
ESP-IDFのFreeRTOSについて ESP-IDFのFreeRTOSについて FreeRTOS 本家の説明とESP-IDFのFreeRTOSに色々食い違いがあって「なんでだぁっ?」って思ってたんですが、当たり前の話でESP-IDFにはカスタマイズされたFreeRTOSがデフォルトで使用されていて違ってて当たり前だったんですね。 ESP-IDFのFreeRTOS の説明を読んでみれば一目瞭然でした。 例えばノーマルなFreeRTOSでは vTaskStartScheduler() を呼び出すのは必須ですが、ESP-IDFの場合は既に実行されていて、呼び出すなと書いてあります。 タスク一覧を取得するvTaskListを実行してみると以下のように返ってきます。 タスク名 状態 スタック空き main X 1 1764 4 0 IDLE R 0 1036 6 1 IDLE R 0 1232 5 0 esp_timer S 22 3576 3 0 ipc1 S 24 480 2 1 ipc0 S 24 480 1 0 R=準備完了, S=一時停止, B=ブロック, D=削除済, X=説明なし 既に幾つもタスクが実行されてますね。 ちなみに app_main() もタスクのようです上記のmainがapp_main()なのだと思われます。 vTaskListの実行方法 vTaskListも最初ビルドできなくてオロオロしましたが、menuConfigで以下をチェックすれば使えるようになります。 configGENERATE_RUN_TIME_STATS Enable display of xCoreID in vTaskList 上記の順番でチェックしないとvTaskListの方が出てきません。