CAT724_wdt

SH7724の内蔵WDTを有効にしてタスクが一定時間応答無くなった場合にリセット再起動させる。

ソースコード

手っ取り早く使いたい人は インストール方法

fileshwdt.tgz

ビルド方法

$ tar xzvf shwdt.tgz
$ cd shwdt/
$ make -C <カーネルをビルドしたディレクトリ> M=$PWD

詳しくは組込みLinuxガイドを参照の事

インストール方法

fileshwdt.ko kernel-3.0.4用ビルド済みドライバ

いちばん深いところの misc ディレクトリを作る

CAT724のrootユーザで
# rommode rw
# mkdir /lib/modules/3.0.4/kernel/drivers/misc
# cp shwdt.ko /lib/modules/3.0.4/kernel/drivers/misc/
# depmode -a
# vi /etc/modules 一行追加
shwdt rwt_msec=1000

パラメータ rwt_msec ウォッチドックタイムアウトmsec指定。省略時は1000msec(1秒)。最大32000msec(32秒)

使用方法

  • デバイスファイル /dev/shwdt を open()するとウォッチドッグがスタートします。
  • 何かしらwrite()するとウォッチドックをクリアします。
  • ドライバを rmmod コマンドでアンロードすると wdtが停止します。

シェル上での実験

# cat > /dev/shwdt     この瞬間にwdtがスタートするので1秒以内に何か書き続ける事
a [Enterキー]
ddd [Enterキー]

C言語で書いたwdtクリアサンプルコード

fileclear_task.c

# sh4-linux-gnu-gcc clear_task.c -O2 -o clear_task

関連