Armadilloフォーラム

Armadillo-IoT G3 においてWDTを制御処理する方法について

yuuki-takeguchi

2023年4月28日 16時28分

お世話になっております。竹口と申します。

現在Armadillo-IoT G3 にてWDTを使用し、プログラムの異常検出を行いたいと考えており、
C言語記述のプログラムで以下機能の実装を試みておりますが、
タイムアウト値が10秒のままで時間指定ができない状態、またWDTクリアも制御できませんでした。
 1.WDTのタイムアウト時間の設定
 2.WDTのクリア処理
 3.WDTの停止処理
 
 上記機能を搭載するにあたって推奨される実装内容などがありましたら教えていただけないでしょうか。

 また、Armadillo内部には/dev/watchdogと、/dev/watchdog0が存在しております。
 以下のフォーラムを確認しますとどちらも同一とのことですがどちらを制御すればよろしいでしょうか?
 https://armadillo.atmark-techno.com/forum/armadillo/3937

以上です。
お手数をおかけしますがよろしくお願いします。

コメント

at_keitaro.takahashi

2023年5月8日 17時03分

高橋です。

> 現在Armadillo-IoT G3 にてWDTを使用し、プログラムの異常検出を行いたいと考えており、
> C言語記述のプログラムで以下機能の実装を試みておりますが、
> タイムアウト値が10秒のままで時間指定ができない状態、またWDTクリアも制御できませんでした。
>  1.WDTのタイムアウト時間の設定
>  2.WDTのクリア処理
>  3.WDTの停止処理
>  
>  上記機能を搭載するにあたって推奨される実装内容などがありましたら教えていただけないでしょうか。

ソフトウェアウォッチドッグを有効にして使用するのが良いかと思います。
有効にする手順については、ご記載いただいたフォーラム(https://armadillo.atmark-techno.com/forum/armadillo/3937)
の手順をご参照ください。

また、以下のフォーラムも参考になるかと思います。
https://armadillo.atmark-techno.com/forum/armadillo/3610

なお、ソフトウェアウォッチドッグを有効にする際に必要なコンフィギュレーションについては、
今後のアップデートにて標準で有効にすることを検討しています。

>  また、Armadillo内部には/dev/watchdogと、/dev/watchdog0が存在しております。
>  以下のフォーラムを確認しますとどちらも同一とのことですがどちらを制御すればよろしいでしょうか?
>  https://armadillo.atmark-techno.com/forum/armadillo/3937

どちらも同じものであるため、同じように使用できます。
同じものが2つある経緯については、linuxが複数のwatchdogに対応した時のcommit
(https://github.com/torvalds/linux/commit/45f5fed30a6460ec58f159ff297a29…)
をご参照ください。

個人的には、使用したいwatchdog(watchdog0、watchdog1など)を明示的に指定して使用するのが良いかと思います。

以上、よろしくお願いいたします。

at_keitaro.takahashi

2023年5月9日 13時45分

高橋です。

追記ですが、ソフトウェアウォッチドッグが有効になっているか確認するには、Armadillo上で以下のコマンドを使用してください。

zcat /proc/config.gz |grep SOFT_WATCHDOG

・有効の場合

root@armadillo:~# zcat /proc/config.gz |grep SOFT_WATCHDOG
CONFIG_SOFT_WATCHDOG=y

・無効の場合

root@armadillo:~# zcat /proc/config.gz |grep SOFT_WATCHDOG
# CONFIG_SOFT_WATCHDOG is not set

また、ソフトウェアウォッチドッグのデバイスファイルは/dev/watchdog1となります。

yuuki-takeguchi

2023年6月5日 15時18分

お世話になっております。竹口です。

ご返信が大変遅くなり申し訳ございません。
ご指摘いただきましたソフトウェアウォッチドッグタイマの設定を有効にする対応策で解決させることができました。
お手数をお掛けしました。ありがとうございました。

> 高橋です。
>
> 追記ですが、ソフトウェアウォッチドッグが有効になっているか確認するには、Armadillo上で以下のコマンドを使用してください。
>
> zcat /proc/config.gz |grep SOFT_WATCHDOG
>
> ・有効の場合
>

root@armadillo:~# zcat /proc/config.gz |grep SOFT_WATCHDOG
> CONFIG_SOFT_WATCHDOG=y
> 

> ・無効の場合
>

root@armadillo:~# zcat /proc/config.gz |grep SOFT_WATCHDOG
> # CONFIG_SOFT_WATCHDOG is not set
> 

>
> また、ソフトウェアウォッチドッグのデバイスファイルは/dev/watchdog1となります。