Stm32f4discovery - OpenOCD - telnet上传演示程序

时间:2013-06-08 20:27:08

标签: stm32 openocd stm32f4discovery


我在尝试将演示程序上传到新的stm32f4discovery板时遇到问题,这就是我正在做的事情:

  1. 将主板连接到计算机
  2. openocd -f board / stm32f4discovery.cfg
  3. telnet localhost 4444

    Open On-Chip Debugger
    > reset init
    target state: halted
    target halted due to debug-request, current mode: Thread 
    xPSR: 0x01000000 pc: 0xfffffffe msp: 0xfffffffc
    > flash write_image demo.hex       
    device id = 0x10016413
    flash size = 8192kbytes
    flash write algorithm aborted by target
    error executing stm32x flash write algorithm
    flash memory write protected
    flash write failed = 00000010
    error writing to flash at address 0x08000000 at offset 0x00000000
    in procedure 'flash'
    

    我做错了什么?我试过flash保护,stm32f2x解锁但响应仍然是相同的:'flash memory write protected',我错过了什么?我正在使用来自st.com的预编译演示程序,来自'Project / Demonstration / Binary'的软件包'STM32F4-Discovery_FW_V1.1.0'。

1 个答案:

答案 0 :(得分:3)

在重写闪存之前,必须先删除闪存。

monitor flash protect 0 0 11 off
monitor flash erase_address 0x08000000 0x40000
monitor flash write_image erase *"/path/to/hex/file.hex"* 0 ihex

或者使用arm-none-eabi-gdb和ELF代替telnet和hex文件,并使用以下命令:

arm-none-eabi-gdb
target remote localhost:3333
monitor reset halt
file */path/to/elf/file.elf*
load
monitor reset
continue

请注意,使用ELF文件时,您无需指定其所在的地址(通常为0x08000000或带引导加载程序的0x08008000)。

另外,考虑使用像OpenBLT这样的引导程序,它将帮助您掌握VTOR,偏移,堆栈地址等原则。