Installation der Toolchain und erstes Projekt

Die Installation der Toolchain für den STM32F4 gliedert sich in 6 Teile :

1. Download und Installation der CooCox-IDE
2. Download und Installation vom GCC-Compiler
3. Einstellungen in der CooCox-IDE vornehmen
4. Download und Installation vom USB-Treiber für den STM32F4 Programmierer
5. STM32F4-Discovery per USB anschließen
6. Test ob alles funktioniert mit einem Demo-Programm

Hier die Schritte im einzelnen :

1. Download und Installation der CooCox-IDE :

CooCox findet sich kostenlos im Web unter “www.coocox.org”

Dort einfach die aktuellste Version (bei mir 1.7.0) der CoIDE runterladen und auf dem PC in einem Ordner (z.B. “C:\Coocox”) installieren.

Hinweis : meine Librarys vom STM32F4 bauen auf den “standard peripherals” von ST auf.
Dazu ist CoIDE Version V:1.x.x notwenig (nicht die Beta V:2.x.x).

2. Download und Installation vom GCC-Compiler :

Der ARM-C-Compiler findet sich auch kostenlos im WEB unter “https://launchpad.net/gcc-arm-embedded/”

Die aktuellste Version war bei mir (4.7-2012-q4-major release)

Nach dem Download kann das ganze z.B. in den Standard Pfad installiert werden. Vorsicht : der Name des Installations-Pfades wird später noch gebraucht.

3. Einstellungen in der CooCox-IDE vornehmen

Jetzt kann zum ersten mal die CooCox-IDE gestartet werden und im Menü unter “Projekt/Select toolchain Path” kann der Pfad der GCC-Installation angegeben werden.

Hier muss der Pfad zum “Bin-Verzeichnis” eingetragen werden also z.B. “C:\Program Files (x86)\GNU Tools ARM Embedded\4.7 2012q4\bin\”

4. Download und Installation vom USB-Treiber für den Programmierer

Auf dem STM32F4-Discovery ist ein USB-Programmierer “ST-Link/V2″ eingebaut und für den muss in WEB noch der kostenlose Treiber von ST runtergeladen werden. Zu finden ist dieser bei “www.st.com” und dem Suchbegriff “ST-Link/V2″.

Ich hab die Version 1.0.4 runtergeladen und im Standardpfad installiert.

5. STM32F4-Discovery per USB anschließen

Wenn das Board das erste mal angeschlossen wird, kann es sein das der Treiber nicht automatisch aktualisiert wird. Dann steht im Gerätemanager ein gelbes Ausrufezeichen hinter dem ST-Link/V2. Wenn das passiert, einfach mit rechter Maustaste und “Treibersoftware aktuallisieren” den PC per “Automatisch nach aktueller Treibersoftware” suchen lassen.

Hinweis : es kann sein das sich der Virenscanner meldet, das kann aber ignoriert werden.

Wenn der Treiber richtig installiert wurde, muss das im Gerätemanager so aussehen :

stlink

STLink-V2 im Gerätemanager

6. Test ob alles funktioniert mit einem Demo-Programm

Nachdem jetzt alles eingestellt wurde, ist es zeit für den ersten Test ob auch alles funktioniert.

1. Die CooCox-IDE starten und auf der Startseite den Punkt “Browse in Repository” auswählen.

s1

Browse in Repository

2. Den CPU-Hersteller auswählen -> “ST”

s2

Hersteller ist “ST”

3. Die benutzte CPU auswählen -> “STM32F407VG”

s3

CPU ist “STM32F407VG”

4. Für den ersten Test wollen wir eine LED auf dem STM32F4-Discovery blinken lassen, dazu brauchen wir die Komponente “GPIO” unter den “Peripheral”

s4

GPIO-Komponente auswählen

5. Beim anklicken der Komponente werden wir gefragt, ob wir ein neues Projekt anlegen und speichern wollen. Wir bestätigen mit “Ja” und speichern das Projekt im Standardpfad.

s5

Projekt speichern

6. Was wir jetzt noch brauchen ist der Inhalt vom “Main.c” also doppelklicken wir auf der linken Seite das “Main.c” File und gelangen so in den Editor-Modus.

s6

Main.c öffnen

