在 MDK-ARM v5.23 上用 ST-LINK V2 向 STM32F0 下载程序,提示“internal command error”,导致无法再访问 STM32F0 。
现象
选择 Flash/Download 向目标板下载程序,在 Build Output Window 显示信息如下:
load " xxxx.axf"
Erase Done // 完成擦除
Programming Done // 完成下载
Verify OK // 通过校验
Application running … // 运行用户程序
Internal command error // 出错
解决过程
在网上查找资料,总归都与复位有关。
- 在 Flash 菜单下有 Configure Flash Tools… 项,打开 Debug 标签后点击使用的调试器类型后的 Setting… 按钮,其中的 Debug 标签页下的 Connect & Reset Options 一栏有Connect 选项,选 Normal (正常连接) 或 with Pre-reset (先复位再连接) 或 under Reset (复位中连接)均无效果,因为我的目标板上没有引出复位端子,因而 ST-LINK V2 上的 RST 端不能连接到目标板上。
- 手动将 STM32 复位,复位后立即点击 STM32 ST-LINK Utility 中的 Target/Connect 即可通讯。擦除目标 STM32 的Flash,重新下载,现象依旧。
- 怀疑编写的程序有问题,采用逐段注释之法,几乎只剩 STM32CubeMX 构建的框架,现象仍在。说明不是我加入的代码有问题,而是在