尝试使用OpenOCD刷新STM32F3 Discovery板:“没有找到闪存库”

时间:2015-09-01 13:50:51

标签: stm32 jtag openocd

我克隆了this repo并尝试使用make flash刷新我的STM32F3 DIscovery板。相关规则如下:

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吗?

1 个答案:

答案 0 :(得分:1)

看起来你有错误定义的FLASH地址。它从地址0闪烁,而不是从0x08000000闪烁,其中STM32F3中的FLASH是。

我简要介绍了GitHub存储库,问题似乎出现在链接器脚本中。在文件LM4F.ld中,FLASH地址定义为0x00000000