2013-06-08 2 views
4


У меня есть проблемы, пытаясь загрузить демонстрационную программу на свежий stm32f4discovery борт, это то, что я делаю:
Stm32f4discovery - OpenOCD - телнет загрузки демо-программа

  1. Connect плата к компьютеру
  2. OpenOCD - е доска/stm32f4discovery.cfg
  3. телнет локальный 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' 
    

    Что я делаю неправильно? Я пробовал флеш-защиту, разблокировку stm32f2x, но ответ все тот же: «Защита от флэш-памяти защищена», я что-то пропустил? Я использую предварительно скомпилированную демо-программу из st.com из пакета 'STM32F4-Discovery_FW_V1.1.0' из 'Project/Demonstration/Binary'.

+0

Какую версию OpenOCD вы используете? Какой интерфейс JTAG вы используете, ST Link? –

ответ

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 

Или вместо телнет и шестнадцатеричных файлов, не используйте рычажного ни-EABI-GDB и ELF с помощью следующих команд:

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, это поможет вам освоить принципы, как Втор, зачетов, стек адресов и т.д.

Смежные вопросы