stm32L053R8 死机
求大神或者ST的技术支持帮忙解决,或者分析下在下的问题,stm32L053R8 偶然的死机重启,时间是不定的,可几天 可能几小时,怎么样才能抓的到该问题呢?像这种情况应该先检查供电是否出现瞬间掉电或接触不良 死机的表现是什么?在硬件错误中断中是否增加了打印,大多数是因为数组溢出操作导致进入硬件错误中断,没有开启看门狗导致复位失败。 供电是电池供电,开启了看门狗,现象是时间少了很多,我是1小时保存一次时间,可能回少几十分钟。
大家建议是什么呢,关闭看门狗?加打印? 要先查找重启原因软件导致还是硬件导致 先找到死机的现象,能够把死机重现 如果备用寄存器有空闲,试试备用寄存器:在程序中设立标记1,2,3...,看死机出现几率高的标记,问题的范围就锁定了 先换成USB供电,排除电源的问题,然后,再找来相同的硬件一套,共同测试,排除硬件偶然出错的问题,这种现象是软件的出错的可能性小,没有规律的出错一般多在硬件部分。 一般软件引起重启或死机多由内存溢出或冲突造成,如楼上所说的打印队列,还有中断处置不当皆有可能
而硬件方面我见过晶振(现行MCU很少发生),电源的稳定性(散热,市电浪涌,EMI,接触不良,热欠压过保护),虚焊,器件的半损伤,驱动功能的保护设计不足等等,但不大可能有几小时与几天的区别。
/* In case of interrupt mode is used, the interrupt source must disabled */
__HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
tickstart = HAL_GetTick();
/* Wait till RTC ALRxWF flag is set and if Time out is reached exit */
while(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == RESET)
我想请教下各位,在什么条件下 RTC_FLAG_ALRAWF不会置位,如果会就可以说明死机问题了,我模拟不出来什么情况会。。。。
页:
[1]
2