lpc21xx newlib

Gast #1784212
Lesenswert?
• ▲
▼
Hallo zusammen,

ich schreibe gerade ein wenig Software für einen lpc2103. Als Compiler 
setze ist den cross-arm-elf-gcc ein. Das funktioniert soweit auch ganz 
gut, allerdings würde ich jetzt gerne einige libc Funktionen (snprintf 
z.B.) benutzen.
Dafür bin ich auf die newlib gestoßen. Da scheint es ja eine anpassung 
newlib-lpc zu geben: 
http://www.aeolusdevelopment.com/Articles/download.html
Blöderweise sind die Download-Links tot. Weiß jemand, ob es die sonst 
noch irgendwo gibt, oder was man alternativ verwenden könnte?

Gruß,
Julian
Moderator Persönliche Seite #1784308
Lesenswert?
• ▲
▼
julian schrieb:
> Hallo zusammen,
>
> ich schreibe gerade ein wenig Software für einen lpc2103. Als Compiler
> setze ist den cross-arm-elf-gcc ein. Das funktioniert soweit auch ganz
> gut, allerdings würde ich jetzt gerne einige libc Funktionen (snprintf
> z.B.) benutzen.
> Dafür bin ich auf die newlib gestoßen.
Je nach Paket, ist die newlib schon installiert (als libc/libm). Was 
wahrscheinlich fehlt sind die syscalls (sbrk, write u.s.w.). Falls nur 
snprinf benötigt wird, kann man die syscalls auch selbst implementieren 
und braucht keinen weiteren Code.

> Da scheint es ja eine anpassung
> newlib-lpc zu geben:
> http://www.aeolusdevelopment.com/Articles/download.html
> Blöderweise sind die Download-Links tot.

newlib-lpc ist nicht wirklich eine "Anpassung" sondern eine Erweiterung. 
Im Kern sind es Implementierungen der syscalls (siehe newlib 
Dokumentation).

Vorab eine Kopie der newlib-lpc rel5a Quellen im Anhang. Entspricht 
nicht vollständig dem Original, hatte für WinARM ein paar Kleinigkeiten 
angepasst. Vor allem Makefiles. Besser: E-Mail an Aeolus schreiben und 
sie darum bitten, den Link zu reparieren.

Vorsicht bei arm-eabi toolchain: newlib-lpc hat hier nicht auf Anhieb 
damit funktioniert. arm-elf toolchain sollte keine Probleme bereiten. 
Irgendwo habe ich eine angepasste Version für arm-eabi, bei Bedarf 
nochmal melden, suche die dann aus dem Archiv.

> Weiß jemand, ob es die sonst
> noch irgendwo gibt, oder was man alternativ verwenden könnte?

z.B. libsysbase aus DevkitARM/DevkitPro (sf.net SVN) (siehe auch 
http://sourceware.org/ml/newlib/2006/msg00451.html )
Angehängte Dateien:
Gast #1784951
Lesenswert?
• ▲
▼
Danke, ich habe inzw. das Original-File noch im Web gefunden.

Mittels make -f example2.mak wird auch eine libnewlib-lpc.a gebaut. 
Allerdings bin ich mir noch nicht so ganz sicher, wie ich das Makefile 
meines Programms anpassen muss um gegen libnewlib(-lpc) zu linken?
Hat da vielleicht noch jemand einen Tipp für mich?

Gruß,
Julian
Gast #1784970
Lesenswert?
• ▲
▼
Um nochmal etwas zu konkretisieren, wie ich es bisher versucht habe:
Die kompilierte libnewlib-lpc.a habe ich zu den anderen libs nach 
/usr/arm-elf/lib/ kopiert.
In meinem Makefile habe ich die LDFLAGS gesetzt:
1
LDFLAGS = -L/usr/arm-elf/lib -lc -lnewlib-lpc

Der linker-Aufruf sieht dann so aus:
1
arm-elf-ld -L/usr/arm-elf/lib/ -lc -lnewlib-lpc -o main.elf crt.o console.o at45_flash.o lpc_handler.o peripherals.o slip_io.o main.o -T lpc2103_flash.cmd \
2
  -Map main.map

Liefert aber leider immernoch unresolved symbols auf alle libc 
Funktionen.

Gruß,
Julian

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.