お世話になっております.
HEWのROM化支援機能でRAMで実行されている関数からROMに置かれている関数を呼び出すと,関数呼び出しが失敗し,INT_Illegal_codeが呼び出されてしまいます.
使用マイコンは,SH2AのSH7254Rです.
現在の実装詳細をお伝えします.
REPRO と呼ばれるセクションをきりまして,
0x00100000 : PREPRO, CREPRO, DREPRO (内蔵ROM)
0x04000000 : RREPRO, BREPRO(外部RAM)
と,さらにプログラミングのRAM展開場所として,
0x02200000 : PRREPRO, CRREPRO(外部RAM)
とセクションを割り当てています.
そして,HEWの最適化リンカ→出力→ROMからRMAにマップするセクションで,
DREPRO→RREPRO
PREPRO→PRREPRO
CREPRO→CRREPRO
と設定しています.
そして,以下の添付画像のように,
BOOT_LOADER_test関数をRAMに展開し,
その内部でROMにある関数BOOT_LOADER_test_innerを呼び出しているのですが,
処理がそちらのROMの関数へ飛ばず,全く別のアドレスへ飛んでしまい,結局INT_Illegal_codeとなってしまいます.
RAMへ割り付けた関数からROMにある関数を呼び出す方法を教えてくださいませ.
どうぞよろしくお願いいたします.