Hallo, ich habe Probleme beim Linken eines Programms. Das Programm ist für einen Mikrocontroller von Texas Instruemts. Der Prozessor ist ein ARM CORTEX M4F und es handelt sich um den Mikrocontroller TM$C123G. Ich kompeliere das Programm in Linux und bin der folgenden Anleitung gefolgt: http://chrisrm.com/howto-develop-on-the-ti-tiva-launchpad-using-linux/ Diese Fehlermeldung bekomme ich beim Linken: //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// -Wall -pedantic -DPART_TM4C123GH6PM -c -I/home/gensheimer/code/tivaware -DTARGET_IS_BLIZZARD_RA1 arm-none-eabi-ld -o build/output.elf build/main.o build/startup_gcc.o build/Segway/Segway.o build/Sensor/ADC.o build/Sensor/ADCSensor.o build/Sensor/GPIOSensor.o build/Antrieb/PWM.o build/Antrieb/Motor.o build/Configuration/Configuration.o build/Segway/Simulation.o -T TM4C123GH6PM.ld --entry ResetISR --gc-sections build/main.o:(.ARM.exidx.text.startup.main+0x0): undefined reference to `__aeabi_unwind_cpp_pr1' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway13setMotorSpeedEP5Motor l+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway32setCurrentSteeringPos itionAsZeroEv+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway27setCurrentOrientation AsZeroEv+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway14doBatteryCheckEv+0x0) : undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o: In function `Segway::initHelpers()': /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:484: undefined reference to `Timer::initTimer(unsigned long)' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway11initHelpersEv+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o: In function `Segway::main()': /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:459: undefined reference to `Timer::setIsTimerEnabled(bool)' build/Segway/Segway.o:(.ARM.exidx.text.startup._ZN6Segway4mainEv+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Segway/Segway.o: In function `Segway::timerFunction()': /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:21: undefined reference to `Timer::resetInterruptFlag()' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:64: undefined reference to `__aeabi_f2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:64: undefined reference to `__aeabi_dmul' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:64: undefined reference to `__aeabi_d2f' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:227: undefined reference to `__aeabi_i2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:227: undefined reference to `__aeabi_ddiv' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:227: undefined reference to `__aeabi_d2f' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:228: undefined reference to `__aeabi_i2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:228: undefined reference to `__aeabi_ddiv' /home/gensheimer/CompilingApplication/tiva-template-master/src/Segway/Se gway.cpp:228: undefined reference to `__aeabi_d2f' build/Segway/Segway.o:(.ARM.exidx.text._ZN6Segway13timerFunctionEv+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Sensor/ADC.o: In function `ADC::getChannelValue(unsigned long)': /home/gensheimer/CompilingApplication/tiva-template-master/src/Sensor/AD C.cpp:154: undefined reference to `__aeabi_ui2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Sensor/AD C.cpp:154: undefined reference to `__aeabi_dmul' /home/gensheimer/CompilingApplication/tiva-template-master/src/Sensor/AD C.cpp:154: undefined reference to `__aeabi_d2uiz' build/Sensor/ADCSensor.o:(.ARM.exidx.text._ZN9ADCSensor15getIntegerValue Ev+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Antrieb/PWM.o: In function `PWM::setChannelPWMRatio(unsigned char)': /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_ui2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_f2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_ddiv' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_dmul' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_dsub' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_dadd' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:91: undefined reference to `__aeabi_d2uiz' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_ui2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_f2d' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_ddiv' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_dmul' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_dsub' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_dadd' /home/gensheimer/CompilingApplication/tiva-template-master/src/Antrieb/P WM.cpp:96: undefined reference to `__aeabi_d2uiz' build/Antrieb/Motor.o:(.ARM.exidx.text._ZN5Motor4initEPN13Configuration1 3s_MotorConfigE+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' build/Antrieb/Motor.o:(.ARM.exidx.text._ZN5Motor8setSpeedEh+0x0): undefined reference to `__aeabi_unwind_cpp_pr0' make: *** [build/output.elf] Error 1 //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// Ich denke es ist ein Problem mit den linker flags aber ich weiß nicht woran es liegt. Auch eine umfangreiche Google Suche hat mich nicht weitergebracht. Mein Linker: arm-none-eabi-ld Meine Linker flags: -o $@ $^ -T $(LD_SCRIPT) --entry ResetISR --gc-sections Ich brauche das Programm so schnell wie möglich also weiß ich wirklich jede Hilf zu schätzen!
https://stackoverflow.com/questions/44210812/what-is-aeabi-unwind-cpp-pr1-and-how-can-i-avoid-it Vielleicht hilft das. ?
Zum Linken immer (na ja, meistens) das betreffende gcc/g++ Kommando benutzen, nicht den Linker direkt aufrufen. Damit werden (einige?) Libs implizit mitgelinkt, die man beim Direktaufruf des Linkers explizit spezifizieren müsste.
Hey, Danke hat mit dem gcc und ein paar weiteren Flags funktioniert. Ich musste den FPU Ordner und die darin enthaltenen Bibliotheken mit einbinden. Funktioniert aber nur mit dem arm-none-eabi-gcc oder ...-g++ und nicht mit ...-ld. LG
>Funktioniert aber nur mit dem arm-none-eabi-gcc oder ...-g++ >und nicht mit ...-ld. Das würde auch mit dem ld direkt funktionieren. Ist halt umständlicher. Mit $ gcc -v xx.c sollten die einzelnen, vom gcc aufgerufenen Kompilierschritte detailliert aufgelistet werden. Das, was dann unter dem *-ld Kommando erscheint müsste manuell aufgerufen das gleiche Link-Ergebnis liefern.
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.