マルチスレッド RTOS デバッグ
RTOS でデバッグする場合、CLion は FreeRTOS、 Azure RTOS、 Zephyr のタスク(スレッド)を表示できます。 FreeRTOS の場合、 オブジェクトと ヒープも探索できます。
RTOS スレッドビューを有効にする
に進みます。
RTOS 統合を有効にする チェックボックスを設定し、オプションのリストから選択します。

RTOS 統合は、 実行/デバッグ構成 (例えば Embedded GDB サーバー や OpenOCD ダウンロード & 実行 )で利用できるように設計されています。
例: QEMU(英語) エミュレーターを使用して組み込み GDB サーバー構成をセットアップする方法は次のとおりです。

FreeRTOS/Azure RTOS/Zephyr タスクビュー
上記のような構成をデバッグすると、FreeRTOS/Azure RTOS/Zephyr タスクが デバッグツールウィンドウの スレッド & 変数 ペインに表示されます。

タスクごとに、変数が 変数 ペインに表示されます。
RTOS タスクビューは 対称型マルチプロセッシング (SMP)(英語) でも機能します。 プロセッサーコアは同一で、同じメモリを共有する必要があります。
FreeRTOS オブジェクトビュー
FreeRTOS のオブジェクトを確認するには、 FreeRTOS オブジェクト タブに切り替えてください。 Task テーブルはステータス情報付きのタスクリストを表示し、 Queue テーブルは現在アクティブなキュー、セマフォ、ミューテックスを表示し、 Timer テーブルはソフトウェアタイマーを一覧表示します:

このタブが正しく機能するようにするには、 FreeRTOSConfig.h で次の定義を構成します。
タスク番号とキュータイプを表示するには、
configUSE_TRACE_FACILITYを 1 に設定します。タスク名を正しく表示するために、
configMAX_TASK_NAME_LENをゼロより大きい値に設定してください。タスクスタック情報を表示するには、
configRECORD_STACK_HIGH_ADDRESSを 1 に設定します。ランタイム情報(タスクテーブルのランタイム列)を収集するには、
configUSE_TRACE_FACILITYおよびconfigGENERATE_RUN_TIME_STATSを 1 に設定します。ゼロより大きい
configQUEUE_REGISTRY_SIZEおよびvQueueAddToRegistry()を使用して、キュー、セマフォ、ミューテックスに名前を割り当てます。 タスク(作成時に名前を取得する)とは異なり、キューにはデフォルトで名前がないため、これは便利です。
CLion は、一部の定義が不足している場合に警告を表示します:

FreeRTOS ヒープビュー
FreeRTOS ヒープ タブには、すべてのデフォルトの FreeRTOS メモリ管理スキームの現在のヒープ使用量とメモリブロック割り当てが表示されます。
