Forum: Compiler & IDEs Problem mit STM32 Programmierung


von AVR (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte mich in die STM32 Programmierung einarbeiten. Ich habe hier 
im Forum die PDF Unterlagen von einem Stefan Frings heruntergeladen. 
Vielen Dank für die Sachen :)

Ich habe mit der IDE alles so eingerichtet, wie es im Dokument 
beschrieben ist. Der einzige Unterschied ist, dass ich ein anderes 
Nucleo Board verwende. Ich benutze ein NUCLEO-L152RE.

Ich habe den passenden CMSIS Ordner in mein Projektordner gelegt. In 
meiner main.c die passende Headerfile genommen. In meinem Fall die 
"stm32l152xe.h".

Nun kommt die Fehlermeldung, die ich euch angehängt habe. Er findet die 
"core_cm3.h" nicht. Da ich mich in dem Thema nicht so gut auskenne, weiß 
ich leider nicht, wie ich nun weitermachen soll. Weiß einer von euch, 
wie es dort weiter geht?

MfG

von Markus M. (adrock)


Lesenswert?

Der Compiler weiß nicht wo er das include file

core_cm3.h

finden soll. Das wird wohl im Ordner

CMSIS/Core/Include

liegen. Kenne mich jetzt mit Deiner IDE (Eclipse?) nicht aus, aber 
irgendwo kann man konfigurieren, wo der Compiler nach Files sucht die 
mit

#include "<datei>"

eingebunden werden. Er sucht zuerst im gleichen Verzeichnis wo die Datei 
liegt in der die "#include" Anweisung steht, und danach in einer 
konfigurierten Liste von Verzeichnissen.

Das ist der Teil im Aufruf des gcc den Du im Fenster am rechten Rand 
hast, mit -I<verzeichnis> ... kann man die Verzeichnisse beim 
Compileraufruf mitgeben, in denen nach Includes gesucht wird.

Da der gcc ja von Deiner IDE aufgerufen wird, müsste das irgendwo in 
Deinen Projekteigenschaften eingestellbar sein.

EDIT: Google hilft, es sollte wohl dort einstellbar sein:

Project > Properties > C/C++ Build > Settings > Tool Settings > MCU GCC 
Compiler > Include paths

: Bearbeitet durch User
Beitrag #6460865 wurde von einem Moderator gelöscht.
von AVR (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Markus,

vielen Dank für deinen Beitrag. Ich habe den passenden Pfad eingegeben 
und der Compiler findet nun die core_cm3.h Headerfile.

Nun habe ich ein anderes Problem. Bei mir werden die Funktionen wie 
WRITE_REG oder SET_BIT nicht gefunden. Siehe angehängtes Bild.

Welche Headerfile muss da denn eingebunden werden? Ich habe dazu 
folgende Seite angeschaut:

http://stefanfrings.de/stm32/stm32f3.html#newlib

Ich habe mir die Rubrik "ARM Libraries" angeschaut. Wenn ich das richtig 
verstanden habe, dann sind die Befehle, die bei mir nicht gefunden 
werden, von ST selbst hinzugefügt worden. Warum findet der Compiler 
diese dann nicht?

MfG

von pegel (Gast)


Lesenswert?

AVR schrieb im Beitrag #6461798:
> Bei mir werden die Funktionen wie
> WRITE_REG oder SET_BIT nicht gefunden.

Das sind keine Funktionen, das sind nur Macro Definitionen aus der 
stm32l1xx.h .

von pegel (Gast)


Lesenswert?

#elif defined(STM32L152xE)
  #include "stm32l152xe.h"

In der stm32l1xx.h wird auch entsprechend des -dSTM32L152xE die zum µC 
passende Header Datei benutzt.

D.h. Du solltest nicht
#include "stm32l152xe.h"
direkt verwenden sondern
stm32l1xx.h
den µC Type unter Define Symbols angeben.

So werden auch alle weiteren µC abhängigen Bedingungen im Projekt 
erfüllt.

von Stefan F. (Gast)


Lesenswert?

AVR schrieb im Beitrag #6459634:
> Ich habe den passenden CMSIS Ordner in mein Projektordner gelegt. In
> meiner main.c die passende Headerfile genommen. In meinem Fall die
> "stm32l152xe.h".

AVR schrieb im Beitrag #6461798:
> Nun habe ich ein anderes Problem. Bei mir werden die Funktionen wie
> WRITE_REG oder SET_BIT nicht gefunden. Siehe angehängtes Bild.

Zusammengefasst:

Du musst die Datei stm32l1xx.h nehmen.

Die Datei core_cm3.h befindet sich in dem anderen Verzeichnis 
CMSIS/core, vermutlich hast du das nicht zur Projektkonfiguration 
(includes) hinzugefügt oder du hast es nur nicht für beide Profile 
Debug+Release gemacht.

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.