搜索
bottom↓
回复: 16

请教一个ARM、Linux上看门狗的问题,谢谢。

[复制链接]

出0入20汤圆

发表于 2018-3-5 22:52:38 来自手机 | 显示全部楼层 |阅读模式
1、用新塘的nuc972+Linux。
2、内核+yaffs2的文件系统挂载完要10秒以上。
3、内置硬件看门狗只有8秒。
4、现在的做法是uboot中关闭看门狗,等文件系统挂载完后,启动看门狗服务。

问题:上电到看门狗服务启动前,未知原因挂掉了,如何恢复?

ps:尝试过initramfs+yaffs2,但是把Python解释器放在yaffs2中,由initramfs挂载后,运行有问题,文件有损坏,改成内核+yaffs2,就没问题。

出0入20汤圆

发表于 2018-3-5 23:47:15 | 显示全部楼层
软件判断kernel起来没,写到看门狗中断里面。

出0入0汤圆

发表于 2018-3-6 07:33:33 | 显示全部楼层
外置看门狗

出0入0汤圆

发表于 2018-3-6 08:14:09 | 显示全部楼层
外狗.tpl5010,不谢,昨天刚刚........

出0入20汤圆

 楼主| 发表于 2018-3-6 21:05:06 | 显示全部楼层
机械码农 发表于 2018-3-6 08:14
外狗.tpl5010,不谢,昨天刚刚........

嗯,我下一次改板子把这个加上。

出0入0汤圆

发表于 2018-3-7 07:34:39 来自手机 | 显示全部楼层
楼主有新塘最新的linux bsp吗?

出0入0汤圆

发表于 2018-3-7 09:20:07 | 显示全部楼层
硬件上,芯片端有一个看门狗的配置引脚,不能配置错;在u-boot中,把看门狗关闭,保存到环境变量中;内核挂载文件系统完成后,在应用程序或者系统服务把看门狗打开,然后定时喂狗就可以了;

出0入0汤圆

发表于 2018-3-9 18:36:28 | 显示全部楼层
一般是要从boot就要开始打开看门狗,然后一直feed dog

出0入20汤圆

 楼主| 发表于 2018-3-9 22:56:52 来自手机 | 显示全部楼层
广轻电气091 发表于 2018-3-7 09:20
硬件上,芯片端有一个看门狗的配置引脚,不能配置错;在u-boot中,把看门狗关闭,保存到环境变量中;内核挂 ...

现在是在uboot中把狗关了,系统起来应用开狗喂,但是这样的话,启动阶段意外挂掉了就没救了,我打算再加个外置看门狗。

出0入0汤圆

发表于 2021-7-27 17:05:00 | 显示全部楼层
redworlf007 发表于 2018-3-9 22:56
现在是在uboot中把狗关了,系统起来应用开狗喂,但是这样的话,启动阶段意外挂掉了就没救了,我打算再加 ...

请问一下,我在测试nuc972的看门狗,用的是demo提供的测试程序。为什么看门狗超时时整个系统死机,而不是重启?

出0入20汤圆

 楼主| 发表于 2021-7-27 17:26:03 来自手机 | 显示全部楼层
EddieZhu 发表于 2021-7-27 17:05
请问一下,我在测试nuc972的看门狗,用的是demo提供的测试程序。为什么看门狗超时时整个系统死机,而不是 ...

不喂狗就重启了。

出0入0汤圆

发表于 2021-7-27 17:51:47 | 显示全部楼层
redworlf007 发表于 2021-7-27 17:26
不喂狗就重启了。

我的板子不重启,但是时间到了死机。nuc972的PA3是接地的,和这有关系吗?

出0入20汤圆

 楼主| 发表于 2021-7-27 19:28:56 | 显示全部楼层
EddieZhu 发表于 2021-7-27 17:51
我的板子不重启,但是时间到了死机。nuc972的PA3是接地的,和这有关系吗? ...

Pa3要跳开吧,你看看手册。

出0入0汤圆

发表于 2021-7-27 23:44:34 来自手机 | 显示全部楼层
8秒时间很长了,如果不改硬件的话,可以在启动过程喂狗,找到系统启动的几个时间点,把喂狗指令放到这些内核组件加载的init 里,加5个就够了吧

出0入0汤圆

发表于 2021-7-28 09:18:53 | 显示全部楼层
redworlf007 发表于 2021-7-27 19:28
Pa3要跳开吧,你看看手册。

u-boot里怎么设置关闭看门狗呢?

出0入20汤圆

 楼主| 发表于 2021-7-28 16:27:48 | 显示全部楼层
EddieZhu 发表于 2021-7-28 09:18
u-boot里怎么设置关闭看门狗呢?

evn.txt 里面加上关狗

baudrate=115200
bootdelay=1
stderr=serial
stdin=serial
stdout=serial
setspi=sf probe 0 300000000
loadkernel=sf read 0x7fc0 0x200000 0x800000
bootcmd=run setspi;run loadkernel;bootm 0x7fc0
watchdog=off

出0入0汤圆

发表于 2021-7-29 10:27:58 | 显示全部楼层
redworlf007 发表于 2021-7-28 16:27
evn.txt 里面加上关狗

baudrate=115200

嗯,这个方法可以。但是我后来修改u-boot代码实现的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-10-6 21:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表