
Picolibc हे एम्बेडेड सिस्टमसाठी लिहिलेले संपूर्ण C लायब्ररी अंमलबजावणी आहे
ची नवीन आवृत्ती PicoLibc 1.8.6 आधीच रिलीझ झाले आहे आणि या नवीन प्रकाशनात विविध सुधारणा लागू केल्या आहेत जसे की ऑप्टिमायझेशन, कोड क्लीनअप, नवीन प्लॅटफॉर्म, दोष निराकरणे आणि अधिकसाठी सुधारित समर्थन देखील केले गेले आहे.
ज्यांना PicoLibc बद्दल माहिती नाही त्यांच्यासाठी हे माहित असले पाहिजे सी लायब्ररी विशेषतः संसाधन-मर्यादित एम्बेडेड उपकरणांमध्ये वापरण्यासाठी डिझाइन केलेली आहेs, जसे की मायक्रोकंट्रोलर आणि एम्बेडेड सिस्टम. PicoLibc ने त्याच्या संपूर्ण विकासामध्ये लक्षणीय सुधारणा आणि ऑप्टिमायझेशन केले आहे.
BSD अंतर्गत परवाना नसलेले सर्व कोड काढून टाकण्यात आले आहेत, ज्यामुळे प्रकल्प परवान्यासंबंधी परिस्थिती सुलभ होते. याव्यतिरिक्त, थ्रेड-लोकल अंमलबजावणी TLS (थ्रेड-लोकल स्टोरेज) मेकॅनिझममध्ये हलवली गेली आहे आणि avrlibc कोडवर आधारित stdio ची संक्षिप्त आवृत्ती डीफॉल्टनुसार सक्षम केली आहे.
PicoLibc 1.8.6 ची मुख्य नवीन वैशिष्ट्ये
PicoLibc 1.8.6 च्या या नवीन आवृत्तीमध्ये, त्यातील एक महत्त्वाचा बदल सादर केला आहे, Newlib 4.4.0 मधून बदल हस्तांतरित करत आहे जे "लाँग डबल" प्रकारच्या डेटासाठी विस्तारित समर्थन i386, RISC-V, Aarch64 आणि x86_64 सारख्या आर्किटेक्चर्सवर, तसेच डिरेक्टरी घालताना मास्क वापरण्याची क्षमता
याव्यतिरिक्त, PicoLibc 1.8.6 मध्ये विविध आर्किटेक्चरसाठी समर्थन विस्तारित केले गेले आहे, ते जोडले गेल्यापासून Xtensa प्रोसेसरसाठी समर्थन, 32-बिट SPARC प्लॅटफॉर्मसाठी देखील आणि SuperH RISC आर्किटेक्चर, PicoLibc ची पोहोच विविध प्रकारच्या एम्बेडेड उपकरणे आणि प्रणालींपर्यंत वाढवते.
या नवीन आवृत्तीचे आणखी एक वैशिष्ट्य म्हणजे आकार आणि कार्यक्षमतेचे ऑप्टिमायझेशन, पासून वाचन आणि लेखन कार्यक्षमता सुधारण्यासाठी “-Dfast-bufio=true” पर्याय सादर करण्यात आला आहे बुफिओ वापरताना आणि प्रिंटफ ड्रायव्हर्स स्वतंत्र फाइल्समध्ये विभक्त केले गेले आहेत, जे लिंक करताना आकार कमी करण्यास मदत करतात.
ची नवीन आवृत्ती PicoLibc 1.8.6 मध्ये वैशिष्ट्य ऑप्टिमायझेशन आणि कोड क्लीनअप देखील समाविष्ट आहे, बहुतेक fenv फंक्शन्ससाठी सामान्य कार्यांऐवजी इनलाइन फंक्शन्स (gnu_inline) लागू करून कार्यप्रदर्शन ऑप्टिमाइझ केले गेले आहे. gnu_inline सिमेंटिक्स वापरण्यासाठी एक सामान्य यंत्रणा सामायिक करण्यासाठी सार्वजनिक इनलाइन फंक्शन्स साफ केले, सार्वजनिक API शीर्षलेखांमध्ये कोणतेही स्थिर इनलाइन घोषणा नाहीत याची खात्री करून जी बाह्य दुवा चिन्हे असावीत.
दुसरीकडे, ctype ची एक पर्यायी अंमलबजावणी तयार केली गेली आहे जी कार्यक्षमता सुधारते ctype ॲरे न वापरून आणि मूल्यांची थेट तुलना करून (फक्त picolibc ASCII पर्यंत मर्यादित असताना कार्य करते) आणि RISC-V Zfinx/Zdinx विस्तारांसाठी समर्थन समाविष्ट केले आहे.
च्या इतर बदल की:
- डीबगिंग आणि स्टॅक ट्रेस सुधारणा: RISC-V सिस्टीमवर अपवाद कोड डीबग करताना स्टॅक ट्रेस सुधारित केला गेला आहे, ज्यामुळे या प्रकारच्या प्रणालींवरील समस्या ओळखणे आणि त्यांचे निराकरण करणे सोपे होते.
- LLVM libunwind साठी picolibc.ld मध्ये “__eh__*” चिन्हे जोडली.
- fmemopen बगचा एक समूह निश्चित केला
- नॉन-टिपिकल फ्लोटिंग पॉइंट प्रकारांसह लक्ष्य प्लॅटफॉर्मसाठी समर्थन प्रदान केले गेले होते, जे आता picolibc कोडमध्ये 32-, 64-, 80- आणि 128-बिट प्रकारांमध्ये प्रतिबिंबित झाले आहेत.
- चाचणी पायाभूत सुविधांसह SuperH समर्थन जोडले.
- रिस्क-व्ही अपवाद कोडमध्ये सुधारित डीबगर स्टॅक ट्रेस.
- FORMAT_ व्हेरिएबल्सचा cmake चा वापर निश्चित
- zephyr/zephr.cmake मधील स्पष्ट _POSIX_C_SOURCE व्याख्या काढून टाका.
शेवटी, जर तुम्हाला त्याबद्दल अधिक जाणून घेण्यात स्वारस्य असेल तर तुम्ही त्यातील तपशीलांचा सल्ला घेऊ शकता खालील दुवा.
Picolibc वापरण्यास प्रारंभ करा
Picolibc वापरणे सुरू करण्यासाठी, तुम्हाला हे माहित असले पाहिजे की ते GCC वापरून लिनक्स होस्टवरील विविध हार्डवेअर प्लॅटफॉर्मसाठी संकलित करण्यासाठी मेसन बिल्ड सिस्टमचा वापर करते. म्हणूनच त्यांच्याकडे Python 3 आणि Ninja स्थापित करण्याव्यतिरिक्त, विकास वातावरणाचा भाग म्हणून Meson असणे आवश्यक आहे. यासाठी तुम्ही मार्गदर्शकाचा सल्ला घेऊ शकता पुढील लिंकवर
शेवटी, पिकोलिबिक कोड प्राप्त करण्यासाठी आपण खालील दुव्यावरुन ते करू शकता, जिथे आपणास शोधू शकता आवश्यक कागदपत्रे.
किंवा त्याच प्रकारे ते सल्ला घेऊ शकतात खालील मार्गदर्शक मला नेटवर आढळले आणि तपशीलवार माहिती आहे.