sevenchen 发表于 2018-12-19 13:56:48

stm32L053R8 死机

求大神或者ST的技术支持帮忙解决,或者分析下在下的问题,stm32L053R8 偶然的死机重启,时间是不定的,可几天 可能几小时,怎么样才能抓的到该问题呢?

wenyangzeng 发表于 2018-12-19 14:07:07

像这种情况应该先检查供电是否出现瞬间掉电或接触不良

发表于 2018-12-19 14:09:22

死机的表现是什么?在硬件错误中断中是否增加了打印,大多数是因为数组溢出操作导致进入硬件错误中断,没有开启看门狗导致复位失败。

sevenchen 发表于 2018-12-19 14:19:26

供电是电池供电,开启了看门狗,现象是时间少了很多,我是1小时保存一次时间,可能回少几十分钟。
大家建议是什么呢,关闭看门狗?加打印?

NYD 发表于 2018-12-19 14:42:26

要先查找重启原因软件导致还是硬件导致

stm1024 发表于 2018-12-19 14:47:49

先找到死机的现象,能够把死机重现

aiherong 发表于 2018-12-19 19:53:01

如果备用寄存器有空闲,试试备用寄存器:在程序中设立标记1,2,3...,看死机出现几率高的标记,问题的范围就锁定了

五哥1 发表于 2018-12-20 08:04:28

先换成USB供电,排除电源的问题,然后,再找来相同的硬件一套,共同测试,排除硬件偶然出错的问题,这种现象是软件的出错的可能性小,没有规律的出错一般多在硬件部分。

aiherong 发表于 2018-12-25 22:27:29

一般软件引起重启或死机多由内存溢出或冲突造成,如楼上所说的打印队列,还有中断处置不当皆有可能
而硬件方面我见过晶振(现行MCU很少发生),电源的稳定性(散热,市电浪涌,EMI,接触不良,热欠压过保护),虚焊,器件的半损伤,驱动功能的保护设计不足等等,但不大可能有几小时与几天的区别。

sevenchen 发表于 2018-12-28 08:36:55

    /* 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
查看完整版本: stm32L053R8 死机