Forum: Compiler & IDEs #include coocox


von Umsteiger (Gast)


Lesenswert?

Hallo zusammen,

ich habe folgendes Problem,

ich habe bisher auf Controllern der AVR Familie (ATmega und ATiny) 
gearbeitet und würde mich nun gern in die Welt der STM32 Controller 
Einarbeiten.

Dazu habe ich mir das STM32F4 Discovery Board mit dem STM32F407VG 
zugelegt, sowie den J-Link Programmer.

Außerdem hab ich mir als IDE CooCox (2.0.3) ausgesucht.

Nun wollte ich meine ersten Codezeilen in CooCox Kompilieren aber ich 
bekomme den Fehler

fatal error: stm32f4xx.h: No such file or directory

dieser weist mich doch darauf hin das etwas mit der Libery nicht stimmt, 
aber wie muss ich die Einbinden?
Ist diese denn noch nicht bei CooCox standard mäßig dabei?
Wo kann ich diese (oder besser sämtliche standard) Libs runter laden?
Und vor Allem wie binde ich diese Libs dann in CooCox ein?

Für die meisten ist diese Frage wohl Trivial aber ich bin grad am 
verzweifeln.

vielen Dank für eure Hilfe

von Klaus (Gast)


Lesenswert?

Umsteiger schrieb:
> ich habe bisher auf Controllern der AVR Familie (ATmega und ATiny)
> gearbeitet

Entschuldige, aber nach der Art der Fragestellung zu kurz. Geschätzt 
etwa 2 Tage.
Lies mal ein C Buch und die Beschreibung des Compilers im allgemeinen 
und im Besonderen.

Dann weisst Du was ein include File ist, was eine Library, was beides 
unterscheidet. So! Und wenn Du dann in einigen Wochen das alles durch 
und verinnerlicht hast, dann übst Du nochmal ein paar Monate mit dem 
AVR.

Muss schon wieder Wochenende sein, oder sowas.

von Umsteiger (Gast)


Lesenswert?

Hallo Klaus,

erstmal vielen Dank für deine Antwort.
Ich beschäftige mich schon seit ca. 5 Jahren mir AVRs allerdings nur in 
meiner sehr knappen Freizeit und für kleine Hobby Projekte womit du mit 
deiner Schätzung von 2 Tagen nur knapp daneben liegst ;-)

Ein C Buch brauche ich wohl nicht, da C im Studium (offenbar nicht gut 
genug) behandelt wurde und ich im großen und ganzen recht gut mit C 
zurecht komme.

Bislang hat es gut funktioniert die include dateien für AVRs einfach 
einzubinden und Los zu legen. Leider stehe ich in diesem Punkt bei 
CooCox gerade ganz schön auf dem Schlauch weswegen ich hier um Hilfe 
bitte.

Und ein Freitags Troll Post soll das Ganze wirkliklich nicht sein. Darum 
wäre ich um eine kurze Erklärung des, für die Meisten hier trivialen, 
Problems sehr dankbar

von Rene H. (Gast)


Lesenswert?

Suche die Header Datei und füge den Include Pfad in der IDE ein.

von Dr. Sommer (Gast)


Lesenswert?

Es muss #include <stm32f4xx.h>   sein, nicht #include "stm32f4xx.h"  . 
Hast du das richtig? Wenn ja, hast du in CooCox das Projekt so angelegt 
dass es für den STM32F4 ist, und dass die Library mit eingebunden wird?

von Umsteiger (Gast)


Lesenswert?

@Rene H.

Hab jetzt die include Datei kopiert und im Projekt mit rechts Klick -> 
Configuration den Pafd zur Datei angegeben.

war das so richtig?

@Dr. Sommer

egal ob mit "" oder mit <> jetzt Kmpiliert das ganze. Ich hab beim 
Projekt Wizzard von anfang an den STM32F407VG ausgewählt nur wie man die 
Libery richtig einbindet war mir noch nicht ganz klar.

Ganz sicher ob ich das jezt richtig mache bin ich noch immer nicht aber 
zumindest kann ich es jetzt kompilieren.

Muss ich jetzt für jeden Controller den ich verwende die include Datei 
suchen oder ist die bereits in irgendeinem Pafd der CooCox Installation?

Danke für die schnellen und hilfreichen Antworten

von Dirk B. (dirkb2)


Lesenswert?

Dr. Sommer schrieb:
> Es muss #include <stm32f4xx.h>   sein, nicht #include "stm32f4xx.h"  .

Bei "" wird zuerst vom aktuellen Verzeichnis aus gesucht.
Wenn es da nicht gefunden wird, werden auch die Include-Path des 
Compilers wie bei <> durchsucht.

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
Noch kein Account? Hier anmelden.