こんばんわ。平田@マイクロフトです > 最初のうちのプログラムが小さな内は予定どうりの動作をしていた > のですが、大きくなる(ソースで20K、ABSで2Kくらい)に > したがって、思わぬところでループしてしまうような動作をしています。 私も先週3664のキットを購入して遊んでいるところです。秋月キットに付属のア センブラを使わずにgccとgasでプログラムしているので、直接的な回答は出来ないの ですが・・・ ここにかかれた現象で思い出すのはスタックの状態です。プログラムが大きくなっ たり、受信割り込みが不安定と聞くと、スタックが不足していたり、スタックが伸び て他のエリアを破壊している可能性をまず疑いたくなるのですが、そこらへんは大丈 夫ですか? 後は思わぬペリフェラルの割り込みが有効になっていてペリフェラルの不定な動き で変な割り込みが掛かっている可能性はどうでしょうか? 私はデバックの初期段階 は未使用のベクターの先に無限ループの関数を指定して外部から検知できるように (たとえばLEDを点滅させる)用にしています。結構デバック中は意識していない割 り込みが入ったことを検出できて重宝します。 PS.書き込みプログラムですが、秋月キット付属のものは結構制約事項が多く苦労し そうです。このMLで以前紹介されていたFDTが最近3664対応になったので使って いるのですが、動作も速いし、結構便利ですよ。 ここから無駄話 先日μPD72001の受信割り込みではまりました。 72001は受信割り込みに加えて受信エラー割り込みが別に用意されているので すが、ここを処理していなかったので受信エラー発生時にシステムハングのバグを出 してしまいました。 以前使っていた別のチップは受信エラーが発生した場合も受信割り込みが入ってい たので、そのつもりで受信割り込みの先にエラーリセット(受信データポートのリー ド)を入れていたのですが、これが大間違い。 72001は受信エラーが発生すると受信割り込みではなく正直に受信エラー割り 込みが発生していました(^_^;。おかげで受信エラーが発生すると先に書いた未処理 のベクターに入り込んでLEDが部リンクしたままハングしてしまいました。 「通信が大部分順調だけど、数か月に一度ハングアップする」わけのわからないバ グを出してしまい、慌てたのですが、現象を聞くと「未処理ベクターへ飛び込んでい る」事がわかって72001のマニュアルを読み直したら、赤面してしまった(^_^; 恥ずかしい思いをしました(^_^; ================================== 平田祥司 (shouji@xxxxxxxxxxxxx) 株式会社マイクロフト 神奈川県横浜市青葉区あかね台2-11-29 Tel:045-989-2570 Fax:045-989-2571 ==================================