www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik lpc21xx newlib


Autor: julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 )

Autor: julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
LDFLAGS = -L/usr/arm-elf/lib -lc -lnewlib-lpc

Der linker-Aufruf sieht dann so aus:
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 \
  -Map main.map

Liefert aber leider immernoch unresolved symbols auf alle libc 
Funktionen.

Gruß,
Julian

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.