STM32 - Problem beim Compilieren mit CooCox ([cc] collect2.exe: error: ld returned 1 exit status)

OP #3188510
Lesenswert?

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
Angehängte Dateien:
Gast #3188763
Lesenswert?

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.
Gast #3355921
Lesenswert?

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  :-((
OP #3356102
Lesenswert?

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
#3383388
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren