PicoLibc eine C-Bibliothek für eingebettete Systeme mit begrenzten Ressourcen

Eingebettet-C-

Keith Packard ist ein aktiver Debian-Entwickler und es ist auch das X.Org Projektleiter und auch Schöpfer von vielen X-Erweiterungen, einschließlich XRender, XComposite und XRandR. PicoLibc ist ein weiteres seiner Werke und dies ist eine C-Bibliothek welches für die Verwendung in eingebetteten Geräten entwickelt wurde mit begrenzten Ressourcen (dh sie haben wenig festen Speicherplatz und RAM). Während der Entwicklung wurde ein Teil des Codes aus der Newlib-Bibliothek des Cygwin- und AVR Libc-Projekts ausgeliehen, die für die Atmel AVR-Mikrocontroller entwickelt wurde.

Keith Packard begann mit der Entwicklung, nachdem er keine anständige Version von Libc gefunden hatte, die auf eingebetteten Geräten mit niedrigem RAM verwendet werden konnte. Das Projekt wurde seit letztem Jahr entwickelt. In der ersten Phase Das Projekt war eine Newlib-Variante, bei dem die stdio-Funktionen durch die kompakte Version von avrlibc ersetzt wurden (stdio in newlib wurde nicht an den hohen Ressourcenverbrauch angepasst).

Da Chinas derzeitige Aktivitäten im Zusammenhang mit der laufenden Arbeit an der RISC-V-Architektur und der Entwicklung von Tools für eingebettete Geräte stehen überprüfte den Status von libc-Implementierungen y abgeschlossen von was, Mit ein wenig Fingerspitzengefühl kann die Kombination von newlib und avrlibc eine gute universelle Lösung sein. Ursprünglich wurde das Projekt unter dem Namen "newlib-nano" entwickelt, aber um Verwechslungen mit der Newlib-Bibliothek zu vermeiden, wurde es in PicoLibc umbenannt.

Über PicoLibc

In seiner jetzigen Form Picolibc hat bereits daran gearbeitet, den gesamten Code zu entfernen, der nicht unter der BSD-Lizenz bereitgestellt wird (Dieser Code wurde in der Assembly für eingebettete Geräte nicht verwendet), was die Situation mit der Projektlizenz erheblich vereinfachte.

Die lokale Thread-Implementierung wurde von 'struct _reent' in den TLS-Mechanismus (Thread Local Storage) verschoben. Die kompakte Version von stdio ist standardmäßig aktiviert und stammt aus dem avrlibc-Bibliothekscode (ATmel-spezifische Assembler-Einfügungen werden in C neu geschrieben).

Die Werkzeuge von Meson werden zur Kompilierung verwendetWelche Mit dieser Option können Sie keine newlib-Skripte anhängen und das Übertragen von Änderungen aus newlib vereinfachen. Eine vereinfachte Version des Initialisierungscodes (crt0) wurde hinzugefügt, an die ausführbare Datei angehängt und ausgeführt, bevor die Steuerung an die Funktion main () übertragen wird.

Der Quellcode von PicoLibc wird unter einer BSD-Lizenz vertrieben und Die Bibliothek unterstützt ARM- (32-Bit), i386-, RISC-V-, x86_64- und PowerPC-Architekturen.

Über die neue Version von PicoLibc 1.1

Ich habe kürzlich die Veröffentlichung der neuen Version von PicoLibc 1.1 vorgestellt, in der Zur Unterstützung der Semi-Hosting-Technologie wurde eine Hilfsbibliothek hinzugefügt. A, mit dem Code, der in einer Debugger- oder Emulatorumgebung ausgeführt wird, Eingabe- / Ausgabemechanismen vom Hostsystem verwenden kann.

Für Systeme, die Systemaufrufe zum Öffnen, Schließen, Lesen und Schreiben unterstützen, tinystdio fügt standardisierte POSIX-E / A-Schnittstellen hinzu, einschließlich der Funktionen fopen und fdopen sowie der Bindung von stdin / stdout / stderr an POSIX-definierte Dateideskriptoren.

  • Die letzten Änderungen wurden von der newlib-Codebasis übernommen. Einschließlich zusätzlicher libm-Stubs für fenv.h, die auf Systemen ohne Berechnungsunterstützung verwendet werden können.
  • Das Beispiel für die Hello World-Anwendungskompilierung mit picolibc für ARM- und RISC-V-Systeme wurde hinzugefügt. Außerdem wurden die Verzeichnisse newlib, libm und mathfp entfernt, die nicht verwendeten experimentellen Code enthielten.

Starten Sie Picolibc

Um Picolibc verwenden zu können, sollten Sie wissen, dass Picolibc das Meson-Build-System verwendet, um mithilfe von GCC für verschiedene Hardwareplattformen auf einem Linux-Host zu kompilieren. Aus diesem Grund müssen Meson als Teil der Entwicklungsumgebung sowie Python 3 und Ninja installiert sein. Hierzu können Sie den Leitfaden konsultieren im folgenden Link. 

Um den Picolibc-Code zu erhalten, können Sie dies über den folgenden Link tun, den Sie finden die notwendigen Unterlagen. 

Oder auf die gleiche Weise können sie sich beraten Die folgende Anleitung habe ich im Netz gefunden und hat detaillierte Informationen.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.