7. Innerhalb vom Main.c kann der komplette Quellcode durch diese Vorlage ersetzt werden (auf die einzelnen Codezeilen will ich hier nicht eingehen) :

#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"

void Delay(volatile uint32_t nCount)
{
  while(nCount--)
  {
  }
}

void init(void) {
  GPIO_InitTypeDef  GPIO_InitStructure;

  // Clock Enable
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

  // Config PD12 als Digital-Ausgang
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
}

int main(void)
{
  init();

  while(1) {
    Delay(500000);
    GPIOD->ODR ^= GPIO_Pin_12; // PD12 toggeln
  }
}

8. Nach dem drücken des Buttons “Build” bzw. Taste “F7″ sollte alles ohne Fehler compiliert werden.

9. Nach dem drücken des Buttons “Download Code to Flash” wird das Programm zum STM32F4-Discovery übertragen und gestartet. Jetzt sollte die grüne LED auf dem Discovery-Board blinken.

10. Falls alles funktioniert : Gratulation … die Toolchain steht !

Hinweis : Wenn alles Funktioniert, bitte auch diese Seite durchlesen :
(sonst läuft die CPU u.U. nicht mit der richtigen Frequenz)

Grundsätzliches zur CooCox-IDE

13 Antworten auf Installation der Toolchain und erstes Projekt

  1. ManiB sagt:

    Hi Uwe,

    von 0 auf 100 in 5 Minuten, dank deiner perfekten Beschreibung!

    LG,
    ManiB

  2. Tom sagt:

    Man sollte dir einen Orden verleihen!
    Super Anleitung.. nach 10 Minuten blinkt die LED grün :)
    Vielen Dank!

  3. STM32Anfänger sagt:

    Super.
    Hat sofort geklappt!
    Sehr vielen Dank!

  4. mischa sagt:

    Klasse,
    super Einleitung.
    Bedanke mich ganz herzlich dafür.
    Hammer Blog.

  5. vielen Daaank für den support!

  6. man3ref.ma sagt:

    Echt Super Anleitung. Hat mit Coocox V2Beta nicht fzt. Mit der 1.7.7 super geklapt! Danke!

  7. Michael L. sagt:

    CoIDE 1.7.8 erfolgreich getestet. Danke!

  8. Andreas sagt:

    Hallo,

    erst einmal vielen Dank für diese tolle Anleitung.

    Ich habe allerdings bei mir ein Problem und zwar habe ich Coocox installiert und das richtige Modell ausgewählt. Das Kompilieren des Programmcodes funktioniert tadellos, allerdings sobald ich den Mikrocontroller flashen möchte zeigt mir das Programm folgenden Fehler an:
    Error: Device XML file not find

    Wie kann ich die Device XML in CooCox laden?

    Vielen Dank schon mal

    Gruß
    Andreas

    • admin_ub sagt:

      die XML-Files müssten alle bei der installation dabei sein. Sicher das du den richtigen CPU Typ ausgewählt hast ?

  9. basho1337 sagt:

    Hey,

    Erstmal ein großes Dankeschön. Es klappt alles tadellos wie in dem Turorial beschrieben.
    Jetzt möchte ich jedoch die von ST zur Verfügung gestellte HAL Library benutzen. Ich bin ein totaler Anfänger in dem Gebiet. Ich hatte unter anderem versucht mit anklicken der Cube library in dem Repository Fenster die benötigten header Dateien zu includen. Jedoch bekomme ich dann beim builden mit Funktionen der HAL_lib nur Fehler :( (Ganz einfacher LEDblink Code)

    Hat jemand schon erfolgreich mit den HAL Drivern und der CoIDE programmiert ?

    Beste Grüße und vielen Dank schonmal im Vorraus

    • admin_ub sagt:

      benutzt du CoIDE ?
      Dann wirst du das Repository nicht benutzen können,
      sondern musst alle Files “manuell” in dein Projekt kopieren
      und includieren.

  10. bustamania sagt:

    Hi, ich habe elendig lange mit der V2Beta gekämpft, bis ich entsprechende Beschwerden gelesen habe. Du schreibst zwar, dass du die 1.7.0 verwendest, aber vielleicht könntest du noch einen Hinweis geben, dass es mit der aktuellen Version nicht so einfach funktioniert.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


− sieben = zwei

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>