RX610 1M(R5F56106)上で動作しているプログラムを
RX610 1.5M(R5F56107)上で動作させたいと考えております。
環境はHEWを使用しており、セクションの更新は実施しました。(添付画面がセクション設定画面)
ビルドは異常なく完了したのでですが、R5F56107上で動作させると
未定義の可変ベクター割り込み(ベクター0の割り込み)が発生し、システムダウンが発生してしまいます。
ROM容量が異なるMCUへの置き替えにあたり、セクションの設定以外に実施すべき項目があれば教えて頂けませんか。
まはらじゃさん、こんにちは。NoMaYと申します。>可変ベクター割り込み(ベクター0の割り込み)これはBRK命令例外(RXマイコンが0x00を命令コードとして実行した時に起きる0番の無条件トラップ例外)のことですよね。デバッガでスタックの中を調べれば戻り番地(実行した命令コード0x00の次の番地)が分かりますので、そこから逆アセンブルウィンドウでコードを遡っていって原因を調べることになりそうですね。
まはらじゃさん、こんにちは。NoMaYです。すみません。もしやと思ってハードウェアマニュアルを確認したら、RX610では「予約」なのですね。まはらじゃさんの最初の投稿の「未定義」とは、そういう意味だったのですね。失礼しました。
まはらじゃさん、こんにちは。NoMaYです。前言をひっくり返す連投をして、すみません。(私は、今、ちょっと狼狽しております。)ハードウェアマニュアルをBRKの文字列で検索したところ、以下の記載もありました。9.5.7 無条件トラップ1. プロセッサステータスワード(PSW)の内容をスタック(ISP)に退避します。2. PSW のプロセッサモード設定ビット(PM)、スタックポインタ指定ビット(U)、割り込み許可ビット(I)を“0” にします。3. 次の命令のプログラムカウンタ(PC)の内容をスタック(ISP)に退避します。4. INT 命令の場合は、可変ベクタテーブルからINT 命令番号に対応したベクタを取得します。BRK 命令の場合は、可変ベクタテーブルの先頭番地からベクタを取得します。5. 取得したベクタをPC にセットし、例外処理ルーチンへ分岐します。ということは、以下の記載と食い違ってしまっていますね。どちらが正しいのかな、、、10.3.1 割り込みのベクタテーブル表10.4 割り込みのベクタテーブル (1 / 6)名称 ベクタ番号 ベクタアドレスオフセット …すみません、以後は省略します…予約 0 0000h - × × × × × - -予約 1 0004h - × × × × × - -予約 2 0008h - × × × × × - -予約 3 000Ch - × × × × × - -予約 4 0010h - × × × × × - -予約 5 0014h - × × × × × - -予約 6 0018h - × × × × × - -予約 7 001Ch - × × × × × - -予約 8 0020h - × × × × × - -予約 9~15 0024h~003Ch - × × × × × - -