打印

案例分享:GDLink无法连接目标芯片原因分析

[复制链接]
1254|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
imdx|  楼主 | 2021-5-27 09:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Cortex-M系列MCU的SWD调试接口使用PA14(SWCLK)和PA13(SWDIO)两线进行调试。PA14和PA13这两个IO的复位状态和其它IO是不同的。GD32E230为例:

  • GPIOA_CTL复位值为0x28000000,即CTL14=10b,CTL13= 10b,即AF功能。
  • GPIOA_OSPD复位值为0x0C000000,即OSPD14=00b,OSPD13=11b,SWDIO速度为50M。
  • GPIOA_PUD复位值为0x24000000,即PUD14=10b,PUD13=01b,SWCLK为下拉,SWDIO为上拉。


如果用户的固件中使用了PA14和PA13两个IO,或者是没有使用这两个IO,但是无意中修改了这两个IO的初始化设置,很容易导致GDLink无法连上目标板
具体表现为:
  • 空芯片可以连接,烧录,调试。
  • 烧录过一次程序,调试器就很难连上芯片了。
  • MDK中调试的时候,程序一运行,马上连接就断了。

直接使用寄存器的用户需要特别注意:不要修改PA14和PA13相关的默认值。使用固件库来初始化GPIO不存在这个问题,推荐使用;如果一定要使用寄存器来初始化GPIO,一定要把寄存器手册吃透。

GDLink-OB调试器用户手册v21.5.27.pdf (1011.1 KB)









使用特权

评论回复
评论
mu牟 2023-3-23 16:42 回复TA
怎么解决这个问题呢 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

121

主题

902

帖子

8

粉丝