我有一个 steval-stwinkt1 板,我正在尝试启用对 DFU 模式的支持。
我将服装引导加载程序固件刷新到闪存的开头(0x8000000),它可以让您加载到由 DFU 模式上传的另一个固件或留在当前程序中以刷新新固件抛出 USB。
我使用了这个 st 教程- https://www.youtube.com/watch?v=n_LDXOQHerU
我尝试了 STM32Cube 附带的 .dfu 包,我看到程序运行成功,所以我假设引导加载程序可以工作。
但是当我尝试从我的软件制作我自己的 DFU 包时,该软件永远不会加载,我遇到了严重的错误。我根据 ST totorial 和我所做的一些研究将软件移动到 0x800C000,方法是更改以下行:
在 FLASH.ld 文件中:
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 2048K
至:
FLASH (rx) : ORIGIN = 0x800C000, LENGTH = 2048K
并在 stm32l4r9xx.h 中将 FLASH_BASE 更改为:
#define FLASH_BASE (0x0800C000UL)
在另一次尝试中,我尝试了更改而不是更改FLASH_BASE
,VECT_TAB_OFFSET
但它仍然没有用。
要制作 dfu 包,我使用 dfu-tool(我使用 linux)并使用以下命令:
dfu-tool convert dfuse software.bin software.dfu
还尝试使用我使用的教程中使用的官方工具转换十六进制 int dfu 包,但仍然没有工作
当我加载 dfu 包时,我需要进行哪些更改才能使我的软件正常工作?
谢谢
伊泰