AVR32: undefined reference to `__avr32_udiv64'

OP #1646443
Lesenswert?
• ▲
▼
Nachdem ich bei meinen ersten Schritten mit dem AVR32 auf die Funktionen 
cpu_delay_ms() und cpu_delay_us() des UC3 Frameworks V1.6.1 gestoßen 
bin, habe ich ein kleines Linker-Problem.

Ich benutze ein normales Makefile, in dem folgende Module einbezogen 
werden:
1
CSRCS = \
2
  $(DRVR_PATH)/INTC/intc.c \
3
  $(DRVR_PATH)/PM/pm.c \
4
  $(DRVR_PATH)/PM/power_clocks_lib.c \
5
  $(DRVR_PATH)/USART/usart.c \
6
  $(DRVR_PATH)/GPIO/gpio.c \
7
  $(DRVR_PATH)/TC/tc.c

Optimierungseinstellungen sind folgende:
1
OPTIMIZATION = -O3 -ffunction-sections -fdata-sections

Danach bekomme ich dann folgenden Fehler:
1
Linking to `uc3a1256-sample.elf'.
2
system.o: In function `cpu_is_timeout':
3
/home/jd/work/at32uc3/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h:184: undefined reference to `__avr32_udiv64'
4
/home/jd/work/at32uc3/DRIVERS/CPU/CYCLE_COUNTER/cycle_counter.h:184: undefined reference to `__avr32_udiv64'
5
collect2: ld returned 1 exit status

In den inline-Funktionen rund um die Delays werden temporäre Variablen 
vom Typ "unsigned long long" benutzt.

Welche Library stellt `__avr32_udiv64' zur Verfügung? Ich habe mit find 
und nm nach diesem Symbol geGREPt, aber es ist überall nur als 
"undefined" aufgelistet. Das Hinzulinken mit -lm -lc usw. bringt leider 
nichts.

Ich hatte diese Meldung zuvor schon einmal. Irgendwo hatte ich da alte 
Hinweise im Netz gefunden (aus dem Jahr 2007), die sagten, mal solle die 
Optimierung aktivieren. Das habe ich dann bei dem alten Sample als 
erfolgreich anwenden können (von -O0 auf -O3). Aber hier geht das nicht. 
Die alten Samples habe ich noch...

Hat schon mal jemand dieses Problem gehabt?
#1646578
Lesenswert?
• ▲
▼
Ich bin mir nicht sicher, aber ich glaube deine fehlenden librarys sind 
"globale" librarys von Atmel und diese sollten automatisch dazu gelinkt 
werden, wenn du den richtigen Prozessor in deiner Entwicklungsumgebung 
(Eclipse?) eingestellt hast. Check mal ob diese in Ordnung ist.
[....ist allerdings nur eine Vermutung...]
OP #1647480
Lesenswert?
• ▲
▼
Ich nutzte Eclipse nicht (es läuft nicht richtig unter Ubuntut). Im 
Makefile sind sowohl die Architektur als auch das Target richtig 
definiert. Das habe ich schon mehrfach kontrolliert.

Wie gesagt. In den ersten Samples hatte ich das auch, nur konnte ich es 
da durch das aktivieren des Optimizers beheben.

Sonst hat niemand eine Idee?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.