[H8-ML(5335)] Re: gdbでRAM上でデバッグする際の割り込みについて
From: Yoshinori Sato <qzb04471@xxxxxxxxxxx>
Date: 2005年01月17日(月)10時54分52秒
At Mon, 17 Jan 2005 00:18:54 +0900,
Ktw wrote:
> 
> ktwです。
> 
> 今、CPUのマニュアルを見ながら、リンカースクリプトの.vectorセクションに
> 割り込みベクターをズラズラと書いていて思ったのですが。
> gdbでRAM上のコードをデバッグする際の割り込みの扱いはどうなるのでしょうか?
> 現在、stubとしてredbootを使用しether-net経由でgdbを使っています。
> stub側でもなんらかの割り込みを使っていると思うのですが、
> リンカースクリプト内に割り込みベクタを記述することによって、
> 元々stubで使用している割り込みベクタを上書きしてしまうのではないか?と疑問が湧きました。
> 
> また、内蔵FLASH-ROMの書き換え回数を極力少なくする為にRAM上にコードを転送したいのですが、
> コード本体はRAM上に置けても、割り込みベクターが毎回転送されることによって、
> 結局、FLASH-ROMの書き込みが発生してしまうのではないでしょうか?
> どなたかお教え頂ければ幸いです。

内蔵RAM上ににジャンプテーブルがあるので、そこを書き換えることになります。
具体的には0xfffd20 + ベクタ番号 X 4 のアドレスに jmp @inthandler の命令
コードを書き込むと、そのベクタ番号の割り込みが発生した時に inthandler へ
ジャンプするようになっています。
戻る時は素直に rte です。

このへん、いいサンプルがあればいいんですが…TOPPERS/JSPのスタートアップは
どうかなあ?

あと、0xfffd20は違ってるかもしれないので、実機でベクタテーブルをダンプして
確認してください。

#ということを http://sourceforge.jp/projects/ecos-h8/ のフォーラムににも
#書いた記憶があります。
#ちゃんとまとめていないのが悪いんですが。

-- 
Yoshinori Sato
<ysato@xxxxxxxxxxxxxxxxxxxx>
スレッド概略
[5332(R)](起点)
 └[表示中]
   └[5336(1)]


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


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