呃,找到原因了,AN2606里有如下一段话:
For memory write operations using DFU interface:
If the buffer size is larger than 256 bytes and not
multiple of 8 bytes, the write memory operation
result is corrupted.
Workaround: if the file size is larger than 256
bytes, add byte padding to align it on 8-bytes
multiple size.
Write in SRAM is corrupted.
For memory write operations using DFU interface:
If the buffer size is larger than 256 bytes and not
multiple of 8 bytes, the write memory operation
result is corrupted.
Workaround: if the file size is larger than 256
bytes, add byte padding to align it on 8-bytes
multiple size.
Write in SRAM is corrupted.
手动修改HEX文件保证数据是8字节对齐后,再转DFU文件,升级就成功了。应该是L4芯片bootloader的局限或bug吧。
评分
查看全部评分
我是DFU升级完了后,verify提示有错误,再用ST-Link工具连上去查看flash内容的。
dfu error
我使用stm32f7 的USB DFU 也出现了这个问题,DFU下载后校验无法通过,问下具体如何修改Hex文件以保证8字节对齐?先行谢过了。
好久没上论坛,你这个问题解决了吗?
你好,最近也在做dfu升级,遇到了和你一样的问题,下载完成后,verify校验失败!!!
我是STM32F302RB 用标准库DFU升级校验都没问题。用STM32Cube 5.01版本生成DFU,校验总是失败,但是程序可以正常运行。仿真查看APP数据和烧录的BIN文件数据一致,推测是DFU上位机问题。
DFUæ ¡éªå¤±è´¥
FLASHåBINæ°æ®å¯¹æ¯