Hallo, habe jetzt auch mal angefangen mich in die 32Bit MC's einzuarbeiten. Habe ein paar jahre erfahrung mit Atmel's AVR MC's gesammelt, programmiere in C und auch in Bascom. Habe einige Beispiele schon durch und hat auch alles recht gut funktioniert, nur komme ich jetzt an ein Problem, wo ich nicht mehr weiter weiß. Sobald ich in dem Code den PWM-Teil gleichzeitig mit dem TIM6 Teil initialisieren will, bekomme ich beim Compilieren die Fehlermeldung ([cc] collect2.exe: error: ld returned 1 exit status) hier der komplette Log: ------------------------------------------------- GCC HOME: C:\CooCox\GNUToolsARMEmbedded\472013q1\bin compile: [mkdir] Skipping C:\CooCox\CoIDE\workspace\Test2\Test2\Debug\bin because it already exists. [mkdir] Skipping C:\CooCox\CoIDE\workspace\Test2\Test2\Debug\obj because it already exists. [cc] Starting dependency analysis for 9 files. [cc] Parsing ..\..\..\cmsis_boot\stm32f4xx.h [cc] Parsing ..\..\..\cmsis\core_cm4.h [cc] Parsing ..\..\..\cmsis_boot\stm32f4xx_conf.h [cc] Parsing ..\..\..\cmsis\core_cmInstr.h [cc] Parsing ..\..\..\cmsis\core_cmFunc.h [cc] Parsing ..\..\..\cmsis\core_cm4_simd.h [cc] 9 files are up to date. [cc] 0 files to be recompiled from dependency analysis. [cc] 0 total files to be compiled. [cc] Starting link [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -g -nostartfiles -flto -Wl,-Map=Test2.map -O0 -Wl,--gc-sections -Wl,--entry=main -LC:\CooCox\CoIDE\configuration\ProgramData\Test2 -Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\Test2/arm-gcc-link.ld -g -o Test2.elf ..\obj\stm32f4xx_syscfg.o ..\obj\startup_stm32f4xx.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_gpio.o ..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_exti.o ..\obj\misc.o ..\obj\stm32f4xx_tim.o [cc] C:\Users\JanW\AppData\Local\Temp\ccGUx7Nk.s: Assembler messages: [cc] C:\Users\JanW\AppData\Local\Temp\ccGUx7Nk.s:266: Error: offset out of range [cc] C:\Users\JanW\AppData\Local\Temp\ccGUx7Nk.s:267: Error: offset out of range [cc] lto-wrapper: C:\CooCox\GNUToolsARMEmbedded\472013q1\bin\arm-none-eabi-gcc returned 1 exit status [cc] c:/coocox/gnutoolsarmembedded/472013q1/bin/../lib/gcc/arm-none-eabi/4.7. 3/../../../../arm-none-eabi/bin/ld.exe: lto-wrapper failed [cc] collect2.exe: error: ld returned 1 exit status BUILD FAILED Total time: 1 second ------------------------------------------------- Im Anhang mal der ganze Code meiner Main.C. Ich habe das Gefühl, dass das ein Problem von der CoIDE ist, weil einzeln, also PWM ohne TIM6 und TIM6 ohne PWM laufen ohne Probleme. Ist euch das Problem bekannt, oder sieht doch einer einen Fehler im Code? Vielen dank schon mal, Jan
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Hi Jan, deinen Quelltext kann ich mit CoIDE 1.7.0 ohne Fehler und Warnings compilieren hab allerdings nicht geprüft ob er auch funktioniert Gruss Uwe
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Ich benutze Version 1.7.2. Scheint also echt ein Fehler von CoIde zu sein. Gibt's nen Link zur 1.7.0.? Oder was wäre denn eine Alternative IDE? Empfehlungen? Finde CoIDE recht gut eigentlich. Jan
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Das ist wohl eher ein Problem mit der LTO Option. Durch das spezielle Linken kann es passieren daß einige Sprungziele zu weit von ihrem Sprungbefehl entfernt sind. LTO ist mit Vorsicht zu genießen. Bei Interrupts gibts dann den nächsten Ärger. Da gibt es bestimmt einen Haken in den Settings mit dem man LTO ein-/ausschalten kann. Also das -flto muss da weg.
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Das LTO Problem kann ich bestätigen, ist leider erst seit 1.7.2 aufgetreten. Du musst in configuration den Haken bei "LTO enable" wegmachen.
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Super, vielen dank euch. Habe den Haken bei "Enable LTO" weggemacht und schon funktioniert das ganze. Vielen dank noch mal, jetzt kann es weitergehen. Machen echt spaß die 32bit-dinger :-) Jan
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Mal ne blöde Frage, da ich mit V 1.7.2 vor dem gleichen Problem stehe, wo finde ich diese "Enable LTO" Einstellung? Unter "Configuration" ist diesbezüglich nichts zu sehen.
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Configuration->Link>Options>Enable LTO (4. Eintrag von oben) Info: Seit der neuen Version 1.7.5 ist der Haken im Default nicht gesetzt und man hat diesen fehler nicht mehr.
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Welche GCC-Version ist das denn? Ältere haben noch Probleme mit LTO, evtl. mal upgraden - LTO ist schließlich gerade auf uC ein wünschenswertes Feature.
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
mal ne Frage zu den unteren 2/3 deiner main.c: Woher bekommt man diese Zeilen? Die kann man sich unmöglich merken, du hast dir das nicht ausgedacht, also irgenwie copy´n paste? Vorlagen, libs?? Hab das Teil auch hier und weiß nichts damit anzufangen :-((
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Hi, habe mich einiges durch google gewühlt und viele tuts und anleitungen gefunden, u.a. auch hier im mc.net. hier ein paar meiner links, haben mir sehr geholfen, transferwissen muss man sich aber schon selbst aneignen dann. macht schon spaß das ding.... Beitrag "STM32F4 Timer konfigurieren" http://eliaselectronics.com/stm32f4-tutorials/stm32f4-gpio-tutorial/ http://www.diller-technologies.de/stm32_wide.html http://mikrocontroller.bplaced.net/wordpress/?page_id=744#comment-1 Beitrag "STM32F4 Discovery Board + USART" Mfg Jan
Re: STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status
Hi zusammen, ich programmiere aktuell gerade einen AT91SAM3U4 mit CoIDE. Ich habe etwas am Code verändert und dann exact diesen Fehler erhalten:
1 | [cc] collect2.exe: error: ld returned 1 exit status |
Bei mir lag allerdings ein Tippfehler vor, der nicht richtig anzeigt wurde. Ich habe eine Funktion mit falschem Namen aufgerufen. Fehler behoben, konnte ich wieder Compilieren... Jetzt habe ich im Debuggingmodus direkt im Anschluss das nächste Problem und bin ratlos... Es kommt ein Fenster "Execution is suspended because of error mit diesen Meldungen im Detail: Execution is suspended because of error. continue Warning: Cannot insert breakpoint 6. Error accessing memory address 0x821e0: (undocumented errno -1). Cannot insert breakpoint 66. Error accessing memory address 0x82220: (undocumented errno -1). Breakpoints kann ich mit Doppelklick plötzlich nicht mehr entfernen. Liegt ein Fehler in der Einstellung oder im Code vor? Das Programm sprint auch sofort in den ResetHandler und ich kann im Debuggingmodus nichts mehr starten. Zuvor hatte alles funktioniert, auch mit interrupts. Viele Grüße
:
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.