6792|7

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

看门狗问题请教 [复制链接]

                                 STM32F101C8T6芯片,没有打开看门狗时,JLINK仿真器仿真一直正常,但是今天增加了看门狗看门狗后(IWDG),第一次程序下载后,看门狗运行,JLINK仿真器无法下载,如何解决,请各位赐教 
此帖出自stm32/stm8论坛

最新回复

                                 在执行烧录程序的时候看门狗会恢复运行,如果刚好在执行烧录程序时看门狗超时则仍然会产生复位。根本原因是一旦启动看门狗,则它不能被关闭除非芯片复位,但JLink恰恰不能执行对芯片的复位。相信你是用的IAR的软件,这是IAR IDE的一个局限。如果你使用手工复位,复位后还没等到JLink停止程序运行时,你的程序又打开了看门狗,结果造成你所看到的情况。我让你进入RAM启动状态,正是要回避执行打开看门狗的操作。比较好的解决办法是,在调试带有看门狗功能的程序时,暂时通过一个外部事件(比如一个按键)启动看门狗,这样当手工复位芯片后,看门狗并没有被启动,你的调试操作也就不受影响了。   详情 回复 发表于 2008-6-21 15:16
点赞 关注
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

STM32中可以控制在调试模式下是否需要停止某些模块

看门狗也可以通过程序控制在调试断点处暂停时,是否需要停止还是继续运行,有关细节请看STM32技术参考手册的16.3.3节:http://www.st.com/stonline/products/literature/rm/13902.pdf

其他很多外设,如定时器等,也有这种调试状态下停止的功能。这个功能允许工程师调试相应功能模块。

你的问题就是因为看门狗不断进入复位,使得JTAG无法停止CPU的运行。你可以通过改变BOOT0和BOOT1的配置,使用RAM启动方式,然后通过JTAG下载新的程序更新Flash中的内容。该方法还可以处理因为其它原因不能连接JTAG的情况,如把JTAG口当成I/O口等。
此帖出自stm32/stm8论坛
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

确认一下解决办法

使用香主提供的改变BOOT0 BOOT1跳线方法,终于可以用JLINK下载程序了,非常感谢。

另外想确认一下,如果在看门狗打开的情况下,不想改变启动模式就可以下载程序,是不是只要在程序中设置寄存器DBGMCU_CR的DBG_IWDG_STOP标志就可以了?
此帖出自stm32/stm8论坛
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 

头文件定义中找不到DBGMCU_CR寄存器?

                                 在项目中查找不到DBGMCU_CR寄存器,如果想设置DBGMCU_CR,是不是需要自己定义一个?这个寄存器是不是基本不使用?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 

没有人关注这个问题吗?

                                 没有人在仿真情况下打开看门狗?以后程序下载也有这个问题啊?斑竹可否再出面关注一下这个不太难的问题?维和再Fwlib中找不到DBGMCU_CR相关的定义或者使用函数?
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 

STM32新版的固件库中包含了DBGMCU_CR寄存器

这是最新版固件库的说明手册:http://www.st.com/stonline/products/literature/um/13475.pdf

这是最新版固件库的程序包:http://www.st.com/stonline/products/support/micro/files/um0427.zip

这里还有一个应用笔记说明如何从旧版的固件库升级到使用新版:http://www.st.com/stonline/products/literature/an/14747.pdf
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 

感谢香主的解答,问题进一步深入

非常感谢斑竹的解答,采用跳线改变启动模式的确解决了这个问题,但是在仿真情况下采用改变跳线的方式不太方便,所以尝试使用DEBBUG_MCU的IWDG禁止功能,由于FWLIBV10中没有定义,又不想因为要升级到V20去改变很多外设定义,所以将V20中和DEBUG相关的文件拷贝到V10中,增加相关定义后,程序运行正常。
但是发现JLINK虽然可以下载程序,但是成功率还是没有IWDG不开时高,下载几次中间仍然会出现不成功情况,主要发生在程序下载即将结束的时候(如果不在DEBUG_IWDG禁止时,程序下载基本上停止在下载开始的地方),不知在DEBUG停止IWDG运行时为何还经常下载程序失败,请斑竹继续关注一下。谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 

JLink下载程序是通过在RAM中执行烧录程序实现

在执行烧录程序的时候看门狗会恢复运行,如果刚好在执行烧录程序时看门狗超时则仍然会产生复位。

根本原因是一旦启动看门狗,则它不能被关闭除非芯片复位,但JLink恰恰不能执行对芯片的复位。相信你是用的IAR的软件,这是IAR IDE的一个局限。如果你使用手工复位,复位后还没等到JLink停止程序运行时,你的程序又打开了看门狗,结果造成你所看到的情况。我让你进入RAM启动状态,正是要回避执行打开看门狗的操作。

比较好的解决办法是,在调试带有看门狗功能的程序时,暂时通过一个外部事件(比如一个按键)启动看门狗,这样当手工复位芯片后,看门狗并没有被启动,你的调试操作也就不受影响了。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表