mikrocontroller.net

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


Autor: Arne (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: 900ss D. (900ss)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Arne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/20000063...

Gruß
Arne

Autor: Thomas K. (batta)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: 900ss D. (900ss)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian S. (christian81)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Christian S. (christian81)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 :(

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Farbe hat dein JLink?

Autor: Christian S. (christian81)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ist schwarz.

Autor: Random ... (thorstendb) Benutzerseite
Datum:

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

Autor: Christian S. (christian81)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Wolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.