IAR (MSP430): Fehlermeldung wegen Entry...

OP #399517
Lesenswert?

Hallo zusammen,

bin grade dabei, auf einem MSP430 ein Prog zum Ansprechen einer SD-Card
zu schreiben. Da bietet es sich ja an, mehrere Files zu verwenden (Nicht
nur main.c). Nur ist das mit dem #include so eine Sache. Ich hab' mehr
Zeit damit verbraucht, das Zeugs in der richtigen Reihenfolge zu
includen als ich für den eigentlichen Code benötigt habe. Nun kann er
zwar alles kompilieren, aber dann kommt dieser Fehler:
Error[e27]: Entry "SD_Init" in module SDCard ( C:\Dokumente und
Einstellungen\Administrator\Eigene Dateien\
Developing\MSP430 - Test\F1121\SD-Card\Debug\Obj\SDCard.r43 )
redefined in module main ( C:\Dokumente und
Einstellungen\Administrator\Eigene Dateien\Developing\MSP430 -
Test\F1121\SD-Card\Debug\Obj\main.r43 )

Kann mir irgendwer sagen, was das bedeuten soll und noch wichtiger, wie
man den Fehler behebt?

Includerei sieht so aus:
1. main.c -> include msp430x16x.h
2. main.c -> include SDCard.c
3. SDCard.c -> include SDCard.h
4. SDCard.h -> include msp430x16x.h

Punkt vier ist auch etwas seltsam. Wenn ich den Include-Befehl
rausnehme, dann kennt er in der SDCard.c die Definitionen nicht mehr,
die dort eigentlich drinstehen sollten. Obwohl des File ja schon von
main.c geladen wird.

Ich wäre froh, wenn mir jemand sagen könnte, was der oben genannte
Fehler bedeuten soll und wie man ihn wegkriegt.
Besten Dank im Voraus und Gruss
Philipp
Gast #399519
Lesenswert?

Also ich mach mir immer eine include.h wo alle #include Sachen drinne
stehen. Dann brauch ich in jeder .c Datei nur immer #include
"include.h" schreiben und alles ist gut.

Alle .h Dateien bekommen folgendes rein:
#ifndef NAME_DER_DATEI_H
#define NAME_DER_DATEI_H 1
.
.
Code
.
#endif

Damit ist sichergestellt das es keine doppelten Einbindungen gibt, was
wohl bei dir passiert ist.
Gast #399520
Lesenswert?

kenn diese Meldungen aus der IAR, wenn man .c-Dateien includen möchte,
IAR mag das nicht (wird auch sonst nicht gern gesehen, da schlechter
Stil)... schreib ein ordentliches Headerfile, oder mach eine Funktionen
aus der SDCard.c mit dem "extern Befehl" in der main.c bekannt...

ganz nebenbei, müsste das ganze sogar funzen, wenn du aus .c einfach
ein .h machst...

gruß ehde76
Gast #4172685
Lesenswert?

Im ersten Post unter 2. wird ein c file includiert, dass noch im Projekt 
aufgenommen wird. Alle Symbole sind daher doppelt vorhanden, z. B. 
Funktionen und globale Variablen. Der Linker steht jetzt vor der Qual 
der Wahl, und gibt auf: Error …

Das ist nicht IAR spezifisch, sondern führt bei jedem Compiler/Linker zu 
einem Abbruch.
#4172700
Lesenswert?

Linker schrieb:
> Im ersten Post unter 2. wird ein c file includiert, dass noch im
> Projekt
> aufgenommen wird. Alle Symbole sind daher doppelt vorhanden, z. B.
> Funktionen und globale Variablen. Der Linker steht jetzt vor der Qual
> der Wahl, und gibt auf: Error …
>
> Das ist nicht IAR spezifisch, sondern führt bei jedem Compiler/Linker zu
> einem Abbruch.


welche Symbole sind daher doppelt vorhanden?

der Fehler sieht bei mir so aus (siehe Bild)
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren