自定义外部加载程序“无法下载段[0]”
为什么在STM32CubeProgram 2.7.0或更高版本中使用自定义外部加载程序时会出现“下载段[0]失败”错误?下面显示的轨迹只是一个例子,有些值可能会有所不同,但主要的一点是出现了错误(a。。。
为什么在STM32CubeProgram 2.7.0或更高版本中使用自定义外部加载程序时会出现“下载段[0]失败”错误?
下面所示的轨迹只是一个示例,有些值可能会有所不同,但要点是在对内部FLASH(0x080xxxxx)中的地址进行编程时会引发错误(并且编程会中断):(…)内存编程。。。打开并解析文件:ST-Link_GDB_server_a53460.srec文件:ST-Link_GDB_server _a53460.srec大小:1566744字节地址:0x08020000段0对应的擦除内存:擦除内部内存扇区[16 41]段1对应的擦除存储器:擦除内部存储扇区[0 330]正在下载:错误:段下载失败[0]错误:文件下载失败调试器连接丢失。正在关闭…
在STM32CubeProgramer独立版本或STM32CubeIDE嵌入式版本中指定自定义外部加载程序(即,用于ST开发套件中包含的其他外部FLASH模块)时,可能会发生此错误(来自CubeProgram GUI日志面板)。
自2.7.0版本以来,一些自定义外部加载程序与STM32CubeProgram的STM32内部FLASH加载程序在某种程度上存在冲突,原因仍在调查中,但有一种解决方法。
STM32CubeProgramer附带了.sldr文件,用于对每个STM32 MCU内部FLASH进行编程,它们位于安装文件夹中:
-STM32CubeProgram单机版:
C: \Program Files(x86)\STMicroelectronics\STM32Cube\STM32CubeProgramer\bin\FlashLoader程序
-STM32CubeProgramer的STM32CubeIDE嵌入式版本:
C: \ST\STM32管道_<版本>\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_<版本>\工具\bin\FlashLoader
解决方法是使用2.6.0版本中包含的内部FLASH加载程序。
1.识别与您的板对应的.stdr,连接板时会显示在CubeProgramer界面中

3.从中复制/粘贴相应的0xXXX.stldr文件/将2.6.0版本的bin/FlashLoader文件夹更改为当前版本。
4.关闭STM32CubeProgram的任何运行实例
5.推出当前版本的STM32CubeProgram