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。

  • 相关阅读:
    C# 时间格式总结
    一些学习的网址和资料
    强命名程序集与弱命名类型的区别
    数据库的三大范式
    keydown > keypress > keyup 用法和区别
    小学生四则运算小程序
    IPC$渗透使用
    免杀
    Linux安装Python xlrd、xlwt、xlutils模块
    Linux提权之信息收集
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/8874857.html
Copyright © 2011-2022 走看看