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

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转串口)作为串口。

时间: 2024-11-15 20:52:31

STM32F767IGT6上电多次重启问题查找与解决的相关文章

三星笔记本R428安装xp win7双系统,切换系统重启才能进入系统解决办法。

三星笔记本 XP win7 双系统切换重启解决方法 三星笔记本有个奇怪的现象,就是装有XP和win7双系统    xp切换到win7.进系统是会重启一次,并且bios回复光驱为第一启动项,win7切换到XP也是一样.但是如果一直只用其中的一个系统时则没有重启的现象. 经过两天的实践我的三星R428本本终于可以一次就切换成功.现将我的经验与大家分享,希望能帮到有需要的童鞋 重启的原因如下: Bios中 advance下的AHCI Mode Control(仅供参考,不同品牌会不一样) 设置为AUT

IIS中访问自己开发的Webservice site就自动停止,尝试重启IIS和重启服务器都不能解决。

今天在加班的时候发现一个奇怪的问题,IIS里面我们自己开发的Webservice site一访问就自动停止.尝试重启IIS和重启服务器都不能解决.后台windows events报错信息是The Module DLL C:\Windows\System32\inetsrv\HipIISEngineStub.dll failed to load.  The data is the error. 后来找到了解决办法我也试了很好用. 1.用管理员身份打开C:\Windows\System32\inet

NagiosQL 3.2无法重启Nagios4.0+的解决办法

由于最近将Nagios从3.X版本升级到了4.0.7,突然发现nagiosQL无法重启Naigos,查了很多资料都是没有能够解决,最后,终于在一个论坛中找到,只是不容易呀. 导致原因:因为nagiosql的重启消息格式还是3.x的,而4.x版本的nagios重启命令格式已经改变. 解决方法: 修改nagiosql的verify.php,使其$strCommandString = "[".mktime()."] RESTART_PROGRAM;".mktime();

Android内存泄漏查找和解决

Android内存泄漏查找和解决 目录: 内存泄漏的概念 一个内存泄漏的例子 Java中"失效"的private修饰符 回头看内存泄漏例子泄漏的重点 强引用与弱引用 解决内部类的内存泄漏 Context造成的泄漏 使用LeakCanary工具查找内存泄漏 总结 一.内存泄漏概念 1.什么是内存泄漏? 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元.直到程序结束.即所谓的内存泄漏. 其实说白了就是该内存空间使用完毕之后未回收 2.内存泄漏会导致的问题 内

linux系统盘使用率达到100%的问题查找和解决方法

linux系统盘使用率达到100%的问题查找和解决方法 今天公司云服务器报警系统发来短信,系统磁盘空间不够,登录服务器进行查看,磁盘使用虑达到100%,       感觉比较奇怪,所存的东西并不多,怎么会将磁盘占满,而且数据都是存在数据盘下,通过简单的进行查看,总体有了些思路,分为三步走: 一.先对系统盘下所有文件大小进行统计,是否真的是数据存储以达到了磁盘空间 当时对系统盘所有文件进行统计,总共才5.5G的大小,对数据盘进行统计总共才10G左右,就算数据盘的数据算到系统盘下,也没有超过20G,

Idea使用记录--每次修改JS文件都需要重启Idea才能生效解决方法

最近开始使用Idea,有些地方的确比eclipse方便.但是我发现工程每次修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat这样的确不方便.我想Idea肯定有设置的方法,不可能有这么不方便的功能存在. 需要在Tomcat的设置中为: on 'update' action:当用户主动执行更新的时候更新 快捷键:Ctrl + F9 on frame deactication:在编辑窗口失去焦点的时候更新 你可以根据自己的需求进行设置,我这里两个都有设置. 如果你的工程中没有

mount --bind 重启后失效的解决办法

vsftp不支持软链接,可以用mount来支持不同的目录结构 mount --bind /home/www/web/ROOT/img/upload /ftp/private/upload 重启后失效. 解决办法: 编辑fstab,重启后自动mount vi /etc/fstab /home/www/web/ROOT/img/upload /ftp/private/upload none bind 0 0

使用kubernetes创建容器一直处于ContainerCreating状态的原因查找与解决

运行容器的时候,发现一直处于ContainerCreating状态,悲了个催,刚入手就遇到了点麻烦,下面来讲讲如何查找问题及解决的 运行容器命令: [[email protected]149 ~]# kubectl run my-alpine --image=alpine --replicas=2 ping www.baidu.com 查看pods状态 1 [[email protected]149 ~]# kubectl get pods 2 NAME READY STATUS RESTART

安装SQL提示重启电脑失败,解决办法

1. 打开注册表, 找到HKEY_LOCAL_MACHINE-->software-->Microsof-->MSSQLServer...统统删掉 2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager目录,在右侧找到PendingFileRenameOperations.删除. 重启电脑,安装.