mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TrueSTUDIO+Bootloader+ST Flash Loader Anleitung


Autor: Simon P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Dies ist eine Anleitung für Anfänger die, wie einst ich, verzweifelt 
nach einer einfachen Lösung zum STM32 Programmieren per Bootloader 
suchen:

Wie dem STM32 Artikel 
http://www.mikrocontroller.net/articles/STM32#Programmierung zu 
entnehmen ist, ist das Atollic TrueSTUDIO die einzige Demo einer 
kommerziellen Umgebung ohne Codelimitierung und 
Nutzungsdauerbeschränkung. Zudem kann jeder Anfänger mit dem Projekt 
Wizard ohne Wissen von Linker Scribts und Startup-Codes in Handumdrehen 
nach der Installation mit dem Programmieren beginnen, da TrueSTUDIO 
alles selbstständig macht.

Es gibt nur ein Problem. Man ist auf den ST-Link und JTAG angewiesen. 
Will man jetzt In Application Programming mit dem in den STM32 
integrierten USART Bootloader betreiben, wird man vergeblich nach dem 
HEX File suchen und stattdessen nur ein ELF File finden.

TrueSTUDIO spuckt in der Lite Version von Natur aus nur .elf Files aus. 
Um jetzt aber den Flash Loader Demonstrator (alias Flash Loader Demo) 
von ST nutzen zu können, braucht man eine .hex Datei.

Um die zu kriegen, muss man die ''arm-atollic-eabi-objcopy.exe'' im 
Installationsverzeichnis von TrueSTUDIO gegen z.B. die ''objcopy.exe'' 
von CrossWorks tauschen.
Einfach CrossWorks installieren, nach der EXE im 
Installationsverzeichnis von CrosWorks suchen und in den 
''arm-atollic-eabi-objcopy.exe'' Ordner kopieren. Jetzt noch zu 
''arm-atollic-eabi-objcopy.exe'' umbenennen und fertig.

Zum Schluss braucht man nur mehr im geöffneten Projekt auf
''Project'' -> ''Properties'' -> ''C/C++ Build'' -> ''Settings'' -> 
''Build Steps'' klicken und folgendes Kommando unter ''Post Build 
Steps'' eingeben (siehe Bild):
''arm-atollic-eabi-objcopy -O ihex ${BuildArtifactFileBaseName}.elf 
${BuildArtifactFileBaseName}.hex''

Und siehe da, beim nächsten Build des Projektes wird im Release Ordner 
neben dem ELF File auch ein HEX File erscheinen.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch die Ergänzung, das es auch möglich ist, objcopy aus dem 
Eclipse codesourcery ZIP herauszuholen, was die Installation von 
Crossworks erspart.
https://rapidshare.com/files/459118435/eclipse_sr2...
ZIP herunterladen und in 
/eclipse_sr2_arm_toolchain/codesourcery_gcc/bin/ wechseln (ich nehme 
WinRAR ). Nun die 'arm-none-eabi-objcopy.exe' extrahieren.
Alles weitere wie in der ersten Post gezeigt, also umbenennen und den 
Stub von Atollic ersetzen. Postbuild wie gezeigt ergänzen. Für mein VL 
Discovery Board nehme ich dann das STM32 ST-Link Utility zum Flashen.
Nochmal vielen Dank an Simon P. für diesen Tipp!

Autor: branadic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Sch. schrieb:
> Hier noch die Ergänzung, das es auch möglich ist, objcopy aus dem
> Eclipse codesourcery ZIP herauszuholen, was die Installation von
> Crossworks erspart.
> https://rapidshare.com/files/459118435/eclipse_sr2...
> ZIP herunterladen und in
> /eclipse_sr2_arm_toolchain/codesourcery_gcc/bin/ wechseln (ich nehme
> WinRAR ). Nun die 'arm-none-eabi-objcopy.exe' extrahieren.
> Alles weitere wie in der ersten Post gezeigt, also umbenennen und den
> Stub von Atollic ersetzen. Postbuild wie gezeigt ergänzen. Für mein VL
> Discovery Board nehme ich dann das STM32 ST-Link Utility zum Flashen.
> Nochmal vielen Dank an Simon P. für diesen Tipp!

Ich habe es exakt nach deiner Anleitung versucht, allerdings wird bei 
mir partou kein HEX-File erstellt, der Release-Ordner aber sehr wohl. 
Was läuft bei mir falsch?

branadic

Autor: branadic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Hinweis für alle, ich habe mittlerweile das Problem gefunden. 
Projekt-Namen dürfen keine Leerzeichen enthalten, andernfalls wird das 
HEX-File nicht erzeugt und man sucht vergeblich nach der Ursache.
Vielleicht hilft jemand dieser Tipp ja bei der nächsten stundenlangen 
Fehlersuche.

branadic

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich verwende auch Truestudio Lite für STM32.
Prinzipiell funktioniert es bei mir genauso, wie hier beschrieben. Das 
Problem ist nur, dass die erzeugte hex file offensichtlich zu klein ist 
300Byte. Die elf vorher hat ca. 66KB.
Das Projekt selbst hatte ich vorher schon in Keil uVision am laufen, 
dort hatte die erzeugte hex 18KB. Diese hat dann auch auf dem Target 
funktioniert.

Kennt jemand dieses Problem?

Besten Dank im Voraus!

Sebastian

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt. Ich habe noch eine nicht unwesentliche Warnung 
ignoriert.

Sebastian

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.