[H8-ML(2965)] Re: h8のWDTについてのsos
From: Shimada Naoki <nshimada@xxxxxxxxxxxxxxx>
Date: 2003年03月22日(土)22時01分31秒
はじめまして、島田といいます。
秋月の 3069/8019 ボードで遊んでおります。
自前の ne2000 ドライバを書いて、ようやく ping に応答できるようになりました。
よろしくお願いします。

で、金さんの件ですが、ソースを見た限りでは

>void int_wovi(void) /* interval timer interrupt */
>{

の関数が割り込み処理である事が指定されていませんが、
その点はどこか他の場所で指定されていますか。

もし指定しなかった場合は、コンパイラは通常の関数と同様に
 RTS 命令でサブルーチンからリターンするようにアセンブリコードを
組み立てると思います。しかし割り込み処理からのリターンでは RTE を
使わなければなりません。

RTS と RTE ではスタックからリターンアドレスを取り出す位置が
異なりますので、割り込み処理から RTS で復帰しようとすると明かに
変なアドレスへジャンプする事になります。
金さんの場合、その変なアドレスにジャンプした結果 main() が
初めから実行されているのではないかと推測します。


   Shimada Naoki
   nshimada@xxxxxxxxxxxxxxx
スレッド概略
[2960(R)](起点)
 └[表示中]


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


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