平田@マイクロフトです > 1,関数を自作:内部でウォッチドッグを叩く機能を持った関数を自作します。 > 2,割り込みで叩く:ITUなどの割り込みを使用する。 > 3,外部に周期の長いウォッチドッグICを実装する。 > #まぁ、この程度しか思いつきません。 2.WD用のハードを用意する^_^; 浮動小数点演算のソースが公開されていれば1.でもいいけど自作するとなると手間が かかるのと、その関数がどんな値を与えても正確に動くかどうかを検証するのが大変 ですね。 割り込みでたたくのはお勧めしません。ひやしたさん(我が家に来て欲しい・・・ エ アコン入れても暑いよー(^_^;)が書かれているように、本体が暴走しても往々にして 割り込みは動いたりします。特に割り込み応答がROMの場合はスタックがどこにあろ うと、データが壊されていようと応答し続ける可能性が高そうだし・・・ > 質問2 > 上記とは別に、μITRON系のRTOSを使用したとします。 > この中で周期起動ハンドラでウォッチドッグを叩くとした場合、 > これは確実に暴走を検出できるのでしょうか? 「確実に」となると難しいと思います。「暴走」をどのように考えるかにもよるのです が、特定のタスク(たとえばモーターに電圧を供給しているとか、キルスイッチを監 視しているタスクとか)が思わぬ事象待ちでデッドロックしていても周期起床ハンド らは動いていそうですね。 単に暴走を検知したいのなら、はまやんさんが書かれているように、プライオリ ティーの低い周期起床タスクでリセットするか(TRONは使ったことがないので知らな いのですが)アイドルタスクが作成できるのならそこでくるくる回せば検知できると 思います。(あっ でも三角関数演算が200mSecもかかるんじゃだめか・・・ いっその こと45度程度のテーブルつくって、参照すればいかがですか?) ================================ 平田祥司(shouji@xxxxxxxxxxxxx) 株式会社マイクロフト(www.microft.co.jp) 神奈川県横浜市青葉区あかね台2-11-29 Tel:045-989-2570 Fax:045-989-2571 ================================