PicoLibc ספריית C למערכות משובצות עם משאבים מוגבלים

מוטבע- C-

קית 'פקרד הוא מפתח דביאן פעיל וזה גם ה ראש פרויקט X. Org ו- גם יוצר של הרבה סיומות X, כולל XRender, XComposite ו- XRandR. פיקוליב הוא עוד אחת מיצירותיו וזו ספרייה C. שפותח לשימוש במכשירים משובצים עם משאבים מוגבלים (כלומר, יש להם מעט שטח אחסון קבוע ו- RAM). במהלך הפיתוח חלק מהקוד הושאל מספריית ה- newlib של פרויקט Cygwin ו- AVR Libc, אשר פותחה עבור מיקרו-בקרי ה- Atmel AVR.

קית 'פקרד החל בפיתוח לאחר שלא מצא גרסה הגונה של Libc, שניתן להשתמש בה במכשירים משובצים עם זיכרון נמוך. הפרויקט מתפתח מאז השנה שעברה. בשלב הראשון, הפרויקט היה גרסה חדשה, שבו פונקציות ה- stdio הוחלפו בגרסה הקומפקטית של avrlibc (stdio in newlib לא הותאם לצריכה הכבדה של משאבים).

מאז פעילותה הנוכחית של סין קשורה לעבודה השוטפת על ארכיטקטורת RISC-V ופיתוח כלים למכשירים משובצים, לאחרונה בדק את המצב של יישומי libc y סיכם של מה, עם קצת tweak, השילוב של newlib ו- avrlibc יכול להיות פיתרון אוניברסלי טוב. בתחילה, הפרויקט פותח בשם "newlib-nano", אך כדי למנוע בלבול עם ספריית Newlib, שמו שונה ל- PicoLibc.

אודות PicoLibc

במתכונתו הנוכחית, Picolibc כבר ביצעה עבודה להסרת כל הקוד שאינו מסופק ברישיון BSD (בקוד זה לא נעשה שימוש במכלול למכשירים משובצים), דבר שפשט מאוד את המצב עם רישיון הפרויקט.

היישום המקומי של השרשור הועבר ממנגנון 'struct _reent' למנגנון TLS (אחסון מקומי בשרשור). הגרסה הקומפקטית של stdio מופעלת כברירת מחדל, לקוחה מקוד הספרייה avrlibc (תוספות הרכבה ספציפיות ל- ATmel נכתבו מחדש ב- C).

הכלים של Meson משמשים לאוסף, מה מאפשר לך לא לצרף סקריפטים של newlib ולפשט את העברת השינויים מ- newlib. נוספה גרסה פשוטה של ​​קוד האתחול (crt0), צורפה לקובץ ההפעלה והוצעה לפועל לפני העברת השליטה לפונקציה הראשית ().

קוד המקור של PicoLibc מופץ ברישיון BSD ו הספרייה תומכת בארכיטקטורות ARM (32 סיביות), 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 עושה שימוש במערכת build meson לצורך הידור לפלטפורמות חומרה שונות במארח לינוקס באמצעות GCC. זו הסיבה שהם חייבים שיהיה להם meson כחלק מסביבת הפיתוח, בנוסף להתקנת Python 3 ו- Ninja. לשם כך תוכלו להתייעץ במדריך של זה בקישור הבא. 

לבסוף, על מנת להשיג את קוד Picolibc, תוכלו לעשות זאת מהקישור הבא, שם תוכלו למצוא את התיעוד הדרוש. 

או באותו אופן שבו הם יכולים להתייעץ המדריך הבא שמצאתי ברשת ויש לו מידע מפורט.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.