Forum: Mikrocontroller und Digitale Elektronik IAR (MSP430): Fehlermeldung wegen Entry...


von Philipp B. (philipp_burch)


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

von Philipp B. (philipp_burch)


Lesenswert?

Kenn denn niemand diesen Fehler?

von Jörg S. (Gast)


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.

von ehde76 (Gast)


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

von Philipp B. (philipp_burch)


Lesenswert?

Ok, danke euch beiden, werde ich mal probieren :)

von Philipp B. (philipp_burch)


Lesenswert?

Funktioniert jetzt. Danke nochmal, es lag wohl wirklich daran, dass ich
.c-Dateien eingebunden habe.

von Martin G. (martin_gate)


Lesenswert?

Philipp Burch schrieb:
> Funktioniert jetzt. Danke nochmal, es lag wohl wirklich daran,
> dass ich
> .c-Dateien eingebunden habe.

Hi Philip,

ich habe gerade auch das Problem Error[e27].

kannst du mir bitte kurz zeigen, wie du das Problem behoben hast?
was und wo musstest du also im Programm schreiben?

Besten Dank im Voraus und Grüß,
Martin

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Martin Gate schrieb:
> kannst du mir bitte kurz zeigen, wie du das Problem behoben hast?

Glaubst Du, daß Philip hier nach nur NEUN JAHREN noch mitliest?

von Linker (Gast)


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.

von Martin G. (martin_gate)


Angehängte Dateien:

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)

von Linker (Gast)


Lesenswert?

Martin Gate schrieb:
> welche Symbole sind daher doppelt vorhanden?

"finetune"

Mach dich aml über die richtige Verwendung von Headern schlau. ;-)

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.