ST意法半导体
直播中

张昂笙

7年用户 970经验值
私信 关注
[问答]

如何为STM32F413制作一个自定义引导加载程序呢

我一直在尝试为 STM32F413 制作自定义引导加载程序。
我使用STM32CubeProgrammer,USB DFU
虽然 我已经成功地为另一个MCU(STM32F412)制作了自定义引导加载程序,但是STM32CubeProgrammer擦除意外地址还是第一次。
我只想使用 0x0804 0000 作为应用程序的起始地址。

但是,STM32CubeProgrammer 实现如下日志
  • 10:01:21:342 : Opening and parsing file:
  • 10:01:21:345 :   File          :
  • 10:01:21:345 :   Size          : 654340 Bytes
  • 10:01:21:345 :   Address       : 0x08040000
  • 10:01:21:345 : Erasing Segment <0> Address <0x08040000> Size <654340>Bytes
  • 10:01:21:345 : Erasing memory corresponding to segment 0:
  • 10:01:21:346 : DFU status = 0
  • 10:01:21:346 : DFU State = 5
  • 10:01:21:346 : Status: 0, State: 5
  • 10:01:21:346 : sending a page erase request @: 0x08024000
  • 10:01:21:357 : DFU status = 0
  • 10:01:21:358 : DFU State = 4
  • 10:01:21:404 : DFU status = 0
  • 10:01:21:405 : DFU State = 5
  • 10:01:21:405 : erasing sector 0006 @: 0x08024000 done
  • 10:01:21:405 : DFU status = 0
  • 10:01:21:405 : DFU State = 5
  • 10:01:21:405 : Status: 0, State: 5
  • 10:01:21:405 : sending a page erase request @: 0x08044000
  • 10:01:22:289 : DFU status = 0
  • 10:01:22:289 : DFU State = 4
  • 10:01:22:338 : DFU status = 0
  • 10:01:22:339 : DFU State = 5
  • 10:01:22:340 : erasing sector 0007 @: 0x08044000 done
为什么程序员要擦除 0x0802 4000?
当我将地址更改为 0x0806 0000 时,程序员想要擦除 0x0804 4000。
我不知道我错过了什么,我能做什么。
在此先感谢您的帮助。


回帖(1)

王桂香

2022-12-16 14:00:05
我怀疑是STM32CubeProgrammer。但我意识到这只是我的错,一如既往。
如上所述,CubeProgrammer 使用 USBD_DFU_MEDIA 接口进行内存映射。
Previous : @Internal Flash /0x08000000/04*016Ka, 01*016Ka, 01*064Kg,10*128Kg
当前:   @内部闪存/0x08000000/04*016Ka,01*064Kg,11*128Kg
举报

更多回帖

发帖
×
20
完善资料,
赚取积分