MPLAB® XC8 C கம்பைலர் பதிப்பு 2.41 AVR® MCUக்கான வெளியீட்டு குறிப்புகள்
உரிமையாளர் கையேடு
MPLAB XC8 C கம்பைலர் டெவலப்மெண்ட் மென்பொருள்
மைக்ரோசிப் ஏவிஆர் சாதனங்களை குறிவைக்கும் போது இந்த ஆவணத்தில் MPLAB XC8 C கம்பைலர் தொடர்பான முக்கியமான தகவல்கள் உள்ளன.
இந்த மென்பொருளை இயக்கும் முன் தயவு செய்து படிக்கவும். நீங்கள் 8-பிட் பிஐசி சாதனங்களுக்கு கம்பைலரைப் பயன்படுத்துகிறீர்கள் என்றால், எம்பிலேப் எக்ஸ்சி8 சி கம்பைலர் வெளியீட்டுக் குறிப்புகளைப் பார்க்கவும்.
முடிந்துவிட்டதுview
1.1. அறிமுகம்
Microchip MPLAB® XC8 C கம்பைலரின் இந்த வெளியீடு பல புதிய அம்சங்கள் மற்றும் பிழைத் திருத்தங்களைக் கொண்டுள்ளது.
1.2 கட்டும் தேதி
இந்த கம்பைலர் பதிப்பின் அதிகாரப்பூர்வ உருவாக்க தேதி 8 பிப்ரவரி 2023 ஆகும்.
1.3 முந்தைய பதிப்பு
முந்தைய MPLAB XC8 C கம்பைலர் பதிப்பு 2.40 ஜூலை 3, 2022 இல் கட்டப்பட்டது.
1.4 செயல்பாட்டு பாதுகாப்பு கையேடு
நீங்கள் செயல்பாட்டு பாதுகாப்பு உரிமத்தை வாங்கும்போது MPLAB XC கம்பைலர்களுக்கான செயல்பாட்டு பாதுகாப்பு கையேடு ஆவணத் தொகுப்பில் கிடைக்கும்.
1.5 கூறு உரிமங்கள் மற்றும் பதிப்புகள்
AVR MCU கருவிகளுக்கான MPLAB XC8 C கம்பைலர் GNU பொது பொது உரிமத்தின் (GPL) கீழ் எழுதப்பட்டு விநியோகிக்கப்படுகிறது, அதாவது அதன் மூலக் குறியீடு இலவசமாக விநியோகிக்கப்படுகிறது மற்றும் பொதுமக்களுக்குக் கிடைக்கிறது.
GNU GPL இன் கீழ் உள்ள கருவிகளுக்கான மூல குறியீடு மைக்ரோசிப்பில் இருந்து தனியாக பதிவிறக்கம் செய்யப்படலாம் webதளம். உங்கள் நிறுவல் உரிமம்.txt avr/doc கோப்பகத்தின் துணை அடைவு என்று பெயரிடப்பட்ட கோப்பில் நீங்கள் GNU GPL ஐப் படிக்கலாம். GPL இன் அடிப்படையிலான கொள்கைகளின் பொதுவான விவாதத்தை இங்கே காணலாம்.
தலைப்பு கோப்புகள், இணைப்பான் ஸ்கிரிப்டுகள் மற்றும் இயக்க நேர நூலகங்களுக்கு வழங்கப்படும் ஆதரவு குறியீடு தனியுரிம குறியீடு மற்றும் GPL இன் கீழ் இல்லை.
இந்த கம்பைலர் GCC பதிப்பு 5.4.0, binutils பதிப்பு 2.26 இன் செயலாக்கமாகும், மேலும் avr-libc பதிப்பு 2.0.0 ஐப் பயன்படுத்துகிறது.
1.6. கணினி தேவைகள்
MPLAB XC8 C கம்பைலர் மற்றும் அது பயன்படுத்தும் உரிம மென்பொருளானது பல்வேறு இயக்க முறைமைகளுக்குக் கிடைக்கிறது, இதில் பின்வருவனவற்றின் 64-பிட் பதிப்புகள் அடங்கும்: Microsoft® Windows® 10 இன் தொழில்முறை பதிப்புகள்; உபுண்டு® 18.04; மற்றும் macOS® 10.15.5. விண்டோஸிற்கான பைனரிகள் குறியீடு கையொப்பமிடப்பட்டுள்ளன. MacOS க்கான பைனரிகள் குறியீடு-கையொப்பமிடப்பட்டு, நோட்டரைஸ் செய்யப்பட்டுள்ளன. MPLAB XC நெட்வொர்க் உரிமம் சேவையகம் மைக்ரோசாப்ட் விண்டோஸ் 64 மற்றும் அதற்கு மேற்பட்டவை உட்பட பல்வேறு 10-பிட் இயக்க முறைமைகளுக்குக் கிடைக்கிறது; உபுண்டு 18.04 மற்றும் அதற்கு மேல்; அல்லது macOS 10.15 மற்றும் அதற்கு மேல். Windows Server, Linux விநியோகங்கள், Oracle® Enterprise Linux® மற்றும் Red Hate Enterprise Linux மற்றும் ஆதரிக்கப்படும் இயக்க முறைமைகளின் பழைய பதிப்புகள் உள்ளிட்ட பல்வேறு இயக்க முறைமைகளிலும் சர்வர் இயங்கக்கூடும். இருப்பினும், MPLAB XC நெட்வொர்க் உரிம சேவையகம் இந்த இயக்க முறைமைகளில் சோதிக்கப்படவில்லை. MPLAB XC நெட்வொர்க் உரிமம் சேவையகத்தை நெட்வொர்க் உரிமங்களுக்கான மெய்நிகர் இயந்திர உரிமத்தைப் பயன்படுத்தி ஆதரிக்கப்படும் OS இன் மெய்நிகர் இயந்திரங்களில் இயக்கலாம் (SW006021-VM). MPLAB XC நெட்வொர்க் சர்வரின் அனைத்து 32-பிட் பதிப்புகளும் பதிப்பு 3.00 இலிருந்து நிறுத்தப்படும்.
ஆதரவு சாதனங்கள்
இந்த கம்பைலர் வெளியீட்டின் போது கிடைக்கக்கூடிய அனைத்து 8-பிட் AVR MCU சாதனங்களையும் ஆதரிக்கிறது. ஆதரிக்கப்படும் அனைத்து சாதனங்களின் பட்டியலுக்கு (தொகுப்பாளரின் கோப்பகத்தில்) பார்க்கவும். இந்த கோப்புகளும் பட்டியலிடப்பட்டுள்ளன
ஒவ்வொரு சாதனத்திற்கும் avr_chipinfo.html டாக் உள்ளமைவு பிட் அமைப்புகள்.
1.7 பதிப்புகள் மற்றும் உரிமம் மேம்படுத்தல்கள்
MPLAB XC8 கம்பைலரை உரிமம் பெற்ற (PRO) அல்லது உரிமம் பெறாத (இலவச) தயாரிப்பாக செயல்படுத்தலாம். உங்கள் கம்பைலருக்கு உரிமம் வழங்க, செயல்படுத்தும் விசையை வாங்க வேண்டும். இலவச தயாரிப்புடன் ஒப்பிடும்போது உரிமம் அதிக அளவிலான தேர்வுமுறையை அனுமதிக்கிறது. உரிமம் பெறாத கம்பைலரை உரிமம் இல்லாமல் காலவரையின்றி இயக்க முடியும். ஒரு MPLAB XC8 செயல்பாட்டு பாதுகாப்பு கம்பைலர் மைக்ரோசிப்பில் இருந்து வாங்கப்பட்ட செயல்பாட்டு பாதுகாப்பு உரிமத்துடன் செயல்படுத்தப்பட வேண்டும். இந்த உரிமம் இல்லாமல் கம்பைலர் இயங்காது. செயல்படுத்தப்பட்டதும், நீங்கள் எந்த தேர்வுமுறை அளவையும் தேர்ந்தெடுத்து அனைத்து கம்பைலர் அம்சங்களையும் பயன்படுத்தலாம். MPLAB XC செயல்பாட்டு பாதுகாப்பு கம்பைலரின் இந்த வெளியீடு நெட்வொர்க் சர்வர் உரிமத்தை ஆதரிக்கிறது.
நிறுவுதல் மற்றும் உரிமம் வழங்குதல் MPLAB XC C Compilers (DS50002059) ஆவணத்தைப் பார்க்கவும், உரிம வகைகள் மற்றும் உரிமத்துடன் கம்பைலரை நிறுவுதல் பற்றிய தகவலுக்கு.
1.8. நிறுவல் மற்றும் செயல்படுத்தல்
இந்த தொகுப்பியில் சேர்க்கப்பட்டுள்ள சமீபத்திய உரிம மேலாளர் பற்றிய முக்கிய தகவலுக்கு இடம்பெயர்வு சிக்கல்கள் மற்றும் வரம்புகள் பிரிவுகளையும் பார்க்கவும்.
MPLAB IDE ஐப் பயன்படுத்தினால், இந்தக் கருவியை நிறுவும் முன், சமீபத்திய MPLAB X IDE பதிப்பு 5.0 அல்லது அதற்குப் பிந்தைய பதிப்பை நிறுவ மறக்காதீர்கள். கம்பைலரை நிறுவும் முன் IDE இலிருந்து வெளியேறவும். (Windows), (Linux) அல்லது (macOS) .exe .run .app compiler நிறுவி பயன்பாட்டை இயக்கவும், எ.கா. மற்றும் திரையில் உள்ள வழிமுறைகளைப் பின்பற்றவும். XC8-1.00.11403-windows.exe முன்னிருப்பு நிறுவல் கோப்பகம் பரிந்துரைக்கப்படுகிறது. நீங்கள் லினக்ஸைப் பயன்படுத்துகிறீர்கள் என்றால், கம்பைலரை டெர்மினலைப் பயன்படுத்தி மற்றும் ரூட் கணக்கிலிருந்து நிறுவ வேண்டும். நிர்வாகி சிறப்புரிமைகள் கொண்ட macOS கணக்கைப் பயன்படுத்தி நிறுவவும்.
செயல்படுத்தல் இப்போது நிறுவலுக்கு தனித்தனியாக மேற்கொள்ளப்படுகிறது. மேலும் தகவலுக்கு MPLAB® XC C Compilers (DS52059) ஆவண உரிம மேலாளரைப் பார்க்கவும்.
மதிப்பீட்டு உரிமத்தின் கீழ் கம்பைலரை இயக்க நீங்கள் தேர்வுசெய்தால், உங்கள் மதிப்பீட்டுக் காலம் முடிவடைந்து 14 நாட்களுக்குள் இருக்கும் போது, தொகுப்பின் போது எச்சரிக்கையைப் பெறுவீர்கள். உங்கள் HPA சந்தா முடிவடைந்து 14 நாட்களுக்குள் இருந்தால் அதே எச்சரிக்கை வழங்கப்படும்.
XC நெட்வொர்க் உரிம சேவையகம் ஒரு தனி நிறுவி மற்றும் ஒற்றை-பயனர் கம்பைலர் நிறுவியில் சேர்க்கப்படவில்லை.
XC உரிம மேலாளர் இப்போது மிதக்கும் நெட்வொர்க் உரிமங்களின் ரோமிங்கை ஆதரிக்கிறது. மொபைல் பயனர்களை இலக்காகக் கொண்டு, இந்த அம்சம் மிதக்கும் உரிமத்தை குறுகிய காலத்திற்கு நெட்வொர்க்கில் இருந்து வெளியேற அனுமதிக்கிறது. இந்த அம்சத்தைப் பயன்படுத்தி, நீங்கள் நெட்வொர்க்கிலிருந்து துண்டிக்கலாம் மற்றும் உங்கள் MPLAB XC கம்பைலரைப் பயன்படுத்தலாம். இந்த அம்சத்தைப் பற்றி மேலும் அறிய XCLM நிறுவலின் ஆவணக் கோப்புறையைப் பார்க்கவும்.
MPLAB X IDE ஆனது ரோமிங்கை பார்வைக்கு நிர்வகிப்பதற்கான உரிமங்கள் சாளரத்தை (கருவிகள் > உரிமங்கள்) கொண்டுள்ளது.
1.8.1. நிறுவல் சிக்கல்களைத் தீர்ப்பது
ஏதேனும் விண்டோஸ் இயங்குதளத்தின் கீழ் கம்பைலரை நிறுவுவதில் உங்களுக்கு சிரமம் இருந்தால், பின்வரும் பரிந்துரைகளை முயற்சிக்கவும்.
நிறுவலை நிர்வாகியாக இயக்கவும்.
நிறுவி பயன்பாட்டின் அனுமதிகளை 'முழு கட்டுப்பாடு' என அமைக்கவும். (கோப்பில் வலது கிளிக் செய்து, பண்புகள், பாதுகாப்பு தாவல், பயனரைத் தேர்ந்தெடுக்கவும், திருத்தவும்.)
தற்காலிக கோப்புறையின் அனுமதிகளை 'முழு கட்டுப்பாடு' என அமைக்கவும்.
தற்காலிக கோப்புறையின் இருப்பிடத்தை தீர்மானிக்க, % temp% ஐ ரன் கட்டளையில் (Windows logo key + R) தட்டச்சு செய்யவும்.
இது அந்த கோப்பகத்தைக் காட்டும் கோப்பு எக்ஸ்ப்ளோரர் உரையாடலைத் திறக்கும் மற்றும் அந்தக் கோப்புறையின் பாதையைத் தீர்மானிக்க உங்களை அனுமதிக்கும்.
1.9 தொகுப்பி ஆவணம்
ஸ்கிரீன்ஷாட்டில் குறிப்பிடப்பட்டுள்ளபடி, MPLAB X IDE டாஷ்போர்டில் உள்ள நீல உதவி பொத்தானைக் கிளிக் செய்யும் போது, உங்கள் உலாவியில் திறக்கும் HTML பக்கத்திலிருந்து கம்பைலரின் பயனர் வழிகாட்டிகளைத் திறக்கலாம்.
நீங்கள் 8-பிட் AVR இலக்குகளை உருவாக்குகிறீர்கள் எனில், AVR® MCU க்கான MPLAB® XC8 C கம்பைலர் பயனர் கையேட்டில் இந்தக் கட்டமைப்பிற்குப் பொருந்தக்கூடிய கம்பைலர் விருப்பங்கள் மற்றும் அம்சங்கள் பற்றிய தகவல்கள் உள்ளன.

1.10.வாடிக்கையாளர் ஆதரவு
இந்த கம்பைலர் பதிப்பு தொடர்பான பிழை அறிக்கைகள், பரிந்துரைகள் அல்லது கருத்துகளை மைக்ரோசிப் வரவேற்கிறது. ஏதேனும் பிழை அறிக்கைகள் அல்லது அம்ச கோரிக்கைகளை ஆதரவு அமைப்பு வழியாக அனுப்பவும்.
ஆவண மேம்படுத்தல்கள்
MPLAB XC8 ஆவணங்களின் ஆன்-லைன் மற்றும் புதுப்பித்த பதிப்புகளுக்கு, மைக்ரோசிப்பின் ஆன்லைன் தொழில்நுட்ப ஆவணத்தைப் பார்வையிடவும் webதளம். இந்த வெளியீட்டில் புதிய அல்லது புதுப்பிக்கப்பட்ட AVR ஆவணங்கள்:
- AVR® MCU க்கான MPLAB® XC8 C கம்பைலர் பயனர் வழிகாட்டி (திருத்தம் G)
- AVR® GNU Toolchain to MPLAB® XC8 இடம்பெயர்வு வழிகாட்டி (திருத்தம் A)
- ஹெக்ஸ்மேட் பயனர் வழிகாட்டி (திருத்தம் பி)
AVR® GNU Toolchain to MPLAB® XC8 Migration Guide ஆனது, AVR 8-bit GNU Toolchain இலிருந்து Microchip 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-இலக்கு அம்சங்கள் கம்பைலர் இப்போது ஆதரிக்கிறது. துணைத்தலைப்புகளில் உள்ள பதிப்பு எண், பின்தொடரும் அம்சங்களை ஆதரிக்கும் முதல் கம்பைலர் பதிப்பைக் குறிக்கிறது.
3.1 பதிப்பு 2.41
Bootrow ஆதரவு (XC8-3053) கம்பைலர் HEX கோப்பில் at.bootrow முகவரி 0x860000 என்ற முன்னொட்டுடன் எந்தப் பிரிவுகளின் உள்ளடக்கத்தையும் வைக்கும். இந்த பிரிவுகள் BOOTROW நினைவகத்திற்காகப் பயன்படுத்தப்படுகின்றன, இது விசைகள் மற்றும் பிற பாதுகாப்பான தகவல்களின் சேமிப்பிற்காக வடிவமைக்கப்பட்டுள்ளது, இது பூட்லோடருக்கு மட்டுமே அணுகக்கூடியதாக இருக்கும்.
தேவையற்ற வருவாய் நீக்குதல் (XC8-3048) தனிப்பயன் லிங்கர் ஸ்கிரிப்ட்கள் பயன்படுத்தப்படும் போது, கம்பைலர் இப்போது டெயில் ஜம்ப் மூலம் ரெட் செயல்பாடுகளில் தேவையற்ற வழிமுறைகளை அகற்றும். இது முன்பு நிகழ்த்தப்பட்டதைப் போன்ற மேம்படுத்தலாகும், ஆனால் தனிப்பயன் இணைப்பான் ஸ்கிரிப்ட் பயன்படுத்தப்பட்டாலும், சிறந்த ஃபிட் ஒதுக்கீடு திட்டம் செயல்படாவிட்டாலும், இப்போது அனைத்து அனாதை பிரிவுகளிலும் இது செய்யப்படுகிறது. நேர வகை மாற்றம் (XC8-2982, 2932) C99 நிலையான நூலக வகை, time_t இலிருந்து ஒரு வகைக்கு மாற்றப்பட்டுள்ளது, இது போன்ற சில நேரம் தொடர்பான நீண்ட நீண்ட செயல்பாடுகளில் குறியீடு அளவு மேம்பாடுகளை வழங்குகிறது. கையொப்பமிடாத நீண்ட mktime()
புதிய nop (XC8-2946, 2945) மேக்ரோ சேர்க்கப்பட்டது. இந்த மேக்ரோ இல்லை- NOP() nop செயல்பாட்டு அறிவுறுத்தல் வெளியீட்டில்.
XCLM க்கு புதுப்பிக்கவும் (XC8-2944) கம்பைலருடன் பயன்படுத்தப்படும் உரிம மேலாளர் புதுப்பிக்கப்பட்டு, இப்போது கம்பைலரின் உரிம விவரங்களைச் சரிபார்க்கும் போது மிகவும் பதிலளிக்கக்கூடியதாக உள்ளது.
Trampolined calls (XC8-2760) compiler ஆனது இப்போது நீண்ட-வடிவ அழைப்பு வழிமுறைகளை குறுகிய உறவினர் அழைப்புகள் மூலம் மாற்றியமைக்க முடியும், பொதுவாக அறிவுறுத்தல்களின் தொடர்புடைய வடிவங்கள் அவற்றின் இலக்கு வரம்பிற்கு வெளியே இருக்கும். இந்த சூழ்நிலையில், கம்பைலர் rcall ஐ அழைப்பதற்கான வழிமுறைகளை மாற்ற முயற்சிக்கும்.ampதேவையான முகவரிக்கு ஒலைன்' செயல்படுத்தல், உதாரணமாகample: jmp
rcall tramp_foo ; foo என்று அழைக்கப்பட்டது
…
rcall tramp_foo
…
tramp_foo:
jmp foo
இந்த மேம்படுத்தல், இதேபோன்ற நிரல் ஓட்ட மேம்படுத்தல்களுடன், -mrelax விருப்பத்தால் கட்டுப்படுத்தப்படுகிறது.
3.2 பதிப்பு 2.40
பின்வரும் AVR பாகங்களுக்கு இப்போது புதிய சாதன ஆதரவு ஆதரவு கிடைக்கிறது: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64DD28, AVR64EA32, மற்றும் AVR64EA48.
மேம்படுத்தப்பட்ட செயல்முறை சுருக்கம் செயல்முறை சுருக்கம் (PA) தேர்வுமுறை கருவி மேம்படுத்தப்பட்டுள்ளது, இதனால் ஒரு செயல்பாட்டு அழைப்பு அறிவுறுத்தல் (/ ) உள்ள குறியீட்டை பயன்படுத்த முடியும். ஸ்டாக் வாதங்களை அனுப்பவோ அல்லது செயல்பாட்டிலிருந்து திரும்ப மதிப்பைப் பெறவோ பயன்படுத்தப்படாவிட்டால் மட்டுமே இது அழைப்பு rcall நடக்கும். மாறி வாதப் பட்டியலுடன் ஒரு செயல்பாட்டை அழைக்கும் போது அல்லது இந்த நோக்கத்திற்காக நியமிக்கப்பட்ட பதிவேடுகளை விட அதிக வாதங்களை எடுக்கும் செயல்பாட்டை அழைக்கும் போது ஸ்டாக் பயன்படுத்தப்படுகிறது. விருப்பத்தைப் பயன்படுத்தி இந்த அம்சத்தை முடக்கலாம் அல்லது ஒரு பொருள் கோப்பு அல்லது செயல்பாட்டிற்கு முறையே- மற்றும், அல்லது பண்புக்கூறை (குறிப்பிடுபவர்) தேர்ந்தெடுத்து செயல்பாடுகளுடன் பயன்படுத்துவதன் மூலம் செயல்முறை சுருக்கத்தை முழுவதுமாக முடக்கலாம்.
mno-pa-outline-calls -mno-pa-on-file -mno-pa-on-function nopa கோட் கவரேஜ் மேக்ரோ சரியான விருப்பம் __nopa __CODECOV -mcodecov குறிப்பிடப்பட்டால் கம்பைலர் இப்போது மேக்ரோவை வரையறுக்கிறது.
நினைவக முன்பதிவு விருப்பம் AVR இலக்குகளை உருவாக்கும்போது இயக்கி இப்போது xc8-cc -mreserve=space@start:end விருப்பத்தை ஏற்கும். இந்த விருப்பம் தரவு அல்லது நிரல் நினைவக இடத்தில் குறிப்பிட்ட நினைவக வரம்பை ஒதுக்குகிறது, இந்த பகுதியில் உள்ள குறியீடு அல்லது பொருட்களை இணைப்பதைத் தடுக்கிறது. ஸ்மார்ட்டர் ஸ்மார்ட் IO ஸ்மார்ட் ஐஓ செயல்பாடுகளில் பல மேம்பாடுகள் செய்யப்பட்டுள்ளன, இதில் printf கோர் குறியீட்டிற்கான பொதுவான மாற்றங்கள், %n மாற்ற குறிப்பாட்டியை ஒரு சுயாதீன மாறுபாடாகக் கருதுதல், தேவைக்கேற்ப vararg பாப் நடைமுறைகளை இணைத்தல், கையாளுவதற்கு சாத்தியமான இடங்களில் குறுகிய தரவு வகைகளைப் பயன்படுத்துதல். IO செயல்பாடு வாதங்கள், மற்றும் ஃபீல்ட் அகலம் மற்றும் துல்லியமான கையாளுதலில் பொதுவான குறியீட்டை காரணியாக்குதல். இது குறிப்பிடத்தக்க குறியீடு மற்றும் தரவுச் சேமிப்பை ஏற்படுத்துவதோடு, IO செயல்பாட்டின் வேகத்தையும் அதிகரிக்கும்.
3.3 பதிப்பு 2.39 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
நெட்வொர்க் சர்வர் உரிமம் MPLAB XC8 செயல்பாட்டு பாதுகாப்பு கம்பைலரின் இந்த வெளியீடு நெட்வொர்க் சர்வர் உரிமத்தை ஆதரிக்கிறது.
3.4 பதிப்பு 2.36
இல்லை.
3.5 பதிப்பு 2.35
பின்வரும் AVR பகுதிகளுக்கு புதிய சாதன ஆதரவு ஆதரவு கிடைக்கிறது: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28 மற்றும் AVR64DD32.
மேம்படுத்தப்பட்ட சூழல் மாறுதல் புதிய -mcall-isr-prologues விருப்பமானது, குறுக்கீடு செயல்பாடுகள், நுழைவின் போது பதிவேடுகளை எவ்வாறு சேமிக்கிறது மற்றும் குறுக்கீடு ரொட்டீன் முடிவடையும் போது அந்த பதிவேடுகள் எவ்வாறு மீட்டமைக்கப்படுகின்றன என்பதை மாற்றுகிறது. இது -mcall-prologues விருப்பத்தைப் போலவே செயல்படுகிறது, ஆனால் குறுக்கீடு செயல்பாடுகளை (ISRs) மட்டுமே பாதிக்கிறது.
இன்னும் மேம்பட்ட சூழல் மாறுதல் புதிய -mgas-isr-prologues விருப்பம் சிறிய குறுக்கீடு சேவை நடைமுறைகளுக்காக உருவாக்கப்பட்ட சூழல் சுவிட்ச் குறியீட்டைக் கட்டுப்படுத்துகிறது. இயக்கப்படும் போது, இந்த அம்சம் அசெம்பிளர் ஐஎஸ்ஆர் ஐ பதிவு பயன்பாட்டிற்காக ஸ்கேன் செய்யும் மற்றும் தேவைப்பட்டால் மட்டுமே பயன்படுத்தப்பட்ட இந்த பதிவேடுகளை சேமிக்கும்.
உள்ளமைக்கக்கூடிய ஃபிளாஷ் மேப்பிங் AVR DA மற்றும் AVR DB குடும்பத்தில் உள்ள சில சாதனங்களில் SFR (எ.கா. FLMAP) உள்ளது, இது நிரல் நினைவகத்தின் எந்த 32k பகுதி தரவு நினைவகத்தில் மேப் செய்யப்படும் என்பதைக் குறிப்பிடுகிறது. புதிய - mconst-data-in-config-mapped-progmem விருப்பமானது, இணைப்பாளர் ஒரு 32k பிரிவில் அனைத்து கான்ஸ்ட்-தகுதியான தரவையும் வைப்பதற்கும், இந்தத் தரவு தரவு நினைவகத்தில் மேப் செய்யப்படுவதை உறுதிசெய்ய தொடர்புடைய SFR பதிவேட்டைத் தானாகவே துவக்குவதற்கும் பயன்படுத்தப்படலாம். விண்வெளி, அது மிகவும் திறம்பட அணுகப்படும்.
மைக்ரோசிப் யூனிஃபைட் ஸ்டாண்டர்ட் லைப்ரரிகள் அனைத்து MPLAB XC கம்பைலர்களும் மைக்ரோசிப் யூனிஃபைட் ஸ்டாண்டர்ட் லைப்ரரியைப் பகிர்ந்து கொள்ளும், இது இப்போது MPLAB XC8 இன் இந்த வெளியீட்டில் கிடைக்கிறது. AVO MCU க்கான MPLA# XC8 C கம்பைலர் பயனர் கையேட்டில் இந்த நிலையான செயல்பாடுகளுக்கான ஆவணங்கள் இருக்காது. இந்தத் தகவலை இப்போது மைக்ரோசிப் யூனிஃபைட் ஸ்டாண்டர்ட் லைப்ரரி குறிப்பு வழிகாட்டியில் காணலாம். முன்பு avr-libc ஆல் வரையறுக்கப்பட்ட சில செயல்பாடுகள் இனி கிடைக்காது என்பதை நினைவில் கொள்ளவும். (லீலா செயல்பாட்டைப் பார்க்கவும்.)
ஸ்மார்ட் I0 புதிய ஒருங்கிணைந்த நூலகங்களின் ஒரு பகுதியாக, இந்தச் செயல்பாடுகள் நிரலில் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதன் அடிப்படையில், பிரிண்ட்எஃப் மற்றும் ஸ்கேன்எஃப் குடும்பங்களில் உள்ள ஐ0 செயல்பாடுகள் இப்போது ஒவ்வொரு கட்டமைப்பிலும் தனிப்பயனாக்கப்படுகின்றன. இது ஒரு நிரல் பயன்படுத்தும் வளங்களை கணிசமாகக் குறைக்கும்.
ஸ்மார்ட் ஐசிஐ உதவி விருப்பம் ஸ்மார்ட் ஐ0 செயல்பாடுகளுக்கான அழைப்புகளை பகுப்பாய்வு செய்யும் போது (பிரிண்ட் எஃப் () அல்லது ஸ்கேன்எஃப் () போன்றவை, கம்பைலரால் எப்போதுமே வடிவமைப்பு சரத்தில் இருந்து தீர்மானிக்க முடியாது அல்லது அழைப்பிற்குத் தேவையான மாற்றுக் குறிப்பான்களின் வாதங்களிலிருந்து ஊகிக்க முடியாது. முன்னதாக, கம்பைலர் எப்பொழுதும் எந்த அனுமானங்களையும் செய்யாது மற்றும் முழு செயல்பாட்டு 10 செயல்பாடுகள் இறுதி நிரல் படத்துடன் இணைக்கப்பட்டிருப்பதை உறுதி செய்யும். ஒரு புதிய – msmart-io-format=fmt விருப்பம் சேர்க்கப்பட்டுள்ளது, இதனால் கம்பைலருக்கு பதிலாக ஸ்மார்ட் I0 செயல்பாடுகளால் பயன்படுத்தப்படும் மாற்று குறிப்பான்களின் பயனருக்குத் தெரிவிக்கப்படும், அதன் பயன்பாடு தெளிவற்றதாக உள்ளது, அதிக நீளமான 10 நடைமுறைகள் இணைக்கப்படுவதைத் தடுக்கிறது. (மேலும் விவரங்களுக்கு smart-io-format விருப்பத்தைப் பார்க்கவும்.)
தனிப்பயன் பிரிவுகளை வைப்பது முன்பு, -W1, –section-start விருப்பம், இணைப்பாளர் ஸ்கிரிப்ட் அதே பெயரில் ஒரு வெளியீட்டுப் பகுதியை வரையறுத்த போது, கோரிய முகவரியில் குறிப்பிட்ட பகுதியை மட்டுமே வைத்தது. அது இல்லாதபோது, இணைப்பாளரால் தேர்ந்தெடுக்கப்பட்ட முகவரியில் பிரிவு வைக்கப்பட்டது மற்றும் விருப்பம் அடிப்படையில் புறக்கணிக்கப்பட்டது. இணைப்பான் ஸ்கிரிப்ட் பிரிவை வரையறுக்காவிட்டாலும், இப்போது விருப்பம் அனைத்து தனிப்பயன் பிரிவுகளுக்கும் மதிக்கப்படும். இருப்பினும், நிலையான பிரிவுகளுக்கு, இது போன்ற . உரை, . பிஎஸ்எஸ் அல்லது. தரவு, சிறந்த பொருத்தம் ஒதுக்கீட்டாளர் இன்னும் தங்கள் இடத்தின் மீது முழுமையான கட்டுப்பாட்டைக் கொண்டிருக்கும், மேலும் விருப்பம் எந்த விளைவையும் ஏற்படுத்தாது. பயனர் வழிகாட்டியில் விவரிக்கப்பட்டுள்ளபடி -ton, -Tsection=addr விருப்பத்தைப் பயன்படுத்தவும்.
3.6 பதிப்பு 2.32
ஒரு புரோ கம்பைலர் உரிமத்துடன் ஸ்டாக் வழிகாட்டுதல் கிடைக்கிறது, ஒரு நிரல் பயன்படுத்தும் எந்த அடுக்கின் அதிகபட்ச ஆழத்தை மதிப்பிடுவதற்கு கம்பைலரின் ஸ்டேக் வழிகாட்டுதல் அம்சத்தைப் பயன்படுத்தலாம். இது ஒரு நிரலின் அழைப்பு வரைபடத்தை உருவாக்குகிறது மற்றும் பகுப்பாய்வு செய்கிறது, ஒவ்வொரு செயல்பாட்டின் அடுக்கு பயன்பாட்டை தீர்மானிக்கிறது மற்றும் ஒரு அறிக்கையை உருவாக்குகிறது, அதில் இருந்து நிரல் பயன்படுத்தும் அடுக்குகளின் ஆழத்தை ஊகிக்க முடியும். இந்த அம்சம் -mchp-stack-usage கட்டளை வரி விருப்பத்தின் மூலம் செயல்படுத்தப்படுகிறது. ஸ்டாக் பயன்பாட்டின் சுருக்கம் செயல்படுத்தப்பட்ட பிறகு அச்சிடப்படுகிறது. விரிவான அடுக்கு அறிக்கை வரைபடத்தில் உள்ளது file, இது வழக்கமான முறையில் கோரப்படலாம்.
பின்வரும் AVR பாகங்களுக்கு புதிய சாதன ஆதரவு ஆதரவு கிடைக்கிறது: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64DB, AV64DB, AV28 AVR32DB28, மற்றும் AVR64DB32. பின்வாங்கப்பட்ட சாதன ஆதரவு பின்வரும் AVR பகுதிகளுக்கு இனி கிடைக்காது: AVR32DA48, AVR16DA28 மற்றும், AVR16DA32.
3.7 பதிப்பு 2.31
இல்லை.
3.8 பதிப்பு 2.30
தரவு துவக்கத்தைத் தடுப்பதற்கான புதிய விருப்பம் ஒரு புதிய -mno-data-init இயக்கி விருப்பம் தரவை துவக்குவதையும் bss பிரிவுகளை அகற்றுவதையும் தடுக்கிறது. டூ காப்பி டேட்டாவின் வெளியீட்டை அடக்கி, அசெம்பிளியில் தெளிவான பிஎஸ்எஸ் சின்னங்களைச் செய்வதன் மூலம் இது செயல்படுகிறது files, இது இணைப்பாளரால் அந்த நடைமுறைகளைச் சேர்ப்பதைத் தடுக்கும்.
மேம்படுத்தப்பட்ட மேம்படுத்தல்கள் தேவையற்ற திரும்பும் வழிமுறைகளை அகற்றுதல், ஸ்கிப்-இஃப்-பிட்-இஸ் அறிவுறுத்தலைத் தொடர்ந்து சில தாவல்களை அகற்றுதல் மற்றும் மேம்படுத்தப்பட்ட செயல்முறை சுருக்கம் மற்றும் இந்த செயல்முறையை மீண்டும் செய்யும் திறன் உட்பட பல தேர்வுமுறை மேம்பாடுகள் செய்யப்பட்டுள்ளன. இந்த மேம்படுத்தல்களில் சிலவற்றைக் கட்டுப்படுத்த கூடுதல் விருப்பங்கள் இப்போது கிடைக்கின்றன, குறிப்பாக -f பிரிவு-ஆங்கர்கள், இது ஒரு குறியீட்டுடன் தொடர்புடைய நிலையான பொருட்களை அணுக அனுமதிக்கிறது; -mpa-iterations=n, இது 2 இன் இயல்புநிலையிலிருந்து செயல்முறை சுருக்க மறு செய்கைகளின் எண்ணிக்கையை மாற்ற அனுமதிக்கிறது; மற்றும், -mpa-callcost-shortcall, இது மிகவும் தீவிரமான செயல்முறை சுருக்கத்தை செய்கிறது, இணைப்பாளர் நீண்ட அழைப்புகளை ஓய்வெடுக்க முடியும் என்ற நம்பிக்கையில். அடிப்படை அனுமானங்கள் உணரப்படாவிட்டால், இந்த கடைசி விருப்பம் குறியீட்டின் அளவை அதிகரிக்கலாம்.
பின்வரும் AVR பாகங்களுக்கு புதிய சாதன ஆதரவு ஆதரவு உள்ளது: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32 மற்றும் AVR128DB48. பின்வாங்கப்பட்ட சாதன ஆதரவு ஆதரவு பின்வரும் AVR பகுதிகளுக்கு இனி கிடைக்காது: ATA128, ATA64, ATA5272N, ATA5790, ATA5790, ATA5791, ATA5795, ATA6285C, ATA6286C, ATA6612, ATA6613, ATA6614.
3.9 பதிப்பு 2.29 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
தலைப்பு file கம்பைலர் உள்ளமைவுகளுக்கு, மிஸ்ரா போன்ற மொழி விவரக்குறிப்புகளுடன் கம்பைலர் இணங்குவதை உறுதிசெய்ய, தலைப்பு file, இது தானாகவே சேர்க்கப்படும் , புதுப்பிக்கப்பட்டது. இந்த தலைப்பு அனைத்து உள்ளமைக்கப்பட்ட செயல்பாடுகளுக்கான முன்மாதிரிகளைக் கொண்டுள்ளது, அதாவது buildin_avr_nop ( ) மற்றும் பில்டின் avr delay_cycles () . சில உள்ளமைவுகள் MISRA இணக்கமாக இல்லாமல் இருக்கலாம்; கம்பைலர் கட்டளை வரியில் defineXCSTRICT_MISRA ஐ சேர்ப்பதன் மூலம் இவற்றை தவிர்க்கலாம். உள்ளமைவுகளும் அவற்றின் அறிவிப்புகளும் நிலையான அகல வகைகளைப் பயன்படுத்த புதுப்பிக்கப்பட்டுள்ளன.
3.10 பதிப்பு 2.20
பின்வரும் AVR பகுதிகளுக்கு புதிய சாதன ஆதரவு ஆதரவு கிடைக்கிறது: ATTINY1624, ATTINY1626 மற்றும் ATTINY1627.
சிறந்த சிறந்த ஃபிட் ஒதுக்கீடு கம்பைலரில் உள்ள சிறந்த ஃபிட் அலோகேட்டர் (BFA) மேம்படுத்தப்பட்டுள்ளது, இதனால் பிரிவுகள் சிறந்த தேர்வுமுறையை அனுமதிக்கும் வரிசையில் ஒதுக்கப்படும். BFA இப்போது பெயரிடப்பட்ட முகவரி இடைவெளிகளை ஆதரிக்கிறது மற்றும் தரவு துவக்கத்தை சிறப்பாக கையாளுகிறது.
மேம்படுத்தப்பட்ட செயல்முறை சுருக்கம் செயல்முறை சுருக்கம் மேம்படுத்தல்கள் இப்போது அதிக குறியீடு வரிசைகளில் செய்யப்படுகின்றன. இந்த மேம்படுத்தல் குறியீட்டின் அளவை அதிகரித்திருக்கக்கூடிய முந்தைய சூழ்நிலைகள், இணைப்பாளரின் குப்பை சேகரிப்பு செயல்முறையை மேம்படுத்துதல் குறியீட்டிற்கு தெரியப்படுத்துவதன் மூலம் தீர்க்கப்பட்டது.
AVR அசெம்பிளர் இல்லாததால் AVR அசெம்பிளர் இந்த விநியோகத்தில் சேர்க்கப்படாது.
3.11 பதிப்பு 2.19 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
3.12 பதிப்பு 2.10
கோட் கவரேஜ் இந்த வெளியீட்டில் ஒரு கோட் கவரேஜ் அம்சம் உள்ளது, இது திட்டத்தின் மூலக் குறியீடு எந்த அளவிற்கு செயல்படுத்தப்பட்டது என்பதை பகுப்பாய்வு செய்ய உதவுகிறது. அதை செயல்படுத்த -mcodecov=ram விருப்பத்தைப் பயன்படுத்தவும். உங்கள் வன்பொருளில் நிரலைச் செயல்படுத்திய பிறகு, குறியீடு கவரேஜ் தகவல் சாதனத்தில் தொகுக்கப்படும், மேலும் இது MPLAB X IDE ஆல் குறியீடு கவரேஜ் செருகுநிரல் மூலம் மாற்றப்பட்டு காண்பிக்கப்படும். இந்தச் செருகுநிரல் பற்றிய தகவலுக்கு IDE ஆவணத்தைப் பார்க்கவும். கவரேஜ் பகுப்பாய்விலிருந்து அடுத்தடுத்த செயல்பாடுகளை விலக்க #pragma nocodecov பயன்படுத்தப்படலாம். நடைமுறையில் தொடக்கத்தில் சேர்க்கப்பட வேண்டும் file அதை முழுவதுமாக விலக்க வேண்டும் file கவரேஜ் பகுப்பாய்விலிருந்து. மாற்றாக, _attribute_ ( (nocodecov) ) கவரேஜ் பகுப்பாய்விலிருந்து ஒரு குறிப்பிட்ட செயல்பாட்டைத் தவிர்க்கப் பயன்படுத்தப்படலாம்.
சாதன விளக்கம் fileஒரு புதிய சாதனம் file avr_chipinfo என்று அழைக்கப்படுகிறது. html என்பது கம்பைலர் விநியோகத்தின் டாக்ஸ் கோப்பகத்தில் உள்ளது. இது file கம்பைலரால் ஆதரிக்கப்படும் அனைத்து சாதனங்களையும் பட்டியலிடுகிறது. சாதனத்தின் பெயரைக் கிளிக் செய்தால், அது அந்தச் சாதனத்திற்கான அனுமதிக்கப்பட்ட அனைத்து உள்ளமைவு பிட் அமைப்பு/மதிப்பு வலியைக் காட்டும் பக்கத்தைத் திறக்கும்.ampலெஸ். செயல்முறை சுருக்கம்
அசெம்பிளி குறியீட்டின் பொதுவான தொகுதிகளை அந்தத் தொகுதியின் பிரித்தெடுக்கப்பட்ட நகலுக்கான அழைப்புகளுடன் மாற்றும் செயல்முறை சுருக்கம் மேம்படுத்தல்கள், தொகுப்பியில் சேர்க்கப்பட்டுள்ளன. இவை தனித்தனி பயன்பாட்டினால் செய்யப்படுகின்றன, இது நிலை 2, 3 அல்லது s மேம்படுத்தல்களைத் தேர்ந்தெடுக்கும்போது கம்பைலரால் தானாகவே செயல்படுத்தப்படும். இந்த மேம்படுத்தல்கள் குறியீட்டின் அளவைக் குறைக்கின்றன, ஆனால் அவை செயல்பாட்டின் வேகம் மற்றும் குறியீடு பிழைத்திருத்தத்தை குறைக்கலாம். -mno-pa விருப்பத்தைப் பயன்படுத்தி அதிக தேர்வுமுறை நிலைகளில் செயல்முறை சுருக்கத்தை முடக்கலாம் அல்லது -mpa ஐப் பயன்படுத்தி குறைந்த தேர்வுமுறை நிலைகளில் (உங்கள் உரிமத்திற்கு உட்பட்டு) செயல்படுத்தலாம். ஒரு பொருளுக்கு அதை முடக்கலாம் file -mno-pa-on-ஐப் பயன்படுத்துதல்file=file-mno-pa-on-function=function ஐப் பயன்படுத்தி ஒரு செயல்பாட்டிற்கு பெயர், அல்லது முடக்கப்பட்டது. உங்கள் மூலக் குறியீட்டின் உள்ளே, செயல்பாட்டின் வரையறையுடன் பண்புக்கூறு ( (நோபா) ) ஐப் பயன்படுத்துவதன் மூலமோ அல்லது பண்புக்கூறுக்கு விரிவடையும் ( (நோபா, நோன்லைன்) ) நோபாவைப் பயன்படுத்துவதன் மூலமோ செயல்முறை சுருக்கத்தை முடக்கலாம், இதனால் செயல்பாடு இன்லைனிங் நடைபெறுவதைத் தடுக்கிறது. மற்றும் உள்ளிடப்பட்ட குறியீட்டின் சுருக்கம் உள்ளது.
ப்ராக்மாவில் லாக் பிட் ஆதரவு AVR லாக் பிட்கள் மற்றும் பிற உள்ளமைவு பிட்களைக் குறிப்பிட #pragma config இப்போது பயன்படுத்தப்படலாம். avr_chipinfo ஐச் சரிபார்க்கவும். html file (மேலே குறிப்பிட்டது) அமைப்பு/மதிப்பு ஜோடிகளுக்கு இந்த பிரக்மாவுடன் பயன்படுத்த வேண்டும். பின்வரும் பகுதிகளுக்கு புதிய சாதன ஆதரவு ஆதரவு கிடைக்கிறது: AVR28DAl28, AVR64DAl28, AVR32DA 128 மற்றும் AVR48DA 128.
3.13 பதிப்பு 2.05
உங்கள் பணத்திற்கான கூடுதல் பிட்கள் இந்த கம்பைலர் மற்றும் உரிம மேலாளரின் மேகோஸ் பதிப்பு இப்போது 64-பிட் பயன்பாடாக உள்ளது. MacOS இன் சமீபத்திய பதிப்புகளில் எச்சரிக்கைகள் இல்லாமல் கம்பைலர் நிறுவப்பட்டு இயங்குவதை இது உறுதி செய்யும்.
நிரல் நினைவகத்தில் உள்ள கான்ஸ்ட் ஆப்ஜெக்ட்கள் கம்பைலர் இப்போது ஃபிளாஷ் மெமரியில் கான்ஸ்ட்-குவாலிஃபைட் ஆப்ஜெக்ட்களை வைக்கலாம், ஆனால் இவை ரேமில் இருப்பதை விட. கம்பைலர் மாற்றியமைக்கப்பட்டுள்ளது, அதனால் கான்ஸ் t-தகுதியுள்ள உலகளாவிய தரவு நிரல் ஃபிளாஷ் நினைவகத்தில் சேமிக்கப்படுகிறது, மேலும் இந்தத் தரவை நேரடியாகவும் மறைமுகமாகவும் பொருத்தமான நிரல்-நினைவக வழிமுறைகளைப் பயன்படுத்தி அணுகலாம். இந்த புதிய அம்சம் இயல்பாகவே இயக்கப்பட்டது ஆனால் -mno-const-data-in-progmem விருப்பத்தைப் பயன்படுத்தி முடக்கலாம். avrxmega3 மற்றும் avrtiny கட்டமைப்புகளுக்கு, இந்த அம்சம் தேவையில்லை மற்றும் எப்போதும் முடக்கப்பட்டிருக்கும், ஏனெனில் இந்த சாதனங்களுக்கான தரவு முகவரி இடத்தில் நிரல் நினைவகம் மேப் செய்யப்பட்டுள்ளது.
இந்த கம்பைலரின் இலவச உரிமம் பெறாத (இலவசம்) பதிப்புகள் இப்போது நிலை 2 வரை மேம்படுத்தல்களை அனுமதிக்கின்றன. இது ஒரே மாதிரியாக இல்லாவிட்டாலும், ஸ்டாண்டர்ட் உரிமத்தைப் பயன்படுத்தி முன்பு சாத்தியமான வெளியீட்டை இது அனுமதிக்கும்.
வரவேற்கிறோம் AVRASM2 2-பிட் சாதனங்களுக்கான AVRASM8 அசெம்பிளர் இப்போது XC8 கம்பைலர் நிறுவியில் சேர்க்கப்பட்டுள்ளது. இந்த அசெம்பிளர் XC8 கம்பைலரால் பயன்படுத்தப்படவில்லை, ஆனால் கையால் எழுதப்பட்ட அசெம்பிளி மூலத்தின் அடிப்படையில் திட்டப்பணிகளுக்குக் கிடைக்கிறது.
புதிய சாதன ஆதரவு பின்வரும் பகுதிகளுக்குக் கிடைக்கிறது: ATMEGA1608, ATMEGA1609, ATMEGA808 மற்றும் ATMEGA809.
3.14 பதிப்பு 2.00
உயர்நிலை இயக்கி xc8-cc எனப்படும் புதிய இயக்கி, இப்போது முந்தைய avr-gcc இயக்கி மற்றும் xc8 இயக்கிக்கு மேலே அமர்ந்து, இலக்கு சாதனத்தின் தேர்வின் அடிப்படையில் பொருத்தமான கம்பைலரை அழைக்கலாம். இந்த இயக்கி GCC-பாணி விருப்பங்களை ஏற்றுக்கொள்கிறது, அவை செயல்படுத்தப்படும் கம்பைலருக்கு மொழிபெயர்க்கப்படும் அல்லது அனுப்பப்படும். இந்த இயக்கி எந்த AVR அல்லது PIC இலக்குடனும் ஒரே மாதிரியான சொற்பொருள்களுடன் ஒத்த விருப்பங்களின் தொகுப்பைப் பயன்படுத்த அனுமதிக்கிறது, மேலும் இது கம்பைலரை செயல்படுத்த பரிந்துரைக்கப்பட்ட வழியாகும். தேவைப்பட்டால், பழைய avr-gcc இயக்கி முந்தைய கம்பைலர் பதிப்புகளில் ஏற்றுக்கொள்ளப்பட்ட பழைய பாணி விருப்பங்களைப் பயன்படுத்தி நேரடியாக அழைக்கப்படலாம்.
பொதுவான சி இடைமுகம் இந்த கம்பைலர் இப்போது MPLAB காமன் சி இடைமுகத்துடன் இணங்க முடியும், இது அனைத்து MPLAB XC கம்பைலர்களிலும் மூலக் குறியீட்டை எளிதாக போர்ட் செய்ய அனுமதிக்கிறது. -mext=cci விருப்பம் இந்த அம்சத்தைக் கோருகிறது, பல மொழி நீட்டிப்புகளுக்கு மாற்று தொடரியல் செயல்படுத்துகிறது.
புதிய நூலகர் இயக்கி ஒரு புதிய நூலகர் இயக்கி முந்தைய PIC நூலகர் மற்றும் AVR avr-ar நூலகர்க்கு மேலே நிலைநிறுத்தப்பட்டுள்ளது. இந்த இயக்கி GCC-archiver-style விருப்பங்களை ஏற்றுக்கொள்கிறது, அவை செயல்படுத்தப்படும் நூலகத்திற்காக மொழிபெயர்க்கப்படும் அல்லது அனுப்பப்படும். எந்தவொரு PIC அல்லது AVR நூலகத்தையும் உருவாக்க அல்லது கையாள, ஒரே மாதிரியான சொற்பொருள் கொண்ட ஒரே மாதிரியான விருப்பங்களை புதிய இயக்கி அனுமதிக்கிறது. file எனவே நூலகரை அழைக்க இது பரிந்துரைக்கப்பட்ட வழியாகும். மரபுத் திட்டங்களுக்குத் தேவைப்பட்டால், முந்தைய கம்பைலர் பதிப்புகளில் ஏற்றுக்கொண்ட பழைய பாணி விருப்பங்களைப் பயன்படுத்தி முந்தைய நூலகரை நேரடியாக அழைக்கலாம்.
இடம்பெயர்வு சிக்கல்கள்
பின்வரும் அம்சங்கள் இப்போது கம்பைலரால் வித்தியாசமாக கையாளப்படுகின்றன. இந்த கம்பைலர் பதிப்பிற்கு குறியீட்டை போர்ட் செய்தால், இந்த மாற்றங்களுக்கு உங்கள் மூலக் குறியீட்டில் மாற்றம் தேவைப்படலாம். துணைத்தலைப்புகளில் உள்ள பதிப்பு எண், தொடர்ந்து வரும் மாற்றங்களை ஆதரிக்கும் முதல் தொகுப்பி பதிப்பைக் குறிக்கிறது.
4.1 பதிப்பு 2.41
துல்லியமற்ற fma செயல்பாடுகள் அகற்றப்பட்டன (XC8-2913) C99 நிலையான நூலகம் fma 0 -குடும்ப செயல்பாடுகள் ( ) ஒரு பெருக்கல்-சேர்க்கை முடிவில்லாத துல்லியத்துடன் ஒற்றை ரவுண்டிங்கிற்கு கணக்கிடவில்லை, மாறாக ஒவ்வொரு செயல்பாட்டிலும் ரவுண்டிங் பிழைகள் குவிந்தன. வழங்கப்பட்ட நூலகத்திலிருந்து இந்த செயல்பாடுகள் அகற்றப்பட்டன.
4.2 பதிப்பு 2.40
இல்லை.
4.3 பதிப்பு 2.39 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
4.4 பதிப்பு 2.36 இல்லை.
4.5 பதிப்பு 2.35
ஸ்ட்ரிங்-டு பேஸ்களைக் கையாளுதல் (XC8-2420) மற்ற XC கம்பைலர்களுடன் நிலைத்தன்மையை உறுதிப்படுத்த, strtol () போன்ற XC8 ஸ்ட்ரிங்-டு செயல்பாடுகள், குறிப்பிடப்பட்ட அடிப்படை 36 ஐ விட பெரியதாக இருந்தால், உள்ளீட்டு சரத்தை மாற்ற முயற்சிக்காது. அதற்குப் பதிலாக EINVAL என பிழையை அமைக்கும். இந்த அடிப்படை மதிப்பை மீறும் போது செயல்பாடுகளின் நடத்தையை C தரநிலை குறிப்பிடவில்லை.
பொருத்தமற்ற வேக மேம்படுத்தல்கள் நிலை 3 மேம்படுத்தல்களைத் தேர்ந்தெடுக்கும்போது (-03) செயல்முறை சுருக்கம் மேம்படுத்தல்கள் இயக்கப்பட்டன. இந்த மேம்படுத்தல்கள் குறியீட்டு வேகத்தின் இழப்பில் குறியீட்டின் அளவைக் குறைக்கின்றன, எனவே இது செய்யப்படக்கூடாது. இந்த மேம்படுத்தல் நிலையைப் பயன்படுத்தும் திட்டங்கள், இந்த வெளியீட்டைக் கொண்டு கட்டமைக்கப்படும் போது குறியீட்டின் அளவு மற்றும் செயலாக்க வேகத்தில் வேறுபாடுகளைக் காணலாம்.
நூலக செயல்பாடு பல நிலையான C லைப்ரரி செயல்பாடுகளுக்கான குறியீடு இப்போது மைக்ரோசிப்பின் யுனிஃபைட் ஸ்டாண்டர்ட் லைப்ரரியில் இருந்து வருகிறது, இது முந்தைய avr-libc லைப்ரரி வழங்கியதை விட சில சூழ்நிலைகளில் வேறுபட்ட நடத்தையை வெளிப்படுத்தலாம். உதாரணமாகample, வடிவமைப்பை இயக்க 1printf flt நூலகத்தில் (-1printf_flt விருப்பம்) இணைக்க வேண்டிய அவசியமில்லை I0 float-format specifierகளுக்கான ஆதரவு. புத்திசாலி I0 மைக்ரோசிப் யூனிஃபைட் ஸ்டாண்டர்ட் லைப்ரரியின் அம்சங்கள் இந்த விருப்பத்தை தேவையற்றதாக ஆக்குகிறது. கூடுதலாக, சரம் மற்றும் நினைவக செயல்பாடுகளுக்கு (எ.கா. strcpy_P ( ) முதலியன..) _P பின்னொட்டு நடைமுறைகளை பயன்படுத்துவது இனி ஃபிளாஷில் கன்ஸ்ட் ஸ்டிரிங்கில் செயல்பட வேண்டிய அவசியமில்லை. நிலையான C நடைமுறைகள் (எ.கா. strcpy ) const-data-in-program-memory அம்சம் இயக்கப்பட்டிருக்கும் போது, அத்தகைய தரவுகளுடன் சரியாக வேலை செய்யும்.
4.6 பதிப்பு 2.32
இல்லை.
4.7 பதிப்பு 2.31
இல்லை.
4.8 பதிப்பு 2.30
இல்லை.
4.1 பதிப்பு 2.29 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
4.2 பதிப்பு 2.20
DFP தளவமைப்பு மாற்றப்பட்டது கம்பைலர் இப்போது DFP கள் (சாதன குடும்பப் பொதிகள்) பயன்படுத்தும் வேறுபட்ட தளவமைப்பைக் கருதுகிறது. இந்த வெளியீட்டில் பழைய DFP வேலை செய்யாமல் போகலாம், மேலும் பழைய கம்பைலர்கள் சமீபத்திய DFPகளைப் பயன்படுத்த முடியாது.
4.3 பதிப்பு 2.19 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
4.4 பதிப்பு 2.10
இல்லை
4.5 பதிப்பு 2.05
நிரல் நினைவகத்தில் உள்ள கான்ஸ்ட் ஆப்ஜெக்ட்கள் முன்னிருப்பாக, கான்ஸ்ட்-குவாலிஃபைட் ஆப்ஜெக்ட்கள் நிரல் நினைவகத்தில் வைக்கப்பட்டு அணுகப்படும் என்பதை நினைவில் கொள்க (சாயல் விவரிக்கப்பட்டுள்ளது). இது உங்கள் திட்டத்தின் அளவு மற்றும் செயல்பாட்டின் வேகத்தை பாதிக்கும், ஆனால் ரேம் பயன்பாட்டை குறைக்க வேண்டும். தேவைப்பட்டால் -mnoconst-data-in-progmem விருப்பத்தைப் பயன்படுத்தி இந்த அம்சத்தை முடக்கலாம்.
4.6 பதிப்பு 2.00
உள்ளமைவு உருகிகள் சாதன உள்ளமைவு உருகிகள் இப்போது கன்ஃபிக் ப்ராக்மாவைப் பயன்படுத்தி நிரல்படுத்தப்படலாம், அதைத் தொடர்ந்து உருகி நிலையைக் குறிப்பிட மதிப்பு ஜோடிகளை அமைக்கலாம், எ.கா.
#pragma config WDTON = SET
#pragma config BODLEVEL = BODLEVEL_4V3
முழுமையான பொருள்கள் மற்றும் செயல்பாடுகள் பொருள்கள் மற்றும் செயல்பாடுகள் இப்போது CCI (முகவரி) குறிப்பினைப் பயன்படுத்தி நினைவகத்தில் குறிப்பிட்ட முகவரியில் வைக்கப்படலாம்.ampலெ:
#அடங்கும்
int foobar_at(0x800100);
சார் __at(0x250) getID(int offset) {…}
இந்தக் குறிப்பானுக்கான வாதம் இருக்க வேண்டும் முதல் பைட் அல்லது அறிவுறுத்தல் வைக்கப்படும் முகவரியைக் குறிக்கும் மாறிலி. ரேம் முகவரிகள் 0x800000 ஆஃப்செட்டைப் பயன்படுத்தி குறிக்கப்படுகின்றன. இந்த அம்சத்தைப் பயன்படுத்த CCI ஐ இயக்கவும்.
புதிய குறுக்கீடு செயல்பாடு தொடரியல் C செயல்பாடுகள் குறுக்கீடு ஹேண்ட்லர்கள் என்பதைக் குறிக்க, கம்பைலர் இப்போது CCI _interrupt (num) குறிப்பினை ஏற்றுக்கொள்கிறது. குறிப்பான் குறுக்கீடு எண்ணை எடுத்துக்கொள்கிறது, உதாரணமாகampலெ:
#அடங்கும்
void __interrupt(SPI_STC_vect_num) spi_Isr(செல்லம்) { …}
நிலையான சிக்கல்கள்
பின்வருபவை தொகுப்பியில் செய்யப்பட்ட திருத்தங்கள். இவை உருவாக்கப்பட்ட குறியீட்டில் உள்ள பிழைகளை சரிசெய்யலாம் அல்லது கம்பைலரின் செயல்பாட்டை பயனர் வழிகாட்டியின் நோக்கம் அல்லது குறிப்பிடப்பட்டதாக மாற்றலாம். துணைத்தலைப்புகளில் உள்ள பதிப்பு எண், பின் வரும் சிக்கல்களுக்கான திருத்தங்களைக் கொண்ட முதல் தொகுப்பி பதிப்பைக் குறிக்கிறது. தலைப்பில் உள்ள அடைப்புக்குறியிடப்பட்ட லேபிள்(கள்) கண்காணிப்பு தரவுத்தளத்தில் சிக்கலின் அடையாளமாகும். நீங்கள் ஆதரவைத் தொடர்பு கொள்ள வேண்டும் என்றால் இவை பயனுள்ளதாக இருக்கும்.
சாதனத்துடன் தொடர்புடைய டிவைஸ் ஃபேமிலி பேக்கில் (DFP) சில சாதனம் சார்ந்த சிக்கல்கள் சரி செய்யப்பட்டுள்ளன என்பதை நினைவில் கொள்ளவும். DFP களில் செய்யப்பட்ட மாற்றங்கள் பற்றிய தகவலுக்கும் சமீபத்திய பேக்குகளைப் பதிவிறக்குவதற்கும் MPLAB பேக் மேலாளரைப் பார்க்கவும்.
5.1 பதிப்பு 2.41
வென்ச்சுரா (XC8-3088) டாங்கிள்களில் டாங்கிள் சிக்கல்கள் மேகோஸ் வென்ச்சுரா ஹோஸ்ட்களில் கம்பைலர் சரியாகப் படிக்கப்படாமல் இருந்திருக்கலாம், இதன் விளைவாக உரிமம் பெறுவதில் தோல்விகள் ஏற்படும். XCLM உரிம மேலாளருக்கான மாற்றங்கள் இந்தச் சிக்கலைச் சரிசெய்யும்.
நினைவக ஒதுக்கீட்டின் தவறான அறிகுறி (XC8-2925) நிலையான நூலக நினைவக மேலாண்மை செயல்பாடுகளை (malloc () et al) பயன்படுத்தி நினைவகத்தின் SIZE_MAX பைட்டுகளை (அல்லது இதற்கு நெருக்கமான மதிப்பு) ஒதுக்கும் முயற்சி தவறாக வெற்றி பெற்றது. எளிய டைனமிக் நினைவக ஒதுக்கீடு செயல்படுத்தலைப் பயன்படுத்தும் போது கோரப்பட்ட தொகுதிக்கு கூடுதலாக கூடுதல் பைட்டுகள் தேவை என்பதை இது கணக்கில் எடுத்துக்கொள்ளவில்லை. NULL சுட்டி இப்போது திருப்பி அனுப்பப்படும் மற்றும் இதுபோன்ற சூழ்நிலைகளில் ENOMEM க்கு தவறாக அமைக்கப்படும்.
துல்லியமற்ற எஃப்எம்ஏ செயல்பாடுகள் அகற்றப்பட்டன (XC8-2913) C99 நிலையான நூலகம் fma ( ) -குடும்ப செயல்பாடுகள் ( ) ஒரு பெருக்கல்-சேர்க்கை முடிவில்லாத துல்லியத்துடன் ஒற்றை ரவுண்டிங்கிற்கு கணக்கிடவில்லை, மாறாக ஒவ்வொரு செயல்பாட்டிலும் ரவுண்டிங் பிழைகள் குவிந்தன. வழங்கப்பட்ட நூலகத்திலிருந்து இந்த செயல்பாடுகள் அகற்றப்பட்டன.
சரம் மாற்றத்தின் தவறான கையாளுதல் (XC8-2921, XC8-2652) strtod Cr மூலம் மாற்றுவதற்கான ஒரு 'பொருள் வரிசை' அதிவேக வடிவத்தில் மிதக்கும்-புள்ளி எண்ணைக் கொண்டிருந்தால் மற்றும் e/E எழுத்துக்குப் பிறகு எதிர்பாராத எழுத்து இருந்தால், endptr வழங்கப்பட்ட இடத்தில், அதற்கு ஒரு முகவரி ஒதுக்கப்பட்டது. அது e/E க்குப் பிறகு உள்ள எழுத்தை சுட்டிக்காட்டியிருந்தால், அது e/E எழுத்தையே சுட்டிக்காட்டியிருக்க வேண்டும், ஏனெனில் அது மாற்றப்படவில்லை. உதாரணமாகample, strtod (“100exx”, &ep) 100.00 ஐத் திருப்பி, சரத்தின் “எக்ஸ்எக்ஸ்” பகுதியைக் குறிக்க ep ஐ அமைக்க வேண்டும், அதேசமயம் செயல்பாடு சரியான மதிப்பைத் திருப்பி அனுப்புகிறது, ஆனால் சரத்தின் “xx” பகுதிக்கு ep ஐ அமைக்கிறது. .
5.2 பதிப்பு 2.40
மிகவும் தளர்வானது (XCS-2876) -mrelax விருப்பத்தைப் பயன்படுத்தும் போது, கம்பைலர் சில பிரிவுகளை ஒன்றாக ஒதுக்கவில்லை, இதன் விளைவாக குறைந்த உகந்த குறியீடு அளவுகள் கிடைக்கும். புதிய MUSL நூலகங்களைப் பயன்படுத்திய குறியீடு அல்லது பலவீனமான குறியீடுகளுடன் இது நிகழ்ந்திருக்கலாம்.
எச்சரிக்கையில் கூறப்பட்டுள்ளபடி மேப்பிங் அம்சம் முடக்கப்படவில்லை (XC8-2875) const-data-in-config-mappedprogmem அம்சம், const-data-in-progmem அம்சம் இயக்கப்பட்டிருப்பதைச் சார்ந்துள்ளது. const-data-inconfig-mapped-progmem அம்சம் விருப்பத்தைப் பயன்படுத்தி வெளிப்படையாக இயக்கப்பட்டிருந்தால் மற்றும் const-data-inprogmem அம்சம் முடக்கப்பட்டிருந்தால், const-data-in-con fig- என்று ஒரு எச்சரிக்கை செய்தி இருந்தபோதிலும், இணைப்பு படி தோல்வியடைந்தது. mapped-progmem அம்சம் தானாகவே முடக்கப்பட்டது, இது முற்றிலும் சரியாக இல்லை. இந்த சூழ்நிலையில் const-data-in-config-mapped-progmem அம்சம் இப்போது முழுமையாக முடக்கப்பட்டுள்ளது.
NVMCTRL (XC8-2848) ஐ சரியாக அணுக DFP மாற்றங்கள் AVR64EA சாதனங்கள் பயன்படுத்தும் இயக்க நேர தொடக்கக் குறியீடு, NVMCTRL பதிவு உள்ளமைவு மாற்றப் பாதுகாப்பின் (CCP) கீழ் இருப்பதைக் கணக்கில் எடுத்துக்கொள்ளவில்லை, மேலும் const-data-in-configmapped-progmem பயன்படுத்தும் பக்கத்திற்கு I0 SFR ஐ அமைக்க முடியவில்லை. தொகுப்பி அம்சம். AVR-Ex_DFP பதிப்பு 2.2.55 இல் செய்யப்பட்ட மாற்றங்கள், இயக்க நேர தொடக்கக் குறியீட்டை இந்தப் பதிவேட்டில் சரியாக எழுத அனுமதிக்கும்.
தவிர்க்க வேண்டிய DFP மாற்றங்கள் ஃபிளாஷ் மேப்பிங் (XC8-2847) AVR128DA28/32/48/64 சிலிக்கான் பிழைத்திருத்தத்தில் (D580000882) புகாரளிக்கப்பட்ட ஃபிளாஷ்-மேப்பிங் சாதன அம்சத்தில் உள்ள சிக்கலுக்கான ஒரு வேலை செயல்படுத்தப்பட்டது. const-data-in-config-mapped-progmem கம்பைலர் அம்சம் பாதிக்கப்பட்ட சாதனங்களுக்கு இயல்பாகப் பயன்படுத்தப்படாது, மேலும் இந்த மாற்றம் AVR-Dx_DFP பதிப்பு 2.2.160 இல் தோன்றும்.
sinhf அல்லது coshf (XC8-2834) மூலம் உருவாக்கப் பிழை sinhf () அல்லது coshf () நூலகச் செயல்பாடுகளைப் பயன்படுத்துவதற்கான முயற்சியில் இணைப்புப் பிழை ஏற்பட்டது, இது வரையறுக்கப்படாத குறிப்பை விவரிக்கிறது. குறிப்பிடப்பட்ட விடுபட்ட செயல்பாடு இப்போது கம்பைலர் விநியோகத்தில் சேர்க்கப்பட்டுள்ளது.
நோபா (XC,8-2833) மூலம் பிழைகளை உருவாக்கு asm ( ) ஐப் பயன்படுத்தி அதன் அசெம்பிளர் பெயரைக் குறிப்பிட்ட ஒரு செயல்பாட்டுடன் நோபா பண்புக்கூறைப் பயன்படுத்தினால், அசெம்ப்லரிடமிருந்து பிழைச் செய்திகள் தூண்டப்படுகின்றன. இந்த கலவை சாத்தியமில்லை.
சுட்டி வாதங்களுடன் மாறுபட்ட செயல்பாடு தோல்வி (XC8-2755, XC8-2731) கான்ஸ்ட்-டேட்டா-இன்-ப்ரோக்மெம் அம்சம் இயக்கப்பட்டிருக்கும் போது, மாறி வாதங்களின் எண்ணிக்கை கொண்ட செயல்பாடுகள், மாறி வாதப் பட்டியலில் 24-பிட் (மெம்எக்ஸ் வகை) சுட்டிகள் அனுப்பப்படும் என்று எதிர்பார்க்கிறது. தரவு நினைவகத்திற்கு சுட்டிகளாக இருந்த வாதங்கள் 16-பிட் பொருள்களாக அனுப்பப்பட்டன, இறுதியில் அவை படிக்கப்படும்போது குறியீடு தோல்வியை ஏற்படுத்தியது. constdata-in-progmem அம்சம் இயக்கப்பட்டால், அனைத்து 16-பிட் சுட்டிகள் வாதங்களும் இப்போது 24-பிட் சுட்டிகளாக மாற்றப்படும்.
strtoxxx நூலகச் செயல்பாடுகள் தோல்வியடைந்தன (XC8-2620) const-data-in-progmem அம்சம் இயக்கப்பட்டபோது, strtoxxx நூலகச் செயல்பாடுகளில் உள்ள endptr அளவுரு, நிரல் நினைவகத்தில் இல்லாத மூல சர வாதங்களுக்குச் சரியாகப் புதுப்பிக்கப்படவில்லை.
தவறான வார்ப்புகளுக்கான எச்சரிக்கைகள் (XC8-2612) const-in-progmem அம்சம் இயக்கப்பட்டிருந்தால், ஒரு சரத்தின் முகவரியானது தரவு முகவரி இடத்திற்கு வெளிப்படையாக அனுப்பப்பட்டால், கம்பைலர் இப்போது பிழையை வழங்கும்.ample, (uint 8_t *) “ஹலோ வேர்ல்ட்!”. கான்ஸ்ட் டேட்டா பாயிண்டர் வெளிப்படையாக டேட்டா அட்ரஸ் ஸ்பேஸுக்கு அனுப்பப்படும் போது, அந்த முகவரி செல்லாததாக இருந்தால் எச்சரிக்கை விடுக்கப்படும்.
துவக்கப்படாத கான்ஸ்ட் பொருள்களின் இடம் (XC8-2408) தரவு முகவரி இடத்தில் அவற்றின் நிரல் நினைவகத்தின் அனைத்து அல்லது பகுதியையும் வரைபடமாக்கும் சாதனங்களில் துவக்கப்படாத நிலை மற்றும் மாறாத ஆவியாகும் பொருள்கள் நிரல் நினைவகத்தில் வைக்கப்படவில்லை. இந்த சாதனங்களுக்கு, அத்தகைய பொருள்கள் இப்போது நிரல் நினைவகத்தில் வைக்கப்படுகின்றன, அவற்றின் செயல்பாட்டை மற்ற சாதனங்களுடன் ஒத்துப்போகின்றன.
5.3 பதிப்பு 2.39 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
5.4 பதிப்பு 2.36
தாமதப்படுத்தும் போது பிழை (XC8-2774) இயல்புநிலை இலவச பயன்முறை மேம்படுத்தல்களில் உள்ள சிறிய மாற்றங்கள், தாமதமான உள்ளமைக்கப்பட்ட செயல்பாடுகளுக்கு ஓபராண்ட் வெளிப்பாடுகளை தொடர்ந்து மடிப்பதைத் தடுக்கின்றன, இதன் விளைவாக அவை மாறாநிலைகளாகக் கருதப்பட்டு பிழையைத் தூண்டுகிறது: பில்டின் ஏவிஆர் தாமதம்_சைக்கிள்ஸ் தொகுக்கும் நேர முழு எண் மாறிலியை எதிர்பார்க்கிறது.
5.5 பதிப்பு 2.35
_at (XC8-2653) ஐப் பயன்படுத்தி தொடர்ச்சியான ஒதுக்கீடு ஒரே பெயரில் உள்ள ஒரு பிரிவில் பல பொருள்களின் இடங்களை தொடர்ச்சியாக ஒதுக்கீடு செய்தல் மற்றும் _at ( ) ஐப் பயன்படுத்துவது சரியாக வேலை செய்யவில்லை. உதாரணமாகampலெ:
const char arr1[] __attribute__((section(“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((section(“.mysec”))) = {0xEF, 0xFE};
arr2 க்குப் பிறகு உடனடியாக arr1 ஐ வைத்திருக்க வேண்டும்.
பிரிவு தொடக்க முகவரிகளைக் குறிப்பிடுதல் (XC8-2650) தி -W1, –பிரிவு-தொடக்க விருப்பம் பரிந்துரைக்கப்பட்ட தொடக்க முகவரியில் பிரிவுகளை வைக்க அமைதியாக தோல்வியடைந்தது. எந்தவொரு தனிப்பயன் பெயரிடப்பட்ட பிரிவுகளுக்கும் இந்தச் சிக்கல் சரி செய்யப்பட்டது; இருப்பினும், இது போன்ற எந்த நிலையான பிரிவுகளுக்கும் வேலை செய்யாது. உரை அல்லது . bss, இது -W1, -T விருப்பத்தைப் பயன்படுத்தி வைக்கப்பட வேண்டும்.
ரிலாக்ஸ் செய்யும் போது லிங்கர் செயலிழக்கிறது (XC8-2647) -mrelax ஆப்டிமைசேஷன் இயக்கப்பட்டதும், கிடைக்கும் நினைவகத்தில் பொருந்தாத குறியீடு அல்லது தரவுப் பிரிவுகள் இருந்தால், இணைப்பான் செயலிழந்தது. இப்போது, அத்தகைய சூழ்நிலையில், அதற்கு பதிலாக பிழை செய்திகள் வெளியிடப்படுகின்றன.
நோ-ஃபாலிங்-பேக் (XC8-2646) தி -நோஃபால்பேக் விருப்பம் சரியாக செயல்படுத்தப்படவில்லை அல்லது ஆவணப்படுத்தப்படவில்லை. கம்பைலர் உரிமம் பெறாமல் இருந்தால், கம்பைலர் மீண்டும் குறைந்த தேர்வுமுறை அமைப்பிற்கு வராமல், அதற்குப் பதிலாக பிழையை வழங்கும் என்பதை உறுதிப்படுத்த இப்போது இதைத் தேர்ந்தெடுக்கலாம்.
பொருத்தமற்ற வேக மேம்படுத்தல்கள் (X03-2637) நிலை 3 மேம்படுத்தல்களைத் தேர்ந்தெடுக்கும்போது (-03) செயல்முறை சுருக்கம் மேம்படுத்தல்கள் இயக்கப்பட்டன. இந்த மேம்படுத்தல்கள் குறியீட்டு வேகத்தின் இழப்பில் குறியீட்டின் அளவைக் குறைக்கின்றன, எனவே இது செய்யப்படக்கூடாது.
மோசமான EEPROM அணுகல் (XC8-2629) தி -mconst-data-in-progmem விருப்பம் இயக்கப்பட்டிருக்கும் போது eeprom_read_block வழக்கம் Xmega சாதனங்களில் சரியாக வேலை செய்யவில்லை (இது இயல்புநிலை நிலை), இதன் விளைவாக EEPROM நினைவகம் சரியாகப் படிக்கப்படவில்லை.
தவறான நினைவக ஒதுக்கீடு (XC8-2593, XC8-2651) எப்போது -Ttext அல்லது -Tdata இணைப்பான் விருப்பம் (எ.காamp-vl இயக்கி விருப்பத்தைப் பயன்படுத்தி le அனுப்பப்பட்டது) குறிப்பிடப்பட்டுள்ளது, தொடர்புடைய உரை/தரவுப் பகுதியின் தோற்றம் புதுப்பிக்கப்பட்டது; இருப்பினும், இறுதி முகவரி அதற்கேற்ப சரிசெய்யப்படவில்லை, இது இலக்கு சாதனத்தின் நினைவக வரம்பை மீறிய பிராந்தியத்திற்கு வழிவகுத்திருக்கலாம்.
அதிக பண்புக்கூறு செயல்பாட்டுடன் செயலிழப்பு (XC8-2580) குறுக்கீடு, சமிக்ஞை அல்லது nmi பண்புக்கூறுகளில் ஒன்றுக்கு மேற்பட்டவற்றைப் பயன்படுத்தி ஒரு செயல்பாடு அறிவிக்கப்பட்டால், கம்பைலர் செயலிழக்கச் செய்யும், எ.கா., பண்புக்கூறு ( ( சமிக்ஞை , குறுக்கீடு ) ).
தவறான ATtiny குறுக்கீடு குறியீடு (XC8-2465) ATtiny சாதனங்களுக்கான உருவாக்கம் மற்றும் மேம்படுத்தல்கள் முடக்கப்பட்டிருக்கும் போது (-00), குறுக்கீடு செயல்பாடுகள் operand-க்கு வெளியே உள்ள அசெம்பிளர் செய்திகளைத் தூண்டியிருக்கலாம்.
விருப்பங்கள் நிறைவேற்றப்படவில்லை (XC8-2452) பல, கமாவால் பிரிக்கப்பட்ட இணைப்பான் விருப்பங்களைக் கொண்ட விருப்பத்தைப் பயன்படுத்தும் போது, அனைத்து இணைப்பு விருப்பங்களும் இணைப்பாளருக்கு அனுப்பப்படவில்லை.
நிரல் நினைவகத்தை மறைமுகமாகப் படிப்பதில் பிழை (X03-2450) சில சந்தர்ப்பங்களில், ஒரு சுட்டியிலிருந்து நிரல் நினைவகத்திற்கு இரண்டு பைட் மதிப்பைப் படிக்கும்போது கம்பைலர் ஒரு உள் பிழையை (அடையாளம் காணமுடியாத insn) உருவாக்கியது.
5.6 பதிப்பு 2.32
இரண்டாவது அணுகல் நூலகம் தோல்வியடைந்தது (XC8-2381) xc8-ar இன் விண்டோஸ் பதிப்பை செயல்படுத்துகிறது. .exe நூலகக் காப்பகமானது, ஏற்கனவே உள்ள நூலகக் காப்பகத்தை அணுகுவதற்கு இரண்டாவது முறையாக பிழைச் செய்தியை மறுபெயரிட முடியாமல் தோல்வியடைந்திருக்கலாம்.
5.7 பதிப்பு 2.31
விவரிக்கப்படாத தொகுப்பி தோல்விகள் (XC8-2367) விண்டோஸ் இயங்குதளங்களில் இயங்கும் போது, சிஸ்டம் தற்காலிக கோப்பகம் ஒரு புள்ளியை உள்ளடக்கிய பாதையில் அமைக்கப்பட்டுள்ளது. எழுத்து, தொகுப்பி இயக்கத் தவறியிருக்கலாம்.
5.8 பதிப்பு 2.30
அவுட்லைன் செய்த பிறகு குளோபல் லேபிள்கள் இடம் பெறவில்லை (XC8-2299) கையால் எழுதப்பட்ட அசெம்பிளி குறியீடு, நடைமுறைச் சுருக்கம் மூலம் கணக்கிடப்படும் சட்டசபை வரிசைகளுக்குள் உலகளாவிய லேபிள்களை வைக்கிறது.
ஒரு நிதானமான விபத்து (XC8-2287) -mrelax விருப்பத்தைப் பயன்படுத்தி, டெயில் ஜம்ப் ரிலாக்சேஷன் ஆப்டிமைசேஷன்கள் ஒரு பிரிவின் முடிவில் இல்லாத ரெட் வழிமுறைகளை அகற்ற முயற்சிக்கும் போது, இணைப்பான் செயலிழக்கச் செய்திருக்கலாம்.
லேபிள்களை மதிப்புகளாக மேம்படுத்தும் போது செயலிழக்கிறது (XC8-2282) "மதிப்புகளாக லேபிள்கள்" GNU C மொழி நீட்டிப்பைப் பயன்படுத்தும் குறியீடு, அவுட்லைன் செய்யப்பட்ட VMA ரேஞ்ச் ஸ்பான்ஸ் ஃபிக்ஸ்அப் பிழையுடன், செயல்முறை சுருக்க மேம்படுத்தல்களை செயலிழக்கச் செய்திருக்கலாம்.
அவ்வளவாக இல்லை (XC8-2271) st rstr () க்கான முன்மாதிரிகள் மற்றும் பிற செயல்பாடுகள் -mconst-data-inprogmem அம்சம் முடக்கப்பட்டிருக்கும் போது, திரும்பிய ஸ்டிரிங் பாயிண்டர்களில் தரமற்ற நிலைத்தன்மையை இனி குறிப்பிட வேண்டாம். avrxmega3 மற்றும் avrtiny சாதனங்களில், இந்த அம்சம் நிரந்தரமாக இயக்கப்பட்டிருக்கும்.
லாஸ்ட் இனிஷியலைசர்கள் (XC8-2269) அதிகமாக இருக்கும் போது ஒரு மொழிபெயர்ப்பு அலகில் உள்ள ஒரு மாறியானது ஒரு பிரிவில் (_section அல்லது _attribute_ ((பிரிவு)) ஐப் பயன்படுத்தி) வைக்கப்பட்டது, மேலும் அத்தகைய முதல் மாறியானது பூஜ்ஜியமாக துவக்கப்பட்டது அல்லது துவக்கி இல்லை, அதே மொழிபெயர்ப்பு அலகில் மற்ற மாறிகளுக்கான துவக்கிகள் அதே பிரிவில் இழந்தனர்.
5.1 பதிப்பு 2.29 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
5.2 பதிப்பு 2.20
நீண்ட கட்டளைகளில் பிழை (XC8-1983) AVR இலக்கைப் பயன்படுத்தும் போது, கம்பைலர் நிறுத்தப்பட்டிருக்கலாம் file கட்டளை வரி மிகப் பெரியதாகவும், மேற்கோள்கள், பின்சாய்வுகள் போன்ற சிறப்பு எழுத்துக்களைக் கொண்டிருந்தால் பிழை இல்லை.
ஒதுக்கப்படாத ரோடேட்டா பிரிவு (XC8-1920) AVR இணைப்பான் avrxmega3 மற்றும் avrtiny கட்டமைப்புகளை உருவாக்கும்போது தனிப்பயன் ரோடேட்டா பிரிவுகளுக்கு நினைவகத்தை ஒதுக்குவதில் தோல்வியடைந்தது, நினைவக மேலடுக்கு பிழைகளை உருவாக்கும்.
5.3 பதிப்பு 2.19 (செயல்பாட்டு பாதுகாப்பு வெளியீடு)
இல்லை.
5.4 பதிப்பு 2.10
இடமாற்றம் தோல்விகள் (XC8-1891) இணைப்பான் தளர்வுக்குப் பிறகு பிரிவுகளுக்கு இடையே நினைவக 'துளைகளை' விட்டுச் செல்வதே சிறந்த பொருத்தம் ஒதுக்கியாகும். நினைவகத்தை துண்டாடுவதைத் தவிர, இது பிசி-ரிலேட்டிவ் ஜம்ப்கள் அல்லது அழைப்புகள் வரம்பிற்கு அப்பாற்பட்டது தொடர்பான இணைப்பான் இடமாற்றம் தோல்விகள் ஏற்படுவதற்கான சாத்தியத்தை அதிகரித்தது.
தளர்வு மூலம் மாற்றப்படாத வழிமுறைகள் (XC8-1889) ஜம்ப் அல்லது அழைப்பு வழிமுறைகளுக்கு இணைப்பாளர் தளர்வு ஏற்படவில்லை, அதன் இலக்குகள் தளர்ந்தால் அடையக்கூடியதாக இருக்கும்.
காணவில்லை செயல்பாடு (XC8E-388) இருந்து பல வரையறைகள் , clock_div_t மற்றும் clock_prescale set () போன்றவை ATmega324PB, ATmega328PB, ATtiny441 மற்றும் ATtiny841 உள்ளிட்ட சாதனங்களுக்கு வரையறுக்கப்படவில்லை.
மேக்ரோக்கள் இல்லை முன்செயலி மேக்ரோக்கள் _XC8_MODE_, _XC8_VERS ION, _XC மற்றும் _XC8 ஆகியவை கம்பைலரால் தானாக வரையறுக்கப்படவில்லை. இவை இப்போது கிடைக்கின்றன.
5.5 பதிப்பு 2.05
உள் கம்பைலர் பிழை (XC8-1822) விண்டோஸின் கீழ் கட்டமைக்கும்போது, குறியீட்டை மேம்படுத்தும் போது உள்ளக கம்பைலர் பிழை ஏற்பட்டிருக்கலாம்.
ரேம் ஓவர்ஃப்ளோ கண்டறியப்படவில்லை (XC8-1800, XC8-1796) கிடைக்கக்கூடிய ரேமை விட அதிகமான நிரல்கள் சில சூழ்நிலைகளில் கம்பைலரால் கண்டறியப்படவில்லை, இதன் விளைவாக இயக்க நேரக் குறியீடு தோல்வி ஏற்பட்டது.
தவிர்க்கப்பட்ட ஃபிளாஷ் நினைவகம் (XC8-1792) avrxmega3 மற்றும் avrtiny சாதனங்களுக்கு, ஃபிளாஷ் நினைவகத்தின் பகுதிகள் MPLAB X ஆல் நிரல்படுத்தப்படாமல் விடப்பட்டிருக்கலாம். IDE.
பிரதானத்தை இயக்குவதில் தோல்வி (XC8-1788) நிரலில் உலகளாவிய மாறிகள் வரையறுக்கப்படாத சில சூழ்நிலைகளில், இயக்க நேர தொடக்கக் குறியீடு வெளியேறவில்லை மற்றும் முக்கிய ( ) செயல்பாட்டை எட்டவில்லை.
தவறான நினைவக தகவல் (XC8-1787) avrxmega3 மற்றும் avrtiny சாதனங்களுக்கு, நிரல் நினைவகத்திற்குப் பதிலாக படிக்க-மட்டும் தரவு RAM ஐப் பயன்படுத்துகிறது என்று avr-அளவு நிரல் தெரிவித்தது.
தவறான நிரல் நினைவக வாசிப்பு (XC8-1783) நிரல் நினைவகம் கொண்ட சாதனங்களுக்காகத் தொகுக்கப்பட்ட திட்டங்கள், தரவு முகவரி இடத்தில் மேப் செய்யப்பட்டவை மற்றும் PROGMEM மேக்ரோ/பண்புக்கூறைப் பயன்படுத்தி பொருள்களை வரையறுக்கும் அவை தவறான முகவரியிலிருந்து இந்தப் பொருட்களைப் படித்திருக்கலாம்.
பண்புகளுடன் உள்ளகப் பிழை (XC8-1773) நீங்கள் சுட்டி பொருள்களை வரையறுத்தால் அகப் பிழை ஏற்பட்டது
_at () அல்லது பண்புக்கூறு() டோக்கன்கள் சுட்டிக்காட்டி பெயர் மற்றும் dereferenced வகைக்கு இடையில், முன்னாள்ample, char *
_at (0x800150) cp; அத்தகைய குறியீடு ஏற்பட்டால் இப்போது எச்சரிக்கை விடுக்கப்பட்டுள்ளது.
பிரதானத்தை இயக்குவதில் தோல்வி (XC8-1780, XC8-1767, XC8-1754) EEPROM மாறிகளைப் பயன்படுத்துதல் அல்லது config ப்ராக்மாவைப் பயன்படுத்தி உருகிகளை வரையறுத்தல் ஆகியவை முக்கிய ( ) ஐ அடைவதற்கு முன், இயக்க நேர தொடக்கக் குறியீட்டில் தவறான தரவு துவக்கம் மற்றும்/அல்லது நிரல் செயலாக்கத்தை முடக்கியிருக்கலாம்.
சிறிய சாதனங்களில் உருகி பிழை (XC8-1778, XC8-1742) attiny4/5/9/ 10/20/40 சாதனங்கள் அவற்றின் தலைப்பில் குறிப்பிடப்பட்ட தவறான உருகி நீளத்தைக் கொண்டிருந்தன fileஉருகிகளை வரையறுக்கும் குறியீட்டை உருவாக்க முயற்சிக்கும்போது இணைப்பான் பிழைகளுக்கு வழிவகுக்கும்.
பிரிவு தவறு (XC8-1777) ஒரு இடைப்பட்ட பிரிவு பிழை சரி செய்யப்பட்டது.
அசெம்பிளர் விபத்து (XC8-1761) உபுண்டு 18 இன் கீழ் கம்பைலர் இயங்கும் போது avr-as assembler செயலிழந்திருக்கலாம்.
பொருள்கள் அழிக்கப்படவில்லை (XC8-1752) துவக்கப்படாத நிலையான சேமிப்பக காலப் பொருள்கள் இயக்க நேர தொடக்கக் குறியீட்டால் அழிக்கப்படாமல் இருக்கலாம்.
முரண்பட்ட சாதன விவரக்குறிப்பு புறக்கணிக்கப்பட்டது (XC8-1749) பல சாதன விவரக்குறிப்பு விருப்பங்கள் பயன்படுத்தப்பட்டு வெவ்வேறு சாதனங்களைக் குறிக்கும் போது கம்பைலர் பிழையை உருவாக்கவில்லை.
குவியல் மூலம் நினைவக சிதைவு (XC8-1748) தி _heap_start சின்னம் தவறாக அமைக்கப்பட்டது, இதன் விளைவாக சாதாரண மாறிகள் குவியல் மூலம் சிதைக்கப்படும்.
இணைப்பான் இடமாற்றப் பிழை (XC8-1739) குறியீட்டில் rjmp அல்லது rcall சரியாக 4k பைட்டுகள் தொலைவில் இருக்கும் போது, இணைப்பான் இடமாற்றப் பிழை ஏற்பட்டிருக்கலாம்.
5.6 பதிப்பு 2.00
இல்லை.
அறியப்பட்ட சிக்கல்கள்
கம்பைலரின் செயல்பாட்டில் பின்வரும் வரம்புகள் உள்ளன. இவை பொதுவான குறியீட்டு கட்டுப்பாடுகள் அல்லது பயனரின் கையேட்டில் உள்ள தகவலில் இருந்து விலகல்களாக இருக்கலாம். தலைப்பில் உள்ள அடைப்புக்குறியிடப்பட்ட லேபிள்(கள்) கண்காணிப்பு தரவுத்தளத்தில் சிக்கலின் அடையாளமாகும். நீங்கள் ஆதரவைத் தொடர்பு கொள்ள வேண்டியிருந்தால் இது பயனுள்ளதாக இருக்கும். லேபிள்கள் இல்லாத உருப்படிகள் மோடி இயக்கத்தை விவரிக்கும் வரம்புகள் மற்றும் அவை நிரந்தரமாக நடைமுறையில் இருக்கும்.
6.1. MPLAB X IDE ஒருங்கிணைப்பு
MPLAB IDE ஒருங்கிணைப்பு MPLAB IDE இலிருந்து Compiler ஐப் பயன்படுத்த வேண்டும் என்றால், Compiler ஐ நிறுவும் முன் MPLAB IDE ஐ நிறுவ வேண்டும்.
6.2 குறியீடு உருவாக்கம்
Segfault with section-anchors விருப்பத்தேர்வு (XC8-3045) ப்ரோகிராம், இது மாறி வாதப் பட்டியல்களுடன் செயல்பாடுகளை வரையறுக்கிறது மற்றும் -fsection-anchors விருப்பத்தைப் பயன்படுத்தும் ஒரு உள் கம்பைலர் பிழையை தூண்டியிருக்கலாம்: பிரிவு பிழை.
பிழைத்திருத்தத் தகவல் ஒத்திசைவில் இல்லை (XC8-2948) இணைப்பாளர் தளர்வு மேம்படுத்துதல்கள் வழிமுறைகளைச் சுருக்கும் போது (எ.காample call to rcall வழிமுறைகள்), ஒரு பிரிவில் ஒன்றுக்கு மேற்பட்ட சுருக்க செயல்பாடுகள் நிகழும்போது முகவரி மேப்பிங்கிற்கான மூல வரி ஒத்திசைவில் இருக்காது.
கீழே உள்ள முன்னாள்ampமேலும், ஃபூவுக்கு இரண்டு அழைப்புகள் உள்ளன, அவை உறவினர் அழைப்புகளுக்கு நிதானமாக முடிவடைகின்றன.
PA நினைவக ஒதுக்கீடு தோல்வி (XC8-2881) செயல்முறை சுருக்க உகப்பாக்கிகளைப் பயன்படுத்தும் போது, நிரல் கிடைக்கக்கூடிய இடத்திற்குப் பொருந்தக்கூடியதாக இருந்தாலும், குறியீட்டின் அளவு சாதனத்தில் கிடைக்கும் நிரல் நினைவகத்தின் அளவிற்கு நெருக்கமாக இருக்கும்போது நினைவக ஒதுக்கீடு பிழைகளை இணைப்பாளர் புகாரளிக்கலாம்.
அவ்வளவு ஸ்மார்ட்டான Smart-I0 (XC8-2872) const-data-in-progmem அம்சம் முடக்கப்பட்டிருந்தாலோ அல்லது சாதனமானது தரவு நினைவகத்தில் அனைத்து ஃபிளாஷ் மேப் செய்யப்பட்டிருந்தாலோ, கம்பைலரின் ஸ்மார்ட்-io அம்சமானது, snprint f செயல்பாட்டிற்கான சரியான ஆனால் துணை-உகந்த குறியீட்டை உருவாக்கும்.
இன்னும் குறைவான ஸ்மார்ட் Smart-I0 (XC8-2869) -flto மற்றும் -fno-builtin விருப்பங்கள் இரண்டும் பயன்படுத்தப்படும்போது, கம்பைலரின் ஸ்மார்ட்-ஐஓ அம்சமானது செல்லுபடியாகும் ஆனால் துணைசார்ந்த குறியீட்டை உருவாக்கும்.
சப்போப்டிமல் படிக்க-மட்டும் தரவு இடம் (XC8-2849) இணைப்பாளருக்கு தற்போது APPCODE மற்றும் APPDATA நினைவகப் பிரிவுகள் அல்லது நினைவக வரைபடத்தில் [No-Read-While-Write-Write பிரிவுகள் பற்றி தெரியாது. இதன் விளைவாக, இணைப்பாளர் நினைவகத்தின் பொருத்தமற்ற பகுதியில் படிக்க-மட்டும் தரவை ஒதுக்கக்கூடிய ஒரு சிறிய வாய்ப்பு உள்ளது. const-data-in-progmem அம்சம் இயக்கப்பட்டிருந்தால், குறிப்பாக const-data-in-config-mapped-progmem அம்சமும் இயக்கப்பட்டிருந்தால், தவறான தரவுக்கான வாய்ப்பு அதிகரிக்கிறது. தேவைப்பட்டால் இந்த அம்சங்களை முடக்கலாம்.
பொருள் file செயலாக்க வரிசை (XC8-2863) பொருள்கள் உள்ள வரிசை fileகள் இணைப்பாளரால் செயலாக்கப்படும் செயல்முறை சுருக்கம் மேம்படுத்தல்களின் (-mpa விருப்பம்) பயன்பாட்டின் அடிப்படையில் வேறுபடலாம். இது பல தொகுதிகளில் பலவீனமான செயல்பாடுகளை வரையறுக்கும் குறியீட்டை மட்டுமே பாதிக்கும்.
முழுமையான (XC8-2777) உடன் இணைப்பான் பிழை RAM இன் தொடக்கத்தில் ஒரு முகவரியில் ஒரு பொருள் முழுமையானதாக மாற்றப்பட்டு, தொடங்கப்படாத பொருள்களும் வரையறுக்கப்பட்டால், இணைப்பான் பிழை தூண்டப்படலாம்.
குறுகிய விழிப்பு அடையாளங்கள் (XC8-2775) ATA5700/2 சாதனங்களுக்கு, PHIDO/1 பதிவேடுகள் 16 பிட்கள் அகலத்திற்குப் பதிலாக 32 பிட்கள் அகலமாக மட்டுமே வரையறுக்கப்படுகின்றன.
குறியீட்டை அழைக்கும் போது இணைப்பான் செயலிழந்தது (XC8-2758) -cc., –de f sym இணைப்பான் விருப்பத்தைப் பயன்படுத்தி வரையறுக்கப்பட்ட குறியீட்டை மூலக் குறியீடு அழைக்கும் போது -mrelax இயக்கி விருப்பம் பயன்படுத்தப்பட்டால் இணைப்பான் செயலிழக்கக்கூடும்.
தவறான துவக்கம் (XC8-2679) அங்கு சில உலகளாவிய/நிலையான பைட் அளவிலான பொருள்களுக்கான ஆரம்ப மதிப்புகள் தரவு நினைவகத்தில் வைக்கப்படும் இடத்துக்கும், இயக்க நேரத்தில் மாறிகள் அணுகப்படும் இடத்துக்கும் இடையே உள்ள முரண்பாடு.
தவறான மறைமுக செயல்பாடு அழைப்புகள் (XC8-2628) சில சந்தர்ப்பங்களில், ஒரு கட்டமைப்பின் ஒரு பகுதியாக சேமிக்கப்பட்ட செயல்பாடு சுட்டிக்காட்டி வழியாக செய்யப்படும் செயல்பாட்டு அழைப்புகள் தோல்வியடையக்கூடும்.
ஹெக்ஸாடெசிமல் ஃப்ளோட்களுக்கு strtof பூஜ்ஜியத்தை வழங்குகிறது (XC8-2626) நூலக செயல்பாடுகளான strtof et al மற்றும் scanf ( ) et al, எப்பொழுதும் ஒரு ஹெக்ஸாடெசிமல் மிதக்கும் புள்ளி எண்ணை பூஜ்ஜியமாகக் குறிப்பிடாது. உதாரணமாகampலெ:
strtof ("Oxl", &endptr) ;
மதிப்பு 0 ஐ வழங்கும், I அல்ல.
துல்லியமற்ற அடுக்கு ஆலோசகர் செய்தி அனுப்புதல் (XC8-2542, XC8-2541) சில சந்தர்ப்பங்களில், பயன்படுத்தப்படும் மறுநிகழ்வு அல்லது காலவரையறையற்ற அடுக்கு (ஒருவேளை alloca() ஐப் பயன்படுத்துவதன் மூலம்) பற்றிய ஸ்டாக் ஆலோசகர் எச்சரிக்கை வெளியிடப்படுவதில்லை.
நகல் குறுக்கீடு குறியீட்டில் தோல்வி (XC8-2421) ஒன்றுக்கு மேற்பட்ட குறுக்கீடு செயல்பாடுகள் ஒரே உடலைக் கொண்டிருக்கும்போது, ஒரு குறுக்கீடு செயல்பாடு மற்றொன்றை அழைப்பதற்கான வெளியீட்டை கம்பைலர் கொண்டிருக்கலாம். இது அனைத்து அழைப்பு-குளோபர் பதிவுகளும் தேவையில்லாமல் சேமிக்கப்படும், மேலும் தற்போதைய குறுக்கீடு கையாளுபவரின் எபிலோக் இயங்குவதற்கு முன்பே குறுக்கீடுகள் இயக்கப்படும், இது குறியீடு தோல்விக்கு வழிவகுக்கும்.
தவறான DFP பாதையுடன் மோசமான வெளியீடு (XC8-2376) கம்பைலர் தவறான DFP பாதை மற்றும் 'ஸ்பெக்' மூலம் செயல்படுத்தப்பட்டால் file தேர்ந்தெடுக்கப்பட்ட சாதனத்தில் உள்ளது, தொகுப்பி காணாமல் போன சாதன குடும்பப் பொதியைப் புகாரளிக்கவில்லை, அதற்குப் பதிலாக 'ஸ்பெக்' என்பதைத் தேர்ந்தெடுக்கிறது file, இது தவறான வெளியீட்டிற்கு வழிவகுக்கும். 'ஸ்பெக்' fileகள் விநியோகிக்கப்பட்ட DFPகளுடன் புதுப்பித்த நிலையில் இல்லாமல் இருக்கலாம் மற்றும் உள் கம்பைலர் சோதனையுடன் மட்டுமே பயன்படுத்த வேண்டும்.
நினைவகம் ஒன்றுடன் ஒன்று கண்டறியப்படவில்லை (XC8-1966) ஒரு முகவரியில் (_at ( ) வழியாக) மற்றும் அதே முகவரியுடன் இணைக்கப்பட்டுள்ள பிரிவு ( ) குறிப்பினைப் பயன்படுத்தி மற்ற பொருள்களின் முழுமையான நினைவக மேலெழுதலை கம்பைலர் கண்டறியவில்லை.
நூலக செயல்பாடுகளில் தோல்வி மற்றும் _memx (XC8-1763) memx முகவரி இடத்தில் வாதத்துடன் கூடிய libgcc float செயல்பாடுகள் தோல்வியடையக்கூடும். சில C ஆபரேட்டர்களிடமிருந்து நூலக நடைமுறைகள் அழைக்கப்படுகின்றன என்பதை நினைவில் கொள்கample, பின்வரும் குறியீடு பாதிக்கப்படுகிறது:
திரும்ப regFloatVar > memxFloatVar;
வரையறுக்கப்பட்ட libgcc செயல்படுத்தல் (AVRTC-731) ATTiny4/5/9/10/20/40 தயாரிப்புகளுக்கு, libgcc இல் நிலையான C / Math நூலக செயலாக்கம் மிகவும் குறைவாக உள்ளது அல்லது இல்லை.
நிரல் நினைவக வரம்புகள் (AVRTC-732) 128 kbக்கு அப்பால் உள்ள நிரல் நினைவகப் படங்கள் டூல்செயினால் ஆதரிக்கப்படுகின்றன; எவ்வாறாயினும், -mre lax விருப்பத்தைப் பயன்படுத்தும் போது, தேவையான செயல்பாடு ஸ்டப்களை உருவாக்குவதற்குப் பதிலாக, தளர்வு இல்லாமல் மற்றும் பயனுள்ள பிழைச் செய்தி இல்லாமல் இணைப்பான் செயலிழக்கும் நிகழ்வுகள் உள்ளன.
பெயர் இட வரம்புகள் (AVRTC-733) பெயரிடப்பட்ட முகவரி இடைவெளிகள், பயனர் வழிகாட்டி பிரிவில் குறிப்பிடப்பட்டுள்ள வரம்புகளுக்கு உட்பட்டு, டூல்செயினால் ஆதரிக்கப்படும் சிறப்பு வகை தகுதிகள்.
நேர மண்டலங்கள் தி நூலகச் செயல்பாடுகள் GMT எனக் கருதி, உள்ளூர் நேர மண்டலங்களை ஆதரிக்காது, எனவே உள்ளூர் நேரம் ( ) gmtime ( ) க்கு அதே நேரத்தை வழங்கும் , எடுத்துக்காட்டாகampலெ.
file///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm
ஆவணங்கள் / ஆதாரங்கள்
![]() |
மைக்ரோசிப் MPLAB XC8 C கம்பைலர் டெவலப்மெண்ட் மென்பொருள் [pdf] உரிமையாளரின் கையேடு MPLAB XC8 C, MPLAB XC8 C Compiler Development Software, Compiler Development Software, Development Software, Software |




