Hi zusammen,
seit einiger Zeit versuche ich, einen STM32F103 (ARM CortexM3) mit
Freeware Tools, genauer gesagt mit YaGATo(arm-elf-gcc) + OpenOCD +
Eclipse.
Hat damit irgendjemand Erfahrung bzw. weiß, ob das so überhaupt ohne
Weiteres möglich ist?
Mein Problem ist, dass OpenOCD beim Flashen Fehlermeldungen ausgibt, mit
denen ich nicht so recht etwas anfangen kann. Leider habe ich von OOCD
auch bisher nicht viel Ahnung.
1
500 kHz
2
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (Manufacturer: 0x23b, Pa
3
rt: 0xba00, Version: 0x3)
4
Info : JTAG Tap/device matched
5
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (Manufacturer: 0x020, Par
6
t: 0x6410, Version: 0x1)
7
Info : JTAG Tap/device matched
8
Info : accepting 'gdb' connection from 0
9
Warn : target was in unknown state when halt was requested
10
Warn : acknowledgment received, but no packet pending
11
Info : device id = 0x20036410
12
Info : flash size = 128kbytes
13
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (Manufacturer: 0x23b, Pa
14
rt: 0xba00, Version: 0x3)
15
Info : JTAG Tap/device matched
16
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (Manufacturer: 0x020, Par
17
t: 0x6410, Version: 0x1)
18
Info : JTAG Tap/device matched
19
target state: halted
20
target halted due to debug-request, current mode: Handler HardFault
Das OpenOCD Script habe ich einfach aus dem Interface- (Olimex
ARM-USB-OCD) und dem STM32-Teil der vorgefertigten OpcenOCD Skriptstücke
zusammenkopiert.
Mein GDB Init Code ist auch eher unspektakulär:
1
target remote localhost:3333
2
monitor reset init
3
monitor sleep 500
4
load
5
break main
6
continue
Sieht jemand auf Anhieb nen Fehler (wie gesagt, hab leider noch nicht so
viel Ahnung von der Matiere)?
Danke schonmal!
Gruß
Flo
Klau bei Segger ;-)
Lad dir von segger.com eine embOS Trial Version runter also
embOS_CM3_GNU, da bekommst du kostenlos ein Makefile und Script File.
Das ist zwar dann für den J-Link aber das sollte ja zu machen sein.
Danke für die Antworten!
Mein makefile macht an sich keine Probleme. Ein korrektes (glaube ich
zumindest) Linkerskript habe ich auch. Ich vermute das Problem eher im
openOCD config file.
@KeinPlan: Habs mal ausprobiert. GDB hat dabei folgende Meldungen
ausgespuckt:
Hallo,
da das thread das ähnlichste ist was ich finde konnte, hier mein
Anliegen:
Ich hab ein STM32-P107 Board von Olimex mit einem ARM-USB-TINY (Jtag
adapter) den ich zwangsweise unter Eclpise programmieren muss. Habe
alles vorschriftsmässig installiert (Yagarto+CDT+openOCD+Zylin) und nun
hänge ich bei der "Debug configuration".
Und ich hab keine Ahnung welche commands dort einzutragen sind und ob
und wie ich den Adapter noch configurieren muss. Bin andere Umgebungen
gewohnt und Eclpise ist etwas zu unübersichtlich für mich. Habe schon
diverse User manuals von openOCD gewälzt, wo die commnads alle drin
stehen oder Seiten mit Beispielen gelesen, aber die benutzen immmer
einen andern µc oder compiler oder so.
Kann mir jemand ne Anleitung geben wie ich mein kleines Programm endlich
debuggen und auf das board laden kann???
Bin dankbar für jede Hilfe
Ich kann dir dann noch den JLink von Segger empfehlen. Der kostet in der
none commercial Version ca. 60€. Mit dem ist das #deutlich# einfacher.
Da ist auch die notwendige Software dabei. OOCD brauchst du dann nicht.
Die Konfiguration von OOCD ist wirklich kein Kinderspiel. Aber
vielleicht findest du hier noch Leute, die dir beim einrichten helfen.
> flash bank stm32x 0 0 0 0 0
Das geht IMO nur, wenn der Flash auf Addresse 0 gemappt ist. Ich sehe in
Deiner OpenOCD config nicht die nötigen Instruktionen für das
entsprechende Register. Bei meinem LPC1768 mache ich das in dem
reset-init Handler.
Sowohl in den STM-Datenblättern als auch in den OpenOCD configs die ich
hier habe wird der Flash ab Adresse 0x08000000 angesprochen:
1
flash bank $_FLASHNAME stm32x 0x08000000 0 0 0 $_TARGETNAME
Das solltest Du dann aber in Deinem Linkerskript ebenfalls
berücksichtgen.
jepp,
memory layout deiner applikation und open-ocd config sollten schon
matchen (und idealerweise auch die bedürfnisse deines uC ;-).
viel erfolg, tom.
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.