Frage

Ich bin mit einem Olimex ARM-USB-OCD-Dongle mit openocd und GDB zu Programm und Debuggen eines STM32F103 micro. Die IDE Ich verwende kam aus der Olimex Entwickler-Kit CD und macht Gebrauch von Eclipse Ganymede.

Ich kann ein kleines Programm in den RAM geladen und Schritt durch den Code ohne Probleme.

ich jetzt ein viel größeres Programm haben, die nicht in den Arbeitsspeicher passt (das ist nur 20K) und so habe ich es aus dem Flash laufen möchte (was 128K).

Ich habe die Linker-Skript, die den Programmcode geändert im Flash-Abschnitt gehen soll (Adresse 0x8000000), aber gdb versagt das Programm zu laden.

(gdb) 
20 load main.out
&"load main.out\n"
load main.out
~"Loading section .text, size 0xb0e6 lma 0x8000000\n"
Loading section .text, size 0xb0e6 lma 0x8000000
&"Load failed\n"
Load failed

Was soll ich tun gdb zu bekommen das Programm in den Flash zu laden?

War es hilfreich?

Lösung

Haben Sie darüber nachgedacht direkt mit openocd blinkt? Ich tue dies in einer ähnlichen Einrichtung, aber mit einem ARM7-Mikrocontroller.

 openocd -f flash.cfg

Hier ist mein flash.cfg

set CHIPNAME at91sam7x512

source [find interface/olimex-arm-usb-ocd.cfg]
source [find target/at91sam7sx.cfg]

init    
halt

flash probe 0
flash probe 1

flash erase_sector 0 0 15
flash erase_sector 1 0 15

flash write_image my-image.elf

at91sam7 gpnvm 0 set
at91sam7 gpnvm 1 set
at91sam7 gpnvm 2 set
shutdown

Das GPNVM Zeug ist Atmel SAM7 spezifisch, aber ich denke, das Skript sollten Ihnen einen guten Ausgangspunkt gibt eine STM32-Version zu machen. Openocd kann ein wenig verwirrend am Anfang, aber die Dokumentation ist gut und lesenswert (http://openocd.berlios.de/). Die aktuelle stabile Version (0.4.0) ist ziemlich alt, also, wenn Sie Probleme haben, die neuesten Quellcode herunterladen und selbst kompilieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top