[H8-ML(2054)] Re:ウォッチドッグタイマ
From: 舘野雄治 <webmaster@xxxxxxxxxxxx>
Date: 2002年07月09日(火)17時20分48秒
> 高負荷状態になると低優先度のTASKにCPU時間を与えられないと
> 言う事ならばまさにその通りで優先度ベースと言っている以上
> それは異常な状態では無いのです。問題はCPUの能力を超えて処
> 理が要求される状態の方が異常で、その状態に問題が有るなら
> そんな時はもっと高速なCPUに変更して下さい。
> 既にシステム設計としては間違っているでしょう。

WDTがWDTにとっての「異常状態」を検出(でもシステムとしては誤報)するんだけど...
# 括弧でも付けときゃ良かったかな?

それから、過負荷状態というのは「期限(デッドタイム)までに仕事を完了できないタ
スクが発生する」状態なんだから、高負荷状態というだけではアイドルタスクが回らな
くなるだけで過負荷なワケじゃないでしょ?
たとえ最低優先度タスクだけが回っている状態であっても、アイドルタスクが回らない、
あるいはスリープに入ったりしなければ「高負荷」ですから。


> むしろデバック中にWDTリセットが行われたとすれば何らかの問題
> が有ると判断できるのでその時点でプログラムや処理の問題を見付
> ける事が出来るのでは。

高負荷状態を検出するだけで問題が見つかるのならばその通りでしょう。
しかしながらCPU負荷は0%でなければ100%にしかなりませんよ。


> ひやしたさんの最初の問題はWDTをリセットしたいけれど三角を使う
> とリセットできないと言う問題なので問題の解決にそれ以上の問題を
> 絡める必要は無いと判断して優先度の低い、但し三角を使うTASKより
> は上位のTASKでのリセットを書いたのです。
> WDTをリセットするTASKは他のTASKと依存性を持たなければ良いので
> すからTASK間のデッドロックは全然関係の無い話しだと思うのですが。

デッドロックの話はひやしたさんがそう誤解されているようだから書いたまでです。

また、私の方法は基本的にはWDTをタイマハンドラで叩いておいて、各タスクの時間切
れ検出をタイマハンドラで行うっていうだけで、実行中のタスクに対してのみ行うこと
で実時間でなくタスク時間に対して時間切れ検出ができる方法なんですけど。
# 書き方悪かったかなぁ...


> 組み込みの場合機器の目の前に人が居る訳では無いのでデバック時に
> これら問題を全てクリアにしてから実用とする事を前提として話され
> ている筈です。uITRON3までは。
> 最近になって携帯電話のバグ問題も有ってMMUを使ったメモリプロテクト
> が仕様化された訳ですが。

なぜその話をここで??


舘野雄治<webmaster@xxxxxxxxxxxx>
たろすけの部屋<http://www.tarosuke.net/>
スレッド概略
[2050(R)](起点)
 └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]