[H8-ML(5092)] Re: 関数名では無くアドレスに直接飛ぶには
From: hamayan <hamayan@xxxxxxxxxxxxxxxx>
Date: 2004年11月18日(木)17時32分46秒
hamayan です。

"Koji> 質問で御座います。
"Koji> 
"Koji> void Func_0(void)
"Koji> {
"Koji>     Func_1();
"Koji>     return;
"Koji> }
"Koji> 
"Koji> として、Func_1()がロム領域の600番地から始まっていたとした場合。
"Koji> 
"Koji> void Func_0(void)
"Koji> {
"Koji>     /* 600番地から始まるループ(関数)に飛びなさい */
"Koji>     return;
"Koji> }
"Koji> 
"Koji> 上のコメント部、/*〜*/をC言語で表現できませんでしょうか?

セクションを別けて、リンカーで解決する。のは駄目なのでしょうか?。

完全に受け売りですが、RAM上のプログラムからROM上の関数を呼び出す
方法として、

#define  Func_1  ((void (*)(void))0x600)
と宣言して置き、

void Func_0(void)
{
  Func_1();
  return;
}

で普通に利用する。

この方法は、ルネサスのデバックモニタのHELPに記載されています。
スレッド概略
[5091(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]