Forum: Mikrocontroller und Digitale Elektronik Atollic TrueSTUDIO STM32F4 mit C++ undefined reference to `main' und co.


von Denis S. (h44656e)


Lesenswert?

Hallo Zusammen,
ich muss euch um eure Hilfe bitten.
Ich versuche mit „Atollic TrueSTUDIO for STMicroelectronics STM32 Lite 
2.3.0“ ein Projekt mit C++ ans Laufen zu bringen.
Dabei bekomme ich die Fehlermeldungen:

undefined reference to `main' in
startup_stm32f4xx.s

undefined reference to `EVAL_AUDIO_TransferComplete_CallBack' in 
stm32f4_discovery_audio_codec.c

undefined reference to `EVAL_AUDIO_GetSampleCallBack' in
stm32f4_discovery_audio_codec.c


ich habe bis jetzt keine Lösung finden. Vielleicht hat jemand von euch 
eine Idee.
Gruß
Denis

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Denis SagIchNicht schrieb:
> undefined reference to `main' in
> startup_stm32f4xx.s

Klingt vllt. doof, aber hast du denn eine
1
 
2
int main(void)
in deinem Programm ? Ohne die gehts nicht.

Denis SagIchNicht schrieb:
> undefined reference to `EVAL_AUDIO_TransferComplete_CallBack' in
> stm32f4_discovery_audio_codec.c

Es sieht danach aus, als hättest du das entsprechende *.c file nicht als 
linked resource drin. Schau im Projekt, ob unter 'StdPeriph_Driver' die 
Datei drin ist, die diese Funktionen enthält.
Ansonsten, rechtsklick auf Std_PeriphDriver->New...->File->'Advanced' 
klicken->'Link to File in System' und dann mit 'Browse' die Datei 
suchen. Könnte mir vorstellen, das sie heisst wie 'stm32f40x_audio.c' 
oder so.

von Denis S. (h44656e)


Lesenswert?

Das ist es ja.

Das ganze habe ich bis einem gewissem grad in C geschrieben.
Die main – Funktion und LCD Ansteuerung habe ich problemlos laufen 
lassen.
Jetzt versuche ich das Ganze in C++ zu überführen, da ich ein C++ 
Projekt teilweise übernehmen möchte (aus Keil).  Ich habe die Dateien in 
*.cpp (die *.c  waren) umbenannt. Die Datei in der main liegt habe ich 
versucht auch zurück zu umbenennen. Jetzt ist es fest verfummelt.

Gruß
Denis

von hp-freund (Gast)


Lesenswert?


von Denis S. (h44656e)


Lesenswert?

:-( das ist ja ganz doof!

trotzdem vielen dank!

von Denis S. (h44656e)


Lesenswert?

...
es gibt ja toolchain mit Eclipse, die frage ist, ob jemand eine 
anleitung für windows kennt, mit der mann auch C++ Projekte anlegen 
kann.

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Moin,,

Da ich das ganze auch gerade durch exerziere hier ein paar Tips.

1. die Callback Functions zu denen du undefined Refs hattest kommen aus 
den STM32F4-discovery_codec... h/c Dateien, wenn du den Codec verwenden 
willst musst du die irgendwo definieren.

2. alles was nicht Cpp ist kommt in
extern "C"{
}
rein sonst spuckt der Linker auch undefined refs aus ( speziell bei den 
CallBacks wichtig da die aus C-Code aufgerufen werden )

3. Wenn du Eclipse unter Windows einrichten willst dann schau mal auf 
der Seite von ChibiOS/RT dort gibt es gute Guides dazu. Oder du schaust 
bei
www.stf12.org vorbei. Dort gibts ne fertig konfigurierte Eclipse Indigo 
für Mac OSX und Win.

4. Wenn du ein OS verwenden willst ChibiOS hat einen recht guten Wrapper 
für Cpp, aber ich bevorzuge die FreeRTOS Extension Class von stf12.org

5. Wenn du dir mal etwas Code ansehen willst fürs STm32F4 in Cpp dann 
schau mal hier
http://code.google.com/p/thundercyer-the-alarm-clock/
ist aber noch lange nicht fertig ich arbeit noch dran.

Viel Erfolg

MfG

Tec

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.