2013-06-08 5 views
4


J'ai problème en essayant de télécharger le programme de démonstration en bord frais stm32f4discovery, ce que je fais:
Stm32f4discovery - OpenOCD - L'ajout telnet programme de démonstration

  1. Connect carte à l'ordinateur
  2. openocd - planche f/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' 
    

    Qu'est-ce que je fais mal? J'ai essayé de protéger le flash, stm32f2x déverrouiller, mais la réponse est toujours la même: «mémoire flash protégé en écriture», j'ai raté quelque chose? J'utilise le programme de démonstration pré-compilé de st.com du paquet 'STM32F4-Discovery_FW_V1.1.0' de 'Project/Demonstration/Binary'.

+0

Quelle version de OpenOCD utilisez-vous? Quelle interface JTAG utilisez-vous, un lien ST? –

Répondre

3

La mémoire Flash doit être supprimée avant d'être réécrite.

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 

Ou au lieu de fichiers telnet et hexagonaux, utilisez le bras-pas-eabi-gdb et ELF avec les commandes suivantes:

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

Notez que lors de l'utilisation des fichiers ELF, vous n'avez pas besoin de spécifier l'adresse où elle sera (généralement 0x08000000 ou 0x08008000 avec les chargeurs de démarrage).

En outre, envisager d'utiliser un bootloader comme OpenBLT, il vous aidera à maîtriser les principes tels que VTOR, décalages, adresses pile etc.

Questions connexes