先輩に怒られ寸前?新人救済企画 迷宮入りし た君… 答えが見つ かるかも 電子回路に罪はありません… 悪いのは 100 %あなたです オシロだけで挑む!ダメ出し マイコン基板の間違い探し 後編 割り込みのデバッグや内部状態のモニタ 割り込み 1 の要因 石井 聡 Satoru Ishii 割り込み 2 の要因 XOR 1 割り込み 1 のフラグに使うI /Oポート (出力) 最初と最後に1回 ずつポートをXOR するコードを追加 割り込み 1 のハンドラ オシロスコープ のトリガ XOR 2 XOR 1 割り込み 2 のハンドラ 割り込み 1 の処理終了 割り込み 1 処理中に割り込み 2の 処理に入ったとき“H”になる 割り込み 2 のフラグに使うI /Oポート (出力) それぞれ Lレベルで初期化 しておくニャ! XOR 2 割り込み 2 の処理終了 図 1 多重割り込みの発生はオシロスコープで確認できる プログラムでそれぞれの割り込み処理中のフラグをポートに出力させておく.両方のフラグが立ったら多重処理中だと分かる 組み込みマイコン・システムのソフトウェアも,オ シロスコープなどの測定器をうまく併用すると,非常 に効率よく開発やデバッグできます. 開発環境リソースが乏しくなりがちな,ICE なしで 行う小規模のワンチップ・マイコンのデバッグなどに 威力を発揮するでしょう. プログラム・ソースやデバッガの画面ばかりを注視 するのではなく,柔軟な思考で測定器を開発/デバッ グに活用してみてください. 割り込み動作のデバッグ術 ● 意外と悩む割り込みのデバッグ手法 「割り込み」はマイコン・システムで多用されます. しかしデバッグが難しく,さらに ICE などを使っても 「クリアに簡単にデバッグできる」というものでもな く,便利だけど取り扱いが注意な機能です.特にここ で示す「多重割り込み」や「割り込み応答時間」,「割 2015 年 1 月号 り込み処理時間」などは,実時間システムとして考え てみても,評価も難しいものです. ● 想定外の多重割り込みの発生を見つける 割り込みにより動作がおかしくなるバグは,結構発 生します.割り込みが想定外に多重に発生し,より動 作が複雑になることで,デバッグを困難にしているこ ともあるかと思います. 前回にも示した「I/O ポート XOR 技」を使えば, 多重割り込みの発生状態も観測できます. ▶プログラムでごく短時間のパルスを出力させてオシ ロスコープで確認する技「I/O ポート XOR」 空いている I/O ポートをフラグ的に利用し,プログ ラムの該当部分がきちんと実行されているかを確認す るのが I/O ポート XOR 技です. たとえば PORT_A というアドレスのビット 0 を出 力にして,これをフラグ端子として活用します.割り 込みルーチンには次のようなコードを書きます (ビッ 145
© Copyright 2024