2.5.2. ベクタテーブル

すべての ARM システムには、ベクタテーブルがあります。ベクタテーブルは、初期化シーケンスの一部ではありませんが、例外を処理するには必要です。

Example 2.7 のコードでは、他のモジュールでコーディングされているさまざまな例外ハンドラをインポートします。ベクタテーブルは、例外ハンドラへの分岐命令のリストです。

FIQ ハンドラは、アドレス 0x1C に直接配置されます。これにより、FIQ ハンドラへの分岐を実行する必要がなくなるため、FIQ 応答時間が最適化されます。

Example 2.7. ベクタテーブルのコード

        PRESERVE8

    AREA Vectors, CODE, READONLY
    IMPORT Reset_Handler
; import other exception handlers
    ; ...
    ENTRY
    B   Reset_Handler
    B   Undefined_Handler
    B   SVC_Handler
    B   Prefetch_Handler
    B   Abort_Handler
    NOP                 ; Reserved vector
    B   IRQ_Handler
    B   FIQ_Handler
        END

Note

ベクタテーブルは、ラベル ENTRY でマークされています。このラベルによって、このコードがエントリポイントである可能性がリンカに通知されるため、リンク時にイメージから削除されることはありません。ただし、--entry リンカオプションを使用して、イメージ内で使用されるエントリポイントのうちの 1 つを実際のエントリポイントとして選択する必要があります。詳細については、RealView Compilation Tools v3.0 Linker and Utilities Guideを参照して下さい。

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