こんにちは
やましょうです。
CS+ FOR CAなのですが、
下記のコードを実行するとRAMなぜか0XF1234に飛んでしまうのですが、
void (*TargetRom)(void);
TargetRom = (void *) 0x001234; TargetRom ();
ROMの1234に飛ばすには、何かおまじないが必要なのでしょうか?
以上
よろしくお願いいたします。
チョコです。
何も指定しないと、*TargetRomはnear属性になって、0xFxxxxの領域とみなされます。そのため、0x001234は0xF1234になります。
おそらく、*TargetRomについて、__far宣言が必要なはずです。
CA78K0Rのマニュアルが手元にないので、具体的な設定は確実ではありませんが。
チョコさん
いつもありがとうございます。
試してみましたが、ダメですね。やっぱf1234hに飛びますね。。。(ミスっていました。汗)回避方法はアセンブラで対応すれば行けるので、ありがとうございました。
やましょう さん、こんにちは。NoMaYです。いやいや、これはちゃんとしたやり方がある筈ですよ。ちょっと調べますね。