23_STM32调试和下载:SW配置

STM32调试和下载:SW配置

一、问题

在参与STM32外围电路设计时,发现Boot引脚没有跳线或开关,也就是不能设置Boot引脚。ISP(In System Programming)功能从而也不能使用。

  • SWDIO/SWCLK引脚被引出,该引脚在未配置的情况下,能否用来烧录程序?
  • 如果SW引脚被禁用(复用为其他功能),是否有“挽救”办法?

二、办法

查阅 参考手册Debug support(DBG)章节

  • STM32提供SWJ-DP(融合SW 、JTAG的)
  • JTAG-Debug Port,默认开启。
  • SW-Debug Port,可认为默认开启。在TMS/TCK( SWDIO/SWCLK)发送特定序列信息后启动SW-Debug Port。在keil调试选择使用SW后,该步骤自动进行。
  • 不同状态下可用的Debug Ports。Release表明该引脚复用为其他功能,不能用来Debug
    在这里插入图片描述
    上图可见,复位状态下SWJ-DP调试引脚都是可用的。但在disable时(复用为其他功能),调试引脚不可用

查阅博客、帖子等

多篇文章说明,手动复位+SW下载可在SWD被禁用情况下烧录程序。经测试,具有一定的成功几率,不是很稳定

开展实验

  1. 未配置SWD引脚时(Reset State),尝试SW下载和调试
  2. 配置SWD引脚时,尝试SW下载和调试
  3. 配置SWD引脚为其他复用功能时,尝试SW下载和调试

三、结论

1. SWD引脚未配置(Reset State)或配置为SWD

能正常使用SWD功能,包含下载和调试

2. SWD默认引脚配置复用为其他功能

在STM32执行主程序时,引脚会被复用为其他功能,不再具有SWD下载和调试功能

在 引脚复用功能 配置完成前,SW仍为默认引脚配置。 这是复位后能够烧录程序的原因。但也由于这一段时间很短暂,所以手动复位时烧录失败经常发生。

3. SW禁用(复用为其他)时如何烧录?

  1. 使用其他方式烧录,如ISP烧录。更改启动时boot0,boot1引脚电平,从厂商预置的BootLoader启动,即ISP(In Application Programing)。(稳定可行)
  2. 复位+SW烧录
    1. 手动复位。先按下reset按键,再点击执行下载命令,放开reset按键。(概率成功)
      1. 放开reset按键与点击下载命令接近同时,略滞后。实际上是抓住上电后 至 配置复用前的时间间隔。
      2. keil中配置Debug–Setting:Max Clock选最低档5kHZ;Flash Download仅选择Erase Sectors(降低时钟频率和擦除操作,或可增加烧录成功几率)
    2. 调试器复位。连接调试器(STlink Jlink等)的复位引脚到STM32的复位引脚(推测能成功,未测试😂)
      1. keil中配置Debug–Setting。Connect&Reset Options:Connect [under Reset] Reset [Reset Pin]
      2. 参考:Keil5,Debug调试模式下,Connect& Reset Options的操作你真的懂了吗?

参考手册Debug support(DBG)章节描述较为详细,由于时间原因我仅阅读了部分内容,如有纰漏烦请指正!😆

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值