EDA365电子论坛网
标题:
迅为4418开发板-驱动-看门狗以及Linux-c测试教程
[打印本页]
作者:
孤久厌闹
时间:
2020-9-24 10:41
标题:
迅为4418开发板-驱动-看门狗以及Linux-c测试教程
本帖最后由 alexwang 于 2020-9-24 18:55 编辑
3 ~. s- i2 E; J3 r7 A
* [" s' Y! v+ c
本文档介绍迅为iTOP-4418开发板
看门狗
的驱动配置和测试例程,开发板的看门狗驱动默认没有配
! e4 J, p( h. M6 ~/ o2 Q9 p
置,用户需要配置看门狗之后才能使用测试例程。
/ K! a! m# \8 h- q8 r6 e* R
版本 V1.1:1:1、格式修改;2、增加驱动配置;3、例程修改完善,增加喂狗代码。
% Q4 B9 O8 H4 u
1 驱动简介和配置
' _- m, k2 ~( v: }
进入内核源码目录,如下图所示。
; O6 ~8 |1 w5 ]& j& d
, Q$ X( ?: |7 _) P4 ~
内核看门狗驱动是“drivers/watchdog/nxp_wdt.c”,如下图所示。
8 t! \1 R5 D. P1 P
. e" X0 R7 O k: X
驱动对应的宏 CONFIG_
NXP
_WATCHDOG_DEFAULT_TIME 默认没有配置。使用命令
7 `7 ^' t7 I/ ?- z' f" u
“export ARCH=arm”,然后使用命令“make menuconfig”,如下图所示,选择
m; V, q+ v2 a7 V& t. N. j _( g
“Device Drivers --->”。
0 W8 v$ S; V) Y! J3 y' _
9 F3 |% y1 a" d% r1 m
进入“Device Drivers --->”之后,选择“Watchdog Timer Support --->”,如下
" D, s3 z) o+ k1 j! \
图所示。
, {" b W8 e! t2 G& z
+ f# u3 G2 |+ f8 q
进入“Watchdog Timer Support --->”,选择“NXP Watchdog”和
7 r S* w& r* y; A$ n/ H2 j- P
“/sys/devices/platform/wdt/soft (sysfs interface)”,如下图所示。
4 i. O" r/ D+ x7 y9 H0 H
2 q) H! P8 a& W
看门狗的“do keepalive using watchdog task for cpu reset in task hung state
: a* \' W5 N2 P L' l4 L0 a% I: _
(NEW)”这个功能是在内核里运行一个定时喂狗的进程,如果内核异常,会导致看门狗复
0 B$ u: I" t# f; Y" E+ U5 R
位, 这里我们没有配置,我们使用上层应用程序喂狗的方式。
: \, L- T2 P5 a0 x% c& E
然后保存退出,生成了新的.config 文件,重新编译生成新的内核镜像,烧写到开发板。
# }. k! X, U4 A& i% i& M, ^0 i
如下图所示,重新烧写镜像之后,在串口控制台,可以看到有看门狗的设备节点。
% o8 I. _! a1 m
6 [! N4 K- l; }, k% b. Q9 Z* w
2 测试
' a2 V# @+ W8 j0 [
如下图所示,测试例程编译,然后拷贝到开发板,修改权限。
% U$ g" i2 Z0 d7 G2 }
' G8 o0 y p1 |1 t- M
使用命令“./topeet_watchdogtest /dev/watchdog 10”,参数 1 是看门狗设备节
% }" t, ~: v( O
点 ,参数 2 是看门狗时间,单位是秒,如下图所示。.
/ e' d) z, i& s+ o
6 r& U4 ~; m- \
测试程序运行之后,如下图所示,看门狗设置为 10 秒,开启 9 秒之后,喂狗 10 秒,最
8 S. o0 \) Y2 i* V$ b; b- A2 [0 e
后系统运行 10 秒之后整个系统重启。表明看门狗开启、喂狗重启功能都是正常的。
4 h9 ?2 n8 t% G, c* T" n
3 U- H# v. ~! z& B# U
就是这个开发咯
+ @+ P; F J+ W% d
( A$ g( S1 F' y0 X( ?. j
) q* c" g+ L. ?6 Z9 P
作者:
youOK
时间:
2020-9-24 16:02
看门狗以及Linux-c测试
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2