AVR MCU साठी MICROCHIP XC8 C कंपाइलर आवृत्ती 2.45 रिलीज नोट्स
उत्पादन माहिती
MPLAB XC8 C कंपाइलर हे मायक्रोचिप AVR उपकरणांना लक्ष्य करण्यासाठी वापरले जाणारे सॉफ्टवेअर साधन आहे. हे C कोड संकलित करण्यासाठी आणि एक्झिक्युटेबल जनरेट करण्यासाठी डिझाइन केले आहे fileया उपकरणांसाठी एस. या वापरकर्ता मॅन्युअलमध्ये संदर्भित केलेली कंपाइलर आवृत्ती 2.45 आहे, ज्याची अधिकृत बिल्ड तारीख 18 ऑगस्ट 2023 आहे. मागील आवृत्ती 2.41 होती, 8 फेब्रुवारी 2023 रोजी तयार केली गेली होती. कंपाइलर कार्यात्मक सुरक्षा नियमावलीसह येते, जी अतिरिक्त माहिती प्रदान करते आणि कार्यात्मक सुरक्षा अनुप्रयोगांसह MPLAB XC कंपाइलर वापरताना मार्गदर्शक तत्त्वे. जेव्हा तुम्ही कार्यात्मक सुरक्षा परवाना खरेदी करता तेव्हा हे मॅन्युअल दस्तऐवजीकरण पॅकेजमध्ये समाविष्ट केले जाते. MPLAB XC8 C कंपाइलर रिलीजच्या वेळी सर्व उपलब्ध 8-बिट AVR MCU उपकरणांना समर्थन देतो. तुम्ही avr_chipinfo.html चा संदर्भ घेऊ शकता file सर्व समर्थित उपकरणांची सूची आणि त्यांच्या कॉन्फिगरेशन बिट सेटिंग्जसाठी कंपाइलरच्या डॉक निर्देशिकेत. MPLAB XC8 कंपाइलरच्या विविध आवृत्त्या उपलब्ध आहेत. परवानाकृत (PRO) आवृत्ती विनामूल्य आवृत्तीच्या तुलनेत उच्च पातळीचे ऑप्टिमायझेशन प्रदान करते. कंपाइलरला परवानाकृत उत्पादन म्हणून सक्रिय करण्यासाठी, तुम्हाला सक्रियकरण की खरेदी करणे आवश्यक आहे. तथापि, परवाना नसलेली आवृत्ती परवान्याशिवाय अनिश्चित काळासाठी वापरली जाऊ शकते. फंक्शनल सेफ्टी ऍप्लिकेशन्ससाठी, MPLAB XC8 फंक्शनल सेफ्टी कंपाइलर उपलब्ध आहे. सक्रिय करण्यासाठी मायक्रोचिपकडून खरेदी केलेला कार्यात्मक सुरक्षा परवाना आवश्यक आहे. एकदा सक्रिय केल्यावर, सर्व ऑप्टिमायझेशन स्तर आणि कंपाइलर वैशिष्ट्यांचा वापर केला जाऊ शकतो. MPLAB XC फंक्शनल सेफ्टी कंपाइलर नेटवर्क सर्व्हर लायसन्सला देखील सपोर्ट करतो. इंस्टॉलेशन, ऍक्टिव्हेशन, लायसन्सचे प्रकार आणि स्थलांतर समस्यांबद्दल तपशीलवार माहिती MPLAB XC C Compilers (DS50002059) दस्तऐवज स्थापित करणे आणि परवाना देणे यामध्ये आढळू शकते.
उत्पादन वापर सूचना
- MPLAB XC8 C कंपाइलर सॉफ्टवेअर चालवण्यापूर्वी, मायक्रोचिप AVR उपकरणांना लक्ष्य करण्यासाठी विशिष्ट महत्त्वाची माहिती आणि सूचनांसाठी वापरकर्ता पुस्तिका वाचा.
- तुम्ही 8-बिट PIC उपकरणांसाठी कंपाइलर वापरत असल्यास, PIC दस्तऐवजासाठी MPLAB XC8 C कंपाइलर रिलीझ नोट्स पहा.
- कंपाइलर चालवण्यासाठी तुमची ऑपरेटिंग सिस्टम सिस्टम आवश्यकता पूर्ण करते याची खात्री करा. MacOS साठी बायनरी कोड-साइन आणि नोटरीकृत केल्या आहेत. MPLAB XC नेटवर्क परवाना सर्व्हर Microsoft Windows 10 आणि त्यावरील, Ubuntu 18.04 आणि त्यावरील आणि macOS 10.15 आणि त्यावरील आवृत्तीसाठी उपलब्ध आहे. लक्षात घ्या की MPLAB XC नेटवर्क परवाना सर्व्हरची या ऑपरेटिंग सिस्टीमवर चाचणी केली जात नाही.
- MPLAB XC नेटवर्क परवाना सर्व्हर नेटवर्क परवान्यासाठी (SW006021-VM) व्हर्च्युअल मशीन परवाना वापरून समर्थित OS च्या व्हर्च्युअल मशीनवर चालविला जाऊ शकतो. MPLAB XC नेटवर्क सर्व्हरच्या सर्व 32-बिट आवृत्त्या आवृत्ती 3.00 पासून बंद केल्या आहेत.
- MPLAB XC8 C कंपाइलरला परवानाकृत (PRO) उत्पादन म्हणून सक्रिय करण्यासाठी, एक सक्रियकरण की खरेदी करा. हे विनामूल्य आवृत्तीच्या तुलनेत उच्च पातळीचे ऑप्टिमायझेशन प्रदान करेल. तथापि, परवाना नसलेला कंपाइलर परवान्याशिवाय अनिश्चित काळासाठी ऑपरेट केला जाऊ शकतो.
- जर तुम्ही MPLAB XC8 फंक्शनल सेफ्टी कंपाइलर फंक्शनल सेफ्टी अॅप्लिकेशन्ससाठी वापरत असाल, तर ते मायक्रोचिपकडून खरेदी केलेल्या फंक्शनल सेफ्टी लायसन्ससह सक्रिय केले जाणे आवश्यक आहे. या परवान्याशिवाय कंपाइलर काम करणार नाही. एकदा सक्रिय झाल्यावर, तुम्ही कोणतीही ऑप्टिमायझेशन पातळी निवडू शकता आणि सर्व कंपाइलर वैशिष्ट्ये वापरू शकता. नेटवर्क सर्व्हर परवाना MPLAB XC फंक्शनल सेफ्टी कंपाइलरच्या या प्रकाशनाद्वारे समर्थित आहे.
- MPLAB XC8 C कंपाइलरची स्थापना, सक्रियकरण आणि परवाना देण्याबाबत तपशीलवार सूचनांसाठी, MPLAB XC C Compilers (DS50002059) दस्तऐवज स्थापित करणे आणि परवाना देणे पहा.
- जर तुम्ही मूल्यमापन परवान्याअंतर्गत कंपाइलर चालवत असाल, तर तुमचा मूल्यमापन कालावधी संपल्यानंतर 14 दिवसांच्या आत तुम्हाला संकलनादरम्यान चेतावणी मिळेल. तुम्ही तुमची HPA सदस्यता संपल्यापासून 14 दिवसांच्या आत असाल तर हीच चेतावणी जारी केली जाते.
ओव्हरview
परिचय
Microchip MPLAB® XC8 C कंपाइलरच्या या प्रकाशनात अनेक नवीन वैशिष्ट्ये, दोष निराकरणे आणि नवीन उपकरणांसाठी समर्थन समाविष्ट आहे.
बिल्ड तारीख
या कंपाइलर आवृत्तीची अधिकृत बिल्ड तारीख 18 ऑगस्ट 2023 आहे.
मागील आवृत्ती
मागील MPLAB XC8 C कंपाइलर आवृत्ती 2.41 होती, जी 8 फेब्रुवारी 2023 रोजी तयार केली गेली होती.
फंक्शनल सेफ्टी मॅन्युअल
MPLAB XC कंपाइलर्ससाठी कार्यात्मक सुरक्षा पुस्तिका दस्तऐवजीकरण पॅकेजमध्ये उपलब्ध असते जेव्हा तुम्ही कार्यात्मक सुरक्षा परवाना खरेदी करता.
घटक परवाने आणि आवृत्त्या
AVR MCUs टूल्ससाठी MPLAB XC8 C कंपाइलर हे GNU जनरल पब्लिक लायसन्स (GPL) अंतर्गत लिहिलेले आणि वितरित केले जाते याचा अर्थ त्याचा स्त्रोत कोड मुक्तपणे वितरित केला जातो आणि लोकांसाठी उपलब्ध आहे. GNU GPL अंतर्गत साधनांचा स्त्रोत कोड मायक्रोचिपमधून स्वतंत्रपणे डाउनलोड केला जाऊ शकतो webजागा. तुम्ही मध्ये GNU GPL वाचू शकता file नावाने तुमच्या इंस्टॉल डिरेक्ट्रीची उपडिरेक्ट्री स्थित आहे. GPL अंतर्गत तत्त्वांची सामान्य चर्चा येथे आढळू शकते. हेडरसाठी सपोर्ट कोड प्रदान केला आहे files, लिंकर स्क्रिप्ट आणि रनटाइम लायब्ररी हे प्रोप्रायटरी कोड आहेत आणि GPL अंतर्गत समाविष्ट नाहीत. हा कंपाइलर GCC आवृत्ती 5.4.0, binutils आवृत्ती 2.26 ची अंमलबजावणी आहे आणि avr-libc आवृत्ती 2.0.0 वापरतो.
सिस्टम आवश्यकता
MPLAB XC8 C कंपाइलर आणि ते वापरत असलेले परवाना सॉफ्टवेअर विविध ऑपरेटिंग सिस्टीमसाठी उपलब्ध आहेत, ज्यात खालील 64-बिट आवृत्त्यांचा समावेश आहे: Microsoft® Windows® 10, Ubuntu® 18.04, macOS® 13.2 (व्हेंचुरा) च्या व्यावसायिक आवृत्त्या आणि Fedora 34. Windows साठी बायनरी कोड-साइन केले आहेत. MacOS साठी बायनरी कोड-साइन आणि नोटरीकृत केल्या आहेत. MPLAB XC नेटवर्क परवाना सर्व्हर विविध प्रकारच्या 64-बिट ऑपरेटिंग सिस्टीमसाठी उपलब्ध आहे, ज्यात Microsoft Windows 10 आणि त्यावरील आवृत्तीचा समावेश आहे; उबंटू 18.04 आणि वरील; किंवा macOS 10.15 आणि वरील. Windows Server, Linux वितरणे, जसे की Oracle® Enterprise Linux® आणि Red Hat® Enterprise Linux तसेच समर्थित ऑपरेटिंग सिस्टीमच्या जुन्या आवृत्त्यांसह इतर विविध ऑपरेटिंग सिस्टीमवर सर्व्हर देखील चालू शकतो. तथापि, या ऑपरेटिंग सिस्टीमवर MPLAB XC नेटवर्क परवाना सर्व्हरची चाचणी केली जात नाही. MPLAB XC नेटवर्क परवाना सर्व्हर नेटवर्क परवान्यासाठी (SW006021-VM) व्हर्च्युअल मशीन परवाना वापरून समर्थित OS च्या व्हर्च्युअल मशीनवर चालविला जाऊ शकतो. MPLAB XC नेटवर्क सर्व्हरच्या सर्व 32-बिट आवृत्त्या आवृत्ती 3.00 पासून बंद केल्या आहेत.
साधने समर्थित
हा कंपाइलर रिलीजच्या वेळी सर्व उपलब्ध 8-बिट AVR MCU उपकरणांना समर्थन देतो. सर्व समर्थित उपकरणांच्या सूचीसाठी avr_chipinfo.html (कंपाइलरच्या डॉक निर्देशिकेत) पहा. या फायली प्रत्येक उपकरणासाठी कॉन्फिगरेशन बिट सेटिंग्ज देखील सूचीबद्ध करतात.
आवृत्त्या आणि परवाना अपग्रेड
MPLAB XC8 कंपाइलर परवानाकृत (PRO) किंवा विनापरवाना (विनामूल्य) उत्पादन म्हणून सक्रिय केले जाऊ शकते. तुमच्या कंपाइलरला परवाना देण्यासाठी तुम्हाला एक सक्रियकरण की खरेदी करणे आवश्यक आहे. मोफत उत्पादनाच्या तुलनेत परवाना उच्च पातळीच्या ऑप्टिमायझेशनसाठी परवानगी देतो. परवाना नसलेला कंपाइलर परवान्याशिवाय अनिश्चित काळासाठी ऑपरेट केला जाऊ शकतो. MPLAB XC8 फंक्शनल सेफ्टी कंपाइलर मायक्रोचिपकडून खरेदी केलेल्या फंक्शनल सेफ्टी लायसन्ससह सक्रिय करणे आवश्यक आहे. या परवान्याशिवाय कंपाइलर काम करणार नाही. एकदा सक्रिय झाल्यावर, तुम्ही कोणतीही ऑप्टिमायझेशन पातळी निवडू शकता आणि सर्व कंपाइलर वैशिष्ट्ये वापरू शकता. MPLAB XC फंक्शनल सेफ्टी कंपाइलरचे हे प्रकाशन नेटवर्क सर्व्हर परवान्यास समर्थन देते. परवाना प्रकार आणि परवान्यासह कंपाइलरच्या स्थापनेबद्दल माहितीसाठी MPLAB XC C Compilers (DS50002059) स्थापित करणे आणि परवाना देणे दस्तऐवज पहा.
प्रतिष्ठापन आणि सक्रियन
या कंपाइलरमध्ये समाविष्ट केलेल्या नवीनतम परवाना व्यवस्थापकाबद्दल महत्त्वाच्या माहितीसाठी स्थलांतर समस्या आणि मर्यादा विभाग देखील पहा. MPLAB IDE वापरत असल्यास, हे टूल इंस्टॉल करण्यापूर्वी MPLAB X IDE ची नवीनतम आवृत्ती 5.0 किंवा नंतरची स्थापित केल्याची खात्री करा. कंपाइलर स्थापित करण्यापूर्वी IDE सोडा. .run (Linux) किंवा .app (macOS) कंपाइलर इंस्टॉलर ऍप्लिकेशन चालवा, उदा. XC8-1.00.11403-windows.exe आणि स्क्रीनवरील दिशानिर्देशांचे अनुसरण करा. डीफॉल्ट स्थापना निर्देशिकेची शिफारस केली जाते. जर तुम्ही लिनक्स वापरत असाल, तर तुम्ही टर्मिनल वापरून आणि रूट खात्यातून कंपाइलर इंस्टॉल केले पाहिजे. प्रशासक विशेषाधिकारांसह macOS खाते वापरून स्थापित करा. सक्रियकरण आता इंस्टॉलेशनसाठी स्वतंत्रपणे केले जाते. अधिक माहितीसाठी MPLAB® XC C Compilers (DS52059) साठी दस्तऐवज परवाना व्यवस्थापक पहा. तुम्ही मूल्यमापन परवान्याअंतर्गत कंपाइलर चालवणे निवडल्यास, तुमचा मूल्यमापन कालावधी संपल्यानंतर 14 दिवसांच्या आत तुम्हाला संकलनादरम्यान एक चेतावणी मिळेल. तुम्ही तुमची HPA सदस्यता संपल्यापासून 14 दिवसांच्या आत असाल तर हीच चेतावणी जारी केली जाते. XC नेटवर्क परवाना सर्व्हर हा एक वेगळा इंस्टॉलर आहे आणि एकल-वापरकर्ता कंपाइलर इंस्टॉलरमध्ये समाविष्ट केलेला नाही. XC परवाना व्यवस्थापक आता फ्लोटिंग नेटवर्क परवान्यांच्या रोमिंगला सपोर्ट करतो. मोबाईल वापरकर्त्यांना उद्देशून, हे वैशिष्ट्य फ्लोटिंग लायसन्सला कमी कालावधीसाठी नेटवर्क बंद करण्यास अनुमती देते. हे वैशिष्ट्य वापरून, तुम्ही नेटवर्कवरून डिस्कनेक्ट करू शकता आणि तरीही तुमचा MPLAB XC कंपाइलर वापरू शकता. या वैशिष्ट्याबद्दल अधिक माहितीसाठी XCLM install चे डॉक फोल्डर पहा. MPLAB X IDE मध्ये रोमिंग व्यवस्थापित करण्यासाठी परवाना विंडो (साधने > परवाने) समाविष्ट आहे.
स्थापना समस्यांचे निराकरण करणे
तुम्हाला कोणत्याही Windows ऑपरेटिंग सिस्टिममध्ये कंपाइलर इन्स्टॉल करताना अडचणी येत असल्यास, खालील सूचना वापरून पहा.
- प्रशासक म्हणून स्थापना चालवा.
- इंस्टॉलर ऍप्लिकेशनच्या परवानग्या 'पूर्ण नियंत्रण' वर सेट करा. (फाइलवर उजवे-क्लिक करा, गुणधर्म निवडा, सुरक्षा टॅब, वापरकर्ता निवडा, संपादित करा.)
- टेम्प फोल्डरच्या परवानग्या 'फुल कंट्रोल' वर सेट करा.
temp फोल्डरचे स्थान निश्चित करण्यासाठी, Run कमांडमध्ये %temp% टाइप करा (Windows logo key + R). हे ती निर्देशिका दर्शविणारा एक फाइल एक्सप्लोरर संवाद उघडेल आणि तुम्हाला त्या फोल्डरचा मार्ग निश्चित करण्यास अनुमती देईल.
कंपाइलर दस्तऐवजीकरण
स्क्रीनशॉटमध्ये दर्शविल्याप्रमाणे MPLAB X IDE डॅशबोर्डमधील निळ्या हेल्प बटणावर क्लिक केल्यावर आपल्या ब्राउझरमध्ये उघडणाऱ्या HTML पृष्ठावरून कंपाइलरचे वापरकर्ता मार्गदर्शक उघडले जाऊ शकतात.
जर तुम्ही 8-बिट AVR लक्ष्यांसाठी तयार करत असाल, तर AVR® MCU साठी MPLAB® XC8 C कंपाइलर वापरकर्त्याच्या मार्गदर्शकामध्ये या आर्किटेक्चरला लागू असलेल्या कंपाइलर पर्याय आणि वैशिष्ट्यांची माहिती आहे.
ग्राहक समर्थन
तुम्ही या उत्पादनाच्या इतर वापरकर्त्यांना XC8 फोरममध्ये प्रश्न विचारू शकता. मायक्रोचिप या कंपाइलर आवृत्तीबाबत बग अहवाल, सूचना किंवा टिप्पण्यांचे स्वागत करते. कृपया कोणतेही बग अहवाल किंवा वैशिष्ट्य विनंत्या सपोर्ट सिस्टमद्वारे निर्देशित करा.
दस्तऐवजीकरण अद्यतने
MPLAB XC8 दस्तऐवजीकरणाच्या ऑनलाइन आणि अद्ययावत आवृत्त्यांसाठी, कृपया मायक्रोचिपच्या ऑनलाइन तांत्रिक दस्तऐवजीकरणाला भेट द्या webसाइट
या प्रकाशनात नवीन किंवा अद्यतनित AVR दस्तऐवजीकरण:
काहीही नाही
- AVR® GNU टूलचेन ते MPLAB® XC8 मायग्रेशन मार्गदर्शक स्त्रोत कोडमधील बदलांचे वर्णन करते आणि तुम्ही AVR 8-बिट GNU टूलचेन मधून मायक्रोचिप MPLAB XC8 C कंपाइलरमध्ये C-आधारित प्रकल्प स्थलांतरित करण्याचा निर्णय घेतल्यास आवश्यक असू शकतील असे पर्याय तयार करतात.
- मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररी संदर्भ मार्गदर्शक मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररीद्वारे परिभाषित केलेल्या फंक्शन्सच्या वर्तनाचे आणि इंटरफेसचे वर्णन करते, तसेच लायब्ररी प्रकार आणि मॅक्रोचा हेतू वापरतात. यापैकी काही माहिती AVR® MCU साठी MPLAB® XC8 C कंपाइलर वापरकर्ता मार्गदर्शकामध्ये पूर्वी समाविष्ट होती. डिव्हाइस-विशिष्ट लायब्ररी माहिती अद्याप या कंपाइलर मार्गदर्शकामध्ये समाविष्ट आहे.
- जर तुम्ही 8-बिट डिव्हाइसेस आणि MPLAB XC8 C कंपाइलरसह प्रारंभ करत असाल तर, MPLAB® XC8 वापरकर्त्याचे
- एम्बेडेड इंजिनीअर्ससाठी मार्गदर्शक – AVR® MCUs (DS50003108) मध्ये MPLAB X IDE मध्ये प्रकल्प उभारण्याविषयी आणि तुमच्या पहिल्या MPLAB XC8 C प्रकल्पासाठी कोड लिहिण्याबाबत माहिती आहे. हे मार्गदर्शक आता कंपाइलरसह वितरित केले आहे.
- हेक्समेट वापरकर्ता मार्गदर्शक हे हेक्समेट एक स्वतंत्र अनुप्रयोग म्हणून चालवणाऱ्यांसाठी आहे.
नवीन काय आहे
खालील नवीन AVR-लक्ष्य वैशिष्ट्ये आहेत ज्यांना कंपाइलर आता समर्थन देतो. उपशीर्षकांमधील आवृत्ती क्रमांक खालील वैशिष्ट्यांना समर्थन देण्यासाठी प्रथम कंपायलर आवृत्ती सूचित करतो.
आवृत्ती ५.१
युनिव्हर्सल लायसन्स मॅनेजर (XC8-3175, XCLM-224) कंपाइलरसह वापरलेली लायसन्स मॅनेजरची macOS आवृत्ती आता युनिव्हर्सल झाली आहे, जी Intel- आणि M1-आधारित दोन्ही मशीनसाठी मूळ समर्थन देते. परवाना व्यवस्थापकाच्या Linux आवृत्तीसाठी आता glibc ची किमान आवृत्ती 2.25 आवश्यक आहे. मॅक युनिव्हर्सल बायनरी (XC8-3168, XC8-2951) macOS साठी कंपाइलर बायनरी फाइल्स आता सार्वत्रिक आहेत, जे इंटेल- आणि M1-आधारित दोन्ही मशीनसाठी मूळ समर्थन देतात. फ्लोटिंग-पॉइंट लायब्ररी आकार कमी (XC8-3112, XC8-3071) sinf() pow(), sqrt(), expf(), log1fp(), आणि nextafterf() सह फ्लोटिंग पॉइंट लायब्ररी फंक्शन्समध्ये सुधारणा केल्या आहेत. , जे या दिनचर्यांसाठी कोड आकारात कपात करतात. नवीन उपकरण समर्थन आता खालील AVR भागांसाठी उपलब्ध आहे: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EA32, AVRXNUMXEAXNUMX आणि.
आवृत्ती ५.१
- बूटरो सपोर्ट (XC8-3053) कंपायलर कोणत्याही विभागांची सामग्री .bootrow प्रीफिक्ससह HEX फाइलमध्ये 0x860000 पत्त्यावर ठेवेल. हे विभाग BOOTROW मेमरीसाठी वापरले जातात, जे की आणि इतर सुरक्षित माहिती साठवण्यासाठी डिझाइन केलेले आहे जे फक्त बूटलोडरसाठी प्रवेशयोग्य असावे.
- रिडंडंट रिटर्न एलिमिनेशन (XC8-3048) कंपाइलर आता कस्टम लिंकर स्क्रिप्ट वापरल्या जातात तेव्हा टेल जंपसह फंक्शनमधील रिडंडंट रेट सूचना काढून टाकेल. हे पूर्वी केल्या गेलेल्या सारखेच ऑप्टिमायझेशन आहे, परंतु ते आता सर्व अनाथ विभागांवर केले जाते, जरी कस्टम लिंकर स्क्रिप्ट वापरली गेली असली आणि सर्वोत्कृष्ट वाटप योजना चालू नसली तरीही.
- वेळेचा प्रकार बदल (XC8-2982, 2932) C99 मानक लायब्ररी प्रकार, time_t लाँग लाँग वरून स्वाक्षरी नसलेल्या लाँग प्रकारात बदलला गेला आहे, जे काही वेळ-संबंधित कार्यांमध्ये कोड-आकार सुधारणा देते, जसे की mktime().
- नवीन nop (XC8-2946, 2945) मॅक्रो NOP() यामध्ये जोडले गेले आहे. . हा मॅक्रो आउटपुटमध्ये नोप नो-ऑपरेशन सूचना समाविष्ट करतो.
- XCLM (XC8-2944) वर अद्यतनित करा कंपायलरसह वापरलेला परवाना व्यवस्थापक अद्यतनित केला गेला आहे आणि आता कंपाइलरच्या परवाना तपशील तपासताना अधिक प्रतिसाद देणारा आहे.
- Trampओलायन्ड कॉल्स (XC8-2760) कंपाइलर आता लाँग-फॉर्म कॉल सूचनांना लहान सापेक्ष कॉलसह बदलू शकतो जेव्हा सूचनांचे सापेक्ष फॉर्म सामान्यतः त्यांच्या गंतव्यस्थानाच्या बाहेर असतील. या स्थितीत, कंपाइलर rcal सूचनांसह jmp कॉल सूचना बदलण्याचा प्रयत्न करेल जे 'tr' करेल.ampआवश्यक पत्त्यावर oline' अंमलबजावणी, उदाampले:
आवृत्ती ५.१
- नवीन डिव्हाइस सपोर्ट आता खालील AVR भागांसाठी उपलब्ध आहे: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32,AVRAVR64, AVR28 64, आणि AVR32EA64.
- सुधारित प्रक्रियात्मक अॅब्स्ट्रॅक्शन प्रक्रियात्मक अॅब्स्ट्रॅक्शन (पीए) ऑप्टिमायझेशन टूल सुधारित केले गेले आहे जेणेकरुन फंक्शन कॉल इंस्ट्रक्शन (कॉल/आरकॉल) असलेला कोड रेखांकित केला जाऊ शकतो. हे फक्त तेव्हाच होईल जेव्हा स्टॅकचा उपयोग वितर्क पास करण्यासाठी किंवा फंक्शनमधून रिटर्न व्हॅल्यू मिळवण्यासाठी केला जात नसेल. व्हेरिएबल आर्ग्युमेंट लिस्टसह फंक्शन कॉल करताना किंवा या उद्देशासाठी नियुक्त केलेल्या रजिस्टर्सपेक्षा जास्त वितर्क घेणारे फंक्शन कॉल करताना स्टॅकचा वापर केला जातो. हे वैशिष्ट्य – mno-pa-आउटलाइन-कॉल पर्याय वापरून अक्षम केले जाऊ शकते किंवा -mno-pa-ऑन- वापरून ऑब्जेक्ट फाइल आणि किंवा फंक्शनसाठी प्रक्रियात्मक अॅब्स्ट्रॅक्शन पूर्णपणे अक्षम केले जाऊ शकते.file -mno-pa-on-function, अनुक्रमे, किंवा nopa विशेषता (__nopa specifier) फंक्शन्ससह निवडकपणे वापरून.
- कोड कव्हरेज मॅक्रो वैध -mcodecov पर्याय निर्दिष्ट केल्यास कंपाइलर आता मॅक्रो __CODECOV परिभाषित करतो.
- मेमरी आरक्षण पर्याय xc8-cc ड्राइव्हर आता AVR लक्ष्यांसाठी तयार करताना -mreserve=space@start:end पर्याय स्वीकारेल. हा पर्याय डेटा किंवा प्रोग्राम मेमरी स्पेसमध्ये निर्दिष्ट मेमरी श्रेणी राखून ठेवतो, लिंकरला या क्षेत्रातील कोड किंवा ऑब्जेक्ट्स पॉप्युलेट करण्यापासून प्रतिबंधित करतो.
- अधिक स्मार्ट IO स्मार्ट IO फंक्शन्समध्ये अनेक सुधारणा केल्या गेल्या आहेत, ज्यात प्रिंटएफ कोर कोडमध्ये सामान्य बदल, %n रूपांतरण स्पेसिफायरला स्वतंत्र प्रकार म्हणून हाताळणे, मागणीनुसार वरर्ग पॉप रूटीनमध्ये लिंक करणे, हाताळण्यासाठी शक्य असेल तेथे लहान डेटा प्रकार वापरणे. IO फंक्शन आर्ग्युमेंट्स आणि फील्ड रुंदी आणि अचूक हाताळणीमध्ये सामान्य कोड फॅक्टरिंग. यामुळे कोड आणि डेटाची महत्त्वपूर्ण बचत होऊ शकते, तसेच IO च्या अंमलबजावणीचा वेग वाढू शकतो.
आवृत्ती 2.39 (कार्यात्मक सुरक्षा प्रकाशन)
नेटवर्क सर्व्हर परवाना MPLAB XC8 फंक्शनल सेफ्टी कंपाइलरचे हे प्रकाशन नेटवर्क सर्व्हर परवान्यास समर्थन देते.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
- नवीन उपकरण समर्थन खालील AVR भागांसाठी उपलब्ध आहे: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 आणि AVR64DD32.
- सुधारित संदर्भ स्विचिंग नवीन -mcall-isr-prologues पर्याय इंटरप्ट फंक्शन्स एंट्रीवर रजिस्टर्स कसे सेव्ह करतात आणि इंटरप्ट रूटीन संपल्यावर त्या रजिस्टर्स कसे रिस्टोअर केले जातात ते बदलते. हे -mcall-prologues पर्यायाप्रमाणेच कार्य करते, परंतु केवळ इंटरप्ट फंक्शन्स (ISRs) प्रभावित करते.
- आणखी सुधारित संदर्भ स्विचिंग नवीन -mgas-isr-prologues पर्याय लहान व्यत्यय सेवा दिनचर्यासाठी व्युत्पन्न केलेला संदर्भ स्विच कोड नियंत्रित करतो. सक्षम केल्यावर, हे वैशिष्ट्य असेंबलरकडे नोंदणीच्या वापरासाठी ISR स्कॅन करेल आणि आवश्यक असल्यासच ही वापरलेली नोंदणी जतन करेल.
- कॉन्फिगर करण्यायोग्य फ्लॅश मॅपिंग AVR DA आणि AVR DB कुटुंबातील काही डिव्हाइसेसमध्ये SFR (उदा. FLMAP) असते जे प्रोग्राम मेमरीचा कोणता 32k विभाग डेटा मेमरीमध्ये मॅप केला जाईल हे निर्दिष्ट करते. नवीन – mconst-data-in-config-mapped-progmem पर्यायाचा वापर लिंकरला सर्व-पात्र डेटा एका 32k विभागात ठेवण्यासाठी केला जाऊ शकतो आणि हा डेटा डेटा मेमरी स्पेसमध्ये मॅप केला गेला आहे याची खात्री करण्यासाठी आपोआप संबंधित SFR रजिस्टर सुरू करू शकतो. , जेथे ते अधिक प्रभावीपणे प्रवेश केले जाईल.
- मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररी सर्व MPLAB XC कंपाइलर मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररी सामायिक करतील, जी आता MPLAB XC8 च्या या प्रकाशनासह उपलब्ध आहे. AVR® MCU साठी MPLAB® XC8 C कंपाइलर वापरकर्ता मार्गदर्शक यापुढे या मानक कार्यांसाठी दस्तऐवजीकरण समाविष्ट करत नाही. ही माहिती आता मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररी संदर्भ मार्गदर्शकामध्ये आढळू शकते. लक्षात घ्या की avr-libc द्वारे पूर्वी परिभाषित केलेली काही कार्यक्षमता यापुढे उपलब्ध नाही. (लायब्ररी कार्यक्षमता पहा.)
- स्मार्ट IO नवीन युनिफाइड लायब्ररींचा भाग म्हणून, ही फंक्शन्स प्रोग्राममध्ये कशी वापरली जातात यावर आधारित, printf आणि scanf फॅमिलीमधील IO फंक्शन्स आता प्रत्येक बिल्डवर सानुकूलित केली जातात. हे प्रोग्रामद्वारे वापरलेली संसाधने लक्षणीयरीत्या कमी करू शकते.
- स्मार्ट IO सहाय्य पर्याय स्मार्ट IO फंक्शन्स (जसे की printf() किंवा scanf() वर कॉल्सचे विश्लेषण करताना कंपाइलर नेहमी फॉरमॅट स्ट्रिंगवरून निर्धारित करू शकत नाही किंवा कॉलसाठी आवश्यक असलेल्या रूपांतरण स्पेसिफिकर्सच्या वितर्कांमधून अनुमान काढू शकत नाही. पूर्वी, कंपाइलर नेहमी तयार करत असे कोणतेही गृहितक नाहीत आणि पूर्णतः कार्यशील IO फंक्शन्स अंतिम प्रोग्राम इमेजमध्ये जोडलेले आहेत याची खात्री करा. एक नवीन -msmart-io-format=fmt पर्याय जोडला गेला आहे जेणेकरून कंपायलरला त्याऐवजी स्मार्ट IO द्वारे वापरल्या जाणार्या रूपांतरण स्पेसिफिकर्सची माहिती वापरकर्त्याद्वारे दिली जाऊ शकते. फंक्शन्स ज्यांचा वापर अस्पष्ट आहे, जास्त लांब IO रूटीन लिंक होण्यापासून प्रतिबंधित करते. (अधिक तपशीलांसाठी smart-io-format पर्याय पहा.)
- सानुकूल विभाग ठेवणे याआधी, -Wl,–section-start हा पर्याय विनंती केलेल्या पत्त्यावर निर्दिष्ट विभाग ठेवतो जेव्हा लिंकर स्क्रिप्टने समान नावाचा आउटपुट विभाग परिभाषित केला होता. जेव्हा तसे झाले नाही, तेव्हा विभाग लिंकरने निवडलेल्या पत्त्यावर ठेवला गेला आणि पर्यायाकडे दुर्लक्ष केले गेले. आता पर्याय सर्व सानुकूल विभागांसाठी सन्मानित केला जाईल, जरी लिंकर स्क्रिप्टने विभाग परिभाषित केला नाही. तथापि, लक्षात ठेवा की मानक विभागांसाठी, जसे की .text, .bss किंवा .data , सर्वोत्कृष्ट योग्य वाटपकर्त्याचे त्यांच्या प्लेसमेंटवर पूर्ण नियंत्रण असेल आणि पर्यायाचा कोणताही परिणाम होणार नाही. वापरकर्त्याच्या मार्गदर्शकामध्ये वर्णन केल्याप्रमाणे -Wl,-Tsection=addr पर्याय वापरा.
आवृत्ती ५.१
- स्टॅक मार्गदर्शन PRO कंपाइलर परवान्यासह उपलब्ध, कंपाइलरच्या स्टॅक मार्गदर्शन वैशिष्ट्याचा वापर प्रोग्रामद्वारे वापरल्या जाणार्या कोणत्याही स्टॅकच्या कमाल खोलीचा अंदाज घेण्यासाठी केला जाऊ शकतो. हे प्रोग्रामचा कॉल आलेख तयार करते आणि त्याचे विश्लेषण करते, प्रत्येक फंक्शनचा स्टॅक वापर निर्धारित करते आणि एक अहवाल तयार करते, ज्यावरून प्रोग्रामद्वारे वापरलेल्या स्टॅकच्या खोलीचा अंदाज लावला जाऊ शकतो. हे वैशिष्ट्य -mchp-stack-usage कमांड-लाइन पर्यायाद्वारे सक्षम केले आहे. अंमलबजावणीनंतर स्टॅक वापराचा सारांश छापला जातो. नकाशा फाइलमध्ये तपशीलवार स्टॅक अहवाल उपलब्ध आहे, ज्याची नेहमीच्या पद्धतीने विनंती केली जाऊ शकते.
- खालील AVR भागांसाठी नवीन डिव्हाइस समर्थन सपोर्ट उपलब्ध आहे: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DBD28, AVR32BD28, AVR64BD32, AVR32B48 XNUMX, आणि AVRXNUMXDBXNUMX.
- मागे घेतलेले उपकरण समर्थन पुढील AVR भागांसाठी आता उपलब्ध नाही: AVR16DA28, AVR16DA32 आणि, AVR16DA48.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
- डेटा इनिशिएलायझेशन रोखण्यासाठी नवीन पर्याय नवीन -mno-data-init ड्रायव्हर पर्याय डेटाचे इनिशिएलायझेशन आणि bss विभाग साफ करणे प्रतिबंधित करतो. हे असेंबली फाइल्समधील do_clear_bss चिन्हांचे आउटपुट दाबून कार्य करते, ज्यामुळे लिंकरद्वारे त्या रूटीनचा समावेश टाळता येईल.
- वर्धित ऑप्टिमायझेशन्स अनेक ऑप्टिमायझेशन सुधारणा केल्या गेल्या आहेत, ज्यामध्ये रिडंडंट रिटर्न सूचना काढून टाकणे, स्किप-इफ-बिट-इज सूचनेनंतर काही उडी काढून टाकणे, आणि सुधारित प्रक्रियात्मक अमूर्तता आणि ही प्रक्रिया पुनरावृत्ती करण्याची क्षमता समाविष्ट आहे.
यापैकी काही ऑप्टिमायझेशन नियंत्रित करण्यासाठी अतिरिक्त पर्याय उपलब्ध आहेत, विशेषत: -fsection- anchors, जे एका चिन्हाच्या सापेक्ष स्थिर वस्तूंचा प्रवेश करण्यास अनुमती देतात; -mpa- iterations=n , जे डीफॉल्ट 2 पासून प्रक्रियात्मक अमूर्त पुनरावृत्तीची संख्या बदलण्याची परवानगी देते; आणि, -mpa-callcost-shortcall, जे अधिक आक्रमक प्रक्रियात्मक अमूर्तता करते, या आशेने की लिंकर लांब कॉल्स आराम करू शकेल. जर अंतर्निहित गृहीतके पूर्ण झाली नाहीत तर हा शेवटचा पर्याय कोड आकार वाढवू शकतो. - खालील AVR भागांसाठी नवीन डिव्हाइस समर्थन सपोर्ट उपलब्ध आहे: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DA32, AVR128DA48 128DB64, AVRXNUMXDBXNUMX, आणि AVRXNUMXDBXNUMX.
- मागे घेतलेले डिव्हाइस सपोर्ट सपोर्ट यापुढे खालील AVR भागांसाठी उपलब्ध नाही: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616Q, A6617C, A664251TAXNUMXC, ATAXNUMXN.
आवृत्ती 2.29 (कार्यात्मक सुरक्षा प्रकाशन)
- कंपाइलर बिल्ट-इन्ससाठी हेडर फाइल कंपाइलर MISRA सारख्या भाषेच्या वैशिष्ट्यांशी सुसंगत आहे याची खात्री करण्यासाठी, , अद्ययावत केले गेले आहे. या शीर्षलेखामध्ये __builtin_avr_nop() आणि __builtin_avr_delay_cycles() सारख्या सर्व इन-बिल्ट फंक्शन्सचे प्रोटोटाइप आहेत. काही अंगभूत MISRA अनुरूप नसू शकतात; कंपाइलर कमांड लाइनमध्ये __XC_STRICT_MISRA व्याख्या जोडून हे वगळले जाऊ शकते. बिल्ट-इन्स आणि त्यांची घोषणा निश्चित-रुंदी प्रकार वापरण्यासाठी अद्यतनित केली गेली आहेत.
आवृत्ती ५.१
- नवीन उपकरण समर्थन खालील AVR भागांसाठी उपलब्ध आहे: ATTINY1624, ATTINY1626, आणि ATTINY1627.
- उत्तम सर्वोत्कृष्ट फिट वाटप कंपाइलरमधील सर्वोत्कृष्ट फिट वाटप (BFA) सुधारित केले गेले आहे जेणेकरुन विभाग चांगल्या ऑप्टिमायझेशनची परवानगी देणार्या क्रमाने वाटप केले जातील. BFA आता नावाच्या पत्त्याच्या स्थानांना समर्थन देते आणि डेटा इनिशिएलायझेशन चांगल्या प्रकारे हाताळते.
- सुधारित प्रक्रियात्मक अमूर्तता प्रक्रियात्मक अॅब्स्ट्रॅक्शन ऑप्टिमायझेशन आता अधिक कोड अनुक्रमांवर केले जातात. या ऑप्टिमायझेशनने कोडचा आकार वाढवला असेल अशा पूर्वीच्या परिस्थितींना ऑप्टिमायझेशन कोडला लिंकरच्या कचरा संकलन प्रक्रियेबद्दल जागरूक करून संबोधित केले गेले आहे.
- AVR असेंबलरची अनुपस्थिती AVR असेंबलर या वितरणामध्ये यापुढे समाविष्ट केले जाणार नाही.
आवृत्ती 2.19 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
- कोड कव्हरेज या प्रकाशनामध्ये कोड कव्हरेज वैशिष्ट्य समाविष्ट आहे जे प्रकल्पाचा स्त्रोत कोड किती प्रमाणात कार्यान्वित केला गेला आहे याचे विश्लेषण सुलभ करते. ते सक्षम करण्यासाठी -mcodecov=ram पर्याय वापरा. तुमच्या हार्डवेअरवर प्रोग्राम अंमलात आणल्यानंतर, कोड कव्हरेज माहिती डिव्हाइसमध्ये एकत्रित केली जाईल आणि हे MPLAB X IDE द्वारे कोड कव्हरेज प्लगइनद्वारे हस्तांतरित आणि प्रदर्शित केले जाऊ शकते. या प्लगइनवर माहिती मिळवण्यासाठी IDE दस्तऐवजीकरण पहा.
#pragma nocodecov चा वापर कव्हरेज विश्लेषणातून पुढील कार्ये वगळण्यासाठी केला जाऊ शकतो. तद्वतच ती संपूर्ण फाइल कव्हरेज विश्लेषणातून वगळण्यासाठी फाईलच्या सुरुवातीला प्राग्मा जोडली जावी. वैकल्पिकरित्या, __विशेषता__((nocodecov)) कव्हरेज विश्लेषणातून विशिष्ट कार्य वगळण्यासाठी वापरली जाऊ शकते. - डिव्हाइस वर्णन फाइल्स avr_chipinfo.html नावाची नवीन डिव्हाइस फाइल कंपाइलर वितरणाच्या डॉक्स निर्देशिकेमध्ये स्थित आहे. ही फाईल कंपाइलरद्वारे समर्थित सर्व उपकरणांची यादी करते. डिव्हाइसच्या नावावर क्लिक करा, आणि ते त्या डिव्हाइससाठी सर्व स्वीकार्य कॉन्फिगरेशन बिट सेटिंग/मूल्य जोड्या दर्शविणारे पृष्ठ उघडेल, उदा.ampलेस
- प्रक्रियात्मक अॅब्स्ट्रॅक्शन प्रक्रियात्मक अॅब्स्ट्रॅक्शन ऑप्टिमायझेशन, जे असेंबली कोडच्या सामान्य ब्लॉकला त्या ब्लॉकच्या काढलेल्या प्रतीच्या कॉलसह बदलतात, कंपाइलरमध्ये जोडले गेले आहेत. हे एका वेगळ्या ऍप्लिकेशनद्वारे केले जातात, जे स्तर 2, 3 किंवा s ऑप्टिमायझेशन निवडताना कंपाइलरद्वारे आपोआप मागवले जाते. हे ऑप्टिमायझेशन कोड आकार कमी करतात, परंतु ते अंमलबजावणीची गती आणि कोड डीबगबिलिटी कमी करू शकतात. -mno-pa पर्याय वापरून उच्च ऑप्टिमायझेशन स्तरांवर प्रक्रियात्मक अॅब्स्ट्रॅक्शन अक्षम केले जाऊ शकते किंवा -mpa वापरून कमी ऑप्टिमायझेशन स्तरांवर (तुमच्या परवान्याच्या अधीन) सक्षम केले जाऊ शकते. हे -mno-pa-on- वापरून ऑब्जेक्ट फाइलसाठी अक्षम केले जाऊ शकते.file=fileनाव , किंवा -mno-pa-on- function=function वापरून फंक्शनसाठी अक्षम केले. तुमच्या सोर्स कोडच्या आत, फंक्शनच्या व्याख्येसह __attribute__((nopa)) वापरून किंवा __nopa वापरून, __attribute__((nopa,noinline)) पर्यंत विस्तारित आणि अशा प्रकारे फंक्शन इनलाइनिंग होण्यापासून रोखून __nopa वापरून प्रक्रियात्मक अमूर्तता अक्षम केली जाऊ शकते. आणि इनलाइन कोडचे अमूर्तता आहे.
- pragma मध्ये लॉक बिट सपोर्ट #pragma कॉन्फिगरेशनचा वापर आता AVR लॉक बिट्स तसेच इतर कॉन्फिगरेशन बिट्स निर्दिष्ट करण्यासाठी केला जाऊ शकतो. या प्राग्मासह वापरण्यासाठी सेटिंग/मूल्य जोड्यांसाठी avr_chipinfo.html फाइल (वर उल्लेख केलेली) तपासा.
- नवीन उपकरण समर्थन खालील भागांसाठी उपलब्ध आहे: AVR28DA128, AVR64DA128, AVR32DA128, आणि AVR48DA128.
आवृत्ती ५.१
- तुमच्या पैशासाठी अधिक बिट या कंपाइलर आणि परवाना व्यवस्थापकाची macOS आवृत्ती आता 64-बिट ऍप्लिकेशन आहे. हे macOS च्या अलीकडील आवृत्त्यांवर चेतावणीशिवाय कंपाइलर स्थापित आणि चालेल याची खात्री करेल.
- प्रोग्राम मेमरीमधील कॉन्स्ट ऑब्जेक्ट्स कंपायलर आता कॉन्स्ट-क्वालिफाईड ऑब्जेक्ट्स प्रोग्राम फ्लॅश मेमरीमध्ये RAM मध्ये ठेवण्याऐवजी ठेवू शकतो. कंपाइलरमध्ये बदल केले गेले आहेत जेणेकरून कॉन्स्ट-क्लिफाईड ग्लोबल डेटा प्रोग्राम फ्लॅश मेमरीमध्ये संग्रहित केला जाईल आणि योग्य प्रोग्राम-मेमरी सूचना वापरून हा डेटा प्रत्यक्ष आणि अप्रत्यक्षपणे ऍक्सेस केला जाऊ शकतो. हे नवीन वैशिष्ट्य डीफॉल्टनुसार सक्षम केले आहे परंतु -mno-const-data-in-progmem पर्याय वापरून अक्षम केले जाऊ शकते. avrxmega3 आणि avrtiny आर्किटेक्चरसाठी, हे वैशिष्ट्य आवश्यक नाही आणि नेहमी अक्षम केले जाते, कारण प्रोग्राम मेमरी या उपकरणांसाठी डेटा अॅड्रेस स्पेसमध्ये मॅप केली जाते.
- या कंपायलरच्या विनामूल्य विनापरवाना (विनामूल्य) आवृत्त्या आता स्तर 2 पर्यंत आणि त्यासह ऑप्टिमायझेशनला अनुमती देतात. हे मानक परवाना वापरून पूर्वी जे शक्य होते ते आउटपुट एकसारखे नसले तरी त्याला अनुमती देईल.
- स्वागत AVRASM2 2-बिट उपकरणांसाठी AVRASM8 असेंबलर आता XC8 कंपायलर इंस्टॉलरमध्ये समाविष्ट केले आहे. हे असेंबलर XC8 कंपाइलरद्वारे वापरले जात नाही, परंतु हस्तलिखित असेंबली स्त्रोतावर आधारित प्रकल्पांसाठी उपलब्ध आहे.
- नवीन उपकरण समर्थन खालील भागांसाठी उपलब्ध आहे: ATMEGA1608, ATMEGA1609, ATMEGA808, आणि ATMEGA809.
आवृत्ती ५.१
- टॉप-लेव्हल ड्रायव्हर नवीन ड्रायव्हर, ज्याला xc8-cc म्हणतात, आता आधीच्या avr-gcc ड्रायव्हर आणि xc8 ड्रायव्हरच्या वर बसतो, आणि तो लक्ष्य उपकरणाच्या निवडीवर आधारित योग्य कंपाइलरला कॉल करू शकतो. हा ड्रायव्हर GCC-शैली पर्याय स्वीकारतो, जे एकतर कार्यान्वित केल्या जात असलेल्या कंपाइलरसाठी भाषांतरित किंवा पास केले जातात. हा ड्रायव्हर कोणत्याही AVR किंवा PIC टार्गेटसह समान शब्दार्थांसह पर्यायांच्या समान संचाचा वापर करण्यास अनुमती देतो आणि अशा प्रकारे कंपाइलरला कॉल करण्याचा शिफारस केलेला मार्ग आहे. आवश्यक असल्यास, जुन्या avr-gcc ड्राइव्हरला पूर्वीच्या कंपाइलर आवृत्त्यांमध्ये स्वीकारलेल्या जुन्या-शैलीच्या पर्यायांचा वापर करून थेट कॉल केला जाऊ शकतो.
- कॉमन सी इंटरफेस हा कंपाइलर आता MPLAB कॉमन सी इंटरफेसशी सुसंगत होऊ शकतो, ज्यामुळे सर्व MPLAB XC कंपाइलरवर सोर्स कोड अधिक सहजपणे पोर्ट केला जाऊ शकतो. -mext=cci पर्याय या वैशिष्ट्याची विनंती करतो, अनेक भाषा विस्तारांसाठी पर्यायी वाक्यरचना सक्षम करतो.
- नवीन लायब्रेरियन ड्रायव्हर नवीन लायब्ररीयन ड्रायव्हर मागील PIC लायब्ररी लायब्ररीयन आणि AVR avr-ar लायब्ररीयनच्या वर आहे. हा ड्रायव्हर GCC-archiver-शैलीचा पर्याय स्वीकारतो, जे एकतर कार्यान्वित केल्या जाणाऱ्या ग्रंथपालासाठी भाषांतरित किंवा पाठवले जातात. नवीन ड्रायव्हर कोणत्याही PIC किंवा AVR लायब्ररी फाईल तयार करण्यासाठी किंवा हाताळण्यासाठी समान शब्दार्थांसह पर्यायांच्या समान संचाचा वापर करण्यास अनुमती देतो आणि अशा प्रकारे ग्रंथपालांना आमंत्रित करण्याचा शिफारस केलेला मार्ग आहे. लेगसी प्रकल्पांसाठी आवश्यक असल्यास, पूर्वीच्या कंपाइलर आवृत्त्यांमध्ये स्वीकारलेल्या जुन्या-शैलीच्या पर्यायांचा वापर करून मागील ग्रंथपालाला थेट कॉल केले जाऊ शकते.
स्थलांतर समस्या
खालील वैशिष्ट्ये आहेत जी आता कंपाइलरद्वारे वेगळ्या पद्धतीने हाताळली जातात. या कंपाइलर आवृत्तीवर कोड पोर्ट करत असल्यास या बदलांसाठी तुमच्या स्रोत कोडमध्ये बदल करणे आवश्यक आहे. उपशीर्षकांमधील आवृत्ती क्रमांक पुढील बदलांना समर्थन देण्यासाठी प्रथम कंपायलर आवृत्ती सूचित करतो.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
चुकीची fma फंक्शन्स काढली (XC8-2913) C99 मानक लायब्ररी ( ) एका राउंडिंगमध्ये असीम अचूकतेसह गुणाकार-जोडाची गणना केली नाही, परंतु त्याऐवजी प्रत्येक ऑपरेशनसह गोलाकार त्रुटी जमा केल्या. पुरवलेल्या लायब्ररीतून ही कार्ये काढून टाकली गेली आहेत.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती 2.39 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
- स्ट्रिंग-टू बेस (XC8-2420) हाताळणे इतर XC कंपाइलर्ससह सुसंगतता सुनिश्चित करण्यासाठी, XC8 स्ट्रिंग-टू फंक्शन्स, जसे की strtol() इ., निर्दिष्ट केलेला बेस 36 पेक्षा मोठा असल्यास इनपुट स्ट्रिंग रूपांतरित करण्याचा प्रयत्न करणार नाही. आणि त्याऐवजी सेट होईल. जेव्हा हे मूळ मूल्य ओलांडले जाते तेव्हा C मानक फंक्शन्सचे वर्तन निर्दिष्ट करत नाही.
- अयोग्य गती ऑप्टिमायझेशन लेव्हल 3 ऑप्टिमायझेशन (-O3) निवडताना प्रक्रियात्मक अमूर्त ऑप्टिमायझेशन सक्षम केले जात होते. हे ऑप्टिमायझेशन कोड गतीच्या खर्चावर कोड आकार कमी करतात, म्हणून केले जाऊ नयेत. हे ऑप्टिमायझेशन स्तर वापरणारे प्रकल्प या प्रकाशनासह तयार केल्यावर कोड आकार आणि अंमलबजावणी गतीमध्ये फरक पाहू शकतात.
- लायब्ररी कार्यक्षमता उदाampत्यामुळे, फ्लोट-स्वरूप निर्दिष्टकारांसाठी फॉरमॅट केलेले IO समर्थन चालू करण्यासाठी lprintf_flot लायब्ररी (-lprintf_flt पर्याय) मध्ये लिंक करणे आवश्यक नाही. मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररीची स्मार्ट IO वैशिष्ट्ये हा पर्याय अनावश्यक बनवतात. याव्यतिरिक्त, स्ट्रिंग आणि मेमरी फंक्शन्स (उदा. strcpy_P() इ.) साठी _P सफिक्स्ड रूटीनचा वापर करणे आवश्यक नाही जे फ्लॅशमध्ये कॉन्स्ट स्ट्रिंगवर कार्य करतात. जेव्हा कॉन्स्ट-डेटा-इन-प्रोग्राम-मेमरी वैशिष्ट्य सक्षम केले असेल तेव्हा मानक C रूटीन (उदा. strcpy() अशा डेटासह योग्यरित्या कार्य करेल.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती ५.१
काहीही नाही.
आवृत्ती 2.29 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
बदललेला DFP लेआउट कंपाइलर आता DFPs (डिव्हाइस फॅमिली पॅक) द्वारे वापरलेला वेगळा लेआउट गृहीत धरतो. याचा अर्थ असा होईल की जुने DFP कदाचित या रिलीझसह कार्य करणार नाही आणि जुने कंपाइलर नवीनतम DFP वापरण्यास सक्षम असणार नाहीत.
आवृत्ती 2.19 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
काहीही नाही
आवृत्ती ५.१
प्रोग्राम मेमरीमधील कॉन्स्ट ऑब्जेक्ट्स लक्षात ठेवा की डीफॉल्टनुसार, कॉन्स्ट-क्वालिफाईड ऑब्जेक्ट्स प्रोग्राम मेमरीमध्ये ठेवल्या जातील आणि ऍक्सेस केल्या जातील (येथे वर्णन केल्याप्रमाणे). हे तुमच्या प्रकल्पाच्या आकारावर आणि अंमलबजावणीच्या गतीवर परिणाम करेल, परंतु RAM वापर कमी करेल. आवश्यक असल्यास, -mno-const-data-in-progmem पर्याय वापरून हे वैशिष्ट्य अक्षम केले जाऊ शकते.
आवृत्ती ५.१
- कॉन्फिगरेशन फ्यूज डिव्हाइस कॉन्फिगरेशन फ्यूज आता कॉन्फिगरेशन प्राग्मा वापरून प्रोग्राम केले जाऊ शकतात त्यानंतर फ्यूज स्थिती निर्दिष्ट करण्यासाठी सेटिंग-व्हॅल्यू जोड्या, उदा #pragma कॉन्फिगरेशन WDTON = SET #pragma कॉन्फिगरेशन BODLEVEL = BODLEVEL_4V3
- निरपेक्ष ऑब्जेक्ट्स आणि फंक्शन्स ऑब्जेक्ट्स आणि फंक्शन्स आता CCI __at(address) स्पेसिफायर वापरून मेमरीमधील विशिष्ट पत्त्यावर ठेवली जाऊ शकतात, उदाहरणार्थampले:
- #समाविष्ट करा
int foobar __at(0x800100);
char __at(0x250) getID(इंट ऑफसेट) { … }
या स्पेसिफायरचा युक्तिवाद हा एक स्थिर असणे आवश्यक आहे जो पत्ता दर्शवितो ज्यावर प्रथम बाइट किंवा सूचना ठेवली जाईल. RAM पत्ते 0x800000 ऑफसेट वापरून सूचित केले जातात. हे वैशिष्ट्य वापरण्यासाठी CCI सक्षम करा.
- #समाविष्ट करा
- नवीन इंटरप्ट फंक्शन सिंटॅक्स कंपाइलर आता CCI __interrupt(num) स्पेसिफायर स्वीकारतो हे दर्शविण्यासाठी C फंक्शन्स इंटरप्ट हँडलर आहेत. विनिर्देशक एक व्यत्यय क्रमांक घेतो, उदाहरणार्थample: #समाविष्ट करा void __interrupt(SPI_STC_vect_num) spi_Isr(void) { … }
निश्चित समस्या
कंपाइलरमध्ये केलेल्या दुरुस्त्या खालीलप्रमाणे आहेत. हे व्युत्पन्न केलेल्या कोडमधील दोषांचे निराकरण करू शकतात किंवा वापरकर्त्याच्या मार्गदर्शकाद्वारे अभिप्रेत किंवा निर्दिष्ट केलेल्या कंपायलरच्या ऑपरेशनमध्ये बदल करू शकतात. उपशीर्षकांमधील आवृत्ती क्रमांक प्रथम कंपायलर आवृत्ती दर्शविते ज्यामध्ये पुढील समस्यांसाठी निराकरणे समाविष्ट आहेत. शीर्षकातील ब्रॅकेट केलेले लेबल हे ट्रॅकिंग डेटाबेसमधील समस्येची ओळख आहे. तुम्हाला सपोर्टशी संपर्क साधण्याची गरज असल्यास हे उपयुक्त ठरू शकतात.
लक्षात ठेवा की डिव्हाइसशी संबंधित काही डिव्हाइस-विशिष्ट समस्या डिव्हाइस फॅमिली पॅक (DFP) मध्ये दुरुस्त केल्या आहेत. DFP मध्ये केलेल्या बदलांच्या माहितीसाठी आणि नवीनतम पॅक डाउनलोड करण्यासाठी MPLAB पॅक व्यवस्थापक पहा.
आवृत्ती ५.१
- रोमिंग परवाना अयशस्वी (XCLM-235) रोमिंग परवाने 2.28 पेक्षा नंतरच्या glibc आवृत्त्यांचा वापर करून Linux प्लॅटफॉर्मवर योग्यरित्या कार्य करण्यात अयशस्वी झाले.
- स्ट्रक्चर्सच्या अॅरेसह अंतर्गत त्रुटी (XC8-3069) जेव्हा संरचनेच्या बहु-आयामी अॅरे सदस्यांवर प्रक्रिया केली गेली, तेव्हा अॅड्रेस स्पेस क्वालिफायर अॅरेमध्ये योग्यरित्या प्रसारित केला गेला नाही. यामुळे अॅड्रेस स्पेस क्वालिफायर माहितीमध्ये जुळत नाही आणि अंतर्गत कंपाइलर त्रुटी आली. ही परिस्थिती दुरुस्त करण्यात आली आहे.
- सुरू न केलेल्या प्रवाहांवर वाईट लेखन (ML-353, XC8-3100) FDEV_SETUP_STREAM किंवा _init_stdout/_init_stderr वापरून मानक आउटपुट/त्रुटी प्रवाह स्पष्टपणे सेट केले नसल्यास, त्यांना लिहिण्याचा प्रयत्न केल्याने अपरिभाषित वर्तन होते. याचा परिणाम stdlib फंक्शन्सच्या लेखनावरही होतो, जसे की perror(). या प्रवाहांना प्रारंभ होण्यापूर्वीचे कोणतेही लेखन आता दुर्लक्षित केले जाईल.
- असमर्थित मॉडिफायर (XC8-2505) avr-libc लायब्ररी प्रिंटएफ-शैली रूपांतरण स्पेसिफिकर्समधील * मॉडिफायरला समर्थन देत नाही, उदाहरणार्थample “%.*f”. हे आता मायक्रोचिप युनिफाइड स्टँडर्ड लायब्ररीच्या परिचयाने समर्थित आहे.
- मल्टिपल अनइनिशियलाइज्ड इशारे (XC8-2409) कंपाइलर अनेक एकसारखे चेतावणी संदेश जारी करत होता जेव्हा कॉन्स्ट अॅरेचा सामना केला जात होता ज्याचा प्रारंभ केला गेला नव्हता. हा संदेश एकदाच जारी करायला हवा होता, आता ही परिस्थिती उद्भवली आहे.
आवृत्ती ५.१
- व्हेंच्युरा (XC8-3088) वरील डोंगल समस्या कंपाइलरचा परवाना देण्यासाठी वापरलेले डोंगल्स कदाचित macOS व्हेंच्युरा होस्टवर योग्यरित्या वाचले गेले नाहीत, परिणामी परवाना अयशस्वी झाला. XCLM परवाना व्यवस्थापकातील बदल या समस्येचे निराकरण करतात.
- मेमरी वाटपाचे चुकीचे संकेत (XC8-2925) साधे डायनॅमिक मेमरी वाटप अंमलबजावणी वापरताना विनंती केलेली मानक लायब्ररी मेमरी मॅनेजमेंट फंक्शन्स (malloc() et al) वापरून मेमरीचे SIZE_MAX बाइट्स (किंवा याच्या जवळचे मूल्य) वाटप करण्याचा प्रयत्न. NULL पॉइंटर आता परत केला जाईल आणि अशा परिस्थितीत ENOMEM वर सेट केला जाईल.
- चुकीची fma फंक्शन्स काढली (XC8-2913) C99 स्टँडर्ड लायब्ररी fma()-फॅमिली फंक्शन्स ( ) एका राउंडिंगमध्ये असीम अचूकतेसह गुणाकार-जोडाची गणना केली नाही, परंतु त्याऐवजी प्रत्येक ऑपरेशनसह गोलाकार त्रुटी जमा केल्या. पुरवलेल्या लायब्ररीतून ही कार्ये काढून टाकली गेली आहेत.
- स्ट्रिंग रूपांतरणाची चुकीची हाताळणी (XC8-2921, XC8-2652) जेव्हा स्ट्रटोड() द्वारे रूपांतरणासाठी 'विषय क्रम' मध्ये घातांकीय स्वरूपातील फ्लोटिंग-पॉइंट संख्या असे दिसते आणि e/E नंतर एक अनपेक्षित वर्ण होता वर्ण, नंतर जेथे endptr प्रदान केले गेले होते, त्याला एक पत्ता नियुक्त केला गेला होता ज्यामध्ये ते नंतरच्या वर्णाकडे निर्देशित केले होते, तर ते स्वतः e//E वर्णाकडे निर्देशित केले गेले असावे, कारण ते रूपांतरित केले गेले नव्हते. उदाample, strtod(“100exx”, &ep) ने 100.00 परत केले पाहिजे आणि स्ट्रिंगच्या “exx” भागाकडे निर्देश करण्यासाठी ep सेट केले पाहिजे, तर फंक्शन योग्य मूल्य देत होते परंतु स्ट्रिंगचा भाग “xx” सेट करत होते.
आवृत्ती ५.१
- खूप आरामशीर (XC8-2876) -mrelax पर्याय वापरताना, कंपाइलर काही विभागांना एकत्र वाटप करत नव्हता, परिणामी कमी इष्टतम कोड आकार मिळतो. हे कदाचित नवीन MUSL लायब्ररी वापरणाऱ्या कोडसह किंवा कमकुवत चिन्हांसह झाले असावे.
- चेतावणीमध्ये नमूद केल्यानुसार मॅपिंग वैशिष्ट्य अक्षम केलेले नाही (XC8-2875) const-data-in-config-mapped-progmem वैशिष्ट्य सक्षम केल्या जात असलेल्या const-data-in-progmem वैशिष्ट्यावर अवलंबून आहे. const-data-in-config-mapped-progmem वैशिष्ट्य हे पर्याय वापरून स्पष्टपणे सक्षम केले असल्यास आणि const-data-in-progmem वैशिष्ट्य अक्षम केले असल्यास, const-data-in चेतावणी देणारा संदेश असूनही, लिंक चरण अयशस्वी झाले. -config-mapped-progmem वैशिष्ट्य स्वयंचलितपणे अक्षम केले गेले होते, जे पूर्णपणे योग्य नव्हते. const-data-in-config-mapped-progmem वैशिष्ट्य आता या परिस्थितीत पूर्णपणे अक्षम केले आहे.
- NVMCTRL (XC8-2848) मध्ये योग्यरित्या प्रवेश करण्यासाठी DFP बदलते AVR64EA डिव्हाइसेसद्वारे वापरलेला रनटाइम स्टार्टअप कोड हे लक्षात घेतले नाही की NVMCTRL रजिस्टर कॉन्फिगरेशन चेंज प्रोटेक्शन (CCP) अंतर्गत आहे आणि वापरलेल्या पृष्ठावर IO SFR सेट करू शकत नाही. const-data-in-config-mapped-progmem कंपाइलर वैशिष्ट्याद्वारे. AVR-Ex_DFP आवृत्ती 2.2.55 मध्ये केलेले बदल रनटाइम स्टार्टअप कोडला या रजिस्टरवर योग्यरित्या लिहिण्यास अनुमती देईल.
- फ्लॅश मॅपिंग टाळण्यासाठी DFP बदल (XC8-2847) AVR128DA28/32/48/64 सिलिकॉन इरेटा (DS80000882) मध्ये नोंदवलेल्या फ्लॅश-मॅपिंग डिव्हाइस वैशिष्ट्यातील समस्येसाठी एक कार्यान्वित केले गेले आहे. const-data-in-config-mapped-progmem कंपाइलर वैशिष्ट्य प्रभावित डिव्हाइसेससाठी डीफॉल्टनुसार लागू केले जाणार नाही आणि हा बदल AVR-Dx_DFP आवृत्ती 2.2.160 मध्ये दिसून येईल.
- sinhf किंवा coshf (XC8-2834) सह बिल्ड एरर sinhf() किंवा coshf() लायब्ररी फंक्शन्स वापरण्याचा प्रयत्न केल्याने एक अपरिभाषित संदर्भ वर्णन करताना लिंक एरर आली. संदर्भित गहाळ फंक्शन आता कंपाइलर वितरणामध्ये समाविष्ट केले गेले आहे.
- nopa (XC8-2833) सह एरर तयार करा nopa विशेषता वापरून फंक्शन ज्याचे असेंबलर नाव __asm__() वापरून निर्दिष्ट केले आहे असेंबलरकडून त्रुटी संदेश ट्रिगर केले. हे संयोजन शक्य नाही.
- पॉइंटर आर्ग्युमेंट्ससह व्हेरिएडिक फंक्शन अयशस्वी (XC8-2755, XC8-2731) वितर्कांच्या व्हेरिएबल संख्येसह फंक्शन्स 24-बिट (__memx प्रकार) पॉइंटर्स व्हेरिएबल वितर्क सूचीमध्ये पास होण्याची अपेक्षा करतात जेव्हा const-data-in-progmem वैशिष्ट्य असते सक्षम डेटा मेमरीसाठी पॉइंटर असलेल्या युक्तिवादांना 16-बिट ऑब्जेक्ट्स म्हणून पास केले जात होते, ज्यामुळे ते शेवटी वाचले गेले तेव्हा कोड अयशस्वी झाला. जेव्हा const-data-in-progmem वैशिष्ट्य सक्षम केले जाते, तेव्हा सर्व 16-बिट पॉइंटर आर्ग्युमेंट्स आता 24-बिट पॉइंटर्समध्ये रूपांतरित होतात.
- strtoxxx लायब्ररी फंक्शन्स अयशस्वी होत आहे (XC8-2620) जेव्हा const-data-in-progmem वैशिष्ट्य सक्षम केले होते, तेव्हा strtoxxx लायब्ररी फंक्शन्समधील endptr पॅरामीटर प्रोग्राम मेमरीमध्ये नसलेल्या स्त्रोत स्ट्रिंग वितर्कांसाठी योग्यरित्या अद्यतनित केले गेले नाही.
- अवैध कास्टसाठी अलर्ट (XC8-2612) कॉन्स्ट-इन-प्रोग्मेम वैशिष्ट्य सक्षम केले असल्यास आणि स्ट्रिंग लिटरलचा पत्ता स्पष्टपणे डेटा अॅड्रेस स्पेसवर कास्ट केला असल्यास (XCXNUMX-XNUMX) कंपाइलर आता त्रुटी जारी करेल, उदाहरणार्थample, (uint8_t *) “हॅलो वर्ल्ड!” . जेव्हा कॉन्स्ट डेटा पॉइंटर स्पष्टपणे डेटा अॅड्रेस स्पेसवर कास्ट केला जातो तेव्हा पत्ता अवैध असेल तर चेतावणी दिली जाते.
- सुरु न केलेल्या कॉन्स्ट ऑब्जेक्ट्सचे प्लेसमेंट (XC8-2408) अनइनिशियलाइज्ड आणि कॉन्स्ट वॉलेटाइल ऑब्जेक्ट्स कॉन्स्ट
सर्व किंवा त्यांच्या प्रोग्राम मेमरीचा काही भाग डेटा अॅड्रेस स्पेसमध्ये मॅप करणाऱ्या उपकरणांवर प्रोग्राम मेमरीमध्ये ठेवला जात नव्हता. या उपकरणांसाठी, अशा वस्तू आता प्रोग्राम मेमरीमध्ये ठेवल्या जातात, ज्यामुळे त्यांचे ऑपरेशन इतर उपकरणांशी सुसंगत होते.
आवृत्ती 2.39 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
(XC8-2774) विलंब करताना त्रुटी स्थिर
आवृत्ती ५.१
- __at (XC8-2653) वापरून सलग वाटप एकाच नावाच्या विभागात आणि __at() वापरून एकापेक्षा जास्त ऑब्जेक्ट स्थानांचे सलग वाटप योग्यरित्या कार्य करत नाही. उदाampले:
const char arr1[] __विशेषता__((विभाग(“.mysec”))) __at (0x500) = {0xAB, 0xCD}; const char arr2[] __विशेषता__((विभाग(“.mysec”))) = {0xEF, 0xFE}; arr2 नंतर लगेच arr1 ठेवले पाहिजे - विभाग प्रारंभ पत्ते निर्दिष्ट करणे (XC8-2650) -Wl,–विभाग-प्रारंभ पर्याय नामनिर्देशित प्रारंभ पत्त्यावर विभाग ठेवण्यास शांतपणे अयशस्वी झाला. कोणत्याही सानुकूल-नावाच्या विभागांसाठी ही समस्या निश्चित केली गेली आहे; तथापि, ते कोणत्याही मानक विभागांसाठी कार्य करणार नाही, जसे की .text किंवा .bss, जे -Wl,-T पर्याय वापरून ठेवणे आवश्यक आहे. आराम करताना लिंकर क्रॅश होतो (XC8-2647) जेव्हा -mrelax ऑप्टिमायझेशन सक्षम केले होते आणि कोड किंवा डेटा विभाग होते जे उपलब्ध मेमरीमध्ये बसत नाहीत, तेव्हा लिंकर क्रॅश झाला. आता, अशा परिस्थितीत, त्याऐवजी त्रुटी संदेश जारी केले जातात.
- नो-फॉलिंग-बॅक नाही (XC8-2646) -nofallback पर्याय योग्यरित्या लागू केला गेला नाही किंवा दस्तऐवजीकरणही केला गेला नाही. कंपाइलर परवाना नसलेला असल्यास कंपाइलर कमी ऑप्टिमायझेशन सेटिंगमध्ये परत येणार नाही याची खात्री करण्यासाठी हे आता निवडले जाऊ शकते आणि त्याऐवजी त्रुटी जारी करेल.
- अयोग्य स्पीड ऑप्टिमायझेशन (XC8-2637) लेव्हल 3 ऑप्टिमायझेशन (-O3) निवडताना प्रक्रियात्मक अॅब्स्ट्रॅक्शन ऑप्टिमायझेशन सक्षम केले जात होते. हे ऑप्टिमायझेशन कोड गतीच्या खर्चावर कोड आकार कमी करतात, म्हणून केले जाऊ नयेत.
- खराब EEPROM प्रवेश (XC8-2629) eeprom_read_block रूटीन Xmega डिव्हाइसेसवर योग्यरित्या कार्य करत नाही जेव्हा – mconst-data-in-progmem पर्याय सक्षम केला होता (जे डीफॉल्ट स्थिती आहे), परिणामी EEPROM मेमरी योग्यरित्या वाचली जात नाही.
- अवैध मेमरी वाटप (XC8-2593, XC8-2651) जेव्हा -Ttext किंवा -Tdata लिंकर पर्याय (उदा.ample एक -Wl ड्रायव्हर पर्याय वापरून पास केले) निर्दिष्ट केले आहे, संबंधित मजकूर/डेटा प्रदेश मूळ अद्यतनित केला आहे; तथापि, शेवटचा पत्ता त्यानुसार समायोजित केला गेला नाही, ज्यामुळे क्षेत्र लक्ष्य उपकरणाची मेमरी श्रेणी ओलांडू शकते.
- ओव्हर-एट्रिब्युटेड फंक्शनसह क्रॅश (XC8-2580) जर एखाद्या फंक्शनला इंटरप्ट, सिग्नल किंवा nmi विशेषता, उदा. __attribute__((__signal__, __interrupt__)) पैकी एकापेक्षा जास्त वापरून घोषित केले असेल तर कंपाइलर क्रॅश होईल.
- अवैध ATtiny इंटरप्ट कोड (XC8-2465) ATtiny डिव्हाइसेससाठी बिल्डिंग करताना आणि ऑप्टिमायझेशन अक्षम केले (-O0), इंटरप्ट फंक्शन्स कदाचित श्रेणीबाहेर ऑपरेंड ट्रिगर केले असतील
- (XC8-2452) मधून पास न होणारे पर्याय (XCXNUMX-XNUMX) एकाधिक, स्वल्पविरामाने विभक्त लिंकर पर्यायांसह -Wl पर्याय वापरत असताना, सर्व लिंकर पर्याय लिंकरला पास केले जात नव्हते.
- प्रोग्राम मेमरी (XC8-2450) वाचताना अप्रत्यक्षपणे त्रुटी आली (XCXNUMX-XNUMX) काही घटनांमध्ये, पॉइंटरपासून प्रोग्राम मेमरीमध्ये दोन बाइट मूल्य वाचताना कंपाइलरने अंतर्गत त्रुटी (अपरिचित insn) निर्माण केली.
आवृत्ती ५.१
लायब्ररीचा दुसरा प्रवेश अयशस्वी (XC8-2381) विद्यमान लायब्ररी संग्रहणात प्रवेश करण्यासाठी xc8-ar.exe लायब्ररी आर्काइव्हरची विंडोज आवृत्ती दुसर्यांदा मागवणे कदाचित त्रुटी संदेशाचे नाव बदलण्यात अक्षम असल्याने अयशस्वी झाले असेल.
आवृत्ती ५.१
अस्पष्टीकृत कंपाइलर फेल्युअर्स (XC8-2367) विंडोज प्लॅटफॉर्मवर चालत असताना ज्यामध्ये सिस्टीम तात्पुरती डिरेक्टरी एका पथावर सेट केली होती ज्यामध्ये डॉट '.' समाविष्ट होते. वर्ण, कंपाइलर कार्यान्वित करण्यात अयशस्वी होऊ शकतो.
आवृत्ती ५.१
- बाह्यरेखा (XC8-2299) नंतर चुकीची जागतिक लेबले (XCXNUMX-XNUMX) हस्तलिखित असेंबली कोड जे असेंबली अनुक्रमांमध्ये ग्लोबल लेबले ठेवतात जी प्रक्रियात्मक अॅब्स्ट्रॅक्शनद्वारे बाहेर पडतात ते कदाचित योग्यरित्या पुनर्स्थित केले गेले नाहीत.
- आरामदायी क्रॅश (XC8-2287) -mrelax पर्याय वापरल्याने लिंकर क्रॅश होऊ शकतो जेव्हा टेल जंप रिलॅक्सेशन ऑप्टिमायझेशनने विभागाच्या शेवटी नसलेल्या ret सूचना काढून टाकण्याचा प्रयत्न केला.
- मूल्ये म्हणून लेबल्स ऑप्टिमाइझ करताना क्रॅश (XC8-2282) कोड वापरून “मूल्ये म्हणून लेबले” GNU C भाषा विस्तारामुळे प्रक्रियात्मक ऍब्स्ट्रॅक्शन ऑप्टिमायझेशन क्रॅश होऊ शकते, ज्यामध्ये रेंज स्पॅन फिक्सअप त्रुटी आहे.
- असे नाही const (XC8-2271) strstr() आणि इतर फंक्शन्सचे प्रोटोटाइप जेव्हा const -mconst-data-in-progmem वैशिष्ट्य अक्षम केले असते तेव्हा परत आलेल्या स्ट्रिंग पॉइंटर्सवर नॉन-स्टँडर्ड क्वालिफायर निर्दिष्ट करू शकत नाही. लक्षात ठेवा की avrxmega3 आणि avrtiny डिव्हाइसेससह, हे वैशिष्ट्य कायमचे सक्षम केले आहे.
- लॉस्ट इनिशिएलायझर्स (XC8-2269) जेव्हा एका भाषांतर युनिटमध्ये एकापेक्षा जास्त व्हेरिएबल एका विभागात ठेवले गेले (__विभाग किंवा __विशेषता__((विभाग)) ) वापरून ), आणि अशा प्रकारचे पहिले व्हेरिएबल शून्य इनिशियलाइज होते किंवा त्यात इनिशिएलायझर नव्हते, यासाठी इनिशिएलायझर्स त्याच भाषांतर युनिटमधील इतर व्हेरिएबल्स जी त्याच विभागात ठेवली होती ती गमावली.
आवृत्ती 2.29 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
- दीर्घ आदेशांसह त्रुटी (XC8-1983) AVR लक्ष्य वापरताना, कमांड लाइन अत्यंत मोठी असल्यास आणि विशेष वर्ण जसे की कोट्स, बॅकस्लॅश इ. असल्यास कंपाइलर फाईल न सापडलेल्या त्रुटीसह थांबला असेल.
- असाइन न केलेला रोडाटा विभाग (XC8-1920) AVR लिंकर avrxmega3 आणि avrtiny आर्किटेक्चरसाठी तयार करताना सानुकूल rodata विभागांसाठी मेमरी नियुक्त करण्यात अयशस्वी झाला, संभाव्यत: मेमरी ओव्हरलॅप त्रुटी निर्माण करते
आवृत्ती 2.19 (कार्यात्मक सुरक्षा प्रकाशन)
काहीही नाही.
आवृत्ती ५.१
- रिलोकेशन अयशस्वी (XC8-1891) सर्वोत्कृष्ट फिट ऍलोकेटर लिंकर विश्रांतीनंतर विभागांमधील मेमरी 'होल' सोडत होता. स्मृती खंडित करण्याव्यतिरिक्त, यामुळे पीसी-रिलेटिव्ह जंप किंवा कॉल श्रेणीबाहेर जाण्याशी संबंधित लिंकर रिलोकेशन अयशस्वी होण्याची शक्यता वाढली.
- शिथिलतेने बदललेल्या सूचना (XC8-1889) लिंकर शिथिलता उडी मारण्यासाठी किंवा कॉल करण्याच्या सूचनांसाठी आली नाही ज्यांचे लक्ष्य आरामशीर असल्यास पोहोचू शकते.
- गहाळ कार्यक्षमता (XC8E-388) पासून अनेक व्याख्या , जसे की clock_div_t आणि clock_prescale_set() , ATmega324PB, ATmega328PB, ATtiny441, आणि ATtiny841 सह, उपकरणांसाठी परिभाषित केलेले नाहीत.
- गहाळ मॅक्रो प्रीप्रोसेसर मॅक्रो _XC8_MODE_, __XC8_VERSION, __XC , आणि __XC8 कंपाइलरद्वारे स्वयंचलितपणे परिभाषित केले जातात. हे आता उपलब्ध आहेत.
आवृत्ती ५.१
- अंतर्गत कंपायलर त्रुटी (XC8-1822) Windows अंतर्गत तयार करताना, कोड ऑप्टिमाइझ करताना अंतर्गत कंपायलर त्रुटी निर्माण झाली असावी.
- RAM ओव्हरफ्लो आढळले नाही (XC8-1800, XC8-1796) उपलब्ध RAM पेक्षा जास्त असलेले प्रोग्राम काही परिस्थितींमध्ये कंपाइलरद्वारे शोधले गेले नाहीत, परिणामी रनटाइम कोड अयशस्वी झाला.
- वगळलेली फ्लॅश मेमरी (XC8-1792) avrxmega3 आणि avrtiny डिव्हाइसेससाठी, फ्लॅश मेमरीचे काही भाग MPLAB X IDE द्वारे अन-प्रोग्राम केलेले राहू शकतात.
- मुख्य कार्यान्वित करण्यात अयशस्वी (XC8-1788) काही परिस्थितींमध्ये जेथे प्रोग्राममध्ये कोणतेही ग्लोबल व्हेरिएबल्स परिभाषित केलेले नाहीत, रनटाइम स्टार्टअप कोड बाहेर पडला नाही आणि main() फंक्शन कधीही पोहोचला नाही.
- चुकीची मेमरी माहिती (XC8-1787) avrxmega3 आणि avrtiny उपकरणांसाठी, avr-आकार प्रोग्राम अहवाल देत होता की प्रोग्राम मेमरीच्या ऐवजी फक्त-वाचनीय डेटा RAM वापरत आहे.
- चुकीचे प्रोग्राम मेमरी रीड (XC8-1783) डेटा अॅड्रेस स्पेसमध्ये मॅप केलेल्या प्रोग्राम मेमरी असलेल्या डिव्हाइसेससाठी संकलित केलेले प्रकल्प आणि जे PROGMEM मॅक्रो/विशेषता वापरून ऑब्जेक्ट्स परिभाषित करतात त्यांनी कदाचित चुकीच्या पत्त्यावरून हे ऑब्जेक्ट्स वाचले असतील.
- विशेषतांसह अंतर्गत त्रुटी (XC8-1773) जर तुम्ही पॉइंटरचे नाव आणि dereferenced प्रकार यांच्यामध्ये __at() किंवा विशेषता() टोकन्ससह पॉइंटर ऑब्जेक्ट्स परिभाषित केले तर अंतर्गत त्रुटी आली.ample, char * __at(0x800150) cp; असा कोड आढळल्यास आता चेतावणी दिली जाते.
- मुख्य कार्यान्वित करण्यात अयशस्वी (XC8-1780, XC8-1767, XC8-1754) EEPROM व्हेरिएबल्स वापरणे किंवा कॉन्फिग प्राग्मा वापरून फ्यूज परिभाषित करणे कदाचित चुकीचे डेटा इनिशिएलायझेशन आणि/किंवा रनटाइम स्टार्टअप स्टार्टअप कोडमध्ये प्रोग्राम एक्झिक्यूशन लॉक केले असेल (, ).
- लहान उपकरणांसह फ्यूज त्रुटी (XC8-1778, XC8-1742) attiny4/5/9/10/20/40 डिव्हाइसेसमध्ये त्यांच्या शीर्षलेख फायलींमध्ये चुकीची फ्यूज लांबी निर्दिष्ट केली गेली होती ज्यामुळे फ्यूज परिभाषित कोड तयार करण्याचा प्रयत्न करताना लिंकर त्रुटी निर्माण होतात. .
- सेगमेंटेशन फॉल्ट (XC8-1777) मधूनमधून विभाजन फॉल्ट दुरुस्त केला गेला आहे.
- असेंबलर क्रॅश (XC8-1761) Ubuntu 18 अंतर्गत कंपायलर चालवताना avr-as असेंबलर क्रॅश झाला असावा.
- ऑब्जेक्ट्स साफ केले नाहीत (XC8-1752) अननिशिअलाइज्ड स्टॅटिक स्टोरेज कालावधी ऑब्जेक्ट्स रनटाइम स्टार्टअप कोडद्वारे साफ केले गेले नसतील.
- कॉन्फ्लिक्टिंग डिव्हाईस स्पेसिफिकेशन दुर्लक्षित केले (XC8-1749) जेव्हा एकाधिक डिव्हाईस स्पेसिफिकेशन पर्याय वापरले गेले आणि भिन्न डिव्हायसेस सूचित केले तेव्हा कंपाइलर एरर निर्माण करत नव्हता.
- हीप (XC8-1748) द्वारे मेमरी करप्शन (XCXNUMX-XNUMX) __heap_start चिन्ह चुकीच्या पद्धतीने सेट केले जात होते, परिणामी सामान्य व्हेरिएबल्स हीपद्वारे खराब होण्याची शक्यता होती.
- लिंकर रिलोकेशन एरर (XC8-1739) कोडमध्ये 4k बाइट्स अंतरावर लक्ष्य असलेले rjmp किंवा rcall असते तेव्हा लिंकर रिलोकेशन एरर उत्सर्जित झाली असावी.
आवृत्ती ५.१
काहीही नाही.
ज्ञात समस्या
कंपाइलरच्या ऑपरेशनमध्ये खालील मर्यादा आहेत. हे सामान्य कोडिंग निर्बंध असू शकतात किंवा वापरकर्त्याच्या मॅन्युअलमध्ये समाविष्ट असलेल्या माहितीतील विचलन असू शकतात. शीर्षकातील ब्रॅकेट केलेले लेबल हे ट्रॅकिंग डेटाबेसमधील समस्येची ओळख आहे. जर तुम्हाला समर्थनाशी संपर्क साधण्याची गरज असेल तर हे फायदेशीर ठरू शकते. ज्या वस्तूंवर लेबले नाहीत त्या मर्यादा आहेत ज्या मोडी ऑपरेंडीचे वर्णन करतात आणि ज्या कायमस्वरूपी लागू राहण्याची शक्यता आहे.
MPLAB X IDE एकत्रीकरण
- MPLAB IDE इंटिग्रेशन जर MPLAB IDE वरून कंपाइलर वापरायचा असेल, तर कंपाइलर इन्स्टॉल करण्यापूर्वी MPLAB IDE इन्स्टॉल करणे आवश्यक आहे.
- अॅरे डीबग माहिती (XC8-3157) कंपाइलरद्वारे उत्पादित केलेली डीबग माहिती __memx अॅड्रेस स्पेसमधील अॅरेसाठी ऑब्जेक्ट प्रकार अचूकपणे व्यक्त करत नाही. हे IDE मधील ऑब्जेक्टचे निरीक्षण प्रतिबंधित करेल.
कोड जनरेशन
- सेगफॉल्ट विथ सेक्शन-अँकर ऑप्शन (XC8-3045) प्रोग्राम ज्याने व्हेरिएबल आर्ग्युमेंट लिस्टसह फंक्शन्स परिभाषित केले आहेत आणि जे -fsection-anchors पर्याय वापरतात त्यामुळे कदाचित अंतर्गत कंपाइलर त्रुटी ट्रिगर झाली असेल: सेगमेंटेशन फॉल्ट
- डीबग माहिती सिंकच्या बाहेर (XC8-2948) जेव्हा लिंकर विश्रांती ऑप्टिमायझेशन सूचना संकुचित करते (उदा.ampले कॉल टू आरकॉल सूचना), जेव्हा सेक्शनमध्ये एकापेक्षा जास्त संकुचित ऑपरेशन होत असेल तेव्हा मॅपिंगसाठी अॅड्रेसची सोर्स लाइन सिंकमध्ये राहू शकत नाही. खालील मध्ये माजीample, foo ला दोन कॉल्स आहेत जे सापेक्ष कॉलमध्ये आराम देतात.
- PA मेमरी ऍलोकेशन अयशस्वी (XC8-2881) प्रक्रियात्मक अॅबस्ट्रॅक्शन ऑप्टिमायझर्स वापरताना, लिंकर मेमरी वाटप त्रुटी नोंदवू शकतो जेव्हा कोडचा आकार डिव्हाइसवरील उपलब्ध प्रोग्राम मेमरीच्या प्रमाणाच्या जवळ असतो, जरी प्रोग्राम उपलब्ध मेमरीला बसण्यास सक्षम असला पाहिजे. जागा
- इतके स्मार्ट नाही Smart-IO (XC8-2872) कंपाइलरचे स्मार्ट-आयओ वैशिष्ट्य snprintf फंक्शनसाठी वैध परंतु उप-इष्टतम कोड निर्माण करेल जर const-data-in-progmem वैशिष्ट्य अक्षम केले असेल किंवा डिव्हाइसमध्ये त्याचे सर्व काही असेल तर डेटा मेमरीमध्ये फ्लॅश मॅप केले.
- अगदी कमी स्मार्ट Smart-IO (XC8-2869) कंपाइलरचे स्मार्ट-io वैशिष्ट्य वैध परंतु उप-इष्टतम कोड तयार करेल जेव्हा -flto आणि -fno-बिल्टिन दोन्ही पर्याय वापरले जातात.
- सबऑप्टिमल रीड-ओन्ली डेटा प्लेसमेंट (XC8-2849) लिंकरला सध्या APPCODE आणि APPDATA मेमरी विभाग किंवा मेमरी नकाशामधील [नाही-]वाचताना-लिहा विभागांबद्दल माहिती नाही. परिणामी, लिंकर मेमरीच्या अनुपयुक्त क्षेत्रामध्ये केवळ-वाचनीय डेटा वाटप करण्याची शक्यता कमी आहे. जर const-data-in-progmem वैशिष्ट्य सक्षम केले असेल, विशेषत: const-data-in-config-mapped-progmem वैशिष्ट्य देखील सक्षम केले असल्यास, चुकीच्या ठिकाणी डेटाची शक्यता वाढते. आवश्यक असल्यास ही वैशिष्ट्ये अक्षम केली जाऊ शकतात.
- ऑब्जेक्ट फाइल प्रोसेसिंग ऑर्डर (XC8-2863) लिंकरद्वारे ऑब्जेक्ट फाइल्सवर ज्या क्रमाने प्रक्रिया केली जाईल तो प्रक्रियात्मक ऍब्स्ट्रॅक्शन ऑप्टिमायझेशन (-mpa पर्याय) च्या वापरावर आधारित भिन्न असू शकतो. हे केवळ कोडवर परिणाम करेल जे एकाधिक मॉड्यूल्समध्ये कमकुवत कार्ये परिभाषित करते.
- निरपेक्ष (XC8-2777) सह लिंकर त्रुटी जेव्हा RAM च्या प्रारंभी पत्त्यावर ऑब्जेक्ट निरपेक्ष केले जाते आणि सुरू न केलेल्या वस्तू देखील परिभाषित केल्या जातात तेव्हा लिंकर त्रुटी ट्रिगर होऊ शकते.
- शॉर्ट वेक-अप आयडी (XC8-2775) ATA5700/2 डिव्हाइसेससाठी, PHID0/1 रजिस्टर्स 16 बिट्स रुंद नसून केवळ 32 बिट रुंद म्हणून परिभाषित केले जातात.
- कॉलिंग सिम्बॉल (XC8-2758) जेव्हा लिंकर क्रॅश होतो तेव्हा -mrelax ड्राइव्हर पर्याय वापरला गेल्यास लिंकर क्रॅश होऊ शकतो जेव्हा स्त्रोत कोडने – Wl,–defsym लिंकर पर्याय वापरून परिभाषित केलेल्या चिन्हावर कॉल केला जातो.
- चुकीचे आरंभीकरण (XC8-2679) डेटा मेमरीमध्ये काही ग्लोबल/स्टॅटिक बाइट-आकाराच्या ऑब्जेक्ट्सची प्रारंभिक मूल्ये कोठे ठेवली जातात आणि रनटाइमच्या वेळी व्हेरिएबल्समध्ये कुठे प्रवेश केला जाईल यात तफावत आहे.
- खराब अप्रत्यक्ष फंक्शन कॉल (XC8-2628) काही घटनांमध्ये, संरचनेचा भाग म्हणून संचयित केलेल्या फंक्शन पॉइंटरद्वारे केलेले फंक्शन कॉल अयशस्वी होऊ शकतात.
- strtof हेक्साडेसिमल फ्लोट्ससाठी शून्य मिळवते (XC8-2626) लायब्ररी फंक्शन्स strtof() et al आणि scanf() et al, नेहमी हेक्साडेसिमल फ्लोटिंग-पॉइंट नंबर रूपांतरित करते जी शून्यावर घातांक निर्दिष्ट करत नाही. उदाample: strtof("0x1", &endptr); मूल्य 0 परत करेल, 1 नाही.
- चुकीचे स्टॅक अॅडव्हायझर मेसेजिंग (XC8-2542, XC8-2541) काही घटनांमध्ये, वापरलेले पुनरावृत्ती किंवा अनिश्चित स्टॅक (शक्यतो alloca() च्या वापराद्वारे) स्टॅक सल्लागार चेतावणी उत्सर्जित केली जात नाही.
- डुप्लिकेट इंटरप्ट कोड (XC8-2421) सह अयशस्वी जेथे एकापेक्षा जास्त इंटरप्ट फंक्शन एकसारखे बॉडी असते, कंपायलरमध्ये एका इंटरप्ट फंक्शनसाठी आउटपुट असू शकते दुसऱ्याला कॉल करा. यामुळे सर्व कॉल-क्लोबर्ड रजिस्टर्स अनावश्यकपणे सेव्ह होतील, आणि सध्याच्या व्यत्यय हँडलरचा उपसंहार सुरू होण्यापूर्वीच व्यत्यय सक्षम केले जातील, ज्यामुळे कोड बिघाड होऊ शकतो.
- अवैध DFP पथ (XC8-2376) सह खराब आउटपुट जर कंपायलरला अवैध DFP मार्गाने बोलावले असेल आणि निवडलेल्या डिव्हाइससाठी 'स्पेक' फाइल अस्तित्वात असेल, तर कंपाइलर गहाळ डिव्हाइस फॅमिली पॅकची तक्रार करत नाही आणि त्याऐवजी 'स्पेक' निवडत आहे. फाइल, ज्यामुळे कदाचित अवैध आउटपुट होऊ शकते. 'स्पेक' फायली कदाचित वितरीत केलेल्या DFP सह अद्ययावत नसतील आणि त्या केवळ अंतर्गत कंपाइलर चाचणीसाठी वापरण्यासाठी होत्या.
- मेमरी ओव्हरलॅप अनडिटेक्टेड (XC8-1966) कंपाइलर एखाद्या पत्त्यावर (__at() मार्गे) आणि __section() स्पेसिफायर वापरून आणि त्याच पत्त्याशी जोडलेल्या इतर ऑब्जेक्ट्सचा मेमरी ओव्हरलॅप शोधत नाही.
- लायब्ररी फंक्शन्स आणि __memx (XC8-1763) __memx अॅड्रेस स्पेसमधील युक्तिवादासह कॉल केलेले libgcc फ्लोट फंक्शन्स अयशस्वी होऊ शकतात. लक्षात घ्या की लायब्ररी रूटीन काही C ऑपरेटरकडून कॉल केले जातात, म्हणून, उदाहरणार्थample, खालील कोड प्रभावित झाला आहे: रिटर्न regFloatVar > memxFloatVar;
- मर्यादित libgcc अंमलबजावणी (AVRTC-731) ATTiny4/5/9/10/20/40 उत्पादनांसाठी, libgcc मध्ये मानक C/Math लायब्ररी अंमलबजावणी खूप मर्यादित आहे किंवा सध्या नाही.
- प्रोग्राम मेमरी मर्यादा (AVRTC-732) 128 kb च्या पलीकडे प्रोग्राम मेमरी प्रतिमा टूलचेनद्वारे समर्थित आहेत; तथापि, जेव्हा -mrelax पर्याय वापरला जातो तेव्हा आवश्यक फंक्शन स्टब व्युत्पन्न करण्याऐवजी शिथिलता न घेता आणि उपयुक्त त्रुटी संदेशाशिवाय लिंकर अॅबॉर्ट झाल्याची ज्ञात उदाहरणे आहेत.
- नेम स्पेस मर्यादा (AVRTC-733) नामित पत्त्याच्या जागा टूलचेनद्वारे समर्थित आहेत, वापरकर्त्याच्या मार्गदर्शक विभागात नमूद केलेल्या मर्यादांच्या अधीन स्पेशल टाइप क्वालिफायर्स.
- टाइम झोन द लायब्ररी फंक्शन्स GMT गृहीत धरतात आणि स्थानिक टाइम झोनला सपोर्ट करत नाहीत, त्यामुळे localtime() gmtime() प्रमाणेच वेळ परत करेल, उदा.ampले
कागदपत्रे / संसाधने
![]() |
AVR MCU साठी MICROCHIP XC8 C कंपाइलर आवृत्ती 2.45 रिलीज नोट्स [pdf] सूचना AVR MCU, XC8 C, XC8 C कंपाइलर आवृत्ती 2.45 AVR MCU साठी रिलीझ नोट्स, AVR MCU साठी कंपाइलर आवृत्ती 2.45 रिलीज नोट्स, AVR MCU साठी आवृत्ती 2.45 रिलीज नोट्स, AVR MCU साठी रिलीज नोट्स, AVRAV MCU साठी नोट्स, MCU साठी रिलीझ नोट्स |