Pustaka standar C PicoLibc 1.1 kasedhiya

Keith Packard, pangembang Debian aktif, pimpinan proyek X.Org lan panyipta akeh ekstensi X, kalebu XRender, XComposite lan XRandR, ngenalake release saka perpustakaan C standar anyar PicoLibc 1.1, dikembangake kanggo digunakake ing piranti sing dipasang kanthi panyimpenan permanen lan RAM sing winates. Sajrone pangembangan, bagean kode kasebut dipinjam saka perpustakaan anyarlib saka project Cygwin lan AVR Libc, dikembangake kanggo mikrokontroler Atmel AVR. Kode PicoLibc disebarake dening ing lisensi BSD. DΓ©wan perpustakaan didhukung kanggo arsitektur ARM (32-bit), i386, RISC-V, x86_64 lan PowerPC.

Keith Packard miwiti pembangunan sawise ora bisa nemokake opsi Libc prayoga sing bisa digunakake ing piranti ditempelake karo RAM sethitik. Proyek kasebut wis dikembangake wiwit taun kepungkur. Ing tahap pisanan, proyek kasebut minangka varian newlib, fungsi stdio sing diganti karo versi kompak saka avrlibc (stdio ing newlib ora cocog kanggo konsumsi sumber daya sing dhuwur). Wiwit karya Keith saiki kalebu karya sing terus-terusan karo arsitektur RISC-V lan pangembangan alat kanggo piranti sing dipasang, dheweke bubar nliti kahanan implementasi libc lan nyimpulake yen kanthi tweaking sethithik, kombinasi newlib lan avrlibc bisa dadi tujuan umum sing apik. solusi. Kaping pisanan, proyek kasebut dikembangake kanthi jeneng "newlib-nano", nanging supaya ora bingung karo perpustakaan Newlib, jeneng kasebut diganti PicoLibc.

Ing wangun saiki, Picolibc wis rampung karya kanggo mbusak kabeh kode sing ora kasedhiya ing lisensi BSD (kode iki ora digunakake nalika mbangun kanggo piranti ditempelake), kang wis Ngartekno simplified kahanan karo lisensi kanggo project. Implementasi aliran lokal wis dipindhah saka 'struct _reent' menyang mekanisme TLS (panyimpenan thread-lokal). Versi kompak saka stdio, diselang saka kode perpustakaan avrlibc, diaktifake minangka standar (ATmel-tartamtu assembler sisipan ditulis maneh ing C). Toolkit Meson digunakake kanggo perakitan, sing ndadekake ora bisa diikat karo skrip perakitan newlib lan nyederhanakake transfer owah-owahan saka newlib. Added versi simplified saka kode initialization (crt0), ditempelake ing file eksekusi lan kaleksanan sadurunge kontrol ditransfer menyang fungsi utama ().

Ing Picolibc versi 1.1:

  • Nambahake perpustakaan tambahan kanggo ndhukung teknologi "semihosting"ngidini kode mlaku ing lingkungan debugger utawa emulator nggunakake mekanisme I/O sistem host;
  • Kanggo sistem sing ndhukung telpon sistem mbukak, nutup, maca, lan nulis, tinystdio nambah antarmuka standar POSIX stdio I / O, kalebu fungsi fopen lan fdopen, uga naleni stdin / stdout / stderr kanggo deskriptor file POSIX-ditetepake;
  • Owah-owahan anyar saka basis kode newlib wis ditindakake. Kalebu ditambahake rintisan libm kanggo fenv.h, sing bisa digunakake ing sistem tanpa dhukungan floating point;
  • Nambahake conto mbangun aplikasi "Hello world" karo picolibc kanggo sistem ARM lan RISC-V;
  • Mbusak direktori newlib, libm lan mathfp, sing ngemot kode eksperimen sing ora digunakake.

Source: opennet.ru

Add a comment