Forum: Mikrocontroller und Digitale Elektronik code:blocks findet header nicht


von J. T. (chaoskind)


Lesenswert?

MoinMoin
ich hab mal wieder n Problemchen.

Ich hab mir n STM32F3Discovery Board bestellt, und bin nun quasi 
gezwungen, auf C/C++ umzusteigen. Nun hab ich aber schon Probleme, wenn 
es darum geht, die Header-Dateien einzubinden.

Ich habe mir die STM32F30x_DSP_StdPeriph_Lib_V1.0.0 runtergeladen, und 
in mein CodeBlocksverzeichnis getan. Dann hab ich versucht, die 
STM32F30x.h mit
#include <STM32F30x.h> einzubinden, da gab er mir die Fehlermeldung aus, 
das die Datei nicht gefunden wird.

Dann hab ich den Pfad mitangegeben, da hat er dann die Datei gefunden, 
aber ist in diese reingesprungen, und hat über eine dort eingebundene 
Datei gemeckert, die er wohl nicht findet(CoreM4irgendwas.h oder so 
ähnlich).Die Datei liegt aber vor. Ich hab dann mal probehalber 
versucht, alle Header aus der STM32f30x_StdPeriph_lib in einen Ordner zu 
sammeln, und diesen als Pfad angegeben, aber auch dann wurde über ne 
fehlende Datei gemosert...
1
/* newline.c */
2
#include <stdio.h>
3
#include <C:/Programme/CodeBlocks/MinGW/STM32F30x_DSP_StdPeriph_Lib_V1.0.0/Libraries/CMSIS/Device/ST/STM32F30x/Include/stm32f30x.h>
4
5
int main(void) {
6
   printf("Darstellung von Newline \\n \n");
7
   printf("Mögliche Ausführung von Newline\n");
8
   printf("Mit hexadezimaler Angabe : \\xa \xa");
9
   printf("Mit oktaler Wertangabe   : \\012 \012");
10
   printf("Mit dezimaler Angabe     : 10%c",10);
11
   printf("Hallo\0Ich bin nicht mehr lesbar\n");
12
   return 0;
13
}

so sieht das Ganze aus. Der Code soll eigentlich garnichts machen, das 
hab ich aus nem C-tutorial, läuft auch soweit. Nun wollte ich die ersten 
Versuche beginnen, auf dem ARM ne LED zum blinken zu bringen usw. Aber 
ohne Zugriff auf die Libarys und Header....

Den Ordner mit den einzelnen Headern hab ich wieder gelöscht, und die 
DSP_StdPeriph_lib ist wieder wie sie ist.

Als Fehlermeldung bekomm ich zur Zeit folgende, die mir aber auch nicht 
groß weiterhilft. Die über die STM32F30x.h eingebundenen Dateien müsste 
er doch finden, auch wenn sie nicht in einem Ordner sind? Sie sind ja 
schließlich alle in Unterordnern von dem DSP_StdPeripheral Ordner.

C:\Programme\CodeBlocks\MinGW\STM32F30x_DSP_StdPeriph_Lib_V1.0.0\Librari 
es\CMSIS\Device\ST\STM32F30x\Include\stm32f30x.h|249|fatal  error: 
core_cm4.h: No such file or directory|
||=== Build finished: 1 errors, 0 warnings (0 minutes, 17 seconds) ===|

MfG Chaos

P.S. Ich suche auch nach nem Schaltplan/Dokumentation für 
STM32FDiscoveryBoard, wo drauf steht, welcher Jumper was tut, JP1 sieht 
zb so aus, als würden beide Pins auf Masse liegen, aber evtl ist das ja 
auch n Multilayerboard, und das passiert irgendwo zwischen den Layern..

von troll (Gast)


Lesenswert?

Project-->Build Options-->Search directories erscheint mir einen Blick 
wert.

Übrigens

#include <blub.h> --> sucht in den Standardpfaden (aber frag nicht 
wie/wo die definiert werden...)
#include "blub.h" --> sucht da wo die C-Datei ist in der das steht.

von J. T. (chaoskind)


Lesenswert?

In den Buildoptions ist nur Enable all compiler warnings [-Wall] 
aktiviert...

Das mit den Anführungszeichen werd ich mal versuchen.

von J. T. (chaoskind)


Lesenswert?

Das bringt auch nichts...

hier noch ein BuildLog

-------------- Build: Debug in ErsteSchritte (compiler: GNU GCC 
Compiler)---------------

arm-none-eabi-gcc.exe -Wall  -g 
-IC:\Programme\CodeBlocks\Projekte\ErsteSchritte 
-IC:\Programme\CodeBlocks\Projekte\ErsteSchritte -c 
C:\Programme\CodeBlocks\Projekte\ErsteSchritte\ErsteSchritte.c -o 
obj\Debug\ErsteSchritte.o
arm-none-eabi-g++.exe  -o bin\Debug\ErsteSchritte.exe 
obj\Debug\ErsteSchritte.o
In file included from 
C:\Programme\CodeBlocks\Projekte\ErsteSchritte\ErsteSchritte.c:3:0:
C:/Programme/CodeBlocks/MinGW/STM32F30x_DSP_StdPeriph_Lib_V1.0.0/Librari 
es/CMSIS/Device/ST/STM32F30x/Include/stm32f30x.h:249:80:  fatal error: 
core_cm4.h: No such file or directory
compilation terminated.
Process terminated with status 1 (0 minutes, 8 seconds)
1 errors, 0 warnings (0 minutes, 8 seconds)

von J. T. (chaoskind)


Lesenswert?

Wobei die STM32F30x.h in ner tieferen Ebene liegt. Wie ist das dann, 
wenn ich die mit #include "Pfad1/pfad11/pfad111/STM32F.h" aufrufe, und 
dann diese core_cm4.h beispielsweise in "Pfad1/pfad12/pfad121" liegt?

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.