__vectab_stack_and_reset

__vectab_stack_and_reset は、sp および pc の初期値をベクタテーブルに配置するためのライブラリセクションです。

__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)
   }

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0809AJ
Non-ConfidentialID061814