माइक्रोचिप एमपीएलएबी एक्ससी8 सी कंपाइलर सॉफ्टवेयर 

माइक्रोचिप एमपीएलएबी एक्ससी8 सी कंपाइलर सॉफ्टवेयर

इस दस्तावेज़ में माइक्रोचिप AVR उपकरणों को लक्षित करते समय MPLAB XC8 C संकलक से संबंधित महत्वपूर्ण जानकारी शामिल है।
कृपया इस सॉफ़्टवेयर को चलाने से पहले इसे पढ़ें। यदि आप 8-बिट पिक्चर उपकरणों के लिए कंपाइलर का उपयोग कर रहे हैं, तो चित्र दस्तावेज़ के लिए MPLAB XC8 C कंपाइलर रिलीज़ नोट देखें।

अंतर्वस्तु छिपाना

ऊपरview

परिचय

माइक्रोचिप MPLAB® XC8 C कंपाइलर की इस रिलीज़ में कई नई सुविधाएँ, बग फिक्स और नए डिवाइस समर्थन शामिल हैं।

निर्माण तिथि

इस संकलक संस्करण की आधिकारिक निर्माण तिथि 3 जुलाई 2022 है।

पुराना वर्जन

पिछला MPLAB XC8 C संकलक संस्करण 2.39 था, एक कार्यात्मक सुरक्षा संकलक, जिसे 27 जनवरी 2022 को बनाया गया था। पिछला मानक संकलक संस्करण 2.36 था, जिसे 27 जनवरी 2022 को बनाया गया था।

कार्यात्मक सुरक्षा मैनुअल

जब आप कार्यात्मक सुरक्षा लाइसेंस खरीदते हैं तो MPLAB XC कंपाइलर्स के लिए एक कार्यात्मक सुरक्षा मैनुअल प्रलेखन पैकेज में उपलब्ध होता है।

घटक लाइसेंस और संस्करण

AVR MCUs टूल के लिए MPLAB® XC8 C कंपाइलर GNU जनरल पब्लिक लाइसेंस (GPL) के तहत लिखा और वितरित किया जाता है, जिसका अर्थ है कि इसका स्रोत कोड स्वतंत्र रूप से वितरित और जनता के लिए उपलब्ध है। जीएनयू जीपीएल के तहत उपकरणों के स्रोत कोड को माइक्रोचिप से अलग से डाउनलोड किया जा सकता है webसाइट। आप इसमें जीएनयू जीपीएल पढ़ सकते हैं file नाम आपकी इंस्टॉल निर्देशिका की उपनिर्देशिका स्थित है। जीपीएल में अंतर्निहित सिद्धांतों की एक सामान्य चर्चा यहां पाई जा सकती है। हेडर के लिए समर्थन कोड प्रदान किया गया files, लिंकर स्क्रिप्ट और रनटाइम लाइब्रेरी मालिकाना कोड हैं और GPL के अंतर्गत नहीं आते हैं।

यह कंपाइलर GCC संस्करण 5.4.0, बिनुटिल्स संस्करण 2.26 का कार्यान्वयन है, और avr-libc संस्करण 2.0.0 का उपयोग करता है।

सिस्टम आवश्यकताएं

MPLAB XC8 C कंपाइलर और इसके द्वारा उपयोग किए जाने वाले लाइसेंसिंग सॉफ़्टवेयर विभिन्न प्रकार के ऑपरेटिंग सिस्टम के लिए उपलब्ध हैं, जिनमें निम्नलिखित के 64-बिट संस्करण शामिल हैं: Microsoft Windows 10 के व्यावसायिक संस्करण; उबंटू 18.04; और macOS 10.15.5। विंडोज के लिए बायनेरिज़ को कोड-हस्ताक्षरित किया गया है। मैक ओएस के लिए बायनेरिज़ को कोड-हस्ताक्षरित और नोटरीकृत किया गया है।

यदि आप एक नेटवर्क लाइसेंस सर्वर चला रहे हैं, तो केवल कंपाइलर द्वारा समर्थित ऑपरेटिंग सिस्टम वाले कंप्यूटर का उपयोग लाइसेंस सर्वर को होस्ट करने के लिए किया जा सकता है। एक्ससीएलएम संस्करण 2.0 के अनुसार, नेटवर्क लाइसेंस सर्वर को माइक्रोसॉफ्ट विंडोज सर्वर प्लेटफॉर्म पर स्थापित किया जा सकता है, लेकिन लाइसेंस सर्वर को ऑपरेटिंग सिस्टम के सर्वर संस्करण पर चलाने की आवश्यकता नहीं है।

उपकरणों का समर्थन किया

यह कंपाइलर रिलीज के समय ज्ञात सभी 8-बिट एवीआर एमसीयू उपकरणों का समर्थन करता है। सभी समर्थित उपकरणों की सूची के लिए (संकलक की दस्तावेज़ निर्देशिका में) देखें। इन fileप्रत्येक डिवाइस के लिए कॉन्फ़िगरेशन बिट सेटिंग्स को भी सूचीबद्ध करता है।

संस्करण और लाइसेंस उन्नयन

MPLAB XC8 कंपाइलर को एक लाइसेंस प्राप्त (PRO) या बिना लाइसेंस वाले (निःशुल्क) उत्पाद के रूप में सक्रिय किया जा सकता है। अपने कंपाइलर को लाइसेंस देने के लिए आपको एक एक्टिवेशन कुंजी खरीदनी होगी। एक लाइसेंस मुफ्त उत्पाद की तुलना में उच्च स्तर के अनुकूलन की अनुमति देता है। बिना लाइसेंस के कंपाइलर को बिना लाइसेंस के अनिश्चित काल तक संचालित किया जा सकता है।

एक MPLAB XC8 कार्यात्मक सुरक्षा संकलक को माइक्रोचिप से खरीदे गए कार्यात्मक सुरक्षा लाइसेंस के साथ सक्रिय किया जाना चाहिए। कंपाइलर इस लाइसेंस के बिना काम नहीं करेगा। एक बार सक्रिय हो जाने पर, आप किसी भी अनुकूलन स्तर का चयन कर सकते हैं और सभी कंपाइलर सुविधाओं का उपयोग कर सकते हैं। एमपीएलएबी एक्ससी कार्यात्मक सुरक्षा कंपाइलर की यह रिलीज नेटवर्क सर्वर लाइसेंस का समर्थन करती है।
लाइसेंस प्रकार और लाइसेंस के साथ कंपाइलर की स्थापना के बारे में जानकारी के लिए एमपीएलएबी एक्ससी सी कंपाइलर्स (डीएस 50002059) की स्थापना और लाइसेंसिंग दस्तावेज़ देखें।

स्थापना और सक्रियण

इस कंपाइलर के साथ शामिल नवीनतम लाइसेंस मैनेजर के बारे में महत्वपूर्ण जानकारी के लिए माइग्रेशन मुद्दे और सीमाएं अनुभाग भी देखें।
यदि MPLAB IDE का उपयोग कर रहे हैं, तो इस उपकरण को स्थापित करने से पहले नवीनतम MPLAB X IDE संस्करण 5.0 या बाद के संस्करण को स्थापित करना सुनिश्चित करें। कंपाइलर स्थापित करने से पहले आईडीई से बाहर निकलें। .exe (Windows), .run (Linux) या ऐप (macOS) कंपाइलर इंस्टॉलर एप्लिकेशन चलाएं, जैसे XC8-1.00.11403-windows.exe और स्क्रीन पर दिए गए निर्देशों का पालन करें।
डिफ़ॉल्ट स्थापना निर्देशिका की सिफारिश की जाती है। यदि आप लिनक्स का उपयोग कर रहे हैं, तो आपको टर्मिनल का उपयोग करके और रूट खाते से कंपाइलर स्थापित करना होगा। व्यवस्थापकीय विशेषाधिकारों वाले macOS खाते का उपयोग करके इंस्टॉल करें।

स्थापना के लिए अब सक्रियण अलग से किया जाता है। अधिक जानकारी के लिए दस्तावेज़ MPLAB® XC C कंपाइलर्स (DS52059) के लिए लाइसेंस प्रबंधक देखें।

यदि आप मूल्यांकन लाइसेंस के तहत संकलक को चलाना चुनते हैं, तो अब आपको संकलन के दौरान एक चेतावनी मिलेगी जब आप अपनी मूल्यांकन अवधि के अंत के 14 दिनों के भीतर होंगे। यदि आप अपनी एचपीए सदस्यता समाप्त होने के 14 दिनों के भीतर हैं तो वही चेतावनी जारी की जाती है।

XC नेटवर्क लाइसेंस सर्वर एक अलग इंस्टॉलर है और एकल-उपयोगकर्ता कंपाइलर इंस्टॉलर में शामिल नहीं है।

XC लाइसेंस मैनेजर अब फ्लोटिंग नेटवर्क लाइसेंस के रोमिंग का समर्थन करता है। मोबाइल उपयोगकर्ताओं के उद्देश्य से, यह सुविधा फ़्लोटिंग लाइसेंस को थोड़े समय के लिए नेटवर्क बंद करने की अनुमति देती है। इस सुविधा का उपयोग करके, आप नेटवर्क से डिस्कनेक्ट कर सकते हैं और फिर भी अपने MPLAB XC कंपाइलर का उपयोग कर सकते हैं। इस सुविधा के बारे में अधिक जानकारी के लिए XCLM इंस्टॉल का दस्तावेज़ फ़ोल्डर देखें। MPLAB X IDE में रोमिंग को दृष्टिगत रूप से प्रबंधित करने के लिए एक लाइसेंस विंडो (टूल्स> लाइसेंस) शामिल है।

स्थापना संबंधी समस्याओं का समाधान करना

यदि आप किसी भी विंडोज ऑपरेटिंग सिस्टम के तहत कंपाइलर को स्थापित करने में कठिनाइयों का अनुभव करते हैं, तो निम्न सुझावों का प्रयास करें।

  • इंस्टॉल को व्यवस्थापक के रूप में चलाएं।
  • इंस्टॉलर एप्लिकेशन की अनुमतियों को 'पूर्ण नियंत्रण' पर सेट करें। (राइट-क्लिक करें file, गुण चुनें, सुरक्षा टैब, उपयोगकर्ता चुनें, संपादित करें।)
  • अस्थायी फ़ोल्डर की अनुमतियों को "पूर्ण नियंत्रण" पर सेट करें!

अस्थायी फ़ोल्डर का स्थान निर्धारित करने के लिए, रन कमांड में% अस्थायी% टाइप करें (विंडोज लोगो कुंजी + आर)। यह एक खुल जाएगा file एक्सप्लोरर संवाद उस निर्देशिका को दिखा रहा है और आपको उस फ़ोल्डर का पथ निर्धारित करने की अनुमति देगा।

संकलक प्रलेखन

कम्पाइलर के यूजर गाइड को HTML पेज से खोला जा सकता है जो आपके ब्राउज़र में MPLAB X IDE डैशबोर्ड में नीले रंग के हेल्प बटन पर क्लिक करने पर खुलता है, जैसा कि स्क्रीनशॉट में दिखाया गया है।

संकलक प्रलेखन
यदि आप 8-बिट AVR लक्ष्यों के लिए निर्माण कर रहे हैं, तो AVR® MCU के लिए MPLAB® XC8 C कंपाइलर उपयोगकर्ता गाइड में उन कंपाइलर विकल्पों और विशेषताओं के बारे में जानकारी शामिल है जो इस आर्किटेक्चर पर लागू होते हैं।

ग्राहक सहेयता

माइक्रोचिप इस संकलक संस्करण के संबंध में बग रिपोर्ट, सुझाव या टिप्पणियों का स्वागत करता है। कृपया सपोर्ट सिस्टम के माध्यम से किसी भी बग रिपोर्ट या फीचर अनुरोध को निर्देशित करें।

दस्तावेज़ीकरण अद्यतन

MPLAB XC8 दस्तावेज़ों के ऑन-लाइन और अप-टू-डेट संस्करणों के लिए, कृपया माइक्रोचिप के ऑनलाइन तकनीकी दस्तावेज़ीकरण पर जाएँ webसाइट।

इस रिलीज़ में नया या अपडेट किया गया AVR दस्तावेज़ीकरण:

  • MUSL कॉपीराइट नोटिस
  • एमपीएलएबी एक्ससी सी कंपाइलर्स (संशोधन एम) को स्थापित करना और लाइसेंस देना
  • MPLAB XC8 उपयोगकर्ता! एंबेडेड इंजीनियरों के लिए गाइड - AVR MCUs (संशोधन A)
  • AVR MCU (संशोधन F) के लिए MPLAB XC8 C कंपाइलर उपयोगकर्ता! गाइड
  • माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी रेफरेंस गाइड (संशोधन बी)

माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी रेफरेंस गाइड माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी द्वारा परिभाषित कार्यों के साथ-साथ लाइब्रेरी प्रकारों और मैक्रोज़ के इच्छित उपयोग के व्यवहार और इंटरफ़ेस का वर्णन करता है। इस जानकारी में से कुछ पूर्व में AVR® MCU के लिए MPLAB® XC8 C कंपाइलर उपयोगकर्ता! गाइड में निहित थी। डिवाइस-विशिष्ट लाइब्रेरी जानकारी अभी भी इस कंपाइलर गाइड में समाहित है।

यदि आप अभी 8-बिट डिवाइस और MPLAB XC8 C कंपाइलर के साथ शुरुआत कर रहे हैं, तो MPLAB® XC8 उपयोगकर्ता! एंबेडेड इंजीनियरों के लिए गाइड - AVR® MCUs (DS50003108) में MPLAB X IDE में प्रोजेक्ट स्थापित करने और कोड लिखने के बारे में जानकारी है। आपके पहले MPLAB XC8 C प्रोजेक्ट के लिए। यह मार्गदर्शिका अब संकलक के साथ वितरित की गई है।

हामेट यूजर गाइड को इस रिलीज में डॉक्स डायरेक्टरी में शामिल किया गया है। यह मार्गदर्शिका उन लोगों के लिए है जो Hamate को एक स्टैंड-अलोन एप्लिकेशन के रूप में चला रहे हैं।

नया क्या है

निम्नलिखित नई एवीआर-लक्ष्य विशेषताएं हैं जो संकलक अब समर्थन करता है। उपशीर्षकों में संस्करण संख्या पहले संकलक संस्करण को इंगित करती है जो आने वाली सुविधाओं का समर्थन करती है।

संस्करण 2.40

नया उपकरण समर्थन समर्थन अब निम्न AVR भागों के लिए उपलब्ध है: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64EA28, AVR64EA32, और AVR64EA48।
बेहतर प्रक्रियात्मक अमूर्तता प्रक्रियात्मक सार (पीए) अनुकूलन उपकरण में सुधार किया गया है ताकि फ़ंक्शन कॉल निर्देश (कॉल रिकॉल) वाले कोड को रेखांकित किया जा सके। यह तभी होगा जब स्टैक का उपयोग न तो तर्कों को पास करने के लिए किया जाता है और न ही फ़ंक्शन से वापसी मान प्राप्त करने के लिए। स्टैक का उपयोग चर तर्क सूची के साथ फ़ंक्शन को कॉल करते समय या फ़ंक्शन को कॉल करते समय किया जाता है जो इस उद्देश्य के लिए नामित रजिस्टरों की तुलना में अधिक तर्क लेता है। इस सुविधा को मोंक-पा-आउटलाइन-कॉल विकल्प का उपयोग करके अक्षम किया जा सकता है, या किसी वस्तु के लिए प्रक्रियात्मक अमूर्तता को पूरी तरह से अक्षम किया जा सकता है file या -monk-pa-on- का उपयोग करके कार्य करेंfile और -mo.-pa-on-फ़ंक्शन क्रमशः, या निपा विशेषता का उपयोग करके ( nipa विनिर्देशक) चुनिंदा कार्यों के साथ

कोड कवरेज मैक्रो कंपाइलर अब मैक्रो __CODECOV को परिभाषित करता है यदि एक मान्य mcodecov विकल्प निर्दिष्ट किया गया है।

स्मृति आरक्षण विकल्प xc8-cc ड्राइवर अब -mreserve=space@start: end विकल्प को स्वीकार करेगा जब AVR लक्ष्यों के लिए निर्माण कर रहा होगा। यह विकल्प डेटा या प्रोग्राम मेमोरी स्पेस में निर्दिष्ट मेमोरी रेंज को सुरक्षित रखता है, लिंकर को इस क्षेत्र में कोड या ऑब्जेक्ट्स को पॉप्युलेट करने से रोकता है।

होशियार स्मार्ट आईओ स्मार्ट आईओ कार्यों में कई सुधार किए गए हैं, जिनमें प्रिंटफ कोर कोड में सामान्य बदलाव शामिल हैं, %n रूपांतरण विनिर्देशक को एक स्वतंत्र संस्करण के रूप में मानते हुए, आईओ फ़ंक्शन तर्कों को संभालने के लिए छोटे डेटा प्रकारों का उपयोग करते हुए मांग पर vararg पॉप रूटीन में लिंक करना , और फ़ील्ड चौड़ाई और सटीक हैंडलिंग में सामान्य कोड फैक्टरिंग करना। इसके परिणामस्वरूप महत्वपूर्ण कोड और डेटा बचत हो सकती है, साथ ही साथ IO की निष्पादन गति भी बढ़ सकती है।

संस्करण 2.39 (कार्यात्मक सुरक्षा रिलीज)

नेटवर्क सर्वर लाइसेंस MPLAB XC8 कार्यात्मक सुरक्षा संकलक की यह रिलीज नेटवर्क सर्वर लाइसेंस का समर्थन करती है।

संस्करण 2.36

कोई नहीं।

संस्करण 2.35

नया उपकरण समर्थन निम्नलिखित AVR भागों के लिए समर्थन उपलब्ध है: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, और AVR64DD32।

बेहतर संदर्भ स्विचिंग नया -mcall-isr-prologues विकल्प बदलता है कि इंटरप्ट फ़ंक्शन प्रविष्टि पर रजिस्टरों को कैसे सहेजता है और इंटरप्ट रूटीन समाप्त होने पर उन रजिस्टरों को कैसे पुनर्स्थापित किया जाता है। यह -mcall-prologues विकल्प के समान काम करता है, लेकिन केवल इंटरप्ट फ़ंक्शन (आईएसआर) को प्रभावित करता है।

और भी बेहतर संदर्भ स्विचिंग नया -mgas-isr-prologues विकल्प छोटे इंटरप्ट सर्विस रूटीन के लिए उत्पन्न संदर्भ खुजली कोड को नियंत्रित करता है। सक्षम होने पर, इस सुविधा में रजिस्टर उपयोग के लिए असेंबलर को ISR स्कैन करना होगा और यदि आवश्यक हो तो केवल इन उपयोग किए गए रजिस्टरों को सहेजना होगा।

कॉन्फ़िगर करने योग्य फ्लैश मैपिंग AVR DA और AVR DB परिवार के कुछ उपकरणों में एक SFR (जैसे FLMAP) होता है जो निर्दिष्ट करता है कि प्रोग्राम मेमोरी के 32k सेक्शन को डेटा मेमोरी में मैप किया जाएगा। नया - mconst-data-in-config-mapped-proem विकल्प का उपयोग लिंकर को एक 32k सेक्शन में सभी विपक्ष योग्य डेटा रखने के लिए किया जा सकता है और यह सुनिश्चित करने के लिए संबंधित SFR रजिस्टर को स्वचालित रूप से इनिशियलाइज़ करता है कि यह डेटा डेटा मेमोरी स्पेस में मैप किया गया है। , जहां इसे अधिक प्रभावी ढंग से एक्सेस किया जाएगा।

माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी सभी MPLAB XC कंपाइलर एक माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी साझा करेंगे, जो अब MPLAB XC8 के इस रिलीज के साथ उपलब्ध है। MPLAB® XC8 C कंपाइलर उपयोगकर्ता गाइड/या AVR® MCU में अब इन मानक कार्यों के लिए दस्तावेज़ीकरण शामिल नहीं है। यह जानकारी अब माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी रेफरेंस गाइड में पाई जा सकती है। ध्यान दें कि पहले avr-libc द्वारा परिभाषित कुछ कार्यक्षमता अब उपलब्ध नहीं है। (लाइब्रेर देखें):'। कार्यक्षमता ...)

स्मार्ट आईओ नए एकीकृत पुस्तकालयों के हिस्से के रूप में, प्रिंट और स्कैन परिवारों में IO फ़ंक्शंस अब प्रत्येक बिल्ड पर कस्टम जनरेट किए जाते हैं, इस आधार पर कि प्रोग्राम में इन फ़ंक्शंस का उपयोग कैसे किया जाता है। यह किसी प्रोग्राम द्वारा उपयोग किए जाने वाले संसाधनों को काफी हद तक कम कर सकता है।
स्मार्ट आईओ सहायता विकल्प स्मार्ट आईओ फ़ंक्शंस (जैसे प्रिंटफ़ () या स्कैनफ़ ()) के लिए कॉल का विश्लेषण करते समय, कंपाइलर हमेशा प्रारूप स्ट्रिंग से निर्धारित नहीं कर सकता है या उन तर्कों से अनुमान लगा सकता है जो कॉल के लिए आवश्यक रूपांतरण विनिर्देशक हैं। पहले, कंपाइलर हमेशा कोई धारणा नहीं बनाता था और यह सुनिश्चित करता था कि पूरी तरह कार्यात्मक आईओ फ़ंक्शन अंतिम प्रोग्राम छवि से जुड़े थे। एक नया - msmart-io-format=fmt विकल्प जोड़ा गया है ताकि संकलक इसके बजाय स्मार्ट आईओ कार्यों द्वारा उपयोग किए जाने वाले रूपांतरण विनिर्देशक के उपयोगकर्ता द्वारा सूचित किया जा सके, जिसका उपयोग अस्पष्ट है, अत्यधिक लंबे आईओ रूटीन को लिंक होने से रोकता है। (अधिक विवरण के लिए स्मार्ट-आईओ-प्रारूप विकल्प देखें।)

कस्टम अनुभागों को रखना पहले, -Wl, -सेक्शन-स्टार्ट विकल्प केवल निर्दिष्ट सेक्शन को अनुरोधित पते पर रखा जाता था जब लिंकर स्क्रिप्ट उसी नाम के साथ एक आउटपुट सेक्शन को परिभाषित करती थी। जब ऐसा नहीं था, तो अनुभाग को लिंकर द्वारा चुने गए पते पर रखा गया था और विकल्प को अनिवार्य रूप से अनदेखा कर दिया गया था। अब विकल्प सभी कस्टम अनुभागों के लिए सम्मानित किया जाएगा, भले ही लिंकर स्क्रिप्ट अनुभाग को परिभाषित न करे। हालाँकि, ध्यान दें कि मानक वर्गों के लिए, जैसे . मूलपाठ, । बीएसएस या . डेटा, सबसे उपयुक्त आवंटक के पास अभी भी उनके प्लेसमेंट पर पूरा नियंत्रण होगा, और विकल्प का कोई प्रभाव नहीं पड़ेगा। -Wl, -Tsection=जोड़ें विकल्प का उपयोग करें, जैसा कि उपयोगकर्ता मार्गदर्शिका में बताया गया है।

संस्करण 2.32

ढेर मार्गदर्शन प्रो कंपाइलर लाइसेंस के साथ उपलब्ध, कंपाइलर की स्टैक गाइडेंस सुविधा का उपयोग प्रोग्राम द्वारा उपयोग किए जाने वाले किसी भी स्टैक की अधिकतम गहराई का अनुमान लगाने के लिए किया जा सकता है। यह किसी प्रोग्राम के कॉल ग्राफ़ का निर्माण और विश्लेषण करता है, प्रत्येक फ़ंक्शन के स्टैक उपयोग को निर्धारित करता है, और एक रिपोर्ट तैयार करता है, जिससे प्रोग्राम द्वारा उपयोग किए जाने वाले स्टैक की गहराई का अनुमान लगाया जा सकता है। यह सुविधा -mchp-stack-usage कमांड-लाइन विकल्प के माध्यम से सक्षम है। निष्पादन के बाद ढेर के उपयोग का सारांश मुद्रित किया जाता है। विस्तृत स्टैक रिपोर्ट मानचित्र में उपलब्ध है file, जिसे सामान्य तरीके से अनुरोध किया जा सकता है।

नया उपकरण समर्थन समर्थन निम्नलिखित AVR भागों के लिए उपलब्ध है: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64DB32, और AVR32DB48।

वापस लिया गया उपकरण समर्थन समर्थन निम्नलिखित AVR भागों के लिए अब उपलब्ध नहीं है: AVR16DA28, AVR16DA32 और, AVR16DA48।

संस्करण 2.31

कोई नहीं।

संस्करण 2.30

डेटा आरंभीकरण को रोकने के लिए नया विकल्प एक नया -mno-data-ini t ड्राइवर विकल्प डेटा के आरंभीकरण और bss अनुभागों को साफ़ करने से रोकता है। यह असेंबली में do_ copy_ डेटा और d o_ clear_ bss प्रतीकों के आउटपुट को दबाकर काम करता है files, जो बदले में लिंकर द्वारा उन रूटीन को शामिल करने से रोकेगा।

उन्नत अनुकूलन कई अनुकूलन सुधार किए गए हैं, जिनमें अनावश्यक रिटर्न निर्देशों को हटाना, स्किप-इफ-बिट-है निर्देश के बाद कुछ उछाल को हटाना, और बेहतर प्रक्रियात्मक अमूर्तता और इस प्रक्रिया को पुनरावृत्त करने की क्षमता शामिल है।

इन अनुकूलनों में से कुछ को नियंत्रित करने के लिए अब अतिरिक्त विकल्प उपलब्ध हैं, विशेष रूप से -f सेक्शन एंकर, जो स्थिर वस्तुओं की पहुंच को एक प्रतीक के सापेक्ष निष्पादित करने की अनुमति देता है; -mpai deरेशन = n, जो प्रक्रियात्मक अमूर्त पुनरावृत्तियों की संख्या को 2 के डिफ़ॉल्ट से बदलने की अनुमति देता है; और, -एमपीए-कॉल लागत-शॉर्टकॉल, जो इस उम्मीद में अधिक आक्रामक प्रक्रियात्मक अमूर्तता करता है कि लिंकर लंबी कॉल को आराम दे सकता है। यदि अंतर्निहित मान्यताओं का एहसास नहीं होता है तो यह अंतिम विकल्प कोड आकार बढ़ा सकता है।

नया उपकरण समर्थन समर्थन निम्नलिखित AVR भागों के लिए उपलब्ध है: AVR16DA28, AVR16DA32,
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, और AVR128DB64।

वापस लिया गया डिवाइस समर्थन निम्नलिखित AVR भागों के लिए समर्थन अब उपलब्ध नहीं है: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, और ATA664251।

संस्करण 2.29 (कार्यात्मक सुरक्षा रिलीज)

हैडर file कंपाइलर बिल्ट-इन्स के लिए यह सुनिश्चित करने के लिए कि कंपाइलर MISRA जैसे भाषा विनिर्देशों के अनुरूप हो सकता है हैडर file, जो स्वचालित रूप से शामिल है , अद्यतन किया गया है। इस शीर्षलेख में सभी अंतर्निर्मित कार्यों के लिए प्रोटोटाइप शामिल हैं, जैसे _buil टिन _avrnop () और _buil टिन_ avr विलंब_ चक्र ()। कुछ बिल्ट-इन MISRA के अनुरूप नहीं हो सकते हैं; इन्हें कंपाइलर कमांड लाइन में परिभाषित _Xe_ STRICT_ MISRA जोड़कर छोड़ा जा सकता है। बिल्ट-इन्स और उनकी घोषणाओं को निश्चित-चौड़ाई प्रकारों का उपयोग करने के लिए अद्यतन किया गया है।

संस्करण 2.20

नया उपकरण समर्थन समर्थन निम्न AVR भागों के लिए उपलब्ध है: ATTINY1624, ATTINY1626, और ATTINY1627।

बेहतर सर्वोत्तम फिट आवंटन कंपाइलर में बेस्ट फिट एलोकेटर (बीएफए) में सुधार किया गया है ताकि बेहतर अनुकूलन की अनुमति देने वाले क्रम में अनुभागों को आवंटित किया जा सके। बीएफए अब नामित पता रिक्त स्थान का समर्थन करता है और डेटा आरंभीकरण को बेहतर ढंग से संभालता है।

बेहतर प्रक्रियात्मक अमूर्तता प्रक्रियात्मक अमूर्त अनुकूलन अब अधिक कोड अनुक्रमों पर किया जाता है। पिछली स्थितियों में जहां इस अनुकूलन में कोड आकार में वृद्धि हो सकती है, अनुकूलन कोड को लिंकर की कचरा संग्रह प्रक्रिया से अवगत कराकर संबोधित किया गया है।

एवीआर असेंबलर की अनुपस्थिति एवीआर असेंबलर अब इस वितरण में शामिल नहीं है।

संस्करण 2.19 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.10

कोड कवरेज इस रिलीज में एक कोड कवरेज सुविधा शामिल है जो एक परियोजना के स्रोत कोड को किस हद तक निष्पादित किया गया है, इसका विश्लेषण करने की सुविधा प्रदान करता है। इसे सक्षम करने के लिए -mcodecov=ram विकल्प का प्रयोग करें। आपके हार्डवेयर पर प्रोग्राम के निष्पादन के बाद, कोड कवरेज जानकारी डिवाइस में एकत्रित की जाएगी, और इसे एमपीएलएबी एक्स आईडीई द्वारा कोड कवरेज प्लगइन के माध्यम से स्थानांतरित और प्रदर्शित किया जा सकता है। इस प्लगइन के बारे में जानकारी प्राप्त करने के लिए आईडीई दस्तावेज देखें। कवरेज विश्लेषण से बाद के कार्यों को बाहर करने के लिए #pragma mcodecov का उपयोग किया जा सकता है। आदर्श रूप से प्रगमा को शुरुआत में जोड़ा जाना चाहिए file उस पूरे को बाहर करने के लिए file कवरेज विश्लेषण से। वैकल्पिक रूप से, विशेषता ((mcodecov)) का उपयोग कवरेज विश्लेषण से किसी विशिष्ट कार्य को बाहर करने के लिए किया जा सकता है।

डिवाइस विवरण files एक नया उपकरण file एवीआर चिपइन्फो कहा जाता है। html संकलक वितरण की डॉक्स निर्देशिका में स्थित है। यह file संकलक द्वारा समर्थित सभी उपकरणों को सूचीबद्ध करता है। डिवाइस के नाम पर क्लिक करें, और यह उस डिवाइस के लिए सभी स्वीकार्य कॉन्फ़िगरेशन बिट सेटिंग/वैल्यू पेयर दिखाने वाला एक पेज खोलेगा, पूर्व के साथampलेस.

प्रक्रियात्मक अमूर्तता प्रक्रियात्मक अमूर्त अनुकूलन, जो असेंबली कोड के सामान्य ब्लॉकों को उस ब्लॉक की एक निकाली गई प्रति के कॉल के साथ संकलक में जोड़ा गया है। ये एक अलग एप्लिकेशन द्वारा निष्पादित किए जाते हैं, जो स्तर 2, 3 ors ऑप्टिमाइज़ेशन का चयन करते समय कंपाइलर द्वारा स्वचालित रूप से लागू किया जाता है। ये अनुकूलन कोड आकार को कम करते हैं, लेकिन वे निष्पादन की गति और कोड डिबगबिलिटी को कम कर सकते हैं।
-mno-pa विकल्प का उपयोग करके प्रक्रियात्मक अमूर्तता को उच्च अनुकूलन स्तरों पर अक्षम किया जा सकता है, या -mpa का उपयोग करके निम्न अनुकूलन स्तरों (आपके लाइसेंस के अधीन) पर सक्षम किया जा सकता है। इसे किसी वस्तु के लिए अक्षम किया जा सकता है file -मोनो-पा-ऑन- का उपयोग करनाfile=fileफ़ंक्शन = फ़ंक्शन पर -mno-pa का उपयोग करके किसी फ़ंक्शन के लिए नाम, या अक्षम।
आपके स्रोत कोड के अंदर, फ़ंक्शन की परिभाषा के साथ _attribute_ ((nopa)) का उपयोग करके या _nopa का उपयोग करके, फ़ंक्शन के लिए प्रक्रियात्मक अमूर्तता को अक्षम किया जा सकता है, जो विशेषता ((nopa, noinline)) तक फैलता है और इस प्रकार फ़ंक्शन इनलाइनिंग को होने से रोकता है और वहाँ इनलाइन कोड का अमूर्त होना।
प्रगमा में लॉक बिट सपोर्ट #pragma कॉन्फ़िगरेशन अब AVR लॉक बिट्स के साथ-साथ अन्य कॉन्फ़िगरेशन बिट्स को निर्दिष्ट करने के लिए उपयोग किया जा सकता है। एवीआर चिप की जानकारी की जाँच करें। एचटीएमएल file (ऊपर उल्लिखित) सेटिंग/वैल्यू जोड़े के लिए इस प्रागमा के साथ उपयोग करने के लिए।
नया उपकरण समर्थन समर्थन निम्नलिखित भागों के लिए उपलब्ध है: AVR28DA128, AVR64DA128, AVR32DA128, और AVR48DA128।

संस्करण 2.05

आपके हिरन के लिए और बिट्स इस कंपाइलर और लाइसेंस मैनेजर का macOS संस्करण अब 64-बिट एप्लिकेशन है। यह सुनिश्चित करेगा कि संकलक macOS के हाल के संस्करणों पर बिना किसी चेतावनी के स्थापित और चलेगा।
प्रोग्राम मेमोरी में कॉन्स्ट ऑब्जेक्ट्स अब कंपाइलर कॉन्स्ट-क्वालिफाइड ऑब्जेक्ट्स को प्रोग्राम फ्लैश मेमोरी में रख सकता है, बजाय इन्हें रैम में रखने के। कंपाइलर को संशोधित किया गया है ताकि कॉन्स्ट-क्वालिफाइड ग्लोबल डेटा प्रोग्राम फ्लैश मेमोरी में स्टोर हो और इस डेटा को उपयुक्त प्रोग्राम-मेमोरी निर्देशों का उपयोग करके प्रत्यक्ष और अप्रत्यक्ष रूप से एक्सेस किया जा सके। यह नई सुविधा डिफ़ॉल्ट रूप से सक्षम है लेकिन -mno-const-data-in-progmem विकल्प का उपयोग करके इसे अक्षम किया जा सकता है। avrxmega3 और avrtiny आर्किटेक्चर के लिए, यह सुविधा आवश्यक नहीं है और हमेशा अक्षम होती है, क्योंकि प्रोग्राम मेमोरी को इन उपकरणों के लिए डेटा एड्रेस स्पेस में मैप किया जाता है।
मानक मुफ्त में इस कंपाइलर के बिना लाइसेंस वाले (निःशुल्क) संस्करण अब स्तर 2 सहित और तक के अनुकूलन की अनुमति देते हैं। यह एक समान, हालांकि समान नहीं, आउटपुट की अनुमति देगा जो पहले एक मानक लाइसेंस का उपयोग करके संभव था।
आपका स्वागत है AVRASM2 2-बिट डिवाइस के लिए AVRASM8 असेंबलर को अब XC8 कंपाइलर इंस्टॉलर में शामिल किया गया है। यह असेंबलर XC8 कंपाइलर द्वारा उपयोग नहीं किया जाता है, लेकिन हस्तलिखित असेंबली स्रोत पर आधारित परियोजनाओं के लिए उपलब्ध है।
नया उपकरण समर्थन समर्थन निम्नलिखित भागों के लिए उपलब्ध है: ATMEGA1608, ATMEGA1609, ATMEGA808, और ATMEGA809।

संस्करण 2.00

शीर्ष स्तर का चालक एक नया ड्राइवर, जिसे xc8-cc कहा जाता है, अब पिछले avr-gcc ड्राइवर और xc8 ड्राइवर के ऊपर बैठता है, और यह लक्ष्य डिवाइस के चयन के आधार पर उपयुक्त कंपाइलर को कॉल कर सकता है। यह ड्राइवर जीसीसी-शैली के विकल्पों को स्वीकार करता है, जो या तो निष्पादित किए जा रहे संकलक के लिए अनुवादित या पारित किए जाते हैं। यह ड्राइवर किसी भी AVR या PIC लक्ष्य के साथ समान शब्दार्थ के साथ विकल्पों के समान सेट का उपयोग करने की अनुमति देता है और इस प्रकार संकलक को आमंत्रित करने का अनुशंसित तरीका है। यदि आवश्यक हो, तो पुराने avr-gcc ड्राइवर को पुराने कंपाइलर संस्करणों में स्वीकार किए गए पुराने-शैली विकल्पों का उपयोग करके सीधे कॉल किया जा सकता है।

सामान्य सी इंटरफ़ेस यह कंपाइलर अब एमपीएलएबी कॉमन सी इंटरफेस के अनुरूप हो सकता है, जिससे स्रोत कोड को सभी एमपीएलएबी एक्ससी कंपाइलर्स में आसानी से पोर्ट किया जा सकता है। -mext=cci विकल्प इस सुविधा का अनुरोध करता है, कई भाषा एक्सटेंशन के लिए वैकल्पिक सिंटैक्स को सक्षम करता है।

नया लाइब्रेरियन ड्राइवर एक नया लाइब्रेरियन ड्राइवर पिछले PIC लाइब्रेरियन और AVR avr-ar लाइब्रेरियन के ऊपर स्थित है। यह ड्राइवर जीसीसी-आर्काइवर-शैली के विकल्पों को स्वीकार करता है, जो या तो निष्पादित किए जा रहे लाइब्रेरियन के लिए अनुवादित या पास किए जाते हैं। नया ड्राइवर किसी भी PIC या AVR लाइब्रेरी को बनाने या हेरफेर करने के लिए समान शब्दार्थ वाले विकल्पों के समान सेट की अनुमति देता है file और इस प्रकार लाइब्रेरियन को आमंत्रित करने का अनुशंसित तरीका है। यदि विरासत परियोजनाओं के लिए आवश्यक है, तो पिछले लाइब्रेरियन को पुराने संकलक संस्करणों में स्वीकार किए गए पुराने-शैली के विकल्पों का उपयोग करके सीधे बुलाया जा सकता है।

प्रवासन मुद्दे

निम्नलिखित विशेषताएं हैं जो अब संकलक द्वारा अलग तरीके से संभाली जाती हैं। यदि कोड को इस संकलक संस्करण में पोर्ट किया जा रहा है, तो इन परिवर्तनों के लिए आपके स्रोत कोड में संशोधन की आवश्यकता हो सकती है। उपशीर्षकों में संस्करण संख्या अनुवर्ती परिवर्तनों का समर्थन करने के लिए पहले संकलक संस्करण को इंगित करती है।

संस्करण 2.40

कोई नहीं।

संस्करण 2.39 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.36

कोई नहीं।

संस्करण 2.35

स्ट्रिंग-टू बेस की हैंडलिंग (XCS-2420) अन्य XC कंपाइलरों के साथ निरंतरता सुनिश्चित करने के लिए, XC8 स्ट्रिंग-टू फ़ंक्शंस, जैसे strtol () आदि, अब इनपुट स्ट्रिंग को बदलने का प्रयास नहीं करेगा यदि निर्दिष्ट आधार 36 से बड़ा है और इसके बजाय EINVAL को errno सेट करेगा। सी मानक इस आधार मूल्य से अधिक होने पर कार्यों के व्यवहार को निर्दिष्ट नहीं करता है।

अनुचित गति अनुकूलन स्तर 3 अनुकूलन (-03) का चयन करते समय प्रक्रियात्मक अमूर्त अनुकूलन सक्षम किए जा रहे थे। ये अनुकूलन कोड गति की कीमत पर कोड आकार को कम करते हैं, इसलिए प्रदर्शन नहीं किया जाना चाहिए था। इस रिलीज़ के साथ निर्मित होने पर इस अनुकूलन स्तर का उपयोग करने वाली परियोजनाओं को कोड आकार और निष्पादन गति में अंतर दिखाई दे सकता है।

पुस्तकालय की कार्यक्षमता कई मानक सी पुस्तकालय कार्यों के लिए कोड अब माइक्रोचिप की यूनिफाइड स्टैंडर्ड लाइब्रेरी से आते हैं, जो कि पूर्व avr-libc लाइब्रेरी द्वारा प्रदान की गई तुलना में कुछ परिस्थितियों में भिन्न व्यवहार प्रदर्शित कर सकते हैं। पूर्व के लिएampले, अब lprintf_flt लाइब्रेरी (-print _flt विकल्प) में लिंक करना आवश्यक नहीं है ताकि फ्लोट-प्रारूप विनिर्देशक के लिए स्वरूपित IO समर्थन चालू किया जा सके। माइक्रोचिप यूनिफाइड स्टैंडर्ड लाइब्रेरी की स्मार्ट आईओ विशेषताएं इस विकल्प को निरर्थक बनाती हैं। इसके अतिरिक्त, स्ट्रिंग और मेमोरी फ़ंक्शंस (जैसे strcpy_P () आदि ..) के लिए _p प्रत्यय वाले रूटीन का उपयोग, जो फ़्लैश में कॉन्स्ट स्ट्रिंग्स पर काम करते हैं, अब आवश्यक नहीं हैं। कॉन्स्ट-डेटा-इन-प्रोग्राम-मेमोरी सुविधा सक्षम होने पर मानक सी रूटीन (जैसे strcpy ()) ऐसे डेटा के साथ सही ढंग से काम करेंगे।

संस्करण 2.32

कोई नहीं।

संस्करण 2.31

कोई नहीं।

संस्करण 2.30

कोई नहीं।

संस्करण 2.29 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.20

DFP लेआउट बदला गया कंपाइलर अब DFPs (डिवाइस फ़ैमिली पैक) द्वारा उपयोग किए जाने वाले भिन्न लेआउट को मानता है। इसका अर्थ यह होगा कि एक पुराना DFP इस रिलीज़ के साथ काम नहीं कर सकता है, और पुराने संकलक नवीनतम DFPs का उपयोग करने में सक्षम नहीं होंगे।

संस्करण 2.19 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.10

कोई नहीं

संस्करण 2.05

प्रोग्राम मेमोरी में कॉन्स्ट ऑब्जेक्ट्स ध्यान दें कि डिफ़ॉल्ट रूप से, कॉन्स्ट-योग्य वस्तुओं को रखा जाएगा और प्रोग्राम मेमोरी में एक्सेस किया जाएगा (जैसा कि यहां बताया गया है)। यह आपके प्रोजेक्ट के आकार और निष्पादन की गति को प्रभावित करेगा, लेकिन RAM उपयोग को कम करना चाहिए। यदि आवश्यक हो, तो -mnoconst- da ta-in-progmem विकल्प का उपयोग करके इस सुविधा को अक्षम किया जा सकता है।

संस्करण 2.00

कॉन्फ़िगरेशन फ़्यूज़ डिवाइस कॉन्फ़िगरेशन फ़्यूज़ अब फ़्यूज़ स्थिति को निर्दिष्ट करने के लिए सेटिंग-वैल्यू जोड़े के बाद कॉन्फ़िगरेशन प्रागमा का उपयोग करके प्रोग्राम किया जा सकता है, उदाहरण के लिए
#pragma कॉन्फ़िग WDT0N = SET
#pragma कॉन्फ़िगरेशन B0DLEVEL = B0DLEVEL_4V3
निरपेक्ष वस्तुएं और कार्य वस्तुओं और कार्यों को अब CCI _at (पता) विनिर्देशक का उपयोग करके मेमोरी में विशिष्ट पते पर रखा जा सकता है, उदाहरण के लिएampले: # शामिल करें int foobar at(Ox800100); char at(Ox250) get ID(intoffset) {... } इस विनिर्देशक का तर्क एक स्थिर होना चाहिए जो उस पते का प्रतिनिधित्व करता है जिस पर पहला बाइट या निर्देश रखा जाएगा। RAM पतों को 0x800000 ऑफ़सेट का उपयोग करके इंगित किया जाता है। इस सुविधा का उपयोग करने के लिए CCI को सक्षम करें।
नया इंटरप्ट फ़ंक्शन सिंटैक्स कंपाइलर अब सीसीआई इंटरप्ट (संख्या) विनिर्देशक को यह इंगित करने के लिए स्वीकार करता है कि सी फ़ंक्शन इंटरप्ट हैंडलर हैं। निर्दिष्टकर्ता एक रुकावट संख्या लेता है, उदाहरण के लिएampले: # शामिल करें शून्य व्यवधान (SPI STC_ vect _num) sp isr (शून्य) {…}

निश्चित मुद्दे

निम्नलिखित सुधार हैं जो संकलक में किए गए हैं। ये जनरेट किए गए कोड में बग को ठीक कर सकते हैं या कंपाइलर के संचालन को बदल सकते हैं जो कि उपयोगकर्ता के गाइड द्वारा अभिप्रेत या निर्दिष्ट किया गया था। उपशीर्षकों में संस्करण संख्या पहले संकलक संस्करण को इंगित करती है जिसमें आने वाली समस्याओं के लिए फ़िक्सेस शामिल हैं। शीर्षक में ब्रैकेटेड लेबल ट्रैकिंग डेटाबेस में उस मुद्दे की पहचान है। यदि आपको समर्थन से संपर्क करने की आवश्यकता है तो ये उपयोगी हो सकते हैं।

ध्यान दें कि डिवाइस से जुड़े डिवाइस फ़ैमिली पैक (DFP) में कुछ डिवाइस-विशिष्ट समस्याओं को ठीक किया जाता है। डीएफपी में किए गए परिवर्तनों की जानकारी और नवीनतम पैक डाउनलोड करने के लिए एमपीएलएबी पैक प्रबंधक देखें।

संस्करण 2.40

बहुत आराम से (XCS-2876) -mrelax विकल्प का उपयोग करते समय, संकलक कुछ वर्गों को एक साथ आवंटित नहीं कर रहा था, जिसके परिणामस्वरूप कम इष्टतम कोड आकार होते हैं। यह उस कोड के साथ हो सकता है जो नए MUSL पुस्तकालयों या कमजोर प्रतीकों का उपयोग करता है।
मानचित्रण सुविधा अक्षम नहीं है जैसा कि चेतावनी में कहा गया है (XCS-2875) कॉस्ट-डेटा-इन-कॉन्फिग मैप्डप्रोग्मेम फीचर कॉस्ट-डेटा-इन-प्रोएम फीचर के सक्षम होने पर निर्भर है। यदि लागत-डेटा-आईपीकॉन्फिग-मैप्ड-प्रोएम सुविधा को विकल्प का उपयोग करके स्पष्ट रूप से सक्षम किया गया था और लागत-डेटा-इनप्रोगमेम सुविधा को अक्षम कर दिया गया था, तो लिंक चरण विफल हो गया, चेतावनी संदेश के बावजूद कि विपक्ष डेटा-इन-कॉन्फिग-मैप्ड- प्रोएम फीचर अपने आप डिसेबल हो गया था, जो पूरी तरह से सही नहीं था। इस स्थिति में const-data-in-config-mapped-proem सुविधा अब पूरी तरह अक्षम है।
NVMCTRL (XCS-2848) को सही तरीके से एक्सेस करने के लिए DFP में बदलाव AVR64EA उपकरणों द्वारा उपयोग किए जाने वाले रनटाइम स्टार्टअप कोड ने इस बात पर ध्यान नहीं दिया कि NVMCTRL रजिस्टर कॉन्फ़िगरेशन चेंज प्रोटेक्शन (CCP) के तहत था और IO SFR को कॉन्स्ट-डेटा-इन कॉन्फिगमैप्ड-प्रोम कंपाइलर द्वारा उपयोग किए गए पेज पर सेट करने में सक्षम नहीं था। विशेषता। AVR-Ex_DFP संस्करण 2.2.55 में किए गए परिवर्तन रनटाइम स्टार्टअप कोड को इस रजिस्टर में सही ढंग से लिखने की अनुमति देंगे।
फ़्लैश मैपिंग से बचने के लिए DFP परिवर्तन (XCS-2847) AVR128DA28/32/48/64 सिलिकॉन इरेटा (DS80000882) में रिपोर्ट की गई फ्लैश मैपिंग डिवाइस सुविधा के साथ समस्या के समाधान को लागू किया गया है। const-data-in-config-mapped-proem संकलक सुविधा प्रभावित उपकरणों के लिए डिफ़ॉल्ट रूप से लागू नहीं होगी, और यह परिवर्तन AVR-Ex_DFP संस्करण 2.2.160 में दिखाई देगा।
sinhf या coshf के साथ त्रुटि बनाएँ (XCS-2834) sinhf () या coshf () लाइब्रेरी फ़ंक्शंस का उपयोग करने के प्रयासों के परिणामस्वरूप एक अपरिभाषित संदर्भ का वर्णन करते हुए एक लिंक त्रुटि हुई। संदर्भित लापता फ़ंक्शन को अब संकलक वितरण में शामिल किया गया है।
नोपा के साथ त्रुटियाँ बनाएँ (XCS-2833) एक फ़ंक्शन के साथ nopa एट्रीब्यूट का उपयोग करना, जिसका कोडांतरक नाम निर्दिष्ट किया गया है as () कोडांतरक से त्रुटि संदेशों को ट्रिगर करता है। यह गठबंधन संभव नहीं है।
सूचक तर्कों के साथ वैराडिक फ़ंक्शन विफलता (XCS-2755, XCS-2731) तर्कों की एक परिवर्तनीय संख्या वाले फ़ंक्शन 24-बिट (_मेमो प्रकार) पॉइंटर्स को परिवर्तनीय तर्क सूची में पारित होने की अपेक्षा करते हैं जब लागत-डेटा-इन-प्रोम सुविधा सक्षम होती है। तर्क जो डेटा मेमोरी के संकेतक थे, उन्हें 16-बिट ऑब्जेक्ट के रूप में पारित किया जा रहा था, जिससे कोड विफलता हो गई जब वे अंततः पढ़े गए। जब कॉन्स डेटा-इन-प्रोएम सुविधा सक्षम होती है, तो सभी 16-बिट पॉइंटर्स तर्क अब 24-बिट पॉइंटर्स में परिवर्तित हो जाते हैं। strtoxxx लाइब्रेरी फ़ंक्शंस विफल (XCS-2620) जब const-data-in-proem सुविधा सक्षम की गई थी, तो strtoxxx लाइब्रेरी फ़ंक्शंस में एंटर पैरामीटर प्रोग्राम मेमोरी में नहीं होने वाले स्रोत स्ट्रिंग तर्कों के लिए ठीक से अपडेट नहीं किया गया था।
अमान्य कास्ट्स के लिए अलर्ट (XCS-2612) यदि कॉस्ट-इन-प्रोएम सुविधा सक्षम है और एक स्ट्रिंग शाब्दिक का पता स्पष्ट रूप से डेटा एड्रेस स्पेस (कॉन्स्ट क्वालीफायर को छोड़ते हुए) में डाला जाता है, तो कंपाइलर अब एक त्रुटि जारी करेगा।ampले, (uint8 टी *) "हैलो वर्ल्ड!"। एक चेतावनी जारी की जाती है यदि पता अमान्य हो सकता है जब एक कॉन्स्ट डेटा पॉइंटर स्पष्ट रूप से डेटा एड्रेस स्पेस पर डाला जाता है।
गैर-प्रारंभिक कॉन्स्ट ऑब्जेक्ट्स का प्लेसमेंट (XCS-2408) Uninitialized const और const volatile ऑब्जेक्ट्स प्रोग्राम मेमोरी में उन उपकरणों पर नहीं रखे जा रहे थे जो डेटा एड्रेस स्पेस में उनके प्रोग्राम मेमोरी के सभी या कुछ हिस्से को मैप करते हैं। इन उपकरणों के लिए, ऐसी वस्तुओं को अब प्रोग्राम मेमोरी में रखा जाता है, जिससे उनका संचालन अन्य उपकरणों के अनुरूप हो जाता है।

संस्करण 2.39 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.36

देरी करते समय त्रुटि (XCS-2774) डिफॉल्ट फ्री मोड ऑप्टिमाइज़ेशन में मामूली बदलाव ऑपरेंड एक्सप्रेशन को देरी से निर्मित कार्यों में लगातार मोड़ने से रोकता है, जिसके परिणामस्वरूप उन्हें गैर-संपर्क के रूप में माना जाता है और त्रुटि को ट्रिगर करता है: समय पूर्णांक स्थिरांक।

संस्करण 2.35

_at (XCS-2653) का उपयोग करते हुए सन्निहित आवंटन एक ही नाम के साथ और () का उपयोग करके एक खंड में कई वस्तुओं के लगातार आवंटन ने सही ढंग से काम नहीं किया। पूर्व के लिएample: constchararrl [ ] at tri butte ((sect on(“.misses”))) at (Ox50 0 ) = {Oxo , Ox CD} ; कीमत चार arr2[ ] ट्राई ब्यूट पर ((अनुभाग(“.my s eke”))) = {बैल, बैल FE}; arr2 को aril के तुरंत बाद रखना चाहिए था।
अनुभाग प्रारंभ पते निर्दिष्ट करना (XCS-2650) -वाल, -सेक्शन-स्टार्ट विकल्प नामांकित प्रारंभ पते पर अनुभागों को चुपचाप विफल कर रहा था। यह समस्या किसी भी कस्टम-नामित अनुभागों के लिए ठीक कर दी गई है; हालाँकि, यह किसी भी मानक अनुभागों के लिए काम नहीं करेगा, जैसे . पाठ या। bss, जिसे -Wl, -T विकल्प का उपयोग करके रखा जाना चाहिए।
आराम करने पर लिंकर क्रैश हो जाता है (XCS-2647) जब -relax ऑप्टिमाइज़ेशन को सक्षम किया गया था और ऐसे कोड या डेटा सेक्शन थे जो उपलब्ध मेमोरी में फिट नहीं थे, तो लिंकर क्रैश हो गया। अब ऐसे में इसकी जगह एरर मैसेज जारी किए जाते हैं।
खराब EEPROM एक्सेस (XCS-2629) जब -monist-data-in-proem विकल्प सक्षम किया गया था (जो कि डिफ़ॉल्ट स्थिति है) तो लेप्रोमा _रीड_ ब्लॉक रूटीन मेगा उपकरणों पर ठीक से काम नहीं करता था, जिसके परिणामस्वरूप EEPROM मेमोरी सही ढंग से नहीं पढ़ी जा रही थी।
अमान्य मेमोरी आवंटन (XCS-2593, XCS-2651) जब -टेक्स्ट या -टाटा लिंकर विकल्प (उदाहरण के लिएample एक -Wl ड्राइवर विकल्प का उपयोग करके पारित किया गया है) निर्दिष्ट किया गया है, संबंधित पाठ/डेटा क्षेत्र मूल अद्यतन किया गया था; हालाँकि, अंतिम पता तदनुसार समायोजित नहीं किया गया था, जिसके कारण क्षेत्र लक्ष्य डिवाइस की मेमोरी रेंज से अधिक हो सकता था।
अमान्य ATtiny इंटरप्ट कोड (XCS-2465) जब टैटिन उपकरणों के लिए निर्माण और ऑप्टिमाइज़ेशन अक्षम (-00) थे, तो इंटरप्ट फ़ंक्शन रेंज असेंबलर संदेशों के ऑपरेंड को ट्रिगर कर सकता था।
विकल्पों को पारित नहीं किया जा रहा है (XCS-2452) एकाधिक, अल्पविराम से अलग किए गए लिंकर विकल्पों के साथ -Wl विकल्प का उपयोग करते समय, लिंकर को सभी लिंकर विकल्प पास नहीं किए जा रहे थे।
अप्रत्यक्ष रूप से प्रोग्राम मेमोरी पढ़ने में त्रुटि (XCS-2450) कुछ उदाहरणों में, कंपाइलर ने एक पॉइंटर से प्रोग्राम मेमोरी में दो बाइट मान पढ़ते समय एक आंतरिक त्रुटि (पहचानने योग्य insn) उत्पन्न की

संस्करण 2.32

पुस्तकालय की दूसरी पहुँच विफल (XCS-2381) xc8-ar के विंडोज संस्करण को लागू करना। exe लाइब्रेरी आर्काइव को दूसरी बार किसी मौजूदा लाइब्रेरी आर्काइव को एक्सेस करने में असमर्थ त्रुटि संदेश का नाम बदलने में विफल हो सकता है।

संस्करण 2.31

अस्पष्टीकृत संकलक विफलताएँ (XCS-2367) विंडोज प्लेटफॉर्म पर चलते समय, जिसमें सिस्टम अस्थायी निर्देशिका एक पथ पर सेट होती है जिसमें एक बिंदु शामिल होता है।' चरित्र, संकलक निष्पादित करने में विफल हो सकता है।

संस्करण 2.30

आउटलाइनिंग के बाद वैश्विक लेबल खो गए (XCS-2299) हाथ से लिखा असेंबली कोड जो वैश्विक लेबल को असेंबली अनुक्रमों के भीतर रखता है जो कि प्रक्रियात्मक अमूर्तता से प्रभावित होते हैं, हो सकता है कि उन्हें सही ढंग से पुनर्स्थापित नहीं किया गया हो।
एक आरामदायक दुर्घटना (XCS-2287) -मेरलाड विकल्प का उपयोग करने से लिंकर क्रैश हो सकता है जब टेल जंप रिलैक्सेशन ऑप्टिमाइज़ेशन ने रिट इंस्ट्रक्शन को हटाने का प्रयास किया जो एक सेक्शन के अंत में नहीं थे।
मान के रूप में लेबल अनुकूलित करते समय क्रैश (XCS-2282) "लेबल के रूप में मान" जीएनयू सी भाषा एक्सटेंशन का उपयोग करने वाले कोड ने प्रक्रियात्मक अमूर्त अनुकूलन को क्रैश करने का कारण हो सकता है, एक उल्लिखित वीएमए रेंज फिक्सअप त्रुटि को फैलाता है।
ऐसा नहीं है (XCS-2271) प्रारंभ () और अन्य कार्यों के लिए प्रोटोटाइप -monist-data inprogmem सुविधा अक्षम होने पर लौटाए गए स्ट्रिंग पॉइंटर्स पर गैर-मानक लागत क्वालीफायर निर्दिष्ट नहीं करते हैं। ध्यान दें कि avrxmega3 और avertin उपकरणों के साथ, यह सुविधा स्थायी रूप से सक्षम है।
खोया प्रारंभकर्ता (XCS-2269) जब एक ट्रांसलेशन यूनिट में एक से अधिक वेरिएबल को एक सेक्शन (सेक्शन या एट्रिब्यूट ((सेक्शन)) का उपयोग करके) में रखा गया था, और ऐसा पहला वेरिएबल जीरो इनिशियलाइज़्ड था या एक इनिशियलाइज़र नहीं था, उसी ट्रांसलेशन यूनिट में अन्य वेरिएबल्स के लिए इनिशियलाइज़र जो एक ही खंड में रखे गए थे वे खो गए थे।

संस्करण 2.29 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.20

लंबे आदेशों के साथ त्रुटि (XCS-1983) एवीआर लक्ष्य का उपयोग करते समय, कंपाइलर बंद हो सकता है file त्रुटि नहीं मिली, यदि कमांड लाइन बहुत बड़ी थी और इसमें विशेष वर्ण जैसे उद्धरण, बैकस्लैश आदि शामिल थे।
असाइन नहीं किया गया रोडाटा सेक्शन (XCS-1920) AVR लिंकर avrxmega3 और avrtiny आर्किटेक्चर के लिए निर्माण करते समय कस्टम रोडाटा अनुभागों के लिए मेमोरी असाइन करने में विफल रहा, संभावित रूप से मेमोरी ओवरलैप त्रुटियां पैदा कर रहा था

संस्करण 2.19 (कार्यात्मक सुरक्षा रिलीज)

कोई नहीं।

संस्करण 2.10

स्थानांतरण विफलता (XCS-1891) सबसे अच्छा फिट आवंटक लिंकर छूट के बाद वर्गों के बीच मेमोरी 'छेद' छोड़ रहा था। खंडित स्मृति के अलावा, इसने पीसी-रिलेटिव जंप या कॉल के सीमा से बाहर होने से संबंधित लिंकर स्थानांतरण विफलताओं की संभावना को बढ़ा दिया।
छूट द्वारा परिवर्तित नहीं किए गए निर्देश (XCS-1889) लिंकर रिलैक्सेशन जंप या कॉल निर्देशों के लिए नहीं हुआ, जिनके लक्ष्यों को रिलैक्स किए जाने पर पहुंचा जा सकता है।
गुम कार्यक्षमता (XCSE-388) से कई परिभाषाएँ , जैसे कि क्लॉक_डिव_टी और क्लॉक_प्रीस्केल_सेट (), उपकरणों के लिए परिभाषित नहीं थे, जिसमें ATmega324PB, ATmega328PB, ATtiny441, और ATtiny841 शामिल हैं।
लापता मैक्रोज़ प्रीप्रोसेसर मैक्रोज़_ xcs _MODE_, _xcs संस्करण, _xc, और xcs स्वचालित रूप से कंपाइलर द्वारा परिभाषित नहीं किए गए थे। ये अब उपलब्ध हैं।

संस्करण 2.05

आंतरिक संकलक त्रुटि (XCS-1822) विंडोज के तहत निर्माण करते समय, कोड का अनुकूलन करते समय एक आंतरिक संकलक त्रुटि उत्पन्न हो सकती है।
RAM अतिप्रवाह का पता नहीं चला (XCS-1800, XCS-1796) प्रोग्राम जो उस उपलब्ध RAM से अधिक थे, कुछ स्थितियों में संकलक द्वारा पता नहीं लगाया गया, जिसके परिणामस्वरूप रनटाइम कोड विफल हो गया।
छोड़ी गई फ्लैश मेमोरी (XCS-1792) avrxmega3 और avrtiny उपकरणों के लिए, फ्लैश मेमोरी के कुछ हिस्सों को MPLAB X IDE द्वारा बिना क्रमादेशित छोड़ दिया गया हो सकता है।
मुख्य निष्पादित करने में विफलता (XCS-1788) कुछ स्थितियों में जहां कार्यक्रम में कोई वैश्विक चर परिभाषित नहीं था, रनटाइम स्टार्टअप कोड बाहर नहीं निकला और मुख्य () फ़ंक्शन कभी नहीं पहुंचा।
गलत मेमोरी जानकारी (XCS-1787) avrxmega3 और avrtiny उपकरणों के लिए, avr- आकार कार्यक्रम रिपोर्ट कर रहा था कि केवल-पढ़ने के लिए डेटा प्रोग्राम मेमोरी के बजाय RAM का उपभोग कर रहा था।
गलत प्रोग्राम मेमोरी रीड (XCS-1783) डेटा एड्रेस स्पेस में मैप की गई प्रोग्राम मेमोरी वाले उपकरणों के लिए संकलित प्रोजेक्ट और जो PROGMEM मैक्रो/एट्रिब्यूट का उपयोग करके ऑब्जेक्ट को परिभाषित करते हैं, हो सकता है कि उन्होंने इन ऑब्जेक्ट्स को गलत पते से पढ़ा हो।
विशेषताओं के साथ आंतरिक त्रुटि (XCS-1773) यदि आपने सूचक वस्तुओं को परिभाषित किया है तो एक आंतरिक त्रुटि उत्पन्न हुई
_at () या विशेषता () टोकन सूचक नाम और dereferenced प्रकार के बीच, पूर्व के लिएampले, चार *
_at (0x80015 0) सीपी; इस तरह के कोड का सामना करने पर अब एक चेतावनी जारी की जाती है।
मुख्य निष्पादित करने में विफलता (XCS-1780, XCS-1767, XCS-1754) EEPROM वेरिएबल्स का उपयोग करना या कॉन्फ़िगरेशन प्राग्मा का उपयोग करके फ़्यूज़ को परिभाषित करना मुख्य () तक पहुँचने से पहले रनटाइम स्टार्टअप कोड में गलत डेटा आरंभीकरण और/या लॉक प्रोग्राम निष्पादन का कारण हो सकता है।
छोटे उपकरणों के साथ फ्यूज त्रुटि (XCS-1778, XCS-1742) attiny4/5/9/10/20/40 उपकरणों में उनके शीर्षलेख में निर्दिष्ट गलत फ़्यूज़ लंबाई थी files जो फ़्यूज़ को परिभाषित करने वाले कोड को बनाने का प्रयास करते समय लिंकर त्रुटियों का कारण बनता है।
विभाजन दोष (XCS-1777) आंतरायिक विभाजन दोष को ठीक कर दिया गया है।
कोडांतरक क्रैश (XCS-1761) जब उबंटू 18 के तहत कंपाइलर चलाया गया था, तो avr-as असेंबलर क्रैश हो सकता था।
ऑब्जेक्ट साफ़ नहीं किए गए (XCS-1752) रनटाइम स्टार्टअप कोड द्वारा अप्रारंभीकृत स्थिर संग्रहण अवधि ऑब्जेक्ट को साफ़ नहीं किया गया हो सकता है।
परस्पर विरोधी डिवाइस विनिर्देश पर ध्यान नहीं दिया गया (XCS-1749) जब कई डिवाइस विनिर्देश विकल्पों का उपयोग किया गया था और विभिन्न उपकरणों का संकेत दिया गया था, तो कंपाइलर त्रुटि उत्पन्न नहीं कर रहा था।
ढेर द्वारा स्मृति भ्रष्टाचार (XCS-1748) हीप_ स्टार्ट सिंबल को गलत तरीके से सेट किया जा रहा था, जिसके परिणामस्वरूप हीप द्वारा साधारण चर के दूषित होने की संभावना थी।
लिंकर स्थानांतरण त्रुटि (XCS-1739) एक लिंकर स्थानांतरण त्रुटि उत्सर्जित हो सकती है जब कोड में 4k बाइट दूर लक्ष्य के साथ एक rjmp या rcall होता है।

संस्करण 2.00

कोई नहीं।

ज्ञात मुद्दे

संकलक के संचालन में निम्नलिखित सीमाएँ हैं। ये सामान्य कोडिंग प्रतिबंध हो सकते हैं, या
उपयोगकर्ता के मैनुअल में निहित जानकारी से विचलन। शीर्षक में ब्रैकेटेड लेबल ट्रैकिंग डेटाबेस में उस मुद्दे की पहचान है। यदि आपको समर्थन से संपर्क करने की आवश्यकता है तो यह लाभकारी हो सकता है। जिन मदों में लेबल नहीं हैं वे सीमाएँ हैं जो मोड ऑपरेंडी का वर्णन करती हैं और जिनके स्थायी रूप से प्रभावी रहने की संभावना है।

एमपीएलएबी एक्स आईडीई एकीकरण

MPLAB आईडीई एकीकरण यदि कम्पाइलर का उपयोग MPLAB IDE से किया जाना है, तो आपको कम्पाइलर स्थापित करने से पहले MPLAB IDE स्थापित करना होगा।

कोड जनरेशन

PA मेमोरी आवंटन विफलता (XCS-2881) प्रक्रियात्मक अमूर्त अनुकूलक का उपयोग करते समय, लिंकर मेमोरी आवंटन त्रुटियों की रिपोर्ट कर सकता है जब कोड आकार डिवाइस पर उपलब्ध प्रोग्राम मेमोरी की मात्रा के करीब हो, भले ही प्रोग्राम उपलब्ध स्थान को फिट करने में सक्षम हो।
नॉट सो स्मार्ट स्मार्ट-आईओ (एक्ससीएस-2872) कंपाइलर की स्मार्ट-आईओ सुविधा स्प्रिंट फ़ंक्शन के लिए वैध लेकिन उप-इष्टतम कोड उत्पन्न करेगी यदि तट-डेटा-इन-प्रोएम सुविधा अक्षम कर दी गई है या यदि डिवाइस के सभी फ्लैश को डेटा मेमोरी में मैप किया गया है।
इससे भी कम स्मार्ट स्मार्ट-IO (XCS-2869) जब -फ्लो और -फनो-बिल्ड टिन विकल्प दोनों का उपयोग किया जाता है तो कंपाइलर की स्मार्ट-आईओ सुविधा वैध लेकिन उप-इष्टतम कोड उत्पन्न करेगी।
उपइष्टतम रीड-ओनली डेटा प्लेसमेंट (XCS-2849) लिंकर को वर्तमान में APPCODE और APPDATA मेमोरी सेक्शन के बारे में पता नहीं है, न ही मेमोरी मैप में [No-]रीड-व्हाइल-राइट डिवीजन। नतीजतन, एक छोटा सा मौका है कि लिंकर स्मृति के अनुपयुक्त क्षेत्र में केवल-पढ़ने के लिए डेटा आवंटित कर सकता है। यदि कोस्ट-डेटा-इन-प्रगमा सुविधा सक्षम है, विशेष रूप से यदि कोस्ट-डेटा-इन-कॉन्फ़िगरेशन-मैप्ड-प्रोएम सुविधा भी सक्षम है, तो गलत डेटा की संभावना बढ़ जाती है। यदि आवश्यक हो तो इन सुविधाओं को अक्षम किया जा सकता है।
वस्तु file प्रसंस्करण आदेश (XCS-2863) जिस क्रम में वस्तुएं fileलिंकर द्वारा संसाधित किया जाएगा प्रक्रियात्मक अमूर्त अनुकूलन (-mpa विकल्प) के उपयोग के आधार पर भिन्न हो सकता है। यह केवल कोड को प्रभावित करेगा जो कई मॉड्यूल में कमजोर कार्यों को परिभाषित करता है।
निरपेक्ष के साथ लिंकर त्रुटि (XCS-2777) जब RAM के प्रारंभ में किसी पते पर किसी वस्तु को निरपेक्ष बनाया गया हो और गैर-प्रारंभिक वस्तुओं को भी परिभाषित किया गया हो, तो एक लिंकर त्रुटि ट्रिगर हो सकती है।
शॉर्ट वेक-अप आईडी (XCS-2775) ATA5700/2 उपकरणों के लिए, PHID0/1 रजिस्टरों को केवल 16 बिट चौड़े के बजाय 32 बिट चौड़े के रूप में परिभाषित किया गया है।
सिंबल कॉल करते समय लिंकर क्रैश (XCS-2758) लिंकर क्रैश हो सकता है यदि -merlad ड्राइवर विकल्प का उपयोग तब किया जाता है जब स्रोत कोड एक प्रतीक को कॉल करता है जिसे -Wl, –defsym लिंकर विकल्प का उपयोग करके परिभाषित किया गया है।
गलत आरंभीकरण (XCS-2679) कुछ वैश्विक/स्थैतिक बाइट-आकार की वस्तुओं के लिए प्रारंभिक मान डेटा मेमोरी में कहाँ रखा जाता है और जहाँ रनटाइम पर चर का उपयोग किया जाएगा, के बीच एक विसंगति है।
गलत तरीके से प्रारंभ किया गया खाली सेट (XCS-2652) ऐसे उदाहरणों में जहां रूपांतरण के लिए एक विषय स्ट्रिंग में कहा गया है () में वह शामिल है जो घातीय प्रारूप में एक फ़्लोटिंग-पॉइंट नंबर प्रतीत होता है और ई वर्ण के बाद एक अप्रत्याशित वर्ण है, तो खाली पता, यदि प्रदान किया गया है, तो बाद के वर्ण को इंगित करेगा ई और ई ही नहीं। पूर्व के लिएampले: कहा गया ("हूई", खाली); x वर्ण की ओर इशारा करते हुए खाली हो जाएगा।
खराब अप्रत्यक्ष फ़ंक्शन कॉल (XCS-2628) कुछ उदाहरणों में, संरचना के हिस्से के रूप में संग्रहीत फ़ंक्शन पॉइंटर के माध्यम से किए गए फ़ंक्शन कॉल विफल हो सकते हैं।
strtof हेक्साडेसिमल फ़्लोट्स (XCS-2626) के लिए शून्य लौटाता है लाइब्रेरी फ़ंक्शंस strtof () et al और scanf () et al, हमेशा एक हेक्साडेसिमल फ़्लोटिंग-पॉइंट नंबर को रूपांतरित करेगा जो किसी एक्सपोनेंट को निर्दिष्ट नहीं करता है
शून्य। पूर्व के लिएampले: स्टेटर ("उल्लू", और खाली); मान 0 लौटाएगा, 1 नहीं।
गलत स्टैक सलाहकार संदेश (XCS-2542, XCS-2541) कुछ मामलों में, रिकर्सन या अनिश्चित स्टैक के उपयोग के बारे में स्टैक सलाहकार चेतावनी (संभवतः एलोका () के उपयोग के माध्यम से) उत्सर्जित नहीं होती है।
डुप्लीकेट इंटरप्ट कोड के साथ विफलता (XCS-2421) जहाँ एक से अधिक इंटरप्ट फ़ंक्शन में एक ही बॉडी होती है, कंपाइलर के पास एक इंटरप्ट फ़ंक्शन के लिए आउटपुट हो सकता है जो दूसरे को कॉल करता है। इसके परिणामस्वरूप सभी कॉल-क्लोबर्ड रजिस्टरों को अनावश्यक रूप से सहेजा जा रहा है, और वर्तमान इंटरप्ट हैंडलर के उपसंहार के चलने से पहले ही व्यवधान सक्षम हो जाएगा, जिससे कोड विफलता हो सकती है।
कॉन्स्ट ऑब्जेक्ट प्रोग्राम मेमोरी में नहीं है (XCS-2408) avrxmega3 और avertins परियोजनाओं के लिए unidealized const ऑब्जेक्ट्स को डेटा मेमोरी में रखा जाता है, भले ही एक चेतावनी बताती है कि उन्हें प्रोग्राम मेमोरी में रखा गया है। यह उन उपकरणों को प्रभावित नहीं करेगा जिनके पास डेटा मेमोरी स्पेस में मैप की गई प्रोग्राम मेमोरी नहीं है, न ही यह आरंभिक किसी ऑब्जेक्ट को प्रभावित करेगा।
अमान्य DFP पथ के साथ खराब आउटपुट (XCS-2376) यदि कंपाइलर को अमान्य DFP पथ और 'युक्ति' के साथ लागू किया जाता है file चयनित डिवाइस के लिए मौजूद है, कंपाइलर लापता डिवाइस परिवार पैक की रिपोर्ट नहीं कर रहा है और इसके बजाय 'युक्ति' का चयन कर रहा है file, जो तब अमान्य आउटपुट का कारण बन सकता है। 'कल्पना' fileएस वितरित डीएफपी के साथ अद्यतित नहीं हो सकता है और केवल आंतरिक कंपाइलर परीक्षण के साथ उपयोग के लिए अभिप्रेत था।
मेमोरी ओवरलैप का पता नहीं चला (XCS-1966) कंपाइलर किसी पते पर पूर्ण किए गए ऑब्जेक्ट्स की मेमोरी ओवरलैप का पता नहीं लगा रहा है (के माध्यम से ()) और अन्य ऑब्जेक्ट्स सेक्शन () विनिर्देशक का उपयोग कर रहे हैं और जो एक ही पते से जुड़े हुए हैं।
पुस्तकालय कार्यों और _meme (XCS-1763) के साथ विफलता _memo एड्रेस स्पेस में एक तर्क के साथ कॉल किए गए लिम्बिक फ्लोट फ़ंक्शन विफल हो सकते हैं। ध्यान दें कि लाइब्रेरी रूटीन कुछ सी ऑपरेटरों से बुलाए जाते हैं, इसलिए, पूर्व के लिएample, निम्न कोड प्रभावित होता है: रिटर्न regFloatVar > memxFloatVar;
सीमित लिम्बिक कार्यान्वयन (AVRTC-731) ATTiny4/5/9/10/20/40 उत्पादों के लिए, लिम्बिक में मानक C/गणित पुस्तकालय कार्यान्वयन बहुत सीमित है या मौजूद नहीं है।
प्रोग्राम मेमोरी सीमाएँ (AVRTC-732) 128 केबी से अधिक प्रोग्राम मेमोरी छवियों को टूलचैन द्वारा समर्थित किया जाता है; हालांकि, -relax विकल्प का उपयोग किए जाने पर आवश्यक फ़ंक्शन स्टब्स उत्पन्न करने के बजाय बिना किसी छूट के और सहायक त्रुटि संदेश के बिना लिंकर गर्भपात के ज्ञात उदाहरण हैं।
नाम स्थान की सीमाएँ (AVRTC-733) उपयोगकर्ता के गाइड सेक्शन स्पेशल टाइप क्वालिफायर में उल्लिखित सीमाओं के अधीन, नामित पता स्थान टूलचेन द्वारा समर्थित हैं।
समय क्षेत्र लाइब्रेरी फ़ंक्शंस GMT को मानते हैं और स्थानीय समय क्षेत्रों का समर्थन नहीं करते हैं, इस प्रकार स्थानीय समय () गमाइट () के समान समय लौटाएगा, पूर्व के लिएampले.

ग्राहक सहेयता

file///अनुप्रयोग/माइक्रोएहिप/xc8/v 2 .40/docs/एक VR के लिए me_X C 8_ पढ़ें। एचटीएम

दस्तावेज़ / संसाधन

माइक्रोचिप एमपीएलएबी एक्ससी8 सी कंपाइलर सॉफ्टवेयर [पीडीएफ] मालिक नियमावली
MPLAB XC8 C, MPLAB XC8 C कंपाइलर सॉफ्टवेयर, कंपाइलर सॉफ्टवेयर, सॉफ्टवेयर

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *