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

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

问题发生以及解决的过程:
开始使用SWD模式下载程序都还比较顺利,
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决
随着开发的程序增加,有一天突然不能正常下载程序了,提示信息如下:
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

这个问题应该是经常出现的,通常降低下载的速度即可,但是已经降到10kHz了,还是提示上述的错误
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

最后将频率降到5kHz,结果出现下面的错误提示,
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

后来在网上查了一下,感谢 夕阳西wisdom的博文,将单片机复位,可以通过硬件或设置编程器软件复位,再次以5kHz频率下载,并设置擦出整片FLASH,
STM32单片机使用SWD(Serial wire debug)模式 下载程序出错问题解决

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

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

相关文章:

  • 2022-12-23
  • 2021-06-19
  • 2021-12-22
  • 2021-07-11
  • 2021-07-23
  • 2021-06-19
猜你喜欢
  • 2021-07-22
  • 2022-01-05
  • 2021-04-01
  • 2021-09-12
  • 2021-12-19
  • 2022-12-23
  • 2021-09-09
相关资源
相似解决方案