mikrocontroller.net

Forum: Compiler & IDEs GCC in Keil mit STM32F4


Autor: Max Max (max_m1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe ein C-Programm und möchte es gerne via Keil_uvision 
modifizieren und auf einen STM32F4 hochladen.

Leider wurde das C-Programm vermutlich in einer anderen IDE geschrieben 
und GCC als Compiler verwendet wodurch es auf Keil nicht funktioniert.

Es gibt eine Anleitung zur Verwendung von GCC in Keil aber leider nur 
für dem Cortex M3:
http://m8051.blogspot.dk/2012/10/using-gcc-in-keil...

Weiß jemand wie das beim Cortex M4 (STM32F4) geht? Leider sind einige 
Dateien beim M4 anders, wodurch ich das obige verlinkte Beispiel nicht 
einfach so übernehmen kann.


Vielen Dank.

: Verschoben durch Moderator
Autor: Dennis R. (dennis_r93)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Der M4 Prozessor ist mehr oder weniger ein M3 mit DSP Erweiterung und 
optionaler FPU. Die STM32F4 haben eine FPU.

Was sich bei dir Dabei ändert ist die Peripherie auf dem 
Mikrocontroller, also das um den Kern drum herum.
Der Flash hat eventuell eine andere Größe, die Taktverwaltung 
unterschiedet sich. etc, etc.
Was sich für dich dabei ändert ist, dass anstatt der Libs für den 
STM32F10x musst du die Libs für den STM32F4xx verwenden.

Das könnte dann schon alles sein.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Geheimtip: Der GCC und kompatible IDEs sind gratis. Verwende doch 
einfach eclipse oder emBlocks und spare dir den Aufwand mit uVision...

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis R. schrieb:
> Was sich bei dir Dabei ändert ist die Peripherie auf dem
> Mikrocontroller, also das um den Kern drum herum.

Hallo,
vielen Dank erstmal für deine Antwort.

Das mit der unterschiedlichen stdperiph hab ich mir auch schon gedacht.
Leider gibt es den Ordner "CM3" im M4-stdperiph-Ordner gar nicht, 
wodurch ich die verlinkte Anleitung aus meinem ersten Beitrag nicht 
einfach übernehmen kann:

Here you need to extract the zip file stm32f10x_stdperiph_lib.zip into 
the directory "STM32F10x_StdPeriph_Lib_V3.5.0" from which we would be 
copying the following directories:

    Copy "Libraries\CMSIS\CM3\CoreSupport" => "wsSTM32\CMSIS"
    Copy "Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x" => 
"wsSTM32\STM32F10x"
    Copy "Libraries\STM32F10x_StdPeriph_Driver" => 
"wsSTM32\STM32F10x_StdPeriph_Driver"
    Copy "Project\STM32F10x_StdPeriph_Template" => 
"wsSTM32\STM32F10x_StdPeriph_Driver"

Unterschied zu Cortex M4:
- Es gibt keinen CM3-Ordner :-(

Autor: Steffen Rose (steffen_rose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast doch bereits ein fix und fertiges Projekt. Du willst doch bloß 
die IDE wechseln. Du schreibst, du willst noch nicht einmal auf Realarm 
wechseln, sondern weiterhin den gcc nutzen.

Das heißt, du nimmst genau die Dateien die du hast und nicht mehr.
Du musst nur die IDE so einstellen, dass der gcc genommen wird und dann 
die passenden Optionen setzen.

Offen bleibt dabei natürlich, warum dieser Aufwand?

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

Bewertung
0 lesenswert
nicht lesenswert
besserer Debugger?

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
markus schrieb:
> Here you need to extract the zip file stm32f10x_stdperiph_lib.zip

Das ist , wie man am Dateinamen erkennt, die Lib für den STM32F1! Du 
brauchst aber die für den STM32F4...

Random .. schrieb:
> besserer Debugger?
Was kann der denn besser als zB GDB mit JLink?

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

Bewertung
0 lesenswert
nicht lesenswert
Dr. Sommer schrieb:
> Random .. schrieb:
>> besserer Debugger?
> Was kann der denn besser als zB GDB mit JLink?

mehr Möglichkeiten beim Debuggen durch die IDE. Ggf. Trace / SWO.

: Bearbeitet durch User
Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Random .. schrieb:
> mehr Möglichkeiten beim Debuggen durch die IDE.
Ah, das erklärt natürlich alles.
> Ggf. Trace / SWO.
Kann eclipse auch.

Autor: Steffen Rose (steffen_rose)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Random .. schrieb:
> besserer Debugger?

Die Gründe für seinen Wechsel kann ja nur Markus nennen. Spekulationen 
bringen uns da nur wenig weiter.

Und wenn er sich so schwer tut ein Projekt unter Keil zum Laufen zu 
bekommen kann ich mir nicht so recht vorstellen, dass es ihm momentan 
vordringlich um den Debugger geht.

Aber ja, ich mag den Debugger vom Keil auch lieber als den gdb.

Autor: fürn Hugo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ist die Anleitung nur für Cortex M3 anwendbar und nicht für Cortex 
M4?
Vermutlich geht es um die CMSIS Files oder?
Ist dein "Programm" schon fix fertig für den STM32F4?

Normalwerweise erzeugst du für deinen STM32F4 ein neues Projekt, dann 
werden deine Startupfiles angelegt.
Das kannst du auch mit CooCox machen, einfach eine GCC Toolchain 
herunterladen und in CooCox den Pfad dort hin einstellen.

Autor: Nop (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Man kann natürlich auch einfach GCC so nehmen und sich ein Buildscript 
erstellen, dann ist man überhaupt nicht mehr auf die Befindlichkeiten 
irgendwelcher IDEs angewiesen, und man kann auch in 10 Jahren noch das 
Binary erzeugen. Und auf jedem Betriebssystem (ggf. Batchfile in 
Shellsript eben umwandeln).

Ein bestehendes Elf/Hexfile hochladen wird die Keilumgebung ja wohl noch 
können.

Ist natürlich blöd, wenn vorher eine andere Klickibunt-Umgebung 
verwendet wurde, die z.B. statt eines vernünftigen Linkerscriptes einen 
Zoo von Linker-Einstellungen über diverse Dialogboxen verteilt und 
DARAUS dann erst die Linkereinstellungen selber zusammengefummelt hat.

Autor: Max Max (max_m1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank euch allen für die Antworten.

Das Projekt hab ich von Github heruntergeladen.
Es beinhaltet diverse .c und .h Dateien welche mittels eines 
"makerfiles" auf den STM32F4 hochgeladen werden können.

Ich kann die einzelnen .c und .h files im Editor editieren und mittels 
Ubunut-Eingabekonsole auf den STM laden.

fürn Hugo schrieb:
> Warum ist die Anleitung nur für Cortex M3 anwendbar und nicht für Cortex
> M4?
> Vermutlich geht es um die CMSIS Files oder?
> Ist dein "Programm" schon fix fertig für den STM32F4?

ja, wie gesagt es läuft unter Ubuntu mit dem "Makefile"
>
> Normalwerweise erzeugst du für deinen STM32F4 ein neues Projekt, dann
> werden deine Startupfiles angelegt.

Ja, das dachte ich mir auch. Ganz so einfach ist es leider jedoch nicht.
Selbst wenn ich den Debugger ändere, kann Keil es nicht richtig 
kompilieren:
http://www.keil.com/arm/gnu.asp

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Max M. schrieb:
> Es beinhaltet diverse .c und .h Dateien welche mittels eines
> "makerfiles" auf den STM32F4 hochgeladen werden können.

Ja dann mach das doch so. Makefiles funktionieren auch unter Windows.

Autor: 2⁵ (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dr. Sommer schrieb:
> Ja dann mach das doch so. Makefiles funktionieren auch unter Windows.

Solange der Ersteller intelligent genug war, keine absoluten Pfade 
reinzubauen.

https://launchpad.net/gcc-arm-embedded/+download

http://gnuwin32.sourceforge.net/packages/make.htm

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
2⁵ schrieb:
> http://gnuwin32.sourceforge.net/packages/make.htm

In installiere für sowas gerne Cygwin (und dessen make Paket). Zwei 
Gründe: Erstens kommt dann auch gleich eine shell mit und auch die 
anderen wichtigen Tools wie mkdir und rm, da laufen dann auch Makefiles 
die sonst nur unter *ix laufen würden und man spart sich einen Haufen 
Extrawürste und Verrenkungen wenn man ein Script oder ein Makefile in 
beiden Welten gleichermaßen benutzen können will. Zweitens: Früher oder 
später will man auch unter Windows mal die Schmerzen abstellen und 
endlich eine gescheite Konsole benutzen können, also wird man es eh 
irgendwann installieren.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd K. schrieb:
> In installiere für sowas gerne Cygwin

Andere Möglichkeit: Bei Gnu arm eclipse gibt's einen Installer der 
busybox + make installiert (völlig unabhängig von eclipse selbst). Damit 
müssten sich die meisten makefiles ausführen lassen (auf jeden Fall die 
von eclipse generierten). Der Vorteil ist hier dass die Installation 
super simpel und automatisch geht und das Paket winzig ist.
Mit dem gnuwin32 make hatte ich das Problem, dass es bei manchen 
makefiles mit der -j Option abstürzt. Die diversen Alternativen (cygwin, 
mingw, ...) sind alle recht groß und nicht so einfach zu installieren.

Autor: Dr. Sommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernd K. schrieb:
> Zweitens: Früher oder später will man auch unter Windows mal die
> Schmerzen abstellen

Die Powershell ist tatsächlich ganz brauchbar, aber halt anders als 
POSIX Shells.

Autor: Steffen Rose (steffen_rose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nop schrieb:
> Ein bestehendes Elf/Hexfile hochladen wird die Keilumgebung ja wohl noch
> können.

Naja, speziell damit hat sie eher Probleme.

Autor: Keil-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen R. schrieb:
> Nop schrieb:
>> Ein bestehendes Elf/Hexfile hochladen wird die Keilumgebung ja wohl noch
>> können.
>
> Naja, speziell damit hat sie eher Probleme.

eigentlich nicht, man braucht pro CPU (M3, M4, ..) nur ein einziges 
Keil-Projekt (wir verwenden derzeit uVision3 oder uVision4 für 100'te
verschiedner Hexfiles) dem man das Hex-File unterschiebt.

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.