STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

最近在使用STM32F105单片机做产品,使用SWD接口下载程序,遇到一些问题,得益于网上的一些文章最后得以解决,所以也想把问题解决的过程整理出来,以供出现同类问题的技术人员进行参考,本人没有系统地学习SWD接口下载程序的过程(每天的时间都在赶开发进度,很难静下心来系统地学习一项技术了,惭愧),只是提供一点经验。

问题:使用SWD模式下载程序,遇到
Cannot access Memory (@ 0xe00ffff0, Read, Acc Size: 4 Byte)
RDDI-DAP Error
等问题提示

问题发生以及解决的过程:
开始使用SWD模式下载程序都还比较顺利,
使用CMSIS-DAP调试器


随着开发的程序增加,有一天突然不能正常下载程序了,提示信息如下:
在这里插入图片描述

这个问题应该是经常出现的,通常降低下载的速度即可,但是已经降到10kHz了,还是提示上述的错误
在这里插入图片描述

最后将频率降到5kHz,结果出现下面的错误提示,
在这里插入图片描述

后来在网上查了一下,感谢 夕阳西wisdom的博文,将单片机复位,可以通过硬件或设置编程器软件复位,再次以5kHz频率下载,并设置擦出整片FLASH,
在这里插入图片描述

经过较长时间,出现下面提示

此时可以放开复位,重新按照正常方式进行操作了,此时可以正常下载程序了。
在这里插入图片描述
**分析:**在我们接上SWD调试器时,STM32单片机已经上电复位并运行用户程序了,如果用户程序出现逻辑错误,会影响SWD下载程序的执行,所以会出现下载错误,用户程序可能产生的影响是,中断程序或看门狗启动影响了SWD下载程序的执行,所以通常通过降低编程速度来解决,但是如果出现严重的逻辑错误,即使以最低的速度编程也会超时,此时保持持续的复位,使得单片机上电后不能执行用户程序,这样下载程序就可以向前进行了,下载程序首先是擦除FLASH,擦除可以完成,但是后续的下载未必能正常完成,但在擦除之后再释放复位,此时上电复位后就没有用户程序的影响了,就可以正常下载程序了。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值