PicoLibc шектеулі ресурстары бар ендірілген жүйелерге арналған C кітапханасы

Енгізілген-C-

Keith Packard - белсенді Debian жасаушысы және бұл сонымен қатар X.Org жобасының жетекшісі және сонымен қатар жасаушы көптеген X кеңейтімдерініңсоның ішінде XRender, XComposite және XRandR. PicoLibc - оның тағы бір туындысы және бұл C кітапханасы ол ендірілген құрылғыларда қолдану үшін әзірленген шектеулі ресурстармен (яғни, оларда белгіленген сақтау орны мен жедел жады аз). Даму барысында кодтың бір бөлігі Atmel AVR микроконтроллерлері үшін жасалған Cygwin және AVR Libc жобасының жаңа кітапханасынан алынды.

Кит Пакард әзірлеуді Libc-тің лайықты нұсқасын таба алмағаннан кейін бастады, оны жедел жадыға енгізілген құрылғыларда қолдануға болады. Жоба былтырдан бері дамып келеді. Бірінші кезеңде, жоба жаңа нұсқасы болды, онда stdio функциялары avrlibc ықшам нұсқасымен ауыстырылды (stdio in newlib ресурстарды көп тұтынуға бейімделмеген).

Қытайдың қазіргі қызметі RISC-V архитектурасы мен ендірілген құрылғыларға арналған құралдарды дамыту бойынша жүргізіліп жатқан жұмыстарға байланысты болғандықтан libc іске асыру күйін тексерді y аяқталды ненің, сәл өзгерте отырып, newlib пен avrlibc үйлесімі жақсы әмбебап шешім бола алады. Бастапқыда жоба «newlib-nano» деген атпен әзірленді, бірақ Newlib кітапханасымен шатастырмау үшін оның аты PicoLibc болып өзгертілді.

PicoLibc туралы

Қазіргі түрінде, Picolibc қазірдің өзінде BSD лицензиясында қарастырылмаған барлық кодтарды жою бойынша жұмыс жасады (Бұл код қондырылған қондырғылар үшін жинақта қолданылған жоқ), бұл жобаның лицензиясымен жағдайды едәуір жеңілдетті.

Жіптің жергілікті орындалуы 'struct _reent' -тен TLS (Thread Local Storage) механизміне ауыстырылды. Stdio-дің ықшам нұсқасы әдепкі бойынша avrlibc кітапханасының кодынан алынған (ATmel-дің арнайы ассемблер кірістері С тілінде қайта жазылады) қосылады.

Құралдар Мезон компиляция үшін қолданылады, не сценарийлерге қосылуға және newlib-ден өзгерістерді жеңілдетуге мүмкіндік береді. Бастау кодының (crt0) оңайлатылған нұсқасы қосылды, орындалатын файлға тіркелді және басқаруды main () функциясына ауыстырар алдында орындалды.

PicoLibc бастапқы коды BSD лицензиясы бойынша таратылады және кітапхана ARM (32 биттік), i386, RISC-V, x86_64 және PowerPC архитектураларын қолдайды.

PicoLibc 1.1 жаңа нұсқасы туралы

Жақында мен PicoLibc 1.1 жаңа нұсқасының шығарылымын ұсындым, онда жартылай хостинг технологиясын қолдау үшін көмекші кітапхана қосылды, Жөндеушіде немесе эмулятор ортасында жұмыс істейтін кодқа хост жүйесінен енгізу / шығару механизмдерін пайдалануға мүмкіндік беретін A.

Жүйелік қоңырауларды ашатын, жабатын, оқитын және жазатын жүйелер үшін tinystdio стандартталған POSIX енгізу-шығару интерфейстерін қосады, fopen және fdopen функцияларын қоса, сонымен қатар stdin / stdout / stderr файлын POSIX анықталған файл дескрипторларымен байланыстыру.

  • Соңғы өзгертулер newlib кодтық базасынан алынды. Есептеуді қолдамайтын жүйелерде қолдануға болатын fenv.h үшін қосымша libm стабтарын қосқанда.
  • Newlib, libm және mathfp каталогтарын жоюдан басқа, ARM және RISC-V жүйелеріне арналған picolibc көмегімен Hello World қосымшасының компиляциясының мысалы қосылды.

Picolibc пайдалануды бастаңыз

Picolibc-ті бастау үшін Picolibc GCC көмегімен Linux хостында әр түрлі аппараттық платформалар үшін компиляция жасау үшін мезон құрастыру жүйесін қолданатындығын білуіңіз керек. Сондықтан оларда Python 3 пен Ninja орнатылғаннан басқа, даму ортасының бөлігі ретінде мезон болуы керек. Ол үшін сіз оның нұсқаулығымен кеңес ала аласыз Келесі сілтемеде. 

Соңында, Picolibc кодын алу үшін сіз оны келесі сілтеме арқылы жасай аласыз, ол жерден таба аласыз қажетті құжаттама. 

Немесе дәл осылай олар кеңес ала алады тордан тапқан келесі нұсқаулық және толық ақпараты бар.


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.