任意のフラッシュアドレスへのCALL

こんにちは

やましょうです。

CS+ FOR CAなのですが、

下記のコードを実行するとRAMなぜか0XF1234に飛んでしまうのですが、

 void  (*TargetRom)(void);

TargetRom = (void *) 0x001234;
TargetRom ();

ROMの1234に飛ばすには、何かおまじないが必要なのでしょうか?

以上

よろしくお願いいたします。

Parents
  • チョコです。

    何も指定しないと、*TargetRomはnear属性になって、0xFxxxxの領域とみなされます。そのため、0x001234は0xF1234になります。

    おそらく、*TargetRomについて、__far宣言が必要なはずです。

    CA78K0Rのマニュアルが手元にないので、具体的な設定は確実ではありませんが。

  • チョコさん

    いつもありがとうございます。

    試してみましたが、ダメですね。
    やっぱf1234hに飛びますね。。。(ミスっていました。汗)
    回避方法はアセンブラで対応すれば行けるので、
    ありがとうございました。

  • やましょう さん、こんにちは。NoMaYです。

    いやいや、これはちゃんとしたやり方がある筈ですよ。ちょっと調べますね。

Reply Children
No Data