はじめまして、島田といいます。
秋月の 3069/8019 ボードで遊んでおります。
自前の ne2000 ドライバを書いて、ようやく ping に応答できるようになりました。
よろしくお願いします。
で、金さんの件ですが、ソースを見た限りでは
>void int_wovi(void) /* interval timer interrupt */
>{
の関数が割り込み処理である事が指定されていませんが、
その点はどこか他の場所で指定されていますか。
もし指定しなかった場合は、コンパイラは通常の関数と同様に
RTS 命令でサブルーチンからリターンするようにアセンブリコードを
組み立てると思います。しかし割り込み処理からのリターンでは RTE を
使わなければなりません。
RTS と RTE ではスタックからリターンアドレスを取り出す位置が
異なりますので、割り込み処理から RTS で復帰しようとすると明かに
変なアドレスへジャンプする事になります。
金さんの場合、その変なアドレスにジャンプした結果 main() が
初めから実行されているのではないかと推測します。
Shimada Naoki
nshimada@xxxxxxxxxxxxxxx