20.22	 固定ベクタ/例外ベクタ情報(interrupt_fvector[])
 ここでは,RXv1アーキテクチャの固定ベクタ・テーブル(0xFFFFFF80~0xFFFFFFFF番地)/RXv2アーキテクチャの例外ベクタ・テーブルを定義します。
 
 MCUによっては,固定ベクタ・テーブル/例外ベクタ・テーブルには,割り込みハンドラのアドレスだけでなく,エンディアン選択レジスタなども含まれています。
 
 固定ベクタ/例外ベクタの割り込み要因は,すべてカーネル管理外割り込みの扱いとなります。
 
 RI600PXでは,ベクタ・アドレスに対して
表20-10のようにベクタ番号を割り当てています。本定義を行わないベクタの扱いも
表20-10に示します。
 
 なお,固定ベクタ・テーブル/例外ベクタ・テーブルの内容はMCU毎に異なります。詳細は,使用するMCUのハードウエア・マニュアルを参照してください。
 
 また,cfg600pxはここで定義した割り込みに関する割り込み制御レジスタや,割り込み要因等の初期設定のコードは生成しません。初期設定は,アプリケーションで実装いただく必要があります。
 
 表20-10  固定ベクタ・テーブル/例外ベクタ・テーブル
 
 
  
  
    |  |  |  |  | 
  
    |  |  |  | 
 コンパイラのendianオプションに応じて,以下が設定されます。
 
 -	 “-endian=little”の場合 0xFFFFFFFF
 
 -	 “-endian=big”の場合 0xFFFFFFF8
 | 
  
    |  |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  | 
 オンチップ・デバッガIDコード・プロテクト(フラッシュ・メモリ)
 | 
  
    |  |  | 
  
    |  |  | 
  
    |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  |  | 
  
    |  |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  | 
  
    |  |  |  |  | 
  
    | 
 1
 表20-10に記載のベクタ・アドレスは,RXv1アーキテクチャの固定ベクタ・テーブルのアドレスです。RXv2アーキテクチャの例外ベクタ・テーブルのアドレスは,EXTBレジスタによって決まります。EXTBレジスタの初期値は,RXv1アーキテクチャの固定ベクタ・テーブルのアドレスと同じです。2.6.4 節の「FIX_INTERRUPT_VECTORセクション 」も参照してください。
 
 2
 ベクタ21(アクセス例外)にハンドラを定義しないでください。定義すると,アクセス例外ハンドラが起動されなくなります。
 | 
 
 2 )	 割り込みハンドラの開始アドレス(
entry_adderess)
 
 -	 説明
割り込みハンドラの実行開始関数,または固定ベクタ/例外ベクタへの設定値を定義します。
 
 3 )	 pragmaディレクティブに渡すスイッチ(
pragma_switch)
 
 -	 説明
cfg600pxは,
entry_addressで指定された関数を,割り込み関数としてkernel_id.hに#pragma interruptディレクティブを出力します。このpragmaディレクティブに渡すスイッチを指定します。
なお,
entry_addressに数値を指定した場合,およびベクタ番号31(リセット)については,#pragma interruptディレクティブは出力されません。
 
 -	 定義範囲
以下を指定できます。複数指定する場合は,カンマで区切ってください。なお,“ACC”と“NOACC”を同時に指定することはできません。
 
 S:	割り込みハンドラで使用するレジスタ数を制限する“save”スイッチを渡します。
 
 ACC:	割り込みハンドラでACCレジスタを保証する“acc”スイッチを渡します。
 
 NOACC:	割り込みハンドラでACCレジスタを保証しない“no_acc”スイッチを渡します。
 
 -	 備考
ACCレジスタの扱いについては,
表20-9を参照してください。