2012年9月5日水曜日

組み込みシステム OS無しの開発 その3 割り込み2

ちょっと前回から、時間が経っていますが、

割り込み処理の内部では、割り込み処理でしか出来ない必要最低限の処理を行います。

メイン処理は通常ループしていますが、そこで割り込み処理の内部でセットされた変数を
参照して、 処理を行う事も多いです。

また、確実にタイミングを合わせる必要がある処理に関しては、割り込み処理で直接をします。


 ただし、組込みシステムでは幾つもの割り込みが同時に起きる事を想定しないといけません。

 複数の割り込みが同時に発生した場合の優先順位(ハード的にもついていますが)、割り込みの優先順位の設定が内部レジスタで行えるものもあります。


 タイマー割り込みはよく使う割り込みですが、特にタイマー割り込みの中であれこれと処理をする場合は、処理時間をよく検討して、他の割り込みを処理できない事態を避けないといけません


 ICE等で実行時間を計測して、
・平均的な処理時間と、
・最長の処理時間

を把握する事も大事です

想定外の割り込みオーバーを起こしてしまっている場合は、なかなか原因を特定することが難しいので、注意してください

1万回に1回とか、10万回に1回とかでも、やたらと処理時間がかかっている様だと、どこかに問題があります