DFU更新程序失败
Hi,最近碰到个问题,用MCU自带的bootloader升级程序的时候发现程序没有全部更新到flash上,从图上看到数据只到0x0800A807就完了,但实际的程序后面还有不少,最终应该到0x0800AC03.
有谁知道原因吗?我用的是STM32L486芯片。
谢谢!
呃,找到原因了,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.
手动修改HEX文件保证数据是8字节对齐后,再转DFU文件,升级就成功了。应该是L4芯片bootloader的局限或bug吧。 自带bootloader程序会加密部分内容,你如果用ISP下载应该不给看才对 chifen 发表于 2016-9-7 09:03
自带bootloader程序会加密部分内容,你如果用ISP下载应该不给看才对
我是DFU升级完了后,verify提示有错误,再用ST-Link工具连上去查看flash内容的。 USB口的硬件有没有问题 本帖最后由 Kevin887766 于 2016-10-11 19:03 编辑
xuchungang 发表于 2016-9-7 12:53
呃,找到原因了,AN2606里有如下一段话:
For memory write operations using DFU interface:
If the buffe ...
我使用stm32f7 的USB DFU 也出现了这个问题,DFU下载后校验无法通过,问下具体如何修改Hex文件以保证8字节对齐?先行谢过了。
没用过这..帮顶 Kevin887766 发表于 2016-10-11 18:37
我使用stm32f7 的USB DFU 也出现了这个问题,DFU下载后校验无法通过,问下具体如何修改Hex文件以保证8字 ...
好久没上论坛,你这个问题解决了吗? 这个在F401CC上用过木有问题呀 给你顶起
页:
[1]
2