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

OP #3188510
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
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
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.
Gast
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.
Gast
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
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
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

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.