Forum: Compiler & IDEs Yagarto Fehler beim compilieren


von dunkelbunt (Gast)


Lesenswert?

Hallo zusammen,

ich soll in einem älteren Arm7-Projekt einen Fehler suchen.
Die damals verwendete Umgebung eclipse-yagarto-openOCD ist nicht mehr 
verfügbar.
Deshalb habe die OlimexODS-Version benutzt.
Mit dem alten Makefile funktionierte das gar nicht, da nach einen 
ARM-Elf-Compiler gesucht wird.
Habe die Files in ein Beispielprojekt mit nahezu gleichem Hardwareaufbau 
eingebaut (AT91sam7s256).
Nun bekomme ich beim Compilieren den Fehler:
undefined reference to `_sbrk'.
Das scheint an einem fehlenden newlib-library zu liegen, dass ich aber 
nirgends finde. Oder bin ich auf dem Holzweg.
Hat jemand einen Tip, wo ich suchen soll?
Ich habe wenig Erfahrung in der embedded Programmierung.

Viele Grüße
Fred

von Programmierer (Gast)


Lesenswert?

dunkelbunt schrieb:
> undefined reference to `_sbrk'.
Das bedeutet normalerweise, dass du irgendwo dynamischen Speicher 
benutzt ("malloc", "new", Exceptions, printf, ...), aber eben keine 
_sbrk Funktion zur Verfügung gestellt hast. Die wird aber gebraucht, um 
neuen Speicher anzufordern, typischerweise vom Betriebssystem. Also 
entweder auf dynamischen Speicher verzichten, oder _sbrk implementieren.

dunkelbunt schrieb:
> Das scheint an einem fehlenden newlib-library zu liegen, dass ich aber
> nirgends finde. Oder bin ich auf dem Holzweg.
Im Gegenteil, die newlib ist vorhanden, denn die braucht das _sbrk.

Die Dokumentation zur newlib, die typischerweise beim Compiler 
mitgeliefert ist, findest du hier:
https://sourceware.org/newlib/

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

was es mit dem _sbrk auf sich hat (und anderen funktionen), kannst du in 
diesem Thread nachlesen:
Beitrag "ARM - Probleme mit sprintf (Linkerfehler)"

Noch genauer, in diesen Beiträgen:
Beitrag "Re: ARM - Probleme mit sprintf (Linkerfehler)"
Beitrag "Re: ARM - Probleme mit sprintf (Linkerfehler)"

von Dunkelbunt (Gast)


Lesenswert?

Vielen Dank,
Ihr habt mir und meinem Verständnis für die Sache, sehr weiter geholfen.

Grüße
Fred

von Luciferius (Gast)


Lesenswert?

off topic sry, hab damit gerne gearbeitet, ES WAR WEINE ERSTE eRFAHRUNG 
MIT ATMEL ARM 32 BIT, war echt cool. ATMEL haben die ARM cors µC gerecht 
gemacht!

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
Noch kein Account? Hier anmelden.