Hallo, ich komme bei meinem Projekt einfach nicht weiter. Ich habe hier einen ziemlich unbekannten µC für den ich ein Arduino "Longduino" gefunden habe wo SPI und damit auch die SD Library funktioniert mit der ich gut zurecht komme. Nun brauche ich aber noch eine serielle Verbindung über USB und habe versucht die library die in dem github Projekt mit drin ist zu nutzen. Im Anhang ist ein minimaler code der nicht funktioniert. Ich habe in meiner main.cpp eine referenz auf usb.h, in usb.cpp liegen die passenden funktionen aus dem Beispiel. Also main.cpp -> usb.h -> cdc_acm_core.h Und alle Funktionen die in cdc_acm_core.h liegen und den prefix "extern" haben, für die gibt es ein undefined reference. Was muss ich genau ändern damit es kompiliert? Ich kenne mich mit linken usw. nicht so aus. Hier das inkludierte platform_packages in der platformio.ini: https://github.com/trinami/Longduino Danke schonmal! :)
USB scheint wie vieles andere nicht implementiert zu sein und das Projekt schläft seit zwei Jahren.
J. S. schrieb: > USB scheint wie vieles andere nicht implementiert zu sein und das > Projekt schläft seit zwei Jahren. Irgendeine Idee was ich sonst nehmen könnte? Es gibt wohl auch Rust für diesen µC aber das müsste ich auch erstmal lernen xD Arduino wäre schon super, vor allem weil ich jede Menge von den Dingern habe. Und ich habe hier ein Projekt liegen da funktioniert usb_cdc tatsächlich mit dem unterschied das ich in platformio nicht longduino als framework habe sondern gd32v irgendwas... Ausserdem habe ich eine main.c und keine main.cpp sowie alles in der main.c Datei und nicht ausgelagert in eine usb.c/pp Ich denke also der code ist kompilierfähig, ich weiß nur nicht wie. Die Funktionen für die er einen undefined reference schmeisst sind ja auch implementiert sowohl in einer .c als auch in einer .h Datei... Ich muss da irgendwas übersehen, nur was?
Da wird wohl das SDK zu Fuß eingebunden, da ist ein Beispiel: https://github.com/scpcom/Longduino/tree/master/libraries/USBCDC/examples/USB_UART_BRIDGE
Ja genau, so habe jz das von dir angegebene Beispiel in eine usb.cpp / usb.h Datei gepackt. Nun kommt bei der ersten Funktion "init_clocks()" die ich aufrufe direkt wieder undefined reference ! dabei ist die funktion in usb.h definiert: static void init_clocks(void); und in usb.cpp static void init_clocks(void) { ... } Im Anhang nochmal der code. Was läuft da falsch?
Aha! lass ich das so und kopiere alles in meine main.cpp funktioniert es. Ich und oder der linker/compiler machen also irgendwas falsch, wenn es darum geht es in eine h/cpp Datei auszulagern. Jetzt ist nur noch die Frage was?
hatte am Smartphone nicht in das zip reingeguckt. Du musst dich an die Vorgaben von PlattformIO halten was die Quellverzeichnisse angeht. Alle Quellen nach src kopieren sollte gehen, oder ein Unterverzeichnis in lib aufmachen. Oder über die build_flags mit option -I: https://docs.platformio.org/en/latest/projectconf/sections/env/options/build/build_flags.html
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.