FreeRTOSの詳しい解説:FreeRTOSプログラムの起動手順(基礎編-5)

ベアメタル システムの電源がオンになると、スタートアップ ファイル内のアセンブリによってコンパイルされたリセット関数 Reset_Handler が最初に実行されます。リセット関数は最後に C ライブラリ関数 __main を呼び出します。__main 関数の主な役割は、システム ヒープを初期化することです。そしてスタックし、最後に C ライブラリ関数の main 関数を呼び出します。以下に示すように:

1. タスクを作成する

main() 関数では、FreeRTOS がヒープ メモリの初期化などの初期化を自動的に行うため、FreeRTOS のタスクを直接作成できます。main() 関数 - BSP_Init() でボードレベルのペリフェラルを直接初期化し、xTaskCreate() 関数を使用してタスクを作成します。タスクの作成では、FreeRTOS がシステムの初期化とヒープ メモリの初期化を支援します。

xTaskCreate() 関数内のヒープ メモリの初期化は次のとおりです。

プログラムの説明は次のとおりです。

(1)(2)メモリが初期化されていない状態でxTaskCreate() 関数を呼び出すと、FreeRTOS が自動的にメモリを初期化します。この関数は FreeRTOS によって内部的に呼び出されることに注意してください。今のところ、この関数の実装については気にしません。後で FreeRTOS のメモリ管理の知識について詳しく説明します。これで、FreeRTOS が必要なものの初期化に役立つことがわかりました。システムが必要としています。

おすすめ

転載: blog.csdn.net/m0_38106923/article/details/131595331