新路程------hi3516a watchdog

      最近搞watchdog,差点没搞死,先是喂狗停止后,系统一直卡死,猜测是boot过程中出了问题,因为有网友也遇到过,所以怀疑是spi flash的上电时序慢了,但是虽然怀疑对了,没有办法验证,而且我的spi flash在看门狗重启过程中是不断电的。

   然后就看整个reboot过程,上一篇文章写了,当

void kernel_restart_prepare(char *cmd)
{
blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);   
system_state = SYSTEM_RESTART;
usermodehelper_disable();
device_shutdown();
printk("matt-kernel_restart\n");
__raw_writel(~0, IO_ADDRESS(0x20050004));  //当全局软复位放到这个之前,就会出类似的情况,这个现象对我产生了干扰
syscore_shutdown();
}

hi3516a一共三种复位,por上电复位和rtsn硬件管脚复位,这个看POR_SEL ,我这边的POR_SEL
是低电平也就是全部都是上电复位的。然后看看门狗的输出WDG_RSTN

这个在spec178页写了可以复用,当POR_SEL =0的时候是

SYS_RSTN_OUT

这个功能

这个功能在spec64页写了

功能 1SYS_RSTN_OUT
系统复位输出,复位有效时间约
130ms
0:复位;
但是光这些信息还不够,我看了硬件原理图,这个管脚连到了spi flash的reset pin,看原理图,中间有个电阻是绿色的,可能是没有焊接,对比硬件,看到确实没有电阻在上面,于是开始怀疑这个电阻没上导致spi flash没有复位导致重启失败


最重要的是没有看Hi3516A/Hi3516D 硬件设计用户指南.pdf的11页

POR_SEL 为低电平时,选择内部复位,主芯片上电后由内部 PORPower on
Reset
)电路对整个芯片进行复位(复位脉冲宽度约为 130ms),此时 RSTN 管脚无
效;当选择内部复位时,
RSTN 管脚可悬空处理。
选择内部复位时,为确保系统能正常启动,小系统相关的外设(例如:存放
boot
flash 器件)必须先于 Hi3516A 释放复位信号,或同时与 Hi3516A 一起释放复
位信号,否则可能会出现无法启动等异常情况。


我就是没有复位flash导致的所以最后的原因就是这个电阻没上导致

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值