Standard C tsev qiv ntawv PicoLibc 1.1 muaj

Keith Packard, tus tsim tawm Debian nquag, tus thawj coj ntawm X.Org qhov project thiab tsim ntau X txuas ntxiv nrog rau XRender, XComposite thiab XRandR, tswvcuab tso tawm tus qauv C tsev qiv ntawv tshiab PicoLibc 1.1, tsim los siv rau ntawm cov khoom siv kos nrog txwv tsis pub mus tas li thiab RAM. Thaum lub sij hawm kev loj hlob, ib feem ntawm cov cai tau txais los ntawm lub tsev qiv ntawv newlib los ntawm Cygwin project thiab AVR Libc, tsim rau Atmel AVR microcontrollers. PicoLibc code faib los ntawm nyob rau hauv BSD daim ntawv tso cai. Lub tsev qiv ntawv sib dhos tau txais kev txhawb nqa rau ARM (32-ntsis), i386, RISC-V, x86_64 thiab PowerPC architectures.

Keith Packard pib txhim kho tom qab tsis tuaj yeem nrhiav qhov kev xaiv zoo Libc uas tuaj yeem siv rau ntawm cov khoom siv nrog RAM me me. Qhov project tau tsim txij li xyoo tas los. Nyob rau hauv thawj theem, qhov project yog ib tug variant ntawm newlib, lub zog ntawm stdio nyob rau hauv uas tau hloov nrog ib tug compact version ntawm avrlibc (stdio nyob rau hauv newlib tsis haum rau nws cov kev pab cuam siab). Txij li thaum Keith txoj haujlwm tam sim no cuam tshuam nrog kev ua haujlwm tsis tu ncua nrog RISC-V architecture thiab kev txhim kho cov cuab yeej rau cov cuab yeej kos, nws tsis ntev los no tau tshuaj xyuas lub xeev libc kev siv thiab xaus lus tias nrog me ntsis tweaking, kev sib xyaw ntawm newlib thiab avrlibc tuaj yeem yog lub hom phiaj zoo. daws. Thaum pib, qhov project tsim los ntawm lub npe "newlib-nano", tab sis kom tsis txhob muaj kev ntxhov siab nrog Newlib lub tsev qiv ntawv nws tau hloov npe hu ua PicoLibc.

Hauv nws daim ntawv tam sim no, Picolibc twb tau ua haujlwm los tshem tawm tag nrho cov cai uas tsis tau muab los ntawm BSD daim ntawv tso cai (cov cai no tsis tau siv thaum tsim cov cuab yeej kos), uas tau ua kom yooj yim rau qhov xwm txheej nrog daim ntawv tso cai rau qhov project. Kev siv cov kwj hauv zos tau raug txav los ntawm 'struct _reent' mus rau TLS mechanism (xov-loj cia). Lub compact version ntawm stdio, qev los ntawm avrlibc tsev qiv ntawv code, yog qhib los ntawm lub neej ntawd (ATmel-specific assembler inserts are rewritten in C). Cov khoom siv Meson tau siv los ua ke, uas ua rau nws tsis tuaj yeem khi rau newlib cov ntawv sau ua ke thiab ua kom yooj yim rau kev hloov pauv ntawm kev hloov pauv los ntawm newlib. Ntxiv ib qho yooj yim version ntawm qhov pib code (crt0), txuas nrog rau cov ntaub ntawv executable thiab ua tiav ua ntej tswj tau pauv mus rau lub ntsiab () ua haujlwm.

Hauv Picolibc version 1.1:

  • Ntxiv auxiliary tsev qiv ntawv los txhawb cov thev naus laus zis "semihosting" tso cai rau cov lej khiav hauv qhov debugger lossis emulator ib puag ncig siv tus tswv system I / O mechanisms;
  • Rau cov tshuab uas txhawb nqa qhib, kaw, nyeem, thiab sau cov kab ke hu, tinystdio ntxiv cov qauv POSIX stdio I/O interfaces, suav nrog cov haujlwm fopen thiab fdopen, nrog rau khi stdin / stdout / stderr rau POSIX-txhais cov ntaub ntawv piav qhia;
  • Tsis ntev los no kev hloov pauv los ntawm newlib codebase tau nqa mus. Xws li ntxiv libm stubs rau fenv h, uas tuaj yeem siv rau ntawm cov tshuab tsis muaj kev txhawb nqa taw tes;
  • Ntxiv ib qho piv txwv ntawm kev tsim daim ntawv thov "nyob zoo ntiaj teb" nrog picolibc rau ARM thiab RISC-V systems;
  • Tshem tawm cov newlib, libm thiab mathfp directories, uas muaj cov kev sim tsis siv.

Tau qhov twg los: opennet.ru

Ntxiv ib saib