PicoLibc เป็นไลบรารี C สำหรับระบบฝังตัวที่มีทรัพยากร จำกัด

ฝังตัว -C-

Keith Packard เป็นนักพัฒนา Debian ที่ใช้งานอยู่ และยังเป็นไฟล์ หัวหน้าโครงการ X.Org และ ยังเป็นผู้สร้าง ของส่วนขยาย X จำนวนมากรวมถึง XRender, XComposite และ XRandR PicoLibc เป็นอีกหนึ่งผลงานของเขา และนี่คือไลบรารี C ซึ่งพัฒนาขึ้นเพื่อใช้ในอุปกรณ์ฝังตัว ด้วยทรัพยากรที่ จำกัด (นั่นคือพวกเขามีพื้นที่จัดเก็บและ RAM คงที่เพียงเล็กน้อย) ในระหว่างการพัฒนาโค้ดบางส่วนถูกยืมมาจากไลบรารี newlib ของโครงการ Cygwin และ AVR Libc ซึ่งพัฒนาขึ้นสำหรับไมโครคอนโทรลเลอร์ Atmel AVR

Keith Packard เริ่มต้นการพัฒนาหลังจากที่เขาไม่พบ Libc เวอร์ชันที่เหมาะสมซึ่งสามารถใช้กับอุปกรณ์ฝังตัวที่มีแรมต่ำได้ โครงการได้รับการพัฒนาตั้งแต่ปีที่แล้ว ในขั้นแรก โครงการนี้เป็นตัวแปร 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) แนบกับไฟล์ปฏิบัติการและดำเนินการก่อนที่จะโอนการควบคุมไปยังฟังก์ชัน main ()

ซอร์สโค้ดของ 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 stubs เพิ่มเติมสำหรับ fenv.h ซึ่งสามารถใช้กับระบบที่ไม่รองรับการคำนวณ
  • เพิ่มตัวอย่างการคอมไพล์แอปพลิเคชัน Hello World ด้วย picolibc สำหรับระบบ ARM และ RISC-V นอกเหนือจากการลบไดเร็กทอรี newlib, libm และ mathfp ที่มีโค้ดทดลองที่ไม่ได้ใช้

เริ่มใช้ Picolibc

ในการเริ่มใช้ Picolibc คุณควรทราบว่า Picolibc ใช้ระบบสร้าง meson เพื่อคอมไพล์สำหรับแพลตฟอร์มฮาร์ดแวร์ต่างๆบนโฮสต์ Linux โดยใช้ GCC นั่นคือเหตุผลที่พวกเขาต้องมี meson เป็นส่วนหนึ่งของสภาพแวดล้อมการพัฒนานอกเหนือจากการติดตั้ง Python 3 และ Ninja สำหรับสิ่งนี้คุณสามารถปรึกษาคำแนะนำได้ ในลิงค์ต่อไปนี้. 

สุดท้ายเพื่อรับรหัส Picolibc คุณสามารถทำได้จากลิงค์ต่อไปนี้ซึ่งคุณจะพบ เอกสารที่จำเป็น 

หรือในทางเดียวกันก็ปรึกษาได้ คำแนะนำต่อไปนี้ที่ฉันพบในเน็ต และมีข้อมูลโดยละเอียด


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา