码迷,mamicode.com
首页 > 其他好文 > 详细

STM32F767IGT6上电多次重启问题查找与解决

时间:2017-07-19 17:39:35      阅读:898      评论:0      收藏:0      [点我收藏+]

标签:sylixos 操作系统 stm32

1.重启现象描述
   
STM32F767IGT6在烧写SylixOS成功后,重新上电会出现多次重启的现象,初次定位可能是看门狗或者是系统运行过程中内存溢出导致的重启。
2.重启问题查找
    为了解决多次重启问题,查找STM32 M7的芯片手册中,得知STM32 M7有两种看门狗:
    第一种:独立看门狗(IWDG),此独立看门狗外设可用于检测并解决由软件错误导致的故障,并在计数器达到给定的超时值时触发系统复位。
    第二种:系统窗口看门狗(WWDG),系统窗口看门狗通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
    查看两种看门狗的配置信息的得知在系统没有初始化的情况下,看门狗是默认关闭的(也可以通过器件选项位使能“硬件看门狗”功能,上电时将自动使能看门狗,在这里没有实现)。
    通过st-link Utility工具读取板卡的寄存器的值也可以看出看门狗没有被开启。
    如图 2-1 使能IWDG所示。

   技术分享
图 2-1 开启IWDG


    读取IWDG_KR寄存器得知IWDG未开启,IWDG_KR寄存器地址为0x40003000, 如图 2-2 IWDG_KR的值所示。


技术分享
图 2-2 IWDG_KR的值


    如图 2-3 使能WWDG,图 2-4 WWDG_CR寄存器所示。


技术分享
图 2-3 使能WWDG


技术分享
图 2-4 WWDG_CR寄存器


    读取WWDG_CR寄存器的WDGA得知WWDG未开启,WWDG_CR寄存器地址为0x40002c00,如图 2-5 WWDG_CR的值所示。

   技术分享
 图 2-5 WWDG_CR的值


    从芯片手册中得知,有以下5种情况时会发生系统复位:
    1. NRST 引脚低电平(外部复位);
    2. 窗口看门狗计数结束(WWDG 复位);
    3. 独立看门狗计数结束(IWDG 复位);
    4. 软件复位(SW 复位);
    5. 低功耗管理复位 ;
    如图 2-6 系统复位所示。


  技术分享
图 2-6 系统复位


    软件可以通过查看RCC_CSR寄存器来确定是什么原因导致复位。如图 2-7 RCC_CSR寄存器所示。


技术分享
图 2-7 RCC_CSR寄存器


   位 31 LPWRRSTF:  低功耗复位标志 。
   位 30 WWDGRSTF:窗口看门狗复位标志 (Window watchdog reset flag)
   位 29 IWDGRSTF:  独立看门狗复位标志 (Independent watchdog reset flag)
   位 28 SFTRSTF:     软件复位标志 (Software reset flag)
   位 27 PORRSTF:    POR/PDR 复位标志 (POR/PDR reset flag)
   位 26 PINRSTF:     引脚复位标志 (PIN reset flag)
   位 25 BORRSTF:    BOR 复位标志 (BOR reset flag)
   位 24 RMVF:         清除复位标志 (Remove reset flag)
   读取RCC_CSR可得知系统复位原因,RCC_CSR寄存器的地址为0x40023874,如图 2-8  RCC_CSR寄存器的值所示。


  技术分享

图 2-8  RCC_CSR寄存器的值

    从图 2-8中可知系统复位原因是引脚复位引起的。
3.重启问题的解决
    咨询供应商得知,当上电时如果USB_232属于连接状态,则会引发多次引脚复位,此问题属于硬件问题,无法通过软件解决。解决方法不通过USB_232(USB转串口)作为串口。

本文出自 “逍遥蓝云的家” 博客,请务必保留此出处http://xiaoyaolanyun.blog.51cto.com/2586643/1948900

STM32F767IGT6上电多次重启问题查找与解决

标签:sylixos 操作系统 stm32

原文地址:http://xiaoyaolanyun.blog.51cto.com/2586643/1948900

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!