Invalid ROM Table 终极解决方案

本文分享了一次使用SWD接口下载程序时遇到的问题及解决过程。主要问题源于时钟不匹配和下载线过长导致的信号不稳定。解决办法包括调整程序与硬件时钟一致,缩短下载线长度,降低下载频率至500kHz。这些经验对于遇到类似问题的开发者来说具有较高的参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Before

最近入手一块儿硬石的开发板,其之留出SWD接口用作下载仿真接口
So 满心欢喜的将jlink和转SWD的转接板一连接就去下程序了
然鹅~~
我看到的竟是如此画面
在这里插入图片描述
真是一口老血涌上心头
好吧 纵横江湖这么几天~~ 我从未遇到这样的问题
只能上网求助

网上解决办法

1. 时钟不匹配导致

啥意思呢 就是你的程序里面写的是25M的外置晶振 但是 板载确实8M晶振 使得芯片与程序冲突

这个就简单了 改了程序和板子对应就好了

通过 把BOOT0置1,BOOT1置0,keil配置修改一下:进入Debug–Settings–Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉,然后按复位键,再点击下载,下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。目的就是一开始让芯片进入bootloader程序,此时就可以进行下载程序了。如果没有复位按键,那么就可以先将BOOT0接入高电平(默认BOOT0,BOOT1一般是通过电阻接低电平的,所以此时只需将BOOT0引出接入高电平),然后上电(相当于复位了),最后点击下载,当程序正在下载时就可以不接高电平了。
我举手说明一下 我的程序和板子是一致的 so 我的原因不在这里 若是这个问题导致的 就按照上面的步骤来就好了

2. 下载线太长了 -------------> 敲重点了

出现这种问题 那就是说我们采用的下载线可能是通过排线连接的JTAG2SWD的转接板导致的
排线不可靠 这时候的解决办法就是

  • 换用可靠的压接排线
  • 将下载线剪短
  • 将下载频率减小 —> 当然 这个是最简单的 我就是改到500kHz才搞定的
    在这里插入图片描述
    就是图中画圈圈的位置 我改到了500kHz
    *然后这问题就解决了~~~~~*

可以继续嗨皮了 发起进攻(  ´-ω ・)▄︻┻┳══━一

在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值