CS+ RX63N スタートアップのアドレスの疑問

RX初心者のIKUZOです、CS+ RX63N スタートアップのアドレスですが、そんなこともわからないのかと言われそうですが、アドバイスお願いできませんか、スタートアップのエントリはResetPRGやPowerON_Reset_PCを割り込みベクターに登録するまではわかるのですが、リセット時の割り込みベクターテーブルの位置というのはRX63Nはどこに位置するのでしょうか?

  • 自分のRX621とHEWの組み合わせを見ると、リンカーのセクションの割り当てに C$VECT  が書いてあるので割り込みベクターテーブルの位置はここで設定しています。
  • リカルドさん
    回答ありがとうございます、自分の場合はCS+ですが、マップ設定を見るとC$VECTですが特に絶対アドレスに設定されていなくて、プロファイルでセクションマップを見るとC$VECT 1024 Others 0xFFF00DB0 0xFFF011AF 4になっているので、正直どこでも良いのかな?という感じですが、自分的には「どこでも良いはずはないでしょう」と思うのです、0xFFF00DB0これが規定の個所なのでしょうか?
  • > リセット時の割り込みベクターテーブルの位置というのはRX63Nはどこに位置するのでしょうか?

    RX63N ではベクタテーブルは固定ベクタテーブルと可変ベクタテーブルの二つがあり、前者は
    FIXEDVECT のセクション名でアドレスが 0FFFFFFD0H 固定、後者は C$VECT のセクション名で特に指定しない限りはアドレスはリンク時に決定し、リセット処理(_PowerON_Reset_PC)の中で割り込みテーブルレジスタ(INTB)に設定されます。
  • fujita nozomuさん
    詳しい説明をしてくださり、ありがとうございます、「FIXEDVECT のセクション名でアドレスが 0FFFFFFD0H 固定」ということは(_PowerON_Reset_PC)はこの固定ベクタテーブルFIXEDVECT から分岐することで間違いないですよね。
  • vecttbl.c の Fixed_Vectors[] を参照してみてください。
  • fujita nozomuさん
    確かに確認いたしました、ありがとうございました
    #pragma section C FIXEDVECT
    void (*const Fixed_Vectors[])(void) = {
    //;0xffffffd0 Exception(Supervisor Instruction)
    Excep_SuperVisorInst,
    //;0xffffffd4 Exception(Access Instruction)
    Excep_AccessInst,
    //;0xffffffd8 Reserved
    Dummy,
    //;0xffffffdc Exception(Undefined Instruction)
    Excep_UndefinedInst,
    //;0xffffffe0 Reserved
    Dummy,
    //;0xffffffe4 Exception(Floating Point)
    Excep_FloatingPoint,
    //;0xffffffe8 Reserved
    Dummy,
    //;0xffffffec Reserved
    Dummy,
    //;0xfffffff0 Reserved
    Dummy,
    //;0xfffffff4 Reserved
    Dummy,
    //;0xfffffff8 NMI
    NonMaskableInterrupt,→NMI
    //;0xfffffffc RESET
    //;<<VECTOR DATA START (POWER ON RESET)>>
    //;Power On Reset PC
    /*(void*)*/ PowerON_Reset_PC→確かにここにありました
    //;<<VECTOR DATA END (POWER ON RESET)>>
    };
    これは固定なので、基本的な設定で変更することはできないですね、
    このベクタテーブルの内容を理解しておくことが大切ですね。