STM32 通过引导加载程序刷写失败(UART1)
STM32 flashing through boot loader fails (UART1)
我有一个 STM32F103,我正在通过其 UART 端口 使用不同的 MCU 远程重新刷写(使用引导加载程序).它工作得很好,我有多个设备已成功刷新正确的代码。但是偶尔会出现一个停止工作的设备,因为闪烁的 STM32 代码不正确。整个 bin 文件是使用其他 MCU 刷新的,但是 STM 得到 "bricked"(不完全是变砖,它只是有一个错误的代码)。当我使用我的 PC 重新刷新设备时,一切又恢复正常了。为什么十六进制写入STM会失败?
简介:
*使用UART bootloader烧写STM32F103
*此方法有时会失败,STM停止工作
*有没有方法可以检查写入代码space的数据是否有效?
*STM没有变砖,只是flash里面的代码错了。当我从代码 space 中读回闪存时,它比应该闪存的文件要小。
*我在系统引导模式下使用STM。 [AN2606]
您可以像将数据(bin文件)写入flash一样,使用boot-loader命令读取STM32的flash中写入的数据。这样,您可以检查写入闪存的数据(或新代码)是否与原始二进制文件相同。只有这两个匹配才可以刷机成功,否则可以重新刷STM32。
我有一个 STM32F103,我正在通过其 UART 端口 使用不同的 MCU 远程重新刷写(使用引导加载程序).它工作得很好,我有多个设备已成功刷新正确的代码。但是偶尔会出现一个停止工作的设备,因为闪烁的 STM32 代码不正确。整个 bin 文件是使用其他 MCU 刷新的,但是 STM 得到 "bricked"(不完全是变砖,它只是有一个错误的代码)。当我使用我的 PC 重新刷新设备时,一切又恢复正常了。为什么十六进制写入STM会失败?
简介:
*使用UART bootloader烧写STM32F103
*此方法有时会失败,STM停止工作
*有没有方法可以检查写入代码space的数据是否有效?
*STM没有变砖,只是flash里面的代码错了。当我从代码 space 中读回闪存时,它比应该闪存的文件要小。
*我在系统引导模式下使用STM。 [AN2606]
您可以像将数据(bin文件)写入flash一样,使用boot-loader命令读取STM32的flash中写入的数据。这样,您可以检查写入闪存的数据(或新代码)是否与原始二进制文件相同。只有这两个匹配才可以刷机成功,否则可以重新刷STM32。