尝试使用 OpenOCD 刷写 STM32F3 探索板:“未找到闪存库”
Trying to flash an STM32F3 Discovery board using OpenOCD: `no flash bank found`
我克隆了 this repo 并尝试使用 make flash
刷新我的 STM32F3 发现板。相关规则是这样的:
flash: main.axf
openocd -f oocd.cfg -c "program main.axf verify reset" -c "shutdown"
oocd.cfg:
telnet_port 4444
gdb_port 3333
source [find board/stm32f3discovery.cfg]
make flash
然后给我以下输出:
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v21 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.883108
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
adapter speed: 1000 kHz
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800234c msp: 0x2000a000
adapter speed: 8000 kHz
** Programming Started **
auto erase enabled
Info : device id = 0x10036422
Info : flash size = 256kbytes
Warn : no flash bank found for address 0
Warn : no flash bank found for address 704
wrote 0 bytes from file main.axf in 0.001628s (0.000 KiB/s)
** Programming Finished **
program
命令显示 no flash bank found
并且没有写入任何数据。自然地,verify
命令失败。
我从 0.9 标签构建了 OpenOCD。我使用 aptitude 安装了 libusb-1.0-0-dev
,这是 ST-Link 支持所必需的。
我的配置有什么问题,或者是否有替代 OpenOCD 的方法可以让我尝试完成此任务?
看来你定义的FLASH地址有误。它是从地址 0
闪烁,而不是从 0x08000000
闪烁,其中 STM32F3 中的 FLASH 是
我快速查看了 GitHub 存储库,问题似乎出在链接描述文件中。在文件 LM4F.ld
中,FLASH 地址定义在 0x00000000
.
我克隆了 this repo 并尝试使用 make flash
刷新我的 STM32F3 发现板。相关规则是这样的:
flash: main.axf
openocd -f oocd.cfg -c "program main.axf verify reset" -c "shutdown"
oocd.cfg:
telnet_port 4444
gdb_port 3333
source [find board/stm32f3discovery.cfg]
make flash
然后给我以下输出:
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
none separate
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v21 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.883108
Info : stm32f3x.cpu: hardware has 6 breakpoints, 4 watchpoints
adapter speed: 1000 kHz
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800234c msp: 0x2000a000
adapter speed: 8000 kHz
** Programming Started **
auto erase enabled
Info : device id = 0x10036422
Info : flash size = 256kbytes
Warn : no flash bank found for address 0
Warn : no flash bank found for address 704
wrote 0 bytes from file main.axf in 0.001628s (0.000 KiB/s)
** Programming Finished **
program
命令显示 no flash bank found
并且没有写入任何数据。自然地,verify
命令失败。
我从 0.9 标签构建了 OpenOCD。我使用 aptitude 安装了 libusb-1.0-0-dev
,这是 ST-Link 支持所必需的。
我的配置有什么问题,或者是否有替代 OpenOCD 的方法可以让我尝试完成此任务?
看来你定义的FLASH地址有误。它是从地址 0
闪烁,而不是从 0x08000000
闪烁,其中 STM32F3 中的 FLASH 是
我快速查看了 GitHub 存储库,问题似乎出在链接描述文件中。在文件 LM4F.ld
中,FLASH 地址定义在 0x00000000
.