xuchungang 发表于 2016-9-6 17:08:12

DFU更新程序失败

Hi,
最近碰到个问题,用MCU自带的bootloader升级程序的时候发现程序没有全部更新到flash上,从图上看到数据只到0x0800A807就完了,但实际的程序后面还有不少,最终应该到0x0800AC03.

有谁知道原因吗?我用的是STM32L486芯片。

谢谢!

xuchungang 发表于 2016-9-7 12:53:28

呃,找到原因了,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吧。

chifen 发表于 2016-9-7 09:03:37

自带bootloader程序会加密部分内容,你如果用ISP下载应该不给看才对

xuchungang 发表于 2016-9-7 09:29:27

chifen 发表于 2016-9-7 09:03
自带bootloader程序会加密部分内容,你如果用ISP下载应该不给看才对

我是DFU升级完了后,verify提示有错误,再用ST-Link工具连上去查看flash内容的。

chifen 发表于 2016-9-8 15:28:04

USB口的硬件有没有问题

Kevin887766 发表于 2016-10-11 18:37:05

本帖最后由 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字节对齐?先行谢过了。

ynwscfsfi 发表于 2016-10-11 20:58:11

没用过这..帮顶

xuchungang 发表于 2016-12-12 10:33:15

Kevin887766 发表于 2016-10-11 18:37
我使用stm32f7 的USB DFU 也出现了这个问题,DFU下载后校验无法通过,问下具体如何修改Hex文件以保证8字 ...

好久没上论坛,你这个问题解决了吗?

五哥1 发表于 2016-12-31 02:43:44

这个在F401CC上用过木有问题呀

海迹天涯 发表于 2016-12-31 11:12:54

给你顶起
页: [1] 2
查看完整版本: DFU更新程序失败