mikrocontroller.net

Forum: Compiler & IDEs MSP-GCC unter Linux findet Include-Dateien nicht


Autor: Ewald Kantner (ebtschi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgendes Problem mit MSP-GCC unter Linux:

Nach der (laut Script) erfolgreichen Installation versuche ich, das
"leds"-Beispiel zu kompillieren. Das Ergebnis sieht leider so aus:

[ebtschi@localhost examples]$ cd leds/
[ebtschi@localhost leds]$ ls
CVS  hardware.h  main.c  makefile  README.txt
[ebtschi@localhost leds]$ make
msp430-gcc -mmcu=msp430x1121 -O2 -Wall -g   -c -o main.o main.c
In file included from main.c:6:
hardware.h:4:16: io.h: No such file or directory
hardware.h:5:20: signal.h: No such file or directory
hardware.h:6:22: iomacros.h: No such file or directory
main.c: In function `delay':
main.c:14: warning: implicit declaration of function `nop'
main.c: In function `main':
main.c:26: error: `WDTCTL' undeclared (first use in this function)
main.c:26: error: (Each undeclared identifier is reported only once
main.c:26: error: for each function it appears in.)
main.c:26: error: `WDTPW' undeclared (first use in this function)
main.c:26: error: `WDTHOLD' undeclared (first use in this function)
main.c:28: error: `P1OUT' undeclared (first use in this function)
main.c:29: error: `P2OUT' undeclared (first use in this function)
main.c:31: error: `P1SEL' undeclared (first use in this function)
main.c:32: error: `P2SEL' undeclared (first use in this function)
main.c:34: error: `P1DIR' undeclared (first use in this function)
main.c:35: error: `P2DIR' undeclared (first use in this function)
main.c:37: error: `P1IES' undeclared (first use in this function)
main.c:38: error: `P2IES' undeclared (first use in this function)
main.c:39: error: `P1IE' undeclared (first use in this function)
main.c:40: error: `P2IE' undeclared (first use in this function)
make: *** [main.o] Error 1
[ebtschi@localhost leds]$ whereis stdio.h
stdio: /usr/include/stdio.h /usr/share/man/man3/stdio.3.gz
[ebtschi@localhost leds]$ whereis io.h
io: /usr/include/io.h
[ebtschi@localhost leds]$

Die Include-Datei "io.h" wird von whereis gefunden (ist, glaube ich,
auch im richtigen Verzeichnis), aber nicht vom GCC.
Das ganze läuft (oder eben nicht) unter Fedora Core 2. Kann mir bitte
jemand weiterhelfen?

Autor: Marco S (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Bei mir ist der ganze Kram unter /usr/local/msp430 installiert und
erzeugt folgenden output:

msp430-gcc -mmcu=msp430x1121 -O2 -Wall -g   -c -o main.o main.c
msp430-gcc -mmcu=msp430x1121 -o leds.elf main.o
msp430-objcopy -O ihex leds.elf leds.a43
msp430-objdump -dSt leds.elf >leds.lst

D.h., dass leds-Verzeichnis von examples-0.6.tgz scheint in Ordnung zu
sein, und es liegt wahrscheinlich an deiner Installation der
msp-Umgebung.

Gruß
Marco
-

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/usr/include/io.h ist für den i386 Compiler.

Gibts eine libc für den MSP-GCC? Vielleicht sind sie da drin.

Autor: Steve (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi läuft es mittlerweile? habe unter windows das gleiche problem...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibts eine libc für den MSP-GCC?

Meiner Erinnerung nach eine Portierung von newlib.

Autor: Ewald Kantner (ebtschi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab einfach die neueste libc neu installiert, meine vorige Version
dürfte nicht mehr ganz aktuell gewesen sein, bzw. mit den restlichen
Tools nicht ganz kompatibel.

Warum baut eigentlich keiner ein "Gesamtpaket", wo alle benötigten
libraries schon enthalten sind?

Wenn ich mal nichts zu tun haben sollte (ha-ha) würd ich mir das
vielleicht vornehmen, zumindest für rpm-basierte Distros.

Autor: KoF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gesamtpacket:
- braucht man wirklich immer alles? compiler, debuger,...
- häufige anpassung
  (mspgcc unterstützt auch schon msp430f2xxx typen ;-)
- viel arbeit
- es gibt doch tolle install-skripte, die alles ziehen und
installieren
- es gibt auch nicht rpm-distributionen -> debianzweig,...
- es gibt auch nicht x86 rechner (ppc,sparc,mips,...)
- wenn es im code ausgeliefert wird ist es auch für bsd
  (free, net, open) oder gar cygwin ;-) nutzbar
...

Autor: albra (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ja das Problem kenne ich hatte ich auch mit dem Atmega8. Da sind die
Pfade nicht richtig gesetzt. Da ich nicht der Linux-König bin, habe ich
die Pfade im jeweiligen Files per Hand ersetzt. Also <in.h> auf
"woauchimmer/io.h" geändert.
Wie bereits erwähntist die Io.h die dir mit whereis angezeigt wird ist
nicht die, die für den Msp benötigt wird.


Dirk

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also <in.h> auf
> "woauchimmer/io.h" geändert.

Das ist immer die schlechtestes Idee.  Dann eher noch mit -I
Optionen zum Compiler die Suchpfade erweitern.

Autor: Ewald Kantner (ebtschi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ KoF:

Ja, stimmt schon, aber es gibt auch Leute, die mit möglichst wenig
Aufwand wollen, dass alles "einfach nur funktioniert" - ohne sich um
Dependencies etc. kümmern zu müssen.

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.