PicoLibc a C βιβλιοθήκη για ενσωματωμένα συστήματα με περιορισμένους πόρους

Ενσωματωμένο-C-

Ο Keith Packard είναι ενεργός προγραμματιστής του Debian και είναι επίσης το Ηγέτης του έργου X.Org και επίσης δημιουργός πολλών επεκτάσεων Χ, συμπεριλαμβανομένων των XRender, XComposite και XRandR. Ο PicoLibc είναι ένα άλλο από τα έργα του και αυτή είναι μια βιβλιοθήκη Γ το οποίο έχει αναπτυχθεί για χρήση σε ενσωματωμένες συσκευές με περιορισμένους πόρους (δηλαδή, έχουν λίγο σταθερό χώρο αποθήκευσης και μνήμη RAM). Κατά τη διάρκεια της ανάπτυξης, μέρος του κώδικα δανείστηκε από τη βιβλιοθήκη newlib του έργου Cygwin και AVR Libc, η οποία αναπτύχθηκε για τους μικροελεγκτές Atmel AVR.

Ο Keith Packard ξεκίνησε την ανάπτυξη αφού δεν μπορούσε να βρει μια αξιοπρεπή έκδοση του Libc, η οποία θα μπορούσε να χρησιμοποιηθεί σε ενσωματωμένες συσκευές χαμηλής RAM. Το έργο αναπτύσσεται από πέρυσι. Στο πρώτο στάδιο, το έργο ήταν μια παραλλαγή newlib, στην οποία οι λειτουργίες stdio αντικαταστάθηκαν από τη συμπαγή έκδοση του avrlibc (το stdio στο newlib δεν ήταν προσαρμοσμένο στη μεγάλη κατανάλωση πόρων).

Δεδομένου ότι οι τρέχουσες δραστηριότητες της Κίνας σχετίζονται με τις τρέχουσες εργασίες για την αρχιτεκτονική RISC-V και την ανάπτυξη εργαλείων για ενσωματωμένες συσκευές, πρόσφατα έλεγξε την κατάσταση των εφαρμογών libc y κατέληξε από τι, Με λίγο τσίμπημα, ο συνδυασμός του newlib και του avrlibc μπορεί να είναι μια καλή καθολική λύση. Αρχικά, το έργο αναπτύχθηκε με το όνομα "newlib-nano", αλλά για να αποφευχθεί η σύγχυση με τη βιβλιοθήκη Newlib, μετονομάστηκε σε PicoLibc.

Σχετικά με το PicoLibc

Στην τρέχουσα μορφή του, Η Picolibc έχει ήδη κάνει δουλειά για την κατάργηση όλου του κώδικα που δεν παρέχεται με την άδεια BSD (Αυτός ο κωδικός δεν χρησιμοποιήθηκε στη διάταξη για ενσωματωμένες συσκευές), γεγονός που απλοποίησε σημαντικά την κατάσταση με την άδεια του έργου.

Η τοπική εφαρμογή του νήματος μετακινήθηκε από το «struct _reent» στον μηχανισμό TLS (τοπική αποθήκευση νήματος). Η συμπαγής έκδοση του stdio είναι ενεργοποιημένη από προεπιλογή, λαμβανόμενη από τον κωδικό βιβλιοθήκης avrlibc (τα ένθετα συναρμολόγησης ειδικά για ATmel ξαναγράφονται σε C).

Τα εργαλεία του Το Meson χρησιμοποιείται για τη συλλογή, τι σάς επιτρέπει να μην επισυνάψετε σενάρια newlib και να απλοποιήσετε τη μεταφορά αλλαγών από το newlib. Έχει προστεθεί μια απλοποιημένη έκδοση του κώδικα αρχικοποίησης (crt0), επισυνάπτεται στο εκτελέσιμο αρχείο και εκτελέστηκε πριν από τη μεταφορά του ελέγχου στην κύρια λειτουργία ().

Ο πηγαίος κώδικας του PicoLibc διανέμεται με άδεια BSD και Η βιβλιοθήκη υποστηρίζει αρχιτεκτονικές ARM (32-bit), i386, RISC-V, x86_64 και PowerPC.

Σχετικά με τη νέα έκδοση του PicoLibc 1.1

Πρόσφατα παρουσίασα την κυκλοφορία της νέας έκδοσης του PicoLibc 1.1, στην οποία προστέθηκε μια βοηθητική βιβλιοθήκη για την υποστήριξη της τεχνολογίας ημι-φιλοξενίας, A που επιτρέπει στον κώδικα που εκτελείται σε περιβάλλον εντοπισμού σφαλμάτων ή εξομοιωτή να χρησιμοποιεί μηχανισμούς εισόδου / εξόδου από το κεντρικό σύστημα.

Για συστήματα που υποστηρίζουν άνοιγμα, κλείσιμο, ανάγνωση και εγγραφή κλήσεων συστήματος, tinystdio προσθέτει τυποποιημένες διεπαφές POSIX I / O, συμπεριλαμβανομένων των λειτουργιών fopen και fdopen, καθώς και δέσμευση stdin / stdout / stderr σε περιγραφείς αρχείων που καθορίζονται από POSIX.

  • Οι πρόσφατες αλλαγές έχουν μεταφερθεί από τη βάση κώδικα newlib. Συμπεριλαμβάνονται επιπρόσθετα στελέχη libm για fenv.h, τα οποία μπορούν να χρησιμοποιηθούν σε συστήματα χωρίς υποστήριξη υπολογισμού.
  • Προστέθηκε το παράδειγμα συλλογής εφαρμογών Hello World με picolibc για συστήματα ARM και RISC-V, εκτός από την κατάργηση των καταλόγων newlib, libm και mathfp που περιείχαν αχρησιμοποίητο πειραματικό κώδικα.

Ξεκινήστε να χρησιμοποιείτε το Picolibc

Για να ξεκινήσετε με το Picolibc, πρέπει να γνωρίζετε ότι το Picolibc χρησιμοποιεί το σύστημα κατασκευής meson για να μεταγλωττίσει διάφορες πλατφόρμες υλικού σε έναν κεντρικό υπολογιστή Linux χρησιμοποιώντας το GCC. Αυτός είναι ο λόγος για τον οποίο πρέπει να έχουν το meson ως μέρος του περιβάλλοντος ανάπτυξης, εκτός από την εγκατάσταση των Python 3 και Ninja. Για αυτό μπορείτε να συμβουλευτείτε τον οδηγό του Στον ακόλουθο σύνδεσμο. 

Τέλος, για να αποκτήσετε τον κωδικό Picolibc, μπορείτε να το κάνετε από τον παρακάτω σύνδεσμο, όπου μπορείτε να βρείτε τα απαραίτητα έγγραφα. 

Ή με τον ίδιο τρόπο μπορούν να συμβουλευτούν τον ακόλουθο οδηγό που βρήκα στο διαδίκτυο και έχει λεπτομερείς πληροφορίες.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.