Standard C raibhurari PicoLibc 1.1 iripo

Keith Packard, anoshandira Debian kuvandudza, mutungamiri weX.Org chirongwa uye musiki weakawanda maX ekuwedzera, kusanganisira XRender, XComposite uye XRandR, kuunzwa kuburitswa kweraibhurari itsva yakajairika PicoLibc 1.1, yakagadziridzwa kuti ishandiswe pamidziyo yakamisikidzwa ine shoma yekuchengetera zvachose uye RAM. Panguva yekusimudzira, chikamu chekodhi chakakweretwa kubva kuraibhurari newlib kubva kuCygwin chirongwa uye AVR Libc, yakagadzirirwa Atmel AVR microcontrollers. PicoLibc kodhi inoparadzirwa ne pasi peBSD rezinesi. Musangano weraibhurari unotsigirwa neARM (32-bit), i386, RISC-V, x86_64 uye PowerPC zvivakwa.

Keith Packard akatanga kusimudzira mushure mekutadza kuwana yakanaka Libc sarudzo inogona kushandiswa pamidziyo yakamisikidzwa ine RAM shoma. Chirongwa ichi chave kugadzirwa kubva gore rapfuura. Padanho rekutanga, chirongwa ichi chaive chakasiyana che newlib, mabasa e stdio umo akatsiviwa ne compact version kubva ku avrlibc (stdio in newlib yakanga isina kukodzera kushandiswa kwayo kwepamusoro). Sezvo basa raKeith razvino richisanganisira basa rinoenderera mberi neRISC-V dhizaini uye kuvandudza kwemidziyo yemidziyo yakamisikidzwa, nguva pfupi yadarika akaongorora mamiriro ekushandiswa kwe libc uye akagumisa kuti nekugadzirisa kushoma, kusanganiswa kwe newlib ne avrlibc kunogona kuve yakanaka-chinangwa. mhinduro. Pakutanga, chirongwa chakagadzirwa pasi pezita rekuti "newlib-nano", asi kudzivirira kuvhiringidzika neNewlib raibhurari yakanzi PicoLibc.

Mune chimiro chayo chazvino, Picolibc yakatoita basa kubvisa kodhi yese isina kupihwa pasi perezinesi reBSD (code iyi haina kushandiswa pakuvaka midziyo yakamisikidzwa), iyo yakarerutsa zvakanyanya mamiriro nerezinesi repurojekiti. Kuitwa kwenzizi dzemuno kwabviswa kubva ku'struct _reent' kuenda kunzira yeTLS (thread-yenzvimbo yekuchengetedza) Iyo compact vhezheni yestdio, yakakweretwa kubva kuavrlibc raibhurari kodhi, inogadziriswa nekusarudzika (ATmel-specific assembler insert inonyorwazve muC). Iyo Meson toolkit yakashandiswa kuungana, izvo zvakaita kuti zvikwanise kusasungirirwa kune newlib zvinyorwa zvegungano uye kurerutsa kuendesa shanduko kubva kuNewlib. Yakawedzera vhezheni yakapfava yekutanga kodhi (crt0), yakasungirirwa kune iyo inoteedzera faira uye inoitwa kutonga kusati kwaendeswa kune main () basa.

MuPicolibc vhezheni 1.1:

  • Yakawedzera raibhurari yekubatsira kutsigira tekinoroji "semihosting"inobvumira kodhi inomhanya mune debugger kana emulator nharaunda kushandisa iyo host system's I/O maitiro;
  • Kune masisitimu anotsigira akavhurika, kuvhara, kuverenga, uye kunyora masisitimu mafoni, tinystdio inowedzera yakamisikidzwa POSIX stdio I/O interfaces, kusanganisira fopen uye fdopen mabasa, pamwe nekusunga stdin/stdout/stderr kuPOSIX-yakatsanangurwa faira descriptors;
  • Shanduko dzichangoburwa kubva kune newlib codebase dzakatakurwa. Kusanganisira akawedzera libm stubs ye fenv.h, iyo inogona kushandiswa pane masisitimu pasina inoyangarara poindi rutsigiro;
  • Yakawedzera muenzaniso wekuvaka iyo "Mhoro nyika" application nepicolibc yeARM uye RISC-V masisitimu;
  • Yakabvisa iyo newlib, libm uye mathfp madhairekitori, anga aine kodhi yekuyedza isina kushandiswa.

Source: opennet.ru

Voeg