4.53 __vectab_stack_and_reset

__vectab_stack_and_reset は、sp および pc の初期値をベクタテーブルに配置するためのライブラリセクションです。ベクタテーブルの開始アドレスは、Cortex-M1 および Cortex-M3 などの M プロファイルプロセッサの組み込みアプリケーションでは 0 です。

__vectab_stack_and_reset を使用するには、ソースコードに main() 関数が必要です。main() 関数がない状態で、スキャッタファイルに __vectab_stack_and_reset セクションを配置すると、以下のようなエラーが生成されます。
エラー: L6236E:セレクタと一致するセクションがありません。FIRST/LAST になるセクションがありません
通常の起動コードをバイパスする場合(つまり、意図的に main() 関数を使用しない場合)は、__vectab_stack_and_reset を使用せずにベクタテーブルを設定する必要があります。
次のセグメントはスキャッタファイルの一部です。これには、__vectab_stack_and_reset を使用して、ベクタテーブルのアドレス 0x0 および 0x4 の位置に、sp および pc の初期値を配置する方法が示されています。
;; 最大 256 の例外(256*4 バイト == 0x400)VECTORS 0x0 0x400 {     ; 先頭の 2 エントリはライブラリが提供     ; 残りのエントリはユーザが exceptions.c で定義     * (:gdef:__vectab_stack_and_reset, +FIRST)     * (exceptions_area) } CODE 0x400 FIXED {      * (+RO) }
関連する概念
1.11.3 スタックポインタの初期化とヒープの上下限
関連情報
スキャッタロードについて
非機密扱いPDF file icon PDF 版ARM DUI0808CJ
Copyright © 2014, 2015 ARM.All rights reserved.