> 質問1 > ここで2の割り込みで叩く場合、コードやベクタは最終的には > ROMに書かれる事になるでしょうから、暴走した場合にも > 割り込みだけは平然と動き続ける、というケースを心配しているのですが、 > そのようなケースは現実にあり得るのでしょうか? ある。というよりその方が多い。 > 質問2 > 上記とは別に、μITRON系のRTOSを使用したとします。 > この中で周期起動ハンドラでウォッチドッグを叩くとした場合、 > これは確実に暴走を検出できるのでしょうか? 上と同じ理由で全然できません。 タイマハンドラでWDTに餌をやりつつ、各タスクに対してタイマハンドラでWDTのような ことをすればほぼ大丈夫だと思います。 具体的には各タスクにウオッチドッグカウンタ(以下WDC)を設け、割り込みハンドラ中 で「現在実行中」タスクのWDCをデクリメント、0になったら異常検出とし、各タスクで WDCをある値(タイマが10ms間隔で500msにしたければ50)に設定することで「餌をやる」 事にすればいいかと。 なお、「現在実行中」タスクを知らなければならないのと優先度問題が存在するので、 uITRONの周期起動ハンドラやタスクでこれをやるのは×です。 # 周期起動ハンドラではできるかもしれませんが... 舘野雄治<webmaster@xxxxxxxxxxxx> たろすけの部屋<http://www.tarosuke.net/>