zoukankan      html  css  js  c++  java
  • 430软狗不喂狗后系统起不来的问题

    430软狗不喂狗后系统起不来的问题

    太阳能版本的程序,想同时开启硬狗和软狗。
    但,软狗一直没有调试成功。

    尝试1:使用和低功耗版本的Init_Timer函数。
    情况描述:
    系统一直重启,喂狗和不喂狗,都会重启。
    调试进去,发现程序停止在地址 0004 处。
    原因是gs_timerHook的值不知在啥时被改为0了。
    因此,在Timer0_A1_ISR函数中调用时发生了错误。

    尝试2:使用和正常版本的Init_Timer函数。
    系统看似运行正常。
    但,一旦发生 STOPSOFTDOG指令停止喂狗,
    系统马上停止,但并不会重启。
    调试进去,发现和尝试1的类似,也是:
    程序停止在地址 0004 处。
    原因是gs_timerHook的值不知在啥时被改为0了。
    因此,在Timer0_A1_ISR函数中调用时发生了错误。

    终于把这个问题解决了!!!
    过程:
    通过iar调试器,在变量gs_timerHook所在的内存下断点,查看究竟是什么地方会改变它的值,把它清零的。
    终于跟踪到,原来是,关了喂狗之后,系统重启了,而在重启的过程中会把内存先清零,因此导致的gs_timerHook被清零。
    解决办法:
    在调用gs_timerHook时判断下其是否为0。

  • 相关阅读:
    消息队列简介
    docker快速构建oracle数据库
    MySQL读写分离之amoeba
    Python替换文件内容
    Nginx图片及样式文件不记录访问日志
    shell方式切割tomcat日志
    split命令
    orange安装文档
    openresty安装文档
    MySQL中kill所有慢查询进程和锁表进程
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/8874857.html
Copyright © 2011-2022 走看看