2.5.1. 初期化シーケンス

Figure 2.12 は、ARM アーキテクチャベースの組み込みシステムで考えられる初期化シーケンスを示しています。

Figure 2.12. 初期化シーケンス

初期化シーケンス

リセットハンドラは、システムの起動直後に実行されます。$Sub$$main() というコードブロックは、メインアプリケーションに入る直前に実行されます。

リセットハンドラは、アセンブラでコーディングされた小さなモジュールで、システムのリセット時に実行されます。リセットハンドラは、少なくとも、アプリケーションが実行されているモードのスタックポインタを初期化します。キャッシュ、密結合メモリ(TCM)、メモリ管理ユニット(MMU)、メモリ保護ユニット(MPU)などのローカルのメモリシステムを使用するコアの場合は、この初期化プロセスの段階で何らかの設定を行う必要があります。通常、実行後にリセットハンドラが __main に分岐して、C ライブラリ初期化シーケンスを開始します。

割り込みのイネーブルなど、システムの初期化にはいくつかのコンポーネントがあり、一般的には C ライブラリ初期化コードの実行終了後に実行されます。$Sub$$main() という名前のコードブロックは、メインアプリケーションが実行される直前に、これらの処理を実行します。

初期化シーケンスのさまざまなコンポーネントの詳細については、「ベクタテーブル」を参照して下さい。

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0203GJ
Non-Confidential