Forum: Mikrocontroller und Digitale Elektronik STM32F10x mit Eclipse, yagarto (GCC) und J-Link (GDB)


von Arne (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,

ich arbeite mit einem Eval-Board von ST (STM3210E-Eval). Seit einigen 
Tagen versuche ich die neue Lib von ST (ARM-based 32-bit MCU STM32F10xxx 
standard peripheral library Version 3.1.2 mit CMSIS) zum Laufen zu 
bekommen. Beim Aufsetzen bin ich davon ausgegangen, dass es aufgrund der 
recht ausführlichen Beschreibung von ST nicht schwer werden würde. Da 
habe ich mich getäuscht...
Ich versuche mich am GPIO-Beispiel zum toggeln von LEDs. Meine 
Entwicklungsumgebung (siehe Betreff) kompiliert und linkt auch alles. 
Das makefile ist im Anhang zu finden.
Danach lade ich das Programm mittels J-Link-GDB-Server auf den Rechner 
(das Script dazu und die Konsolenausgabe ist ebenfalls im Anhang zu 
finden).

Hiernach komme ich nicht mehr weiter. Wie im "GDB-Script_Konsole.txt" zu 
sehen ist, wird ein "SIGTRAP" empfangen und es kann nicht weiter 
gedebuggt werden.
Interessanterweise läuft ein älteres Projekt mit der alten Lib von ST 
(ARM-based 32-bit MCU STM32F10xxx standard peripheral library Version 
2.0.3) auf gleicher Hardware mit der gleichen Toolchain.
Mittlerweile gehe ich davon aus, dass eine Startup-Datei zur 
Vektor-Initialisierung fehlt. Diese wird aber in der Anleitung zum 
Beispiel von ST nicht erwähnt. Im CMSIS-Pfad ist eine 
"startup_stm32f10x_hd.s" zu finden. Allerdings kommt "make" damit nicht 
zurecht. Hat jemand eine solche Datei als *.c-Datei und würde sie zur 
Verfügung stellen?

Oder denke ich in die falsche Richtung?

Ich hoffe auf Unterstützung.

Guten Rutsch,
Arne

von 900ss (900ss)


Angehängte Dateien:

Lesenswert?

Ja dir fehlt auf jedenfall die Startup-Datei. In der Lib 3.0.0 war sie 
noch in C. Hab sie angehangen. Die Unterschiede zur Assemblerversion 
kenne ich nicht.

Bin mir nicht sicher wie das mit den IRQ-Vektoren ist, wenn du sie ins 
Ram packst. Ob das so ohne weiteres läuft? Hab es noch nicht probiert 
und die Funktion mit den Vektoren nicht im Kopf.

von Arne (Gast)


Lesenswert?

Hallo 900ss,

vielen Dank für das startup-File. Damit bin ich wieder einen Schritt 
weiter.
Du hast nicht zufällig auch noch das dazu passende Linker Skript? Bin 
gerade dabei mich einzulesen, wie man die Linker Skripts anpasst. Das 
ist allerdings für einen GNU-Anfänger nicht besonders einfach.

Ich habe hier eine Anleitung gefunden (Info für alle, die mit einem 
ähnlichen Problem wie ich kämpfen...):
"Building Bare-Metal ARM Systems with GNU: Part 1 - Getting Started" 
http://www.embedded.com/design/opensource/200000632?_requestid=556334

Gruß
Arne

von Thomas K. (batta)


Lesenswert?

Wieso kommt make nicht mit der Startup zurecht?
Hast du die Startup aus dem GCC Verzeichnis verwendet? Bei mir gibt es 
keine Probleme damit.

In deiner Make file fehlt bei ASFLAGS das "-mthumb" vielleicht liegts ja 
daran.

Ein Linker Skript ist übrigends im "Project Template/Ride" Verzeichnis 
zu finden. Das musst du nur noch an deinen Controller anpassen.

von 900ss (900ss)


Angehängte Dateien:

Lesenswert?

Arne schrieb:
> Du hast nicht zufällig auch noch das dazu passende Linker Skript?

Ist angehangen.

> gerade dabei mich einzulesen, wie man die Linker Skripts anpasst. Das
> ist allerdings für einen GNU-Anfänger nicht besonders einfach.

Stimmt. :-)

Hilfe:
- Linker Manual
- Suchen hier im Forum (es sind einige Threads zum Thema)
- Beispiellinkerscripts zu Boards (Controller), die man evtl. kennt.
  (z.B. AVR)
- Google
- Probieren

Arne schrieb:
> Building Bare-Metal ARM Systems with GNU: Part 1 - Getting Started"

Im Anhang auch ein PDF, was alle Parts dazu enthält.

von Christian S. (christian81)



Lesenswert?

Moin,

voweg ein dickes Danke schön an alle, die hier gepostet haben!

Ich habe die Ansätze von Arne weiter verfolgt und auch schon einige 
Zwischenerfolge erzielt:
Das Programm lässt sich sowohl auf dem SRAM debuggen (eher unwichtig) 
als auch auf den Flash-Speicher schreiben und ausführen :D . Das Flashen 
mache ich mit dem j-link JTAG von SEGGER mit Zusatzlizenz und 
zugehöriger Software J-Flash-ARM.
Es gibt allerdings noch das Problem, dass ich das Programm immer mit 
"Start Application" manuell anschubsen muss. Danach läuft es 
selbstständig bis ein Reset erfolgt.
An dem Punkt weiss ich im Moment noch nicht weiter.
Mein Lösungsansatz war vorerst die Firmware von ST zu installieren und 
anschliessend das Blinkerprogramm erneut zu flashen. Problem hier: Mein 
PC erkennt das Board nicht über direkten USB-Anschluss und das 
Flash-Programm unterstützt das Format nicht. :( Die Dateien hab ich mit 
angehängt und User Manual dazu ist dieses hier: 
http://www.st.com/stonline/products/literature/um/14703.pdf

An diesem Punkt werd ich jetzt aber erst einmal weiterarbeiten. Wer dazu 
hilfreiche Hinweise hat: Immer sehr gerne genommen :)

An makefile und startup habe ich effektiv nicht viel geändert. ABER: 
Durch meine Experimente in den Dateien sehen diese im Moment nicht sehr 
übersichtlich aus. Ich bearbeite diese noch und poste sie anschliessend.

Beste Grüße

von Christian S. (christian81)


Angehängte Dateien:

Lesenswert?

Moin,

hier dann noch wie versprochen die Dateien. Dabei auch die .hex-Datei, 
die ich zum programmieren des µC benutze.

Beste Grüße

PS: Die Firmware von ST hab ich in HEX wandeln und flashen können, hat 
aber leider auch nichts eingebracht :(

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Welche Farbe hat dein JLink?

von Christian S. (christian81)


Lesenswert?

Der ist schwarz.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Für den Einstieg (32k) schon mal mit uVision gespielt? www.keil.com
Dein JLink rennt damit.

von Christian S. (christian81)


Lesenswert?

Moin zusammen,

endlich läuft alles wie gewollt :D . Jetzt muss ich nur noch mal genau 
gucken woran es genau lag. Im Moment kann ich noch nicht genau 
beantworten warum, aber es läuft.
Ich hatte mir noch das "GNU ARM Eclipse plugin" 
Beitrag "GNUARM Eclipse Plugin" installiert.

Einen abschliessenden Bericht mit komplettem Projekt und allen 
verwendeten Ressourcen folgt dann spätestens am Montag!

Beste Grüße

von Wolf (Gast)


Lesenswert?

Hallo Christian,

stehe momentan vor dem gleihen Problem wie du und wäre an deiner 
vollständigen Lösung interessiert. Könntest du diese bitte noch 
hochladen.
Vielen Dank,
Wolf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.