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
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.
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
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.
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.
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
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 :(
Für den Einstieg (32k) schon mal mit uVision gespielt? www.keil.com Dein JLink rennt damit.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.