ਮਾਈਕ੍ਰੋਚਿਪ - ਲੋਗੋAVR MCU ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 ਰੀਲੀਜ਼ ਨੋਟਸ
ਯੂਜ਼ਰ ਗਾਈਡ

ਮਾਈਕ੍ਰੋਚਿੱਪ AVR ਡਿਵਾਈਸਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਵੇਲੇ ਇਸ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ MPLAB XC8 C ਕੰਪਾਈਲਰ ਨਾਲ ਸਬੰਧਤ ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਸੌਫਟਵੇਅਰ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਪੜ੍ਹੋ।
ਜੇਕਰ ਤੁਸੀਂ 8-ਬਿੱਟ ਤਸਵੀਰ ਡਿਵਾਈਸਾਂ ਲਈ ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ ਤਾਂ PIC ਦਸਤਾਵੇਜ਼ ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਨੋਟਸ ਦੇਖੋ।

ਵੱਧview

1.1. ਜਾਣ-ਪਛਾਣ
ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB® XC8 C ਕੰਪਾਈਲਰ ਦਾ ਇਹ ਰੀਲੀਜ਼ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਕੰਪਾਈਲਰ ਹੈ, ਜੋ ਕਿ ਇਸ ਕੰਪਾਈਲਰ ਦੇ v2.36 ਰੀਲੀਜ਼ 'ਤੇ ਅਧਾਰਤ ਹੈ ਅਤੇ ਜੋ ਹੁਣ ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਇਸੈਂਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
1.2 ਰਿਹਾਈ ਤਾਰੀਖ
ਇਸ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਦੀ ਅਧਿਕਾਰਤ ਰੀਲੀਜ਼ ਮਿਤੀ 27 ਜਨਵਰੀ 2022 ਹੈ।
1.3 ਪਿਛਲਾ ਸੰਸਕਰਣ
ਪਿਛਲਾ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.36 ਸੀ, 25 ਜਨਵਰੀ 2022 ਨੂੰ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਸੀ।
1.4 ਕਾਰਜਾਤਮਕ ਸੁਰੱਖਿਆ ਮੈਨੂਅਲ
MPLAB XC ਕੰਪਾਈਲਰਾਂ ਲਈ ਇੱਕ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਮੈਨੂਅਲ ਦਸਤਾਵੇਜ਼ ਪੈਕੇਜ ਵਿੱਚ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਲਾਇਸੈਂਸ ਖਰੀਦਦੇ ਹੋ।
1.5 ਕੰਪੋਨੈਂਟ ਲਾਇਸੈਂਸ ਅਤੇ ਸੰਸਕਰਣ® ਉਹ MPLAB
AVR MCUs ਟੂਲਸ ਲਈ 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. ਵਿੰਡੋਜ਼ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। ਮੈਕੋਸ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਅਤੇ ਨੋਟਰਾਈਜ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।
ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਚਲਾ ਰਹੇ ਹੋ, ਤਾਂ ਲਾਇਸੈਂਸ ਸਰਵਰ ਦੀ ਮੇਜ਼ਬਾਨੀ ਕਰਨ ਲਈ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਸਮਰਥਿਤ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਵਾਲੇ ਕੰਪਿਊਟਰ ਹੀ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ। xclm ਸੰਸਕਰਣ 2.0 ਦੇ ਅਨੁਸਾਰ, ਨੈਟਵਰਕ ਲਾਈਸੈਂਸ ਸਰਵਰ ਨੂੰ ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਿੰਡੋਜ਼ ਸਰਵਰ ਪਲੇਟਫਾਰਮ 'ਤੇ ਸਥਾਪਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਲਾਇਸੈਂਸ ਸਰਵਰ ਨੂੰ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਸਰਵਰ ਸੰਸਕਰਣ 'ਤੇ ਚਲਾਉਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ।
1.7 ਡਿਵਾਈਸਾਂ ਸਮਰਥਿਤ ਹਨ
ਇਹ ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਦੇ ਸਮੇਂ ਜਾਣੇ ਜਾਂਦੇ ਸਾਰੇ 8-ਬਿੱਟ AVR MCU ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਵੇਖੋ (ਕੰਪਾਈਲਰ ਦੇ ਵਿੱਚ avr_chipinfo.html ਡਾਇਰੈਕਟਰੀ) ਸਾਰੇ ਸਮਰਥਿਤ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਲਈ। ਇਹ ਫਾਈਲਾਂ ਹਰੇਕ ਡਿਵਾਈਸ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਿੱਟ ਡੌਕ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਸੂਚੀਬੱਧ ਕਰਦੀਆਂ ਹਨ।
1.8 ਐਡੀਸ਼ਨ ਅਤੇ ਲਾਇਸੰਸ ਅੱਪਗਰੇਡ
MPLAB XC8 ਕੰਪਾਈਲਰ ਨੂੰ ਇੱਕ ਲਾਇਸੰਸਸ਼ੁਦਾ (PRO) ਜਾਂ ਬਿਨਾਂ ਲਾਇਸੈਂਸ (ਮੁਫ਼ਤ) ਉਤਪਾਦ ਵਜੋਂ ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਆਪਣੇ ਕੰਪਾਈਲਰ ਨੂੰ ਲਾਇਸੈਂਸ ਦੇਣ ਲਈ ਇੱਕ ਐਕਟੀਵੇਸ਼ਨ ਕੁੰਜੀ ਖਰੀਦਣ ਦੀ ਲੋੜ ਹੈ। ਇੱਕ ਲਾਇਸੰਸ ਮੁਫਤ ਉਤਪਾਦ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਉੱਚ ਪੱਧਰ ਦੇ ਅਨੁਕੂਲਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਵਾਲੇ ਕੰਪਾਈਲਰ ਨੂੰ ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਦੇ ਅਣਮਿੱਥੇ ਸਮੇਂ ਲਈ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇੱਕ MPLAB XC8 ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਨੂੰ ਮਾਈਕ੍ਰੋਚਿੱਪ ਤੋਂ ਖਰੀਦੇ ਗਏ ਇੱਕ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਲਾਇਸੈਂਸ ਨਾਲ ਐਕਟੀਵੇਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਕੰਪਾਈਲਰ ਇਸ ਲਾਇਸੈਂਸ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ। ਇੱਕ ਵਾਰ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਅਨੁਕੂਲਨ ਪੱਧਰ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸਾਰੀਆਂ ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। MPLAB XC ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਦੀ ਇਹ ਰਿਲੀਜ਼
ਕੰਪਾਈਲਰ ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਇਸੈਂਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
ਲਾਇਸੈਂਸ ਦੀਆਂ ਕਿਸਮਾਂ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇ ਨਾਲ ਕੰਪਾਈਲਰ ਦੀ ਸਥਾਪਨਾ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ MPLAB XC C ਕੰਪਾਈਲਰ (DS50002059) ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇਣਾ ਦਸਤਾਵੇਜ਼ ਦੇਖੋ।
1.9. ਇੰਸਟਾਲੇਸ਼ਨ ਅਤੇ ਸਰਗਰਮੀ
ਇਸ ਕੰਪਾਈਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਨਵੀਨਤਮ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਬਾਰੇ ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ ਮਾਈਗ੍ਰੇਸ਼ਨ ਮੁੱਦੇ ਅਤੇ ਸੀਮਾਵਾਂ ਸੈਕਸ਼ਨ ਵੀ ਦੇਖੋ।
ਜੇਕਰ MPLAB IDE ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਇਸ ਟੂਲ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨਵੀਨਤਮ MPLAB X IDE ਸੰਸਕਰਣ 5.0 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਦੇ ਸੰਸਕਰਣ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਓ। ਕੰਪਾਈਲਰ ਸਥਾਪਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ IDE ਨੂੰ ਛੱਡ ਦਿਓ। (Windows), (Linux) ਜਾਂ (macOS) .exe .run .app ਕੰਪਾਈਲਰ ਇੰਸਟਾਲਰ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ, ਉਦਾਹਰਨ ਲਈ ਅਤੇ ਸਕ੍ਰੀਨ 'ਤੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ।
XC8-1.00.11403-windows.exe
ਡਿਫਾਲਟ ਇੰਸਟਾਲੇਸ਼ਨ ਡਾਇਰੈਕਟਰੀ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਲੀਨਕਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੰਪਾਈਲਰ ਨੂੰ ਟਰਮੀਨਲ ਅਤੇ ਰੂਟ ਖਾਤੇ ਤੋਂ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰਸ਼ਾਸਕ ਦੇ ਅਧਿਕਾਰਾਂ ਦੇ ਨਾਲ ਇੱਕ macOS ਖਾਤੇ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਥਾਪਿਤ ਕਰੋ।
ਸਰਗਰਮੀ ਹੁਣ ਇੰਸਟਾਲੇਸ਼ਨ ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ MPLAB® XC C ਕੰਪਾਈਲਰ (DS52059) ਲਈ ਦਸਤਾਵੇਜ਼ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਦੇਖੋ।
ਜੇਕਰ ਤੁਸੀਂ ਮੁਲਾਂਕਣ ਲਾਇਸੰਸ ਦੇ ਤਹਿਤ ਕੰਪਾਈਲਰ ਚਲਾਉਣ ਦੀ ਚੋਣ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਹੁਣ ਸੰਕਲਨ ਦੇ ਦੌਰਾਨ ਇੱਕ ਚੇਤਾਵਨੀ ਮਿਲੇਗੀ ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੀ ਮੁਲਾਂਕਣ ਦੀ ਮਿਆਦ ਦੇ ਅੰਤ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋਵੋਗੇ। ਇਹੀ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ HPA ਗਾਹਕੀ ਦੇ ਖਤਮ ਹੋਣ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋ।
XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਇੱਕ ਵੱਖਰਾ ਇੰਸਟਾਲਰ ਹੈ ਅਤੇ ਸਿੰਗਲ-ਯੂਜ਼ਰ ਕੰਪਾਈਲਰ ਇੰਸਟੌਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ।
ਐਕਸਸੀ ਲਾਈਸੈਂਸ ਮੈਨੇਜਰ ਹੁਣ ਫਲੋਟਿੰਗ ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸਾਂ ਦੀ ਰੋਮਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਮੋਬਾਈਲ ਉਪਭੋਗਤਾਵਾਂ ਦੇ ਉਦੇਸ਼ ਨਾਲ, ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਇੱਕ ਫਲੋਟਿੰਗ ਲਾਇਸੈਂਸ ਨੂੰ ਥੋੜੇ ਸਮੇਂ ਲਈ ਨੈਟਵਰਕ ਤੋਂ ਬਾਹਰ ਜਾਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਨੈੱਟਵਰਕ ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਫਿਰ ਵੀ ਆਪਣੇ MPLAB XC ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ XCLM ਇੰਸਟਾਲ ਦਾ ਡੌਕ ਫੋਲਡਰ ਦੇਖੋ।
MPLAB X IDE ਵਿੱਚ ਰੋਮਿੰਗ ਨੂੰ ਦ੍ਰਿਸ਼ਟੀਗਤ ਰੂਪ ਵਿੱਚ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਇੱਕ ਲਾਇਸੈਂਸ ਵਿੰਡੋ (ਟੂਲਜ਼ > ਲਾਇਸੈਂਸ) ਸ਼ਾਮਲ ਹੈ।

1.9.1. ਇੰਸਟਾਲੇਸ਼ਨ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਵਿੰਡੋਜ਼ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਅਧੀਨ ਕੰਪਾਈਲਰ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਵਿੱਚ ਮੁਸ਼ਕਲਾਂ ਦਾ ਅਨੁਭਵ ਕਰਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸੁਝਾਵਾਂ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।

  • ਇੱਕ ਪ੍ਰਬੰਧਕ ਦੇ ਤੌਰ ਤੇ ਇੰਸਟਾਲ ਚਲਾਓ.
  • ਇੰਸਟਾਲਰ ਐਪਲੀਕੇਸ਼ਨ ਦੀਆਂ ਅਨੁਮਤੀਆਂ ਨੂੰ 'ਪੂਰਾ ਕੰਟਰੋਲ' 'ਤੇ ਸੈੱਟ ਕਰੋ। (ਫਾਈਲ 'ਤੇ ਸੱਜਾ-ਕਲਿਕ ਕਰੋ, ਵਿਸ਼ੇਸ਼ਤਾ ਚੁਣੋ, ਸੁਰੱਖਿਆ ਟੈਬ, ਉਪਭੋਗਤਾ ਚੁਣੋ, ਸੰਪਾਦਨ ਕਰੋ।)
  • ਟੈਂਪ ਫੋਲਡਰ ਦੀਆਂ ਅਨੁਮਤੀਆਂ ਨੂੰ "ਪੂਰਾ ਨਿਯੰਤਰਣ" ਤੇ ਸੈਟ ਕਰੋ!
  • ਟੈਂਪ ਫੋਲਡਰ ਦੀ ਸਥਿਤੀ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, ਰਨ ਕਮਾਂਡ (ਵਿੰਡੋਜ਼ ਲੋਗੋ ਕੁੰਜੀ + ਆਰ) ਵਿੱਚ ਟਾਈਪ ਕਰੋ। %temp% ਇਹ ਇੱਕ ਫਾਈਲ ਐਕਸਪਲੋਰਰ ਡਾਇਲਾਗ ਖੋਲ੍ਹੇਗਾ ਜੋ ਉਸ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਅਤੇ ਤੁਹਾਨੂੰ ਉਸ ਫੋਲਡਰ ਦਾ ਮਾਰਗ ਨਿਰਧਾਰਤ ਕਰਨ ਦੇਵੇਗਾ।

1.10 ਕੰਪਾਈਲਰ ਦਸਤਾਵੇਜ਼ੀ

MICROCHIP MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ - ਦਸਤਾਵੇਜ਼ਕੰਪਾਈਲਰ ਦੇ ਉਪਭੋਗਤਾ ਦੀਆਂ ਗਾਈਡਾਂ ਨੂੰ HTML ਪੰਨੇ ਤੋਂ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ ਜਦੋਂ MPLAB X IDE ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਨੀਲੇ ਹੈਲਪ ਬਟਨ ਨੂੰ ਕਲਿੱਕ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਸਕ੍ਰੀਨਸ਼ੌਟ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ 8-ਬਿੱਟ AVR ਟੀਚਿਆਂ ਲਈ ਬਣਾ ਰਹੇ ਹੋ, ਤਾਂ MPLAB® XC8 C ਕੰਪਾਈਲਰ ਯੂਜ਼ਰਸ® ਗਾਈਡ AVR ਲਈ
MCU ਵਿੱਚ ਉਹਨਾਂ ਕੰਪਾਈਲਰ ਵਿਕਲਪਾਂ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੈ ਜੋ ਇਸ ਆਰਕੀਟੈਕਚਰ 'ਤੇ ਲਾਗੂ ਹਨ।

1.11. ਗਾਹਕ ਸਹਾਇਤਾ
ਮਾਈਕ੍ਰੋਚਿੱਪ ਇਸ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਦੇ ਸੰਬੰਧ ਵਿੱਚ ਬੱਗ ਰਿਪੋਰਟਾਂ, ਸੁਝਾਵਾਂ ਜਾਂ ਟਿੱਪਣੀਆਂ ਦਾ ਸੁਆਗਤ ਕਰਦੀ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਕਿਸੇ ਵੀ ਬੱਗ ਰਿਪੋਰਟਾਂ ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ ਬੇਨਤੀਆਂ ਨੂੰ ਸਪੋਰਟ ਸਿਸਟਮ ਰਾਹੀਂ ਨਿਰਦੇਸ਼ਿਤ ਕਰੋ।

ਦਸਤਾਵੇਜ਼ੀ ਅੱਪਡੇਟ

MPLAB XC8 ਦਸਤਾਵੇਜ਼ਾਂ ਦੇ ਆਨ-ਲਾਈਨ ਅਤੇ ਅੱਪ-ਟੂ-ਡੇਟ ਸੰਸਕਰਣਾਂ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਮਾਈਕ੍ਰੋਚਿੱਪ ਦੇ ਔਨਲਾਈਨ 'ਤੇ ਜਾਓ
ਤਕਨੀਕੀ ਦਸਤਾਵੇਜ਼ webਸਾਈਟ.
ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਨਵੇਂ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤੇ AVR ਦਸਤਾਵੇਜ਼:
MPLAB® XC C ਕੰਪਾਈਲਰ (DS50002059) ਸੰਸ਼ੋਧਨ L ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇਣਾ
ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਰੈਫਰੈਂਸ ਗਾਈਡ ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਫੰਕਸ਼ਨਾਂ ਦੇ ਵਿਵਹਾਰ ਅਤੇ ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ-ਨਾਲ ਲਾਇਬ੍ਰੇਰੀ ਕਿਸਮਾਂ ਅਤੇ ਮੈਕਰੋਜ਼ ਦੀ ਉਦੇਸ਼ਿਤ ਵਰਤੋਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਇਸ ਵਿੱਚੋਂ ਕੁਝ ਜਾਣਕਾਰੀ ਪਹਿਲਾਂ AVR ਲਈ MPLA® XC8 C ਕੰਪਾਈਲਰ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ® ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ।
MCU. ਡਿਵਾਈਸ-ਵਿਸ਼ੇਸ਼ ਲਾਇਬ੍ਰੇਰੀ ਜਾਣਕਾਰੀ ਅਜੇ ਵੀ ਇਸ ਕੰਪਾਈਲਰ ਗਾਈਡ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ।
ਹੈਕਸਮੇਟ ਯੂਜ਼ਰਸ ਗਾਈਡ ਨੂੰ ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਗਾਈਡ ਉਹਨਾਂ ਦਸਤਾਵੇਜ਼ਾਂ ਲਈ ਹੈ ਜੋ ਹੈਕਸਮੇਟ ਨੂੰ ਸਟੈਂਡ-ਅਲੋਨ ਐਪਲੀਕੇਸ਼ਨ ਵਜੋਂ ਚਲਾ ਰਹੇ ਹਨ।
ਨਿਮਨਲਿਖਤ ਭਾਗ ਕੰਪਾਈਲਰ ਨਾਲ ਭੇਜੇ ਗਏ ਉਪਭੋਗਤਾ ਦੀਆਂ ਗਾਈਡਾਂ ਵਿੱਚ ਪਾਏ ਗਏ ਸੁਧਾਰਾਂ ਅਤੇ ਵਾਧੂ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।

2.1 ਸਮਾਰਟ-ਆਈਓ-ਫਾਰਮੈਟ ਵਿਕਲਪ
The-msmart-io-format=fmt fmt ਵਿਕਲਪ, ਜਿੱਥੇ ਫਾਰਮੈਟ ਕੀਤੇ IO ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਨ ਵਾਲੀ ਇੱਕ ਸਤਰ ਹੈ, ਕੰਪਾਈਲਰ ਨੂੰ ਸੂਚਿਤ ਕਰਦੀ ਹੈ ਕਿ ਸੂਚੀਬੱਧ ਨਿਰਧਾਰਨ ਸਮਾਰਟ IO ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।
ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਣ ਲਈ, ਕੰਪਾਈਲਰ ਸਮਾਰਟ IO ਫੰਕਸ਼ਨਾਂ ਦੇ ਪ੍ਰਿੰਟ ਅਤੇ ਸਕੈਨ ਫੈਮਿਲੀ ਨਾਲ ਜੁੜੇ ਲਾਇਬ੍ਰੇਰੀ ਕੋਡ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਦਾ ਹੈ, ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਲਈ ਸਾਰੀਆਂ ਕਾਲਾਂ ਵਿੱਚ ਇਕੱਠੇ ਕੀਤੇ ਫਾਰਮੈਟ ਸਤਰ ਵਿੱਚ ਮੌਜੂਦ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਨ ਦੇ ਅਧਾਰ ਤੇ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਆਟੋਮੈਟਿਕ ਹੈ ਅਤੇ ਇਸਨੂੰ ਅਯੋਗ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਕੰਪਾਈਲਰ ਫਾਰਮੈਟ ਕੀਤੇ IO ਫੰਕਸ਼ਨ ਕਾਲ ਤੋਂ ਵਰਤੋਂ ਜਾਣਕਾਰੀ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ ਹੁੰਦਾ ਹੈ। ਜੇਕਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਲਈ ਲੋੜੀਂਦੇ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਨ ਸਤਰ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ; ਨਹੀਂ ਤਾਂ, ਕੰਪਾਈਲਰ ਇਸ ਬਾਰੇ ਕੋਈ ਧਾਰਨਾ ਨਹੀਂ ਬਣਾਉਂਦਾ ਕਿ -msmart-io-format=fmt fmt ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਪੂਰੀ ਤਰ੍ਹਾਂ ਫੰਕਸ਼ਨਲ ਫਾਰਮੈਟ ਕੀਤੇ IO ਫੰਕਸ਼ਨ ਫਾਈਨਲ ਪ੍ਰੋਗਰਾਮ ਚਿੱਤਰ ਨਾਲ ਜੁੜੇ ਹੋਏ ਹਨ।
ਸਾਬਕਾ ਲਈample, ਸਮਾਰਟ IO ਫੰਕਸ਼ਨਾਂ ਲਈ ਹੇਠ ਲਿਖੀਆਂ ਕਾਲਾਂ 'ਤੇ ਵਿਚਾਰ ਕਰੋ।

vscanf(“%d:%li”, va_list1);
vprintf(“%-s%d”, va_list2);
vprintf(fmt1, va_list3);// ਅਸਪਸ਼ਟ ਵਰਤੋਂ
vscanf(fmt2, va_list4);// ਅਸਪਸ਼ਟ ਵਰਤੋਂ

ਆਖਰੀ ਦੋ ਕਾਲਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਦੇ ਸਮੇਂ, ਕੰਪਾਈਲਰ ਕਿਸੇ ਵੀ ਵਰਤੋਂ ਜਾਣਕਾਰੀ ਨੂੰ ਜਾਂ ਤਾਂ ਫਾਰਮੈਟ ਸਟ੍ਰਿੰਗਾਂ ਜਾਂ ਆਰਗੂਮੈਂਟਾਂ ਤੋਂ ਨਹੀਂ ਕੱਢ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਸਥਿਤੀਆਂ ਵਿੱਚ, -msmart-io-ਫਾਰਮੈਟ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਅਤੇ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਵਧੇਰੇ ਅਨੁਕੂਲ ਫਾਰਮੈਟ ਕੀਤੇ I0 ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਉਤਪੰਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਵੇਗੀ, ਇਸ ਤਰ੍ਹਾਂ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕੋਡ ਆਕਾਰ ਨੂੰ ਘਟਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample, ਜੇਕਰ fmtl ਅਤੇ fmt2 ਦੁਆਰਾ ਸੰਕੇਤ ਕੀਤੇ ਫਾਰਮੈਟ ਸਤਰ ਸਮੂਹਿਕ ਤੌਰ 'ਤੇ ਸਿਰਫ "%d", "%i" ਅਤੇ "%s" ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, -msmart-io-format=fmt="%d%i%s ” ਵਿਕਲਪ ਜਾਰੀ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।

ਟਿੰਟ ਸਤਰ ਵਿੱਚ ਕੋਈ ਵੀ ਵੈਧ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਨ ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਫਲੈਗ ਅਤੇ ਮੋਡੀਫਾਇਰ (ਸਾਬਕਾ ਲਈample “%-13. 91s"), ਅਤੇ ਉਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਉਹਨਾਂ ਨੂੰ ਦਰਸਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਅਸਪਸ਼ਟ ਹੈ। ਵਿੱਚ ਇੱਕ ਨਿਰਧਾਰਨ ਸ਼ਾਮਲ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ ਬਿੱਟ ਆਰਗੂਮੈਂਟ ਜਿੱਥੇ ਇਹ ਫਾਰਮੈਟ ਕੀਤੇ I0 ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੀ ਗਈ ਹੈ, ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕੋਡ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।
ਜੇਕਰ fmt ਇੱਕ ਖਾਲੀ ਸਤਰ ਹੈ ਜਾਂ ਇਸ ਵਿੱਚ ਕੋਈ ਸਮਝਦਾਰ ਪਰਿਵਰਤਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨਹੀਂ ਹਨ, ਤਾਂ ਇੱਕ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਵੇਗੀ ਅਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਫੰਕਸ਼ਨਲ ਫਾਰਮੈਟ ਕੀਤੇ I0 ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਅੰਤਿਮ ਪ੍ਰੋਗਰਾਮ ਚਿੱਤਰ ਨਾਲ ਜੋੜਿਆ ਜਾਵੇਗਾ।
ਇਹ ਚੋਣ ਕਮਾਂਡ ਲਾਈਨ 'ਤੇ ਕਈ ਵਾਰ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਹਰੇਕ ਵਿਕਲਪ ਦੇ ਨਾਲ ਵਰਤੇ ਗਏ ਪਰਿਵਰਤਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਇਕੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

2.2 omit-frame-pointer ਵਿਕਲਪ
- f ਓਮਿਟ-ਫ੍ਰੇਮ-ਪੁਆਇੰਟਰ ਵਿਕਲਪ ਕੰਪਾਈਲਰ ਨੂੰ ਸਟੈਕ 'ਤੇ ਵਸਤੂਆਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਲਈ ਸਟੈਕ ਪੁਆਇੰਟਰ ਦੀ ਸਿੱਧੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਨਿਰਦੇਸ਼ ਦਿੰਦਾ ਹੈ ਅਤੇ, ਜੇ ਸੰਭਵ ਹੋਵੇ, ਤਾਂ ਕੋਡ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ ਜੋ ਫਰੇਮ ਰਜਿਸਟਰ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਦਾ ਹੈ, ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਅਤੇ ਰੀਸਟੋਰ ਕਰਦਾ ਹੈ। ਇਹ ਸਾਰੇ ਗੈਰ-ਜ਼ੀਰੋ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਪੱਧਰਾਂ 'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ 'ਤੇ ਸਮਰੱਥ ਹੈ।
ਵਿਕਲਪ ਨੂੰ ਨਕਾਰਨਾ, -fno-omit-frame-pointer ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਅਨੁਕੂਲਿਤ ਕੋਡ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰ ਸਕਦਾ ਹੈ; ਹਾਲਾਂਕਿ, ਇਹ ਚੋਣ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦੀ ਹੈ ਕਿ ਫਰੇਮ ਪੁਆਇੰਟਰ ਹਮੇਸ਼ਾ ਵਰਤਿਆ ਜਾਵੇਗਾ।

2.3 ਅਨਰੋਲ-ਲੂਪਸ ਵਿਕਲਪ
- ਫਨਰੋਲ ਆਈ-ਲੂਪਸ ਅਤੇ -(ਅਨਰੋਲ-ਆਲ-ਲੂਪਸ ਵਿਕਲਪ ਸਪੀਡ-ਓਰੀਐਂਟਿਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੇ ਹਨ ਜੋ ਲੂਪਸ ਵਿੱਚ ਬ੍ਰਾਂਚਿੰਗ ਦੇਰੀ ਨੂੰ ਹਟਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ। ਅਨਰੋਲ ਕੀਤੇ ਲੂਪਸ ਆਮ ਤੌਰ 'ਤੇ ਵੱਡੇ ਕੋਡ ਆਕਾਰ ਦੀ ਕੀਮਤ 'ਤੇ, ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਦੀ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ।
– ਫਨਰੋਲ ਆਈ-ਲੂਪਸ ਵਿਕਲਪ ਲੂਪਸ ਨੂੰ ਅਨਰੋਲ ਕਰਦਾ ਹੈ ਜਿੱਥੇ ਦੁਹਰਾਓ ਦੀ ਸੰਖਿਆ ਕੰਪਾਈਲ ਸਮੇਂ ਜਾਂ ਜਦੋਂ ਕੋਡ ਲੂਪ ਵਿੱਚ ਦਾਖਲ ਹੁੰਦਾ ਹੈ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। -ਫਨਰੋਲ-ਆਲ-ਲੂਪਸ ਵਿਕਲਪ ਵਧੇਰੇ ਹਮਲਾਵਰ ਹੈ, ਸਾਰੇ ਲੂਪਸ ਨੂੰ ਅਨਰੋਲ ਕਰਦਾ ਹੈ, ਭਾਵੇਂ ਦੁਹਰਾਓ ਦੀ ਗਿਣਤੀ ਅਣਜਾਣ ਹੋਵੇ। ਇਹ ਆਮ ਤੌਰ 'ਤੇ - ਫਨਰੋਲ 1-ਲੂਪਸ ਵਿਕਲਪ ਨਾਲੋਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਘੱਟ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੁੰਦਾ ਹੈ।

2.4 fat-Ito-ਆਬਜੈਕਟ ਵਿਕਲਪ
– f fat-1 to-obj ects ਵਿਕਲਪ ਬੇਨਤੀ ਕਰਦਾ ਹੈ ਕਿ ਕੰਪਾਈਲਰ ਫੈਟ ਆਬਜੈਕਟ ਤਿਆਰ ਕਰੇ files, ਜਿਸ ਵਿੱਚ ਦੋਵੇਂ ਸ਼ਾਮਲ ਹਨ
ਆਬਜੈਕਟ ਕੋਡ ਅਤੇ GIMPLE (GCC ਦੇ ਅੰਦਰੂਨੀ ਪ੍ਰਤੀਨਿਧੀਆਂ ਵਿੱਚੋਂ ਇੱਕ), ਵਿਲੱਖਣ ELF ਭਾਗਾਂ ਨੂੰ ਲਿਖਿਆ ਗਿਆ ਹੈ। ਅਜਿਹੀਆਂ ਵਸਤੂਆਂ files ਲਾਇਬ੍ਰੇਰੀ ਕੋਡ ਲਈ ਲਾਭਦਾਇਕ ਹਨ ਜੋ ਉਹਨਾਂ ਪ੍ਰੋਜੈਕਟਾਂ ਨਾਲ ਲਿੰਕ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ਜੋ -flto ਵਿਕਲਪ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਸਟੈਂਡਰਡ ਲਿੰਕ-ਟਾਈਮ ਆਪਟੀਮਾਈਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਅਤੇ ਨਹੀਂ ਕਰਦੇ ਹਨ।
ਇਸ ਵਿਕਲਪ ਦਾ – fno-fat-lto-objects ਫਾਰਮ, ਜੋ ਕਿ ਡਿਫਾਲਟ ਹੈ ਜੇਕਰ ਕੋਈ ਵਿਕਲਪ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਆਬਜੈਕਟ ਵਿੱਚ ਆਬਜੈਕਟ ਕੋਡ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਨੂੰ ਦਬਾ ਦਿੰਦਾ ਹੈ files, ਨਤੀਜੇ ਵਜੋਂ ਤੇਜ਼ੀ ਨਾਲ ਬਣਦੇ ਹਨ। ਹਾਲਾਂਕਿ, ਅਜਿਹੀ ਵਸਤੂ files ਨੂੰ ਹਮੇਸ਼ਾ ਸਟੈਂਡਰਡ ਲਿੰਕ-ਟਾਈਮ ਆਪਟੀਮਾਈਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਿੰਕ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।

2.5 Ito-ਪਾਰਟੀਸ਼ਨ ਵਿਕਲਪ
- ਫਲੋ-ਪਾਰਟੀ on=a Igo ri thm ਵਿਕਲਪ ਆਬਜੈਕਟ ਨੂੰ ਵੰਡਣ ਲਈ ਵਰਤੇ ਗਏ ਐਲਗੋਰਿਦਮ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ files ਜਦੋਂ ਲਿੰਕ-ਟਾਈਮ ਆਪਟੀਮਾਈਜ਼ਰ ਚਲਾ ਰਹੇ ਹੋ। ਆਰਗੂਮੈਂਟ ਕੋਈ ਵੀ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਿਭਾਜਨ ਨੂੰ ਅਯੋਗ ਨਹੀਂ ਕਰਦਾ ਹੈ ਅਤੇ ਪੂਰੇ ਪ੍ਰੋਗਰਾਮ ਵਿਸ਼ਲੇਸ਼ਣ (WPA) ਪੜਾਅ ਤੋਂ ਸਿੱਧਾ ਲਿੰਕ-ਟਾਈਮ ਅਨੁਕੂਲਨ ਪੜਾਅ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ। ਸੰਚਾਲਨ ਦਾ ਇਹ ਮੋਡ ਵੱਡੀਆਂ ਕੰਪਾਈਲਰ ਮੈਮੋਰੀ ਲੋੜਾਂ ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਦੇ ਨਿਰਮਾਣ ਦੇ ਖਰਚੇ 'ਤੇ ਸਭ ਤੋਂ ਅਨੁਕੂਲ ਨਤੀਜੇ ਪ੍ਰਦਾਨ ਕਰੇਗਾ, ਹਾਲਾਂਕਿ ਇਹ ਛੋਟੇ ਪ੍ਰੋਗਰਾਮਾਂ ਦੇ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਨਹੀਂ ਹੈ। ਆਬਜੈਕਟ ਨੂੰ ਵੰਡਣਾ files ਬਿਲਡ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਸੁਧਾਰ ਸਕਦਾ ਹੈ। ਆਰਗੂਮੈਂਟ ਇੱਕ ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਬਿਲਕੁਲ ਇੱਕ ਭਾਗ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਆਰਗੂਮੈਂਟ lto1 ਉਸ ਭਾਗ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਜੋ ਮੂਲ ਸਰੋਤ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਮਿਰਰ ਹਨ fileਐੱਸ. ਡਿਫਾਲਟ ਆਰਗੂਮੈਂਟ ਸੰਤੁਲਿਤ ਹੈ, ਜੋ ਕਿ ਬਰਾਬਰ ਆਕਾਰ ਦੇ ਭਾਗਾਂ ਵਿੱਚ ਵੰਡਣ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਸੰਭਵ ਹੋਵੇ।

2.6 ਸੈਕਸ਼ਨ 3.6.11 ਮੈਪਡ ਲਿੰਕਰ ਚੋਣਾਂ ਵਿੱਚ ਜੋੜਨਾ
-wl, -ਸੈਕਸ਼ਨ-ਸ਼ੁਰੂ = ਸਕਿੰਟ tion = addr ਆਮ ਤੌਰ 'ਤੇ ਵਰਤੇ ਜਾਂਦੇ ਲਿੰਕਰ ਵਿਕਲਪਾਂ ਦੀ ਸਾਰਣੀ ਵਿੱਚੋਂ ਗੁੰਮ ਹੈ, -wl ਕੰਪਾਈਲਰ ਡਰਾਈਵਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਹੁੰਚਯੋਗ ਹੈ। ਇਹ ਵਿਕਲਪ ਨਿਸ਼ਚਿਤ ਪਤੇ 'ਤੇ ਕਸਟਮ-ਨਾਮ ਵਾਲੇ ਭਾਗਾਂ ਦੀ ਪਲੇਸਮੈਂਟ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਮਿਆਰੀ ਭਾਗਾਂ ਨੂੰ ਰੱਖਣ ਲਈ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ, ਜਿਵੇਂ ਕਿ (. ਡੇਟਾ, . bss, . ਟੈਕਸਟ), ਜਿਸ ਨੂੰ -wl, -'r ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।

2.7 ਸੈਕਸ਼ਨ 4.14.2 ਵਿੱਚ ਸੋਧ ਅਲਾਟ ਕੀਤੇ ਸੈਕਸ਼ਨ ਨੂੰ ਬਦਲਣਾ ਅਤੇ ਲਿੰਕ ਕਰਨਾ
ਨੋਟ ਕਰੋ ਕਿ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ ਦੇ ਇਸ ਭਾਗ ਵਿੱਚ ਮੌਜੂਦ ਜਾਣਕਾਰੀ ਦੇ ਉਲਟ, ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਕੰਪਾਈਲਰ ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਸਟਮ ਭਾਗਾਂ ਨੂੰ -w1 ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਿੰਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, - ਸੰਪਰਦਾ ਆਇਨ- start=section=acicir ਵਿਕਲਪ ਅਤੇ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਨੂੰ ਸੋਧੇ ਬਿਨਾਂ.

ਨਵਾਂ ਕੀ ਹੈ

ਨਿਮਨਲਿਖਤ ਨਵੀਂ ਏਵੀਆਰ-ਟਾਰਗੇਟ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਕੰਪਾਈਲਰ ਹੁਣ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਉਪ-ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਵਰਜਨ ਨੰਬਰ ਉਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਹਿਲੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਬਾਅਦ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ।

3.1 ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਈਸੈਂਸ MPLAB XC8 ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਦਾ ਇਹ ਰੀਲੀਜ਼ ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਈਸੈਂਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।

3.2 ਸੰਸਕਰਣ 2.36 
ਕੋਈ ਨਹੀਂ।
3.3 ਸੰਸਕਰਣ 2.35 
ਨਿਮਨਲਿਖਤ 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 ਦੇ ਇਸ ਰੀਲੀਜ਼ ਨਾਲ ਉਪਲਬਧ ਹੈ। ਦ MPLAB® XC8 C ਕੰਪਾਈਲਰ
AVR ਲਈ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ® MCU ਹੁਣ ਇਹਨਾਂ ਮਿਆਰੀ ਫੰਕਸ਼ਨਾਂ ਲਈ ਦਸਤਾਵੇਜ਼ ਸ਼ਾਮਲ ਨਹੀਂ ਹਨ। ਇਹ ਜਾਣਕਾਰੀ ਹੁਣ ਵਿੱਚ ਲੱਭੀ ਜਾ ਸਕਦੀ ਹੈ ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਰੈਫਰੈਂਸ ਗਾਈਡ। ਨੋਟ ਕਰੋ ਕਿ avr-libc ਦੁਆਰਾ ਪਹਿਲਾਂ ਪਰਿਭਾਸ਼ਿਤ ਕੁਝ ਕਾਰਜਕੁਸ਼ਲਤਾ ਹੁਣ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। (ਵੇਖੋ ਲਾਇਬ੍ਰੇਰੀ ਕਾਰਜਕੁਸ਼ਲਤਾ।)
ਸਮਾਰਟ I0 ਨਵੀਆਂ ਯੂਨੀਫਾਈਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਹਿੱਸੇ ਵਜੋਂ, printf ਅਤੇ scanf ਪਰਿਵਾਰਾਂ ਵਿੱਚ JO ਫੰਕਸ਼ਨ ਹੁਣ ਹਰੇਕ ਬਿਲਡ 'ਤੇ ਕਸਟਮ-ਜਨਰੇਟ ਕੀਤੇ ਗਏ ਹਨ, ਇਸ ਆਧਾਰ 'ਤੇ ਕਿ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਰੋਤਾਂ ਨੂੰ ਕਾਫ਼ੀ ਹੱਦ ਤੱਕ ਘਟਾ ਸਕਦਾ ਹੈ।
ਸਮਾਰਟ I0 ਸਹਾਇਤਾ ਵਿਕਲਪ ਸਮਾਰਟ I0 ਫੰਕਸ਼ਨਾਂ (ਜਿਵੇਂ ਕਿ printf () ਜਾਂ scanf ()) ਲਈ ਕਾਲਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੇ ਸਮੇਂ, ਕੰਪਾਈਲਰ ਹਮੇਸ਼ਾਂ ਫਾਰਮੈਟ ਸਟ੍ਰਿੰਗ ਤੋਂ ਪਤਾ ਨਹੀਂ ਲਗਾ ਸਕਦਾ ਜਾਂ ਕਾਲ ਦੁਆਰਾ ਲੋੜੀਂਦੇ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕ ਆਰਗੂਮੈਂਟਾਂ ਤੋਂ ਅਨੁਮਾਨ ਨਹੀਂ ਲਗਾ ਸਕਦਾ। ਪਹਿਲਾਂ, ਕੰਪਾਈਲਰ ਹਮੇਸ਼ਾ ਕੋਈ ਧਾਰਨਾ ਨਹੀਂ ਬਣਾਉਂਦਾ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਸੀ ਕਿ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕਾਰਜਸ਼ੀਲ 10 ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਅੰਤਿਮ ਪ੍ਰੋਗਰਾਮ ਚਿੱਤਰ ਨਾਲ ਜੋੜਿਆ ਗਿਆ ਸੀ। ਇੱਕ ਨਵਾਂ – msma rt-io- format=fmt ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ ਹੈ ਤਾਂ ਜੋ ਕੰਪਾਈਲਰ ਨੂੰ ਸਮਾਰਟ I0 ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕਾਂ ਦੇ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਸੂਚਿਤ ਕੀਤਾ ਜਾ ਸਕੇ ਜਿਸਦੀ ਵਰਤੋਂ ਅਸਪਸ਼ਟ ਹੈ, ਬਹੁਤ ਜ਼ਿਆਦਾ ਲੰਬੇ 10 ਰੂਟੀਨਾਂ ਨੂੰ ਲਿੰਕ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। (ਵੇਖੋ ਸਮਾਰਟ-ਆਈਓ-ਫਾਰਮੈਟ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਵਿਕਲਪ।)
ਕਸਟਮ ਸੈਕਸ਼ਨ ਲਗਾਉਣਾ ਪਹਿਲਾਂ, -W1, -ਸੈਕਸ਼ਨ-ਸਟਾਰਟ ਵਿਕਲਪ ਸਿਰਫ ਬੇਨਤੀ ਕੀਤੇ ਪਤੇ 'ਤੇ ਨਿਰਧਾਰਤ ਸੈਕਸ਼ਨ ਰੱਖਦਾ ਸੀ ਜਦੋਂ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਉਸੇ ਨਾਮ ਨਾਲ ਇੱਕ ਆਉਟਪੁੱਟ ਸੈਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਸੀ। ਜਦੋਂ ਅਜਿਹਾ ਨਹੀਂ ਸੀ, ਤਾਂ ਭਾਗ ਨੂੰ ਲਿੰਕਰ ਦੁਆਰਾ ਚੁਣੇ ਗਏ ਪਤੇ 'ਤੇ ਰੱਖਿਆ ਗਿਆ ਸੀ ਅਤੇ ਵਿਕਲਪ ਨੂੰ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਅਣਡਿੱਠ ਕੀਤਾ ਗਿਆ ਸੀ। ਹੁਣ ਵਿਕਲਪ ਨੂੰ ਸਾਰੇ ਕਸਟਮ ਸੈਕਸ਼ਨਾਂ ਲਈ ਸਨਮਾਨਿਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਭਾਵੇਂ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਸੈਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਨਾ ਕਰੇ। ਨੋਟ ਕਰੋ, ਹਾਲਾਂਕਿ, ਮਿਆਰੀ ਭਾਗਾਂ ਲਈ, ਜਿਵੇਂ ਕਿ . ਟੈਕਸਟ, . bss ਜਾਂ . ਡਾਟਾ, ਸਭ ਤੋਂ ਵਧੀਆ ਫਿੱਟ ਐਲੋਕਟਰ ਦਾ ਅਜੇ ਵੀ ਉਹਨਾਂ ਦੀ ਪਲੇਸਮੈਂਟ 'ਤੇ ਪੂਰਾ ਨਿਯੰਤਰਣ ਹੋਵੇਗਾ, ਅਤੇ ਵਿਕਲਪ ਦਾ ਕੋਈ ਪ੍ਰਭਾਵ ਨਹੀਂ ਹੋਵੇਗਾ। -wl ਦੀ ਵਰਤੋਂ ਕਰੋ, -ਸੈਕਸ਼ਨ = addr ਵਿਕਲਪ, ਜਿਵੇਂ ਕਿ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ।

3.4 ਸੰਸਕਰਣ 2.32
ਸਟੈਕ ਗਾਈਡੈਂਸ ਇੱਕ PRO ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਦੇ ਨਾਲ ਉਪਲਬਧ, ਕੰਪਾਈਲਰ ਦੀ ਸਟੈਕ ਮਾਰਗਦਰਸ਼ਨ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਕਿਸੇ ਵੀ ਸਟੈਕ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਡੂੰਘਾਈ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਹ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਾਲ ਗ੍ਰਾਫ ਦਾ ਨਿਰਮਾਣ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ, ਹਰੇਕ ਫੰਕਸ਼ਨ ਦੀ ਸਟੈਕ ਵਰਤੋਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਰਿਪੋਰਟ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਸਟੈਕ ਦੀ ਡੂੰਘਾਈ ਦਾ ਅਨੁਮਾਨ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ -mchp-stack- ਵਰਤੋਂ ਕਮਾਂਡ-ਲਾਈਨ ਵਿਕਲਪ ਦੁਆਰਾ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ। ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ ਸਟੈਕ ਵਰਤੋਂ ਦਾ ਸੰਖੇਪ ਛਾਪਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਸਟੈਕ ਰਿਪੋਰਟ ਨਕਸ਼ੇ ਵਿੱਚ ਉਪਲਬਧ ਹੈ file, ਜਿਸ ਦੀ ਆਮ ਤਰੀਕੇ ਨਾਲ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਹਾਇਤਾ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64, AVR28, AVR32DB28 , ਅਤੇ AVR64DB32।
ਵਾਪਿਸ ਲਿਆ ਗਿਆ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਅੱਗੇ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ: AVR 16DA28, AVR16DA32 ਅਤੇ, AVR16DA48।

3.5 ਸੰਸਕਰਣ 2.31 ਕੋਈ ਨਹੀਂ।
3.6 ਸੰਸਕਰਣ 2.30
ਡਾਟਾ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਰੋਕਣ ਲਈ ਨਵਾਂ ਵਿਕਲਪ ਇੱਕ ਨਵਾਂ -mno-data-init ਡਰਾਈਵਰ ਵਿਕਲਪ ਡਾਟਾ ਦੀ ਸ਼ੁਰੂਆਤ ਅਤੇ bss ਭਾਗਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਇਹ ਅਸੈਂਬਲੀ ਵਿੱਚ do_copy_data ਅਤੇ do_clear_bss ਚਿੰਨ੍ਹ ਦੇ ਆਉਟਪੁੱਟ ਨੂੰ ਦਬਾ ਕੇ ਕੰਮ ਕਰਦਾ ਹੈ files, ਜੋ ਬਦਲੇ ਵਿੱਚ ਲਿੰਕਰ ਦੁਆਰਾ ਉਹਨਾਂ ਰੁਟੀਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ।
ਵਿਸਤ੍ਰਿਤ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਬਹੁਤ ਸਾਰੇ ਅਨੁਕੂਲਤਾ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ ਬੇਲੋੜੇ ਵਾਪਸੀ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਇੱਕ skip-if-bit-is ਹਦਾਇਤਾਂ ਤੋਂ ਬਾਅਦ ਕੁਝ ਜੰਪਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਅਤੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਅਤੇ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਦੁਹਰਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਹੈ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਹੁਣ ਵਾਧੂ ਵਿਕਲਪ ਉਪਲਬਧ ਹਨ, ਖਾਸ ਤੌਰ 'ਤੇ -fsection-ਐਂਕਰ, ਜੋ ਕਿ ਇੱਕ ਚਿੰਨ੍ਹ ਦੇ ਅਨੁਸਾਰੀ ਸਥਿਰ ਆਬਜੈਕਟ ਦੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ; -mpa-ਦੁਹਰਾਓ =n, ਜੋ ਕਿ 2 ਦੇ ਡਿਫਾਲਟ ਤੋਂ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਦੁਹਰਾਓ ਦੀ ਸੰਖਿਆ ਨੂੰ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ; ਅਤੇ, -mpa-callcost-shortcal 1, ਜੋ ਵਧੇਰੇ ਹਮਲਾਵਰ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਕਰਦਾ ਹੈ, ਇਸ ਉਮੀਦ ਵਿੱਚ ਕਿ ਲਿੰਕਰ ਲੰਬੀਆਂ ਕਾਲਾਂ ਨੂੰ ਆਰਾਮ ਦੇ ਸਕਦਾ ਹੈ। ਇਹ ਆਖਰੀ ਵਿਕਲਪ ਕੋਡ ਦਾ ਆਕਾਰ ਵਧਾ ਸਕਦਾ ਹੈ ਜੇਕਰ ਅੰਡਰਲਾਈੰਗ ਧਾਰਨਾਵਾਂ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਨਵਾਂ ਜੰਤਰ ਸਹਿਯੋਗ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਭਾਗਾਂ ਲਈ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128B28, AVR128DA32, AVR128 ਬੀ 48, AVR128DB64, ਅਤੇ AVRXNUMXDBXNUMX।
ਵਾਪਿਸ ਲਿਆ ਗਿਆ ਡਿਵਾਈਸ ਸਪੋਰਟ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਸਮਰਥਨ ਹੁਣ ਉਪਲਬਧ ਨਹੀਂ ਹੈ: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616C, ATA6617C, ATA664251C, ATAXNUMXQ.

3.7 ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਸਿਰਲੇਖ file ਕੰਪਾਈਲਰ ਬੰਟ-ਇਨ ਲਈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਕੰਪਾਈਲਰ ਭਾਸ਼ਾ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜਿਵੇਂ ਕਿ MISRA, ਦੇ ਅਨੁਕੂਲ ਹੋ ਸਕਦਾ ਹੈ ਸਿਰਲੇਖ file, ਜੋ ਕਿ ਆਟੋਮੈਟਿਕਲੀ ਦੁਆਰਾ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ , ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਸਿਰਲੇਖ ਵਿੱਚ ਸਾਰੇ ਇਨ-ਬਿਲਟ ਫੰਕਸ਼ਨਾਂ ਲਈ ਪ੍ਰੋਟੋਟਾਈਪ ਸ਼ਾਮਲ ਹਨ, ਜਿਵੇਂ ਕਿ ਬਿਲਟ ਇਨ_avr_nop ( ) ਅਤੇ _builtin_avr_delay_cycles ()। ਕੁਝ ਬਿਲਟ-ਇਨ MISRA ਅਨੁਕੂਲ ਨਹੀਂ ਹੋ ਸਕਦੇ ਹਨ; ਇਹਨਾਂ ਨੂੰ ਕੰਪਾਈਲਰ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ XC_STRICT MISRA ਜੋੜ ਕੇ ਛੱਡਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਬਿਲਟ-ਇਨ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਘੋਸ਼ਣਾਵਾਂ ਨੂੰ ਸਥਿਰ-ਚੌੜਾਈ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ।

3.8 ਸੰਸਕਰਣ 2.20
ਨਵਾਂ ਜੰਤਰ ਸਹਿਯੋਗ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਭਾਗਾਂ ਲਈ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATTINY 1624, ATTINY1626, ਅਤੇ ATTINY 1 627।
ਬਿਹਤਰ ਵਧੀਆ ਫਿੱਟ ਵੰਡ ਕੰਪਾਈਲਰ ਵਿੱਚ ਸਭ ਤੋਂ ਵਧੀਆ ਫਿਟ ਅਲੋਕੇਟਰ (BFA) ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਜੋ ਭਾਗਾਂ ਨੂੰ ਇੱਕ ਕ੍ਰਮ ਵਿੱਚ ਅਲਾਟ ਕੀਤਾ ਜਾਵੇ ਜੋ ਬਿਹਤਰ ਅਨੁਕੂਲਤਾ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। BFA ਹੁਣ ਨਾਮਿਤ ਐਡਰੈੱਸ ਸਪੇਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਅਤੇ ਡਾਟਾ ਅਰੰਭਕਰਨ ਨੂੰ ਬਿਹਤਰ ਢੰਗ ਨਾਲ ਸੰਭਾਲਦਾ ਹੈ।
ਸੁਧਾਰੀ ਪ੍ਰਕਿਰਿਆ ਸੰਬੰਧੀ ਐਬਸਟਰੈਕਸ਼ਨ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਹੁਣ ਹੋਰ ਕੋਡ ਕ੍ਰਮਾਂ 'ਤੇ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। ਪਿਛਲੀਆਂ ਸਥਿਤੀਆਂ ਜਿੱਥੇ ਇਸ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੇ ਕੋਡ ਦਾ ਆਕਾਰ ਵਧਾਇਆ ਹੋ ਸਕਦਾ ਹੈ ਉਹਨਾਂ ਨੂੰ ਲਿੰਕਰ ਦੀ ਕੂੜਾ ਇਕੱਠਾ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਬਾਰੇ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਨੂੰ ਜਾਣੂ ਕਰਵਾ ਕੇ ਸੰਬੋਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
AVR ਅਸੈਂਬਲਰ ਦੀ ਗੈਰਹਾਜ਼ਰੀ AVR ਅਸੈਂਬਲਰ ਹੁਣ ਇਸ ਵੰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। 3.9 ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰਿਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
3.10 ਸੰਸਕਰਣ 2.10
ਕੋਡ ਕਵਰੇਜ ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਇੱਕ ਕੋਡ ਕਵਰੇਜ ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਮਲ ਹੈ ਜੋ ਕਿਸੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਸਰੋਤ ਕੋਡ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਹੱਦ ਤੱਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਸਹੂਲਤ ਦਿੰਦੀ ਹੈ। ਇਸਨੂੰ ਯੋਗ ਕਰਨ ਲਈ ਵਿਕਲਪ -mcodecov=ram ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਹਾਡੇ ਹਾਰਡਵੇਅਰ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ, ਕੋਡ ਕਵਰੇਜ ਜਾਣਕਾਰੀ ਨੂੰ ਡਿਵਾਈਸ ਵਿੱਚ ਇਕੱਠਾ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਇਸਨੂੰ MPLAB X IDE ਦੁਆਰਾ ਇੱਕ ਕੋਡ ਕਵਰੇਜ ਪਲੱਗਇਨ ਦੁਆਰਾ ਟ੍ਰਾਂਸਫਰ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਪਲੱਗਇਨ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ IDE ਦਸਤਾਵੇਜ਼ ਵੇਖੋ।
#pragma nocodecov ਨੂੰ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਾਅਦ ਦੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਆਦਰਸ਼ਕ ਤੌਰ 'ਤੇ ਪ੍ਰੈਗਮਾ ਨੂੰ ਸ਼ੁਰੂ ਵਿਚ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ file ਉਸ ਪੂਰੇ ਨੂੰ ਬਾਹਰ ਕਰਨ ਲਈ file ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਵਿਕਲਪਕ ਤੌਰ 'ਤੇ, _attribute_ ( (nocodecov)) ਦੀ ਵਰਤੋਂ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਕਿਸੇ ਖਾਸ ਫੰਕਸ਼ਨ ਨੂੰ ਬਾਹਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਡਿਵਾਈਸ ਦਾ ਵੇਰਵਾ files ਨਵਾਂ ਯੰਤਰ file avr_chipinfo.html ਕਹਿੰਦੇ ਹਨ, ਦੀ ਡੌਕਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਥਿਤ ਹੈ

ਕੰਪਾਈਲਰ ਵੰਡ. ਇਹ file ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸਾਰੇ ਡਿਵਾਈਸਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ। ਇੱਕ ਡਿਵਾਈਸ ਦੇ ਨਾਮ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ ਇਹ ਇੱਕ ਪੰਨਾ ਖੋਲ੍ਹੇਗਾ ਜੋ ਉਸ ਡਿਵਾਈਸ ਲਈ ਸਾਰੀਆਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਸੰਰਚਨਾ ਬਿੱਟ ਸੈਟਿੰਗ/ਮੁੱਲ ਜੋੜਿਆਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਸਾਬਕਾ ਦੇ ਨਾਲamples.

ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ, ਜੋ ਕਿ ਅਸੈਂਬਲੀ ਕੋਡ ਦੇ ਆਮ ਬਲਾਕਾਂ ਨੂੰ ਉਸ ਬਲਾਕ ਦੀ ਐਕਸਟਰੈਕਟ ਕੀਤੀ ਕਾਪੀ ਲਈ ਕਾਲਾਂ ਨਾਲ ਬਦਲਦੇ ਹਨ, ਨੂੰ ਕੰਪਾਈਲਰ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ। ਇਹ ਇੱਕ ਵੱਖਰੇ ਐਪਲੀਕੇਸ਼ਨ ਦੁਆਰਾ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ ਕਿ ਪੱਧਰ 2, 3 ਜਾਂ ਚੁਣਨ ਵੇਲੇ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ s ਅਨੁਕੂਲਤਾਵਾਂ ਇਹ ਅਨੁਕੂਲਤਾ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੀ ਹੈ, ਪਰ ਇਹ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਅਤੇ ਕੋਡ ਡੀਬੱਗੇਬਿਲਟੀ ਨੂੰ ਘਟਾ ਸਕਦੀ ਹੈ।
ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਵਿਕਲਪ -mno-pa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉੱਚ ਅਨੁਕੂਲਤਾ ਪੱਧਰਾਂ 'ਤੇ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਾਂ -mpa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੇਠਲੇ ਅਨੁਕੂਲਨ ਪੱਧਰਾਂ (ਤੁਹਾਡੇ ਲਾਇਸੰਸ ਦੇ ਅਧੀਨ) 'ਤੇ ਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ ਕਿਸੇ ਵਸਤੂ ਲਈ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ file -mno-pa-on-f ile= ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏfileਨਾਮ, ਜਾਂ -mno-pa-onfunotion=f ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਸੇ ਫੰਕਸ਼ਨ ਲਈ ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਹੈ unction.
ਤੁਹਾਡੇ ਸਰੋਤ ਕੋਡ ਦੇ ਅੰਦਰ, ਫੰਕਸ਼ਨ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ_ ( (nopa) ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜਾਂ nopa ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜੋ ਕਿ _attribute_ ( (nopa, noinline) ) ਤੱਕ ਫੈਲਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਫੰਕਸ਼ਨ ਇਨਲਾਈਨਿੰਗ ਨੂੰ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਅਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅਤੇ ਇਨਲਾਈਨ ਕੋਡ ਦਾ ਐਬਸਟਰੈਕਸ਼ਨ ਹੋਣਾ।
ਪ੍ਰੈਗਮਾ ਵਿੱਚ ਲਾਕ ਬਿੱਟ ਸਮਰਥਨ #pragma ਕੌਂਫਿਗਰੇਸ਼ਨ ਹੁਣ AVR ਲਾਕ ਬਿੱਟਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਹੋਰ ਸੰਰਚਨਾ ਬਿੱਟਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ। avr_chipinfo.html ਦੀ ਜਾਂਚ ਕਰੋ file (ਉੱਪਰ ਜ਼ਿਕਰ ਕੀਤਾ) ਇਸ ਪ੍ਰੈਗਮਾ ਨਾਲ ਵਰਤਣ ਲਈ ਸੈਟਿੰਗ/ਮੁੱਲ ਜੋੜਿਆਂ ਲਈ।
ਨਵਾਂ ਜੰਤਰ ਸਹਿਯੋਗ ਹੇਠਲੇ ਭਾਗਾਂ ਲਈ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: AVR28DAl28, AVR64DAl28, AVR32DAl28, ਅਤੇ AVR48DAl28।

3.11 ਸੰਸਕਰਣ 2.05
ਤੁਹਾਡੇ ਪੈਸੇ ਲਈ ਹੋਰ ਬਿੱਟ ਇਸ ਕੰਪਾਈਲਰ ਅਤੇ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਦਾ macOS ਸੰਸਕਰਣ ਹੁਣ ਇੱਕ 64-ਬਿੱਟ ਐਪਲੀਕੇਸ਼ਨ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਏਗਾ ਕਿ ਕੰਪਾਈਲਰ ਮੈਕੋਸ ਦੇ ਤਾਜ਼ਾ ਸੰਸਕਰਣਾਂ 'ਤੇ ਬਿਨਾਂ ਚੇਤਾਵਨੀਆਂ ਦੇ ਸਥਾਪਿਤ ਅਤੇ ਚੱਲੇਗਾ।
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਕੰਸਟ ਆਬਜੈਕਟ ਕੰਪਾਈਲਰ ਹੁਣ ਕੰਸਟ-ਕੁਆਲੀਫਾਈਡ ਆਬਜੈਕਟਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਫਲੈਸ਼ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖ ਸਕਦਾ ਹੈ, ਨਾ ਕਿ ਇਹਨਾਂ ਨੂੰ RAM ਵਿੱਚ ਸਥਿਤ ਹੋਣ ਦੀ ਬਜਾਏ। ਕੰਪਾਈਲਰ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਕੰਪਾਈਲਰ ਟੀ-ਕੁਆਲੀਫਾਈਡ ਗਲੋਬਲ ਡੇਟਾ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਫਲੈਸ਼ ਮੈਮੋਰੀ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਜਾਵੇ ਅਤੇ ਇਸ ਡੇਟਾ ਨੂੰ ਸਿੱਧੇ ਅਤੇ ਅਸਿੱਧੇ ਤੌਰ 'ਤੇ ਉਚਿਤ ਪ੍ਰੋਗਰਾਮ-ਮੈਮੋਰੀ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਕਸੈਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਨਵੀਂ ਵਿਸ਼ੇਸ਼ਤਾ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸਮਰੱਥ ਹੈ ਪਰ -mno-const-data-in-progmem ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। avrxmega3 ਅਤੇ avrtiny ਆਰਕੀਟੈਕਚਰ ਲਈ, ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ ਅਤੇ ਇਹ ਹਮੇਸ਼ਾ ਅਯੋਗ ਹੁੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਨੂੰ ਇਹਨਾਂ ਡਿਵਾਈਸਾਂ ਲਈ ਡਾਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਮੈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਮਿਆਰੀ ਮੁਫ਼ਤ ਲਈ ਇਸ ਕੰਪਾਈਲਰ ਦੇ ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਵਾਲੇ (ਮੁਫ਼ਤ) ਸੰਸਕਰਣ ਹੁਣ ਲੈਵਲ 2 ਤੱਕ ਅਤੇ ਇਸ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਅਨੁਕੂਲਤਾ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ। ਇਹ ਇੱਕ ਸਮਾਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਵੇਗਾ, ਹਾਲਾਂਕਿ ਇੱਕੋ ਜਿਹਾ ਨਹੀਂ, ਇੱਕ ਸਟੈਂਡਰਡ ਲਾਇਸੈਂਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਹਿਲਾਂ ਸੰਭਵ ਸੀ।
AVRASM2 ਦਾ ਸੁਆਗਤ ਹੈ 2-ਬਿੱਟ ਜੰਤਰਾਂ ਲਈ AVRASM8 ਅਸੈਂਬਲਰ ਹੁਣ XC8 ਕੰਪਾਈਲਰ ਇੰਸਟਾਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਅਸੈਂਬਲਰ XC8 ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਨਹੀਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਪਰ ਹੱਥ ਲਿਖਤ ਅਸੈਂਬਲੀ ਸਰੋਤ ਦੇ ਅਧਾਰ ਤੇ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਉਪਲਬਧ ਹੈ।
ਨਵਾਂ ਜੰਤਰ ਸਹਿਯੋਗ ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਲਈ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATMEGA1608, ATMEGA 1609, ATMEGA808, ਅਤੇ ATMEGA809।

3.12 ਸੰਸਕਰਣ 2.00
ਸਿਖਰ-ਪੱਧਰ ਦਾ ਡਰਾਈਵਰ ਇੱਕ ਨਵਾਂ ਡਰਾਈਵਰ, ਜਿਸਨੂੰ xc8 -cc ਕਿਹਾ ਜਾਂਦਾ ਹੈ, ਹੁਣ ਪਿਛਲੇ avr-gcc ਡਰਾਈਵਰ ਅਤੇ xc8 ਡਰਾਈਵਰ ਦੇ ਉੱਪਰ ਬੈਠਦਾ ਹੈ, ਅਤੇ ਇਹ ਟਾਰਗੇਟ ਜੰਤਰ ਦੀ ਚੋਣ ਦੇ ਅਧਾਰ 'ਤੇ ਢੁਕਵੇਂ ਕੰਪਾਈਲਰ ਨੂੰ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਡਰਾਈਵਰ GCC-ਸ਼ੈਲੀ ਚੋਣਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਜੋ ਜਾਂ ਤਾਂ ਕੰਪਾਈਲਰ ਲਈ ਅਨੁਵਾਦ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਾਂ ਚਲਾਏ ਜਾ ਰਹੇ ਹਨ। ਇਹ ਡ੍ਰਾਈਵਰ ਕਿਸੇ ਵੀ AVR ਜਾਂ PIC ਟਾਰਗਿਟ ਦੇ ਨਾਲ ਸਮਾਨ ਅਰਥ ਵਿਗਿਆਨ ਵਾਲੇ ਵਿਕਲਪਾਂ ਦੇ ਸਮਾਨ ਸੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਕੰਪਾਈਲਰ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਸਿਫ਼ਾਰਿਸ਼ ਕੀਤਾ ਤਰੀਕਾ ਹੈ। ਜੇਕਰ ਲੋੜ ਹੋਵੇ, ਪੁਰਾਣੇ avr-gcc ਡਰਾਈਵਰ ਨੂੰ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਸਵੀਕਾਰ ਕੀਤੇ ਪੁਰਾਣੇ-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿੱਧਾ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਆਮ C ਇੰਟਰਫੇਸ ਇਹ ਕੰਪਾਈਲਰ ਹੁਣ MPLAB ਕਾਮਨ C ਇੰਟਰਫੇਸ ਦੇ ਅਨੁਕੂਲ ਹੋ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਰੋਤ ਕੋਡ ਨੂੰ ਸਾਰੇ MPLAB XC ਕੰਪਾਈਲਰ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਪੋਰਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। -mext=cci ਵਿਕਲਪ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਬੇਨਤੀ ਕਰਦਾ ਹੈ, ਕਈ ਭਾਸ਼ਾ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਵਿਕਲਪਕ ਸੰਟੈਕਸ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਨਿਊ ਲਾਇਬ੍ਰੇਰੀਅਨ ਡਰਾਈਵਰ ਏ ਨਵੇਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਡਰਾਈਵਰ ਨੂੰ ਪਿਛਲੇ PIC ਲਾਇਬ੍ਰੇਰੀਅਨ ਲਾਇਬ੍ਰੇਰੀਅਨ ਅਤੇ AVR avr-ar ਲਾਇਬ੍ਰੇਰੀਅਨ ਤੋਂ ਉੱਪਰ ਰੱਖਿਆ ਗਿਆ ਹੈ। ਇਹ ਡ੍ਰਾਈਵਰ GCC-archiver-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਜੋ ਜਾਂ ਤਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਲਈ ਅਨੁਵਾਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਚਲਾਇਆ ਜਾ ਰਿਹਾ ਹੈ। ਨਵਾਂ ਡਰਾਈਵਰ ਕਿਸੇ ਵੀ PIC ਜਾਂ AVR ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਬਣਾਉਣ ਜਾਂ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਸਮਾਨ ਅਰਥ ਵਿਗਿਆਨ ਵਾਲੇ ਵਿਕਲਪਾਂ ਦੇ ਸਮਾਨ ਸੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। file ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਨੂੰ ਬੁਲਾਉਣ ਦਾ ਸਿਫ਼ਾਰਿਸ਼ ਕੀਤਾ ਤਰੀਕਾ ਹੈ। ਜੇਕਰ ਪੁਰਾਤਨ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਲੋੜੀਂਦਾ ਹੈ, ਤਾਂ ਪਿਛਲੇ ਲਾਇਬ੍ਰੇਰੀਅਨ ਨੂੰ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਸਵੀਕਾਰ ਕੀਤੇ ਪੁਰਾਣੇ-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿੱਧਾ ਬੁਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।

ਮਾਈਗ੍ਰੇਸ਼ਨ ਮੁੱਦੇ

ਹੇਠ ਲਿਖੀਆਂ am ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜੋ ਹੁਣ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਸੰਭਾਲੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਇਹਨਾਂ ਤਬਦੀਲੀਆਂ ਲਈ ਤੁਹਾਡੇ ਸਰੋਤ ਕੋਡ ਵਿੱਚ ਸੋਧ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਜੇਕਰ ਕੋਡ ਨੂੰ ਇਸ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਵਿੱਚ ਪੋਰਟ ਕਰਨਾ ਹੈ। ਉਪ-ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਸੰਸਕਰਣ ਨੰਬਰ ਬਾਅਦ ਵਿੱਚ ਹੋਣ ਵਾਲੀਆਂ ਤਬਦੀਲੀਆਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਹਿਲੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।

4.1 ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
4.2 ਸੰਸਕਰਣ 2.36 ਕੋਈ ਨਹੀਂ।
4.3. ਸੰਸਕਰਣ 2.35
ਸਟਰਿੰਗ-ਟੂ ਬੇਸ (XC8-2420) ਦਾ ਪ੍ਰਬੰਧਨ ਦੂਜੇ XC ਕੰਪਾਈਲਰਾਂ ਨਾਲ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, XC8 ਸਟ੍ਰਿੰਗ-ਟੂ ਫੰਕਸ਼ਨ, ਜਿਵੇਂ ਕਿ strtol () ਆਦਿ, ਹੁਣ ਇੱਕ ਇਨਪੁਟ ਸਟ੍ਰਿੰਗ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰਨਗੇ ਜੇਕਰ ਨਿਰਧਾਰਿਤ ਅਧਾਰ 36 ਤੋਂ ਵੱਡਾ ਹੈ ਅਤੇ ਇਸਦੀ ਬਜਾਏ EINVAL ਵਿੱਚ errno ਸੈਟ ਕਰੇਗਾ। ਸੀ ਸਟੈਂਡਰਡ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਨਹੀਂ ਹੈ ਫੰਕਸ਼ਨ ਜਦੋਂ ਇਹ ਅਧਾਰ ਮੁੱਲ ਵੱਧ ਜਾਂਦਾ ਹੈ।
ਅਣਉਚਿਤ ਗਤੀ ਅਨੁਕੂਲਨ ਲੈਵਲ 3 ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-03) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ। ਇਸ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਪੱਧਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਪ੍ਰੋਜੈਕਟ ਇਸ ਰੀਲੀਜ਼ ਦੇ ਨਾਲ ਬਣਾਏ ਜਾਣ 'ਤੇ ਕੋਡ ਆਕਾਰ ਅਤੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਵਿੱਚ ਅੰਤਰ ਦੇਖ ਸਕਦੇ ਹਨ।
ਲਾਇਬ੍ਰੇਰੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਬਹੁਤ ਸਾਰੇ ਸਟੈਂਡਰਡ C ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਲਈ ਕੋਡ ਹੁਣ ਮਾਈਕ੍ਰੋਚਿੱਪ ਦੀ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਸਾਬਕਾ avr-libc ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਤੁਲਨਾ ਵਿੱਚ ਕੁਝ ਹਾਲਾਤਾਂ ਵਿੱਚ ਵੱਖਰਾ ਵਿਵਹਾਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample, ਫਲੋਟ-ਫਾਰਮੈਟ ਨਿਰਧਾਰਕਾਂ ਲਈ ਫਾਰਮੈਟ ਕੀਤੇ I1 ਸਮਰਥਨ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ 1printf flt ਲਾਇਬ੍ਰੇਰੀ (-0printf_flt ਵਿਕਲਪ) ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ ਹੁਣ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ। ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਦੀਆਂ ਸਮਾਰਟ 10 ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਇਸ ਵਿਕਲਪ ਨੂੰ ਬੇਲੋੜਾ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਟ੍ਰਿੰਗ ਅਤੇ ਮੈਮੋਰੀ ਫੰਕਸ਼ਨਾਂ (ਜਿਵੇਂ ਕਿ strcpy_P ( ) ਆਦਿ..) ਲਈ _P ਪਿਛੇਤਰ ਵਾਲੇ ਰੁਟੀਨ ਦੀ ਵਰਤੋਂ ਜੋ ਫਲੈਸ਼ ਵਿੱਚ ਕੰਸਟ ਸਟ੍ਰਿੰਗਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਦੀ ਹੁਣ ਲੋੜ ਨਹੀਂ ਹੈ। ਸਟੈਂਡਰਡ C ਰੁਟੀਨ (ਜਿਵੇਂ ਕਿ strcpy 0 ) ਅਜਿਹੇ ਡੇਟਾ ਦੇ ਨਾਲ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨਗੇ ਜਦੋਂ const-data-in-program-memory ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਹੁੰਦੀ ਹੈ।

4.4 ਸੰਸਕਰਣ 2.32
ਕੋਈ ਨਹੀਂ।
4.5 ਸੰਸਕਰਣ 2.31
ਕੋਈ ਨਹੀਂ।
4.6 ਸੰਸਕਰਣ 2.30
ਕੋਈ ਨਹੀਂ।
4.1 ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
4.2 ਸੰਸਕਰਣ 2.20
ਬਦਲਿਆ ਗਿਆ DFP ਲੇਆਉਟ ਕੰਪਾਈਲਰ ਹੁਣ DFPs (ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ) ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਇੱਕ ਵੱਖਰੇ ਖਾਕੇ ਨੂੰ ਮੰਨਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਇਹ ਹੋਵੇਗਾ ਕਿ ਇੱਕ ਪੁਰਾਣਾ DFP ਇਸ ਰੀਲੀਜ਼ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਨਵੀਨਤਮ DFPs ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ।

4.3 ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
4.4 ਵਰਜਨ 2.10 ਕੋਈ ਨਹੀਂ
4.5 ਸੰਸਕਰਣ 2.05
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਕੰਸਟ ਆਬਜੈਕਟ ਨੋਟ ਕਰੋ ਕਿ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ, ਕੰਸਟ-ਕੁਆਲੀਫਾਈਡ ਆਬਜੈਕਟਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਜਾਵੇਗਾ ਅਤੇ ਐਕਸੈਸ ਕੀਤਾ ਜਾਵੇਗਾ (ਜਿਵੇਂ ਕਿ ਉਸਦਾ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ)। ਇਹ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਆਕਾਰ ਅਤੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੀ ਗਤੀ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰੇਗਾ, ਪਰ ਰੈਮ ਦੀ ਵਰਤੋਂ ਨੂੰ ਘੱਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੇਕਰ ਲੋੜ ਹੋਵੇ, -mnocons t-data-in-pr ogmem ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ.

4.6 ਸੰਸਕਰਣ 2.00
ਸੰਰਚਨਾ ਫਿਊਜ਼ ਜੰਤਰ ਸੰਰਚਨਾ ਫਿਊਜ਼ ਹੁਣ ਇੱਕ ਸੰਰਚਨਾ ਪ੍ਰੈਗਮਾ ਵਰਤ ਕੇ ਪ੍ਰੋਗਰਾਮ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ, ਜਿਸ ਤੋਂ ਬਾਅਦ ਫਿਊਜ਼ ਸਥਿਤੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਸੈੱਟ-ਵੈਲਿਊ ਜੋੜੇ, ਜਿਵੇਂ ਕਿ #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
ਸੰਪੂਰਨ ਵਸਤੂਆਂ ਅਤੇ ਕਾਰਜ ਵਸਤੂਆਂ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਹੁਣ CCI _ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੈਮੋਰੀ ਵਿੱਚ ਖਾਸ ਪਤੇ 'ਤੇ ਰੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।at (ਪਤਾ) ਨਿਰਧਾਰਕ, ਸਾਬਕਾ ਲਈampLe:
ਜੇਕਰ ਸ਼ਾਮਲ ਕਰੋ
int foobar at (0)0300100);
char at(0x250) getID(int offset) ( ਇਸ ਨਿਰਧਾਰਕ ਲਈ ਆਰਗੂਮੈਂਟ ਇੱਕ ਸਥਿਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਉਸ ਪਤੇ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ 'ਤੇ ਪਹਿਲਾ ਬਾਈਟ ਜਾਂ ਨਿਰਦੇਸ਼ ਰੱਖਿਆ ਜਾਵੇਗਾ। RAM ਐਡਰੈੱਸ Ox800000 ਦੇ ਇੱਕ ਆਫਸੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦਰਸਾਏ ਗਏ ਹਨ। ਇਸ ਲਈ CCI ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ.
ਨਵਾਂ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਸਿੰਟੈਕਸ ਕੰਪਾਈਲਰ ਹੁਣ CCI _interrupt ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ (ਸੰਖਿਆ) ਇਹ ਦਰਸਾਉਣ ਲਈ ਨਿਰਧਾਰਕ ਕਿ C ਫੰਕਸ਼ਨ ਇੰਟਰੱਪਟ ਹੈਂਡਲਰ ਹਨ। ਸਪੈਸੀਫਾਇਰ ਇੱਕ ਇੰਟਰੱਪਟ ਨੰਬਰ ਲੈਂਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈampLe:

ਸਥਿਰ ਮੁੱਦੇ

ਹੇਠਾਂ ਦਿੱਤੇ ਸੁਧਾਰ ਹਨ ਜੋ ਕੰਪਾਈਲਰ ਵਿੱਚ ਕੀਤੇ ਗਏ ਹਨ। ਇਹ ਤਿਆਰ ਕੀਤੇ ਕੋਡ ਵਿੱਚ ਬੱਗ ਠੀਕ ਕਰ ਸਕਦੇ ਹਨ ਜਾਂ ਕੰਪਾਈਲਰ ਦੇ ਓਪਰੇਸ਼ਨ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ ਜੋ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ ਦੁਆਰਾ ਇਰਾਦਾ ਜਾਂ ਨਿਰਧਾਰਿਤ ਕੀਤਾ ਗਿਆ ਸੀ। ਉਪ-ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਸੰਸਕਰਣ ਨੰਬਰ ਪਹਿਲੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਆਉਣ ਵਾਲੀਆਂ ਸਮੱਸਿਆਵਾਂ ਲਈ ਫਿਕਸ ਸ਼ਾਮਲ ਹਨ। ਸਿਰਲੇਖ ਵਿੱਚ ਬਰੈਕਟ ਕੀਤੇ ਲੇਬਲ(ਲੇ) ਟਰੈਕਿੰਗ ਡੇਟਾਬੇਸ ਵਿੱਚ ਮੁੱਦੇ ਦੀ ਪਛਾਣ ਹਨ। ਇਹ ਉਪਯੋਗੀ ਹੋ ਸਕਦੇ ਹਨ ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।
ਨੋਟ ਕਰੋ ਕਿ ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ (DR)) ਡਿਵਾਈਸ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ। DFP ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ ਅਤੇ ਨਵੀਨਤਮ ਪੈਕ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ MPLAB ਪੈਕ ਮੈਨੇਜਰ ਨੂੰ ਦੇਖੋ।

5.1 ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
5.2 ਸੰਸਕਰਣ 2.36
ਦੇਰੀ ਕਰਨ ਵੇਲੇ ਗਲਤੀ (XCS2774) ਡਿਫੌਲਟ ਫ੍ਰੀ ਮੋਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਵਿੱਚ ਮਾਮੂਲੀ ਤਬਦੀਲੀਆਂ ਨੇ ਬਿਲਟ-ਇਨ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਦੇਰੀ ਲਈ ਓਪਰੇਂਡ ਸਮੀਕਰਨਾਂ ਨੂੰ ਲਗਾਤਾਰ ਫੋਲਡ ਕਰਨ ਤੋਂ ਰੋਕਿਆ, ਨਤੀਜੇ ਵਜੋਂ ਉਹਨਾਂ ਨੂੰ ਗੈਰ-ਸਥਿਰ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਬਿਲਟ in_avr_delay_cycles ਇੱਕ ਕੰਪਾਈਲ ਟਾਈਮ ਪੂਰਨ ਅੰਕ ਸਥਿਰ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ।

5.3 ਸੰਸਕਰਣ 2.35
ਨਿਰੰਤਰ ਵੰਡ _at (XCS2653) ਇੱਕੋ ਨਾਮ ਵਾਲੇ ਭਾਗ ਵਿੱਚ ਮਲਟੀਪਲ ਆਬਜੈਕਟ ਸਥਾਨਾਂ ਦੀ ਨਿਰੰਤਰ ਵੰਡ ਅਤੇ _at () ਦੀ ਵਰਤੋਂ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਸਾਬਕਾ ਲਈampLe:
const char arrl[ ] ਗੁਣ (ਸੈਕਸ਼ਨ(“.mysec”) at (0x500) = (OxAB, OxCD);
const char arr2[ ] ਗੁਣ (sectionr.mysec") = (OxEF, OxFE);
arri ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ arr2 ਰੱਖਣਾ ਚਾਹੀਦਾ ਹੈ।
ਸੈਕਸ਼ਨ ਦੇ ਸ਼ੁਰੂਆਤੀ ਪਤੇ ਨਿਰਧਾਰਤ ਕਰਨਾ (XCS2650) ਦ -wl, -section-start ਵਿਕਲਪ ਨਾਮਜ਼ਦ ਸ਼ੁਰੂਆਤੀ ਪਤੇ 'ਤੇ ਭਾਗਾਂ ਨੂੰ ਰੱਖਣ ਵਿੱਚ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਰਿਹਾ ਸੀ। ਇਹ ਮੁੱਦਾ ਕਿਸੇ ਵੀ ਕਸਟਮ-ਨਾਮ ਵਾਲੇ ਭਾਗਾਂ ਲਈ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ; ਹਾਲਾਂਕਿ, ਇਹ ਕਿਸੇ ਵੀ ਮਿਆਰੀ ਭਾਗਾਂ ਲਈ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ, ਜਿਵੇਂ ਕਿ . ਟੈਕਸਟ ਜਾਂ . bss, ਜਿਸਨੂੰ a ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ -wl, -ਟੀ ਵਿਕਲਪ.
ਆਰਾਮ ਕਰਨ ਵੇਲੇ ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ (XCS2647) ਜਦੋਂ -mrelax ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ ਅਤੇ ਉਹ ਕੋਡ ਜਾਂ ਡੇਟਾ ਸੈਕਸ਼ਨ ਸਨ ਜੋ ਉਪਲਬਧ ਮੈਮੋਰੀ ਵਿੱਚ ਫਿੱਟ ਨਹੀਂ ਹੁੰਦੇ ਸਨ, ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਗਿਆ ਸੀ। ਹੁਣ, ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ, ਇਸ ਦੀ ਬਜਾਏ ਗਲਤੀ ਸੰਦੇਸ਼ ਜਾਰੀ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।
ਨਹੀਂ ਨਹੀਂਡਿੱਗਣਾਵਾਪਸ (XCS2646) ਦ -nofallback ਵਿਕਲਪ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਨਾ ਹੀ ਦਸਤਾਵੇਜ਼ੀ ਤੌਰ 'ਤੇ। ਇਹ ਹੁਣ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਕੰਪਾਈਲਰ ਘੱਟ ਅਨੁਕੂਲਤਾ ਸੈਟਿੰਗ 'ਤੇ ਵਾਪਸ ਨਹੀਂ ਆਵੇਗਾ ਜੇਕਰ ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਨਹੀਂ ਹੈ, ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ ਇੱਕ ਗਲਤੀ ਜਾਰੀ ਕਰੇਗਾ।
ਅਣਉਚਿਤ ਗਤੀ ਅਨੁਕੂਲਨ (XCS2637) ਲੈਵਲ 3 ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-03) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ।
ਖਰਾਬ EEPROM ਪਹੁੰਚ (XCS2629) eeprom_read_block ਰੁਟੀਨ ਨੇ Xmega ਜੰਤਰਾਂ ਉੱਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕੀਤਾ ਜਦੋਂ -mconst-data-in-progmem ਵਿਕਲਪ ਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ (ਜੋ ਕਿ ਡਿਫਾਲਟ ਸਥਿਤੀ ਹੈ), ਨਤੀਜੇ ਵਜੋਂ EEPROM ਮੈਮੋਰੀ ਸਹੀ ਢੰਗ ਨਾਲ ਨਹੀਂ ਪੜ੍ਹੀ ਜਾ ਰਹੀ ਹੈ।
ਅਵੈਧ ਮੈਮੋਰੀ ਵੰਡ (X03-2593, XC8-2651) ਜਦੋਂ -Ttext ਜਾਂ -Tdata ਲਿੰਕਰ ਵਿਕਲਪ (ਉਦਾਹਰਨ ਲਈample ਇੱਕ -wl ਡਰਾਈਵਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਾਸ ਕੀਤਾ ਗਿਆ) ਦਿੱਤਾ ਗਿਆ ਹੈ, ਸੰਬੰਧਿਤ ਟੈਕਸਟ/ਡਾਟਾ ਖੇਤਰ ਮੂਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ; ਹਾਲਾਂਕਿ, ਅੰਤਮ ਪਤੇ ਨੂੰ ਉਸ ਅਨੁਸਾਰ ਐਡਜਸਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਨਾਲ ਖੇਤਰ ਟੀਚਾ ਡਿਵਾਈਸ ਦੀ ਮੈਮੋਰੀ ਰੇਂਜ ਤੋਂ ਵੱਧ ਗਿਆ ਸੀ।
ਓਵਰ-ਐਟਰੀਬਿਊਟਡ ਫੰਕਸ਼ਨ (XC8-2580) ਨਾਲ ਕ੍ਰੈਸ਼ ਕੰਪਾਈਲਰ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਇੰਟਰੱਪਟ, ਸਿਗਨਲ ਜਾਂ nmi ਗੁਣਾਂ ਵਿੱਚੋਂ ਇੱਕ ਤੋਂ ਵੱਧ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ, _attribute_ ( ( signal , interrupt ) )।
ਅਵੈਧ ATtiny ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2465) ਜਦੋਂ ATtiny ਡਿਵਾਈਸਾਂ ਅਤੇ ਅਨੁਕੂਲਤਾਵਾਂ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ (-00), ਤਾਂ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨਾਂ ਨੇ ਰੇਂਜ ਅਸੈਂਬਲਰ ਸੁਨੇਹਿਆਂ ਤੋਂ ਬਾਹਰ ਓਪਰੇਂਡ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ।
ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਵਿਕਲਪ (XC8-2452) ਦੁਆਰਾ ਪਾਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ -ਡਬਲਯੂ.ਐਲ ਮਲਟੀਪਲ, ਕਾਮੇ ਨਾਲ ਵੱਖ ਕੀਤੇ ਲਿੰਕਰ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਵਿਕਲਪ, ਸਾਰੇ ਲਿੰਕਰ ਵਿਕਲਪ ਲਿੰਕਰ ਨੂੰ ਨਹੀਂ ਦਿੱਤੇ ਜਾ ਰਹੇ ਸਨ।
ਅਪ੍ਰਤੱਖ ਤੌਰ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ (X03-2450) ਨੂੰ ਪੜ੍ਹਨ ਵਿੱਚ ਗਲਤੀ ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਇੱਕ ਅੰਦਰੂਨੀ ਗਲਤੀ (ਅਣਪਛਾਣਯੋਗ insn) ਜਦੋਂ ਇੱਕ ਪੁਆਇੰਟਰ ਤੋਂ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਦੋ ਬਾਈਟ ਮੁੱਲ ਪੜ੍ਹਦੇ ਹਨ

5.4 ਸੰਸਕਰਣ 2.32
ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਦੂਜੀ ਪਹੁੰਚ ਅਸਫਲ (X03-2381) ਮੌਜੂਦਾ ਲਾਇਬ੍ਰੇਰੀ ਆਰਕਾਈਵ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਲਈ ਦੂਜੀ ਵਾਰ xc8-ar.exe ਲਾਇਬ੍ਰੇਰੀ ਆਰਕਾਈਵਰ ਦੇ ਵਿੰਡੋਜ਼ ਸੰਸਕਰਣ ਨੂੰ ਬੁਲਾਉਣ ਨਾਲ ਗਲਤੀ ਸੰਦੇਸ਼ ਦਾ ਨਾਮ ਬਦਲਣ ਵਿੱਚ ਅਸਮਰੱਥ ਹੋ ਸਕਦਾ ਹੈ।

5.5 ਸੰਸਕਰਣ 2.31
ਅਪ੍ਰਤੱਖ ਕੰਪਾਈਲਰ ਅਸਫਲਤਾਵਾਂ (XC8-2367) ਜਦੋਂ ਚੱਲ ਰਿਹਾ ਹੈ ਵਿੰਡੋਜ਼ ਪਲੇਟਫਾਰਮ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਸਿਸਟਮ ਅਸਥਾਈ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਇੱਕ ਮਾਰਗ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਸੀ ਜਿਸ ਵਿੱਚ ਇੱਕ ਬਿੰਦੀ '।' ਅੱਖਰ, ਕੰਪਾਈਲਰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।

5.6 ਸੰਸਕਰਣ 2.30
ਗਲੋਬਲ ਲੇਬਲ ਰੂਪਰੇਖਾ (XC8-2299) ਹੱਥ-ਲਿਖਤ ਅਸੈਂਬਲੀ ਕੋਡ ਜੋ ਗਲੋਬਲ ਰੱਖਦਾ ਹੈ ਅਸੈਂਬਲੀ ਕ੍ਰਮਾਂ ਦੇ ਅੰਦਰਲੇ ਲੇਬਲ ਜੋ ਕਿ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਦੁਆਰਾ ਫੈਕਟਰ ਕੀਤੇ ਗਏ ਹਨ, ਸ਼ਾਇਦ ਸਹੀ ਢੰਗ ਨਾਲ ਮੁੜ-ਸਥਾਪਿਤ ਨਹੀਂ ਕੀਤੇ ਗਏ ਹਨ।
ਇੱਕ ਆਰਾਮਦਾਇਕ ਕਰੈਸ਼ (XC8-2287) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ -mrelax ਵਿਕਲਪ ਕਾਰਨ ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਟੇਲ ਜੰਪ ਰਿਲੈਕਸੇਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੇ ਰੀਟ ਹਦਾਇਤਾਂ ਨੂੰ ਹਟਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜੋ ਇੱਕ ਦੇ ਅੰਤ ਵਿੱਚ ਨਹੀਂ ਸਨ ਅਨੁਭਾਗ.
ਲੇਬਲ ਨੂੰ ਵੈਲਯੂਜ਼ (XC8-2282) ਕੋਡ ਦੇ ਰੂਪ ਵਿੱਚ ਅਨੁਕੂਲ ਬਣਾਉਣ ਵੇਲੇ ਕ੍ਰੈਸ਼ ਭਾਸ਼ਾ ਦੀ ਐਕਸਟੈਂਸ਼ਨ ਨੇ ਇੱਕ ਆਉਟਲਾਈਨਡ VMA ਰੇਂਜ ਸਪੈਨਸ ਫਿਕਸਅੱਪ ਗਲਤੀ ਦੇ ਨਾਲ, ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੂੰ ਕਰੈਸ਼ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ।
ਇੰਨਾ ਨਹੀਂ const (XC8-2271) ਲਈ ਪ੍ਰੋਟੋਟਾਈਪ strstr () ਅਤੇ ਹੋਰ ਫੰਕਸ਼ਨ ਤੋਂ ਜਦੋਂ -mconst-data- inprogmem ਵਿਸ਼ੇਸ਼ਤਾ ਅਯੋਗ ਹੁੰਦੀ ਹੈ ਤਾਂ ਵਾਪਸ ਕੀਤੇ ਸਟ੍ਰਿੰਗ ਪੁਆਇੰਟਰਾਂ 'ਤੇ ਗੈਰ-ਸਟੈਂਡਰਡ ਕੰਸਟ ਕੁਆਲੀਫਾਇਰ ਨੂੰ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦੇ। ਨੋਟ ਕਰੋ ਕਿ avrxmega3 ਅਤੇ avrtiny ਡਿਵਾਈਸਾਂ ਦੇ ਨਾਲ, ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਸਥਾਈ ਤੌਰ 'ਤੇ ਸਮਰੱਥ ਹੈ।
ਗੁੰਮਸ਼ੁਦਾ ਸ਼ੁਰੂਆਤੀ (XC8-2269) ਜਦੋਂ ਅਨੁਵਾਦ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਵੇਰੀਏਬਲ ਹੁੰਦੇ ਹਨ ਯੂਨਿਟ ਨੂੰ ਇੱਕ ਭਾਗ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਸੀ (ਵਰਤਦੇ ਹੋਏ ਅਨੁਭਾਗ or ਵਿਸ਼ੇਸ਼ਤਾ ( (ਅਨੁਭਾਗ) )), ਅਤੇ ਪਹਿਲਾ ਅਜਿਹਾ ਵੇਰੀਏਬਲ ਜ਼ੀਰੋ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ਡ ਸੀ ਜਾਂ ਇਨੀਸ਼ੀਅਲਾਈਜ਼ਰ ਨਹੀਂ ਸੀ, ਉਸੇ ਸੈਕਸ਼ਨ ਵਿੱਚ ਰੱਖੇ ਗਏ ਸਮਾਨ ਅਨੁਵਾਦ ਯੂਨਿਟ ਵਿੱਚ ਹੋਰ ਵੇਰੀਏਬਲਾਂ ਲਈ ਇਨੀਸ਼ਿਅਲਾਈਜ਼ਰ ਗੁਆਚ ਗਏ ਸਨ।

5.1 ਸੰਸਕਰਣ 2.2 9 (ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਰੀਲੀਜ਼) ਕੋਈ ਨਹੀਂ। 
5.2 ਸੰਸਕਰਣ 2.20
ਲੰਬੀਆਂ ਕਮਾਂਡਾਂ ਨਾਲ ਗਲਤੀ (XC8-1983) ਇੱਕ AVR ਟਾਰਗਿਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਕੰਪਾਈਲਰ ਇੱਕ ਲਿਲਟ ਨਾ ਲੱਭੀ ਗਲਤੀ ਨਾਲ ਰੁਕਿਆ ਹੋ ਸਕਦਾ ਹੈ, ਜੇਕਰ ਕਮਾਂਡ ਲਾਈਨ ਬਹੁਤ ਵੱਡੀ ਸੀ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਅੱਖਰ ਜਿਵੇਂ ਕਿ ਕੋਟਸ, ਬੈਕਸਲੈਸ਼ ਆਦਿ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ।
ਅਸਾਈਨ ਕੀਤੇ ਰੋਡਾਟਾ ਸੈਕਸ਼ਨ (XC8-1920) AVR ਲਿੰਕਰ avrxmega3 ਅਤੇ avrtiny ਆਰਕੀਟੈਕਚਰ ਲਈ ਬਣਾਉਂਦੇ ਸਮੇਂ ਕਸਟਮ ਰੋਡਾਟਾ ਸੈਕਸ਼ਨਾਂ ਲਈ ਮੈਮੋਰੀ ਅਸਾਈਨ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ, ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਗਲਤੀਆਂ ਪੈਦਾ ਕਰਦਾ ਹੈ

5.3 ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
5.4 ਸੰਸਕਰਣ 2.10
ਰੀਲੋਕੇਸ਼ਨ ਅਸਫਲਤਾਵਾਂ (XC8-1891) ਸਭ ਤੋਂ ਵਧੀਆ ਫਿੱਟ ਐਲੋਕਟਰ ਲਿੰਕਰ ਆਰਾਮ ਤੋਂ ਬਾਅਦ ਭਾਗਾਂ ਦੇ ਵਿਚਕਾਰ ਮੈਮੋਰੀ 'ਹੋਲ' ਛੱਡ ਰਿਹਾ ਸੀ। ਮੈਮੋਰੀ ਨੂੰ ਖੰਡਿਤ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਇਸ ਨੇ ਪੀਸੀ-ਰਿਲੇਟਿਵ ਜੰਪਸ ਜਾਂ ਕਾਲਾਂ ਦਾ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਹੋਣ ਨਾਲ ਸਬੰਧਤ ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਅਸਫਲਤਾਵਾਂ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਨੂੰ ਵਧਾਇਆ ਹੈ।
ਹਿਦਾਇਤਾਂ ਵਿੱਚ ਢਿੱਲ (XC8-1889) ਦੁਆਰਾ ਨਹੀਂ ਬਦਲੀਆਂ ਗਈਆਂ ਲਿੰਕਰ ਢਿੱਲ ਛਾਲ ਮਾਰਨ ਜਾਂ ਕਾਲ ਕਰਨ ਦੀਆਂ ਹਦਾਇਤਾਂ ਲਈ ਨਹੀਂ ਆਈਆਂ ਜਿਨ੍ਹਾਂ ਦੇ ਟੀਚੇ ਢਿੱਲੇ ਹੋਣ 'ਤੇ ਪਹੁੰਚਯੋਗ ਹੋ ਜਾਂਦੇ ਹਨ।
ਗੁੰਮ ਹੈ ਕਾਰਜਸ਼ੀਲਤਾ (XC8E-3) ਤੋਂ ਕਈ ਪਰਿਭਾਸ਼ਾਵਾਂ , ਜਿਵੇਂ ਕਿ clock_div_t ਅਤੇ clock_presc ale_s et () , ਨੂੰ ਡਿਵਾਈਸਾਂ ਲਈ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਵਿੱਚ ATmega324PB, ATmega328PB, ATtiny441, ਅਤੇ ATtiny841 ਸ਼ਾਮਲ ਹਨ।
ਗੁੰਮ ਮੈਕਰੋ ਪ੍ਰੀਪ੍ਰੋਸੈਸਰ ਮੈਕਰੋਜ਼ _XC 8_MODE_, XC 8 VERS ION, XC, ਅਤੇ xc8 ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤੇ ਗਏ ਸਨ। ਇਹ ਹੁਣ ਉਪਲਬਧ ਹਨ।

5.5 ਸੰਸਕਰਣ 2.05
ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ (XC8-1822) ਵਿੰਡੋਜ਼ ਦੇ ਅਧੀਨ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਕੋਡ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਵੇਲੇ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ ਪੈਦਾ ਹੋ ਸਕਦੀ ਹੈ।
ਰੈਮ ਓਵਰਫਲੋ ਖੋਜਿਆ ਨਹੀਂ ਗਿਆ (XC8-1800, XC8-1796) ਪ੍ਰੋਗਰਾਮ ਜੋ ਕਿ ਉਪਲਬਧ RAM ਤੋਂ ਵੱਧ ਗਏ ਹਨ, ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਖੋਜਿਆ ਨਹੀਂ ਗਿਆ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਰਨਟਾਈਮ ਕੋਡ ਅਸਫਲ ਹੁੰਦਾ ਹੈ।
ਛੱਡੀ ਗਈ ਫਲੈਸ਼ ਮੈਮੋਰੀ (XC8-1792) avrxmega3 ਅਤੇ avrtiny ਡਿਵਾਈਸਾਂ ਲਈ, ਫਲੈਸ਼ ਮੈਮੋਰੀ ਦੇ ਹਿੱਸੇ MPLAB X IDE ਦੁਆਰਾ ਗੈਰ-ਪ੍ਰੋਗਰਾਮ ਕੀਤੇ ਗਏ ਹੋ ਸਕਦੇ ਹਨ।
ਮੁੱਖ (XC8-1788) ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲਤਾ ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ ਜਿੱਥੇ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਕੋਈ ਗਲੋਬਲ ਵੇਰੀਏਬਲ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਸਨ, ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਬਾਹਰ ਨਹੀਂ ਆਇਆ ਅਤੇ ਮੁੱਖ () ਫੰਕਸ਼ਨ ਤੱਕ ਕਦੇ ਨਹੀਂ ਪਹੁੰਚਿਆ ਸੀ।
ਗਲਤ ਮੈਮੋਰੀ ਜਾਣਕਾਰੀ (XC8-1787) avrxmega3 ਅਤੇ avrtiny ਡਿਵਾਈਸਾਂ ਲਈ, avr-ਸਾਈਜ਼ ਪ੍ਰੋਗਰਾਮ ਰਿਪੋਰਟ ਕਰ ਰਿਹਾ ਸੀ ਕਿ ਮੈਡ-ਓਨਲੀ ਡੇਟਾ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੀ ਬਜਾਏ RAM ਦੀ ਖਪਤ ਕਰ ਰਿਹਾ ਸੀ।
ਗਲਤ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਰੀਡ (XC8-1783) ਪ੍ਰੋਜੈਕਟ ਮੈਮੋਰੀ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਲਈ ਡਾਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਮੈਪ ਕੀਤੀ ਗਈ ਹੈ ਅਤੇ ਜੋ PROGMEM ਮੈਕਰੋ/ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਆਬਜੈਕਟ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹਨ, ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਇਹਨਾਂ ਵਸਤੂਆਂ ਨੂੰ ਗਲਤ ਪਤੇ ਤੋਂ ਪੜ੍ਹਿਆ ਗਿਆ ਹੋਵੇ।
ਗੁਣਾਂ ਨਾਲ ਅੰਦਰੂਨੀ ਤਰੁੱਟੀ (XC8-1773) ਜੇਕਰ ਤੁਸੀਂ ਪੁਆਇੰਟਰ ਆਬਜੈਕਟ ਨੂੰ _at 0 ਜਾਂ ਗੁਣ() ਟੋਕਨਾਂ ਨਾਲ ਪੁਆਇੰਟਰ ਨਾਮ ਅਤੇ dereferenced ਕਿਸਮ ਦੇ ਵਿਚਕਾਰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ, ਤਾਂ ਇੱਕ ਅੰਦਰੂਨੀ ਤਰੁਟੀ ਆਈ ਹੈ, ਜਿਵੇਂ ਕਿample, char *_at (0x800150) cp; ਅਜਿਹੇ ਕੋਡ ਦਾ ਸਾਹਮਣਾ ਕਰਨ 'ਤੇ ਹੁਣ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।

ਮੁੱਖ ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲ (XC8-1780, XC8-1767, XC8-1754) EEPROM ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰਨ ਜਾਂ ਕੌਂਫਿਗ ਪ੍ਰੈਗਮਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਨਾਲ ਮੁੱਖ 0 ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ, ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਵਿੱਚ ਗਲਤ ਡੇਟਾ ਅਰੰਭਕਰਨ ਅਤੇ/ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਲਾਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਛੋਟੇ ਯੰਤਰਾਂ ਨਾਲ ਫਿਊਜ਼ ਗਲਤੀ (XC8-1778, XC8-1742) attiny4/5/9/10120140 ਡਿਵਾਈਸਾਂ ਦੇ ਸਿਰਲੇਖ ਵਿੱਚ ਇੱਕ ਗਲਤ ਫਿਊਜ਼ ਲੰਬਾਈ ਨਿਰਧਾਰਤ ਕੀਤੀ ਗਈ ਸੀ files ਜੋ ਕਿ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਾਲੇ ਕੋਡ ਨੂੰ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਲਿੰਕਰ ਗਲਤੀਆਂ ਵੱਲ ਲੈ ਜਾਂਦਾ ਹੈ।

ਵਿਭਾਜਨ ਨੁਕਸ (XC8-1777) ਇੱਕ ਰੁਕ-ਰੁਕ ਕੇ ਵੰਡਣ ਦਾ ਨੁਕਸ ਠੀਕ ਕੀਤਾ ਗਿਆ ਹੈ।

ਅਸੈਂਬਲਰ ਕਰੈਸ਼ (XC8-1761) avr -as ਅਸੈਂਬਲਰ ਕ੍ਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕੰਪਾਈਲਰ ਨੂੰ ਉਬੰਟੂ 18 ਦੇ ਅਧੀਨ ਚਲਾਇਆ ਗਿਆ ਸੀ।

ਵਸਤੂਆਂ ਨੂੰ ਸਾਫ਼ ਨਹੀਂ ਕੀਤਾ ਗਿਆ (XC8-1752) ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਦੁਆਰਾ ਅਣ-ਸ਼ੁਰੂਆਤ ਸਥਿਰ ਸਟੋਰੇਜ ਮਿਆਦ ਦੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਕਲੀਅਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੋ ਸਕਦਾ ਹੈ।

ਵਿਰੋਧੀ ਡਿਵਾਈਸ ਨਿਰਧਾਰਨ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਗਿਆ (XC8-1749) The ਕੰਪਾਈਲਰ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ ਜਦੋਂ ਕਈ ਡਿਵਾਈਸ ਨਿਰਧਾਰਨ ਵਿਕਲਪ ਵਰਤੇ ਗਏ ਸਨ ਅਤੇ ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਨੂੰ ਸੰਕੇਤ ਕੀਤਾ ਗਿਆ ਸੀ।

ਹੀਪ ਦੁਆਰਾ ਮੈਮੋਰੀ ਭ੍ਰਿਸ਼ਟਾਚਾਰ (XC8-1748) The _heap_start ਚਿੰਨ੍ਹ ਨੂੰ ਗਲਤ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਆਮ ਵੇਰੀਏਬਲਾਂ ਦੇ ਹੀਪ ਦੁਆਰਾ ਖਰਾਬ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।

ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਗਲਤੀ (XC8-1739) ਇੱਕ ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਗਲਤੀ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਕੋਡ ਵਿੱਚ ਇੱਕ rjmn ਜਾਂ rcal ਹੁੰਦਾ ਹੈ ਜਿਸਦਾ ਟੀਚਾ ਬਿਲਕੁਲ 4k ਬਾਈਟ ਦੂਰ ਹੁੰਦਾ ਹੈ।

5.6 ਸੰਸਕਰਣ 2.00 ਕੋਈ ਨਹੀਂ।

ਜਾਣੇ-ਪਛਾਣੇ ਮੁੱਦੇ

ਕੰਪਾਈਲਰ ਦੇ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਕਮੀਆਂ ਹਨ। ਇਹ ਆਮ ਕੋਡਿੰਗ ਪਾਬੰਦੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਜਾਂ ਉਪਭੋਗਤਾ ਦੇ ਮੈਨੂਅਲ ਵਿੱਚ ਸ਼ਾਮਲ ਜਾਣਕਾਰੀ ਤੋਂ ਭਟਕਣਾ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਟਾਈਡ ਵਿੱਚ ਬਰੈਕਟ ਕੀਤੇ ਲੇਬਲ(ਲੇ) ਟਰੈਕਿੰਗ ਡੇਟਾਬੇਸ ਵਿੱਚ ਮੁੱਦੇ ਦੀ ਪਛਾਣ ਹਨ। ਇਹ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਉਹ ਆਈਟਮਾਂ ਜਿਹਨਾਂ ਵਿੱਚ ਲੇਬਲ ਨਹੀਂ ਹਨ ਉਹ ਸੀਮਾਵਾਂ ਹਨ ਜੋ ਕਿ ਮੋਡੀ ਓਪਰੇੰਡੀ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਜੋ ਸਥਾਈ ਤੌਰ 'ਤੇ ਪ੍ਰਭਾਵੀ ਰਹਿਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।
6.1 MPLAB X IDE ਏਕੀਕਰਣ
MPLAB IDE ਏਕੀਕਰਣ ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ MPLAB IDE ਤੋਂ ਵਰਤਿਆ ਜਾਣਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੰਪਾਈਲਰ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ MPLAB IDE ਨੂੰ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
6.2 ਕੋਡ ਜਨਰੇਸ਼ਨ
ਗਲਤ ਸ਼ੁਰੂਆਤੀਕਰਣ (XC8-2679) ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਕੁਝ ਗਲੋਬਲ/ਸਟੈਟਿਕ ਬਾਈਟ-ਆਕਾਰ ਦੀਆਂ ਵਸਤੂਆਂ ਲਈ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ ਕਿੱਥੇ ਰੱਖੇ ਗਏ ਹਨ ਅਤੇ ਰਨਟਾਈਮ 'ਤੇ ਵੇਰੀਏਬਲ ਕਿੱਥੇ ਐਕਸੈਸ ਕੀਤੇ ਜਾਣਗੇ, ਇਸ ਵਿੱਚ ਇੱਕ ਅੰਤਰ ਹੈ।
strtod ਗਲਤ ਢੰਗ ਨਾਲ endptr ਸੈੱਟ ਕਰਦਾ ਹੈ (XC8-2652) ਉਦਾਹਰਨਾਂ ਵਿੱਚ ਜਿੱਥੇ ਸਟ੍ਰੋਡ () ਦੁਆਰਾ ਪਰਿਵਰਤਨ ਲਈ ਇੱਕ ਵਿਸ਼ਾ ਸਤਰ ਵਿੱਚ ਘਾਤਕ ਫਾਰਮੈਟ ਵਿੱਚ ਇੱਕ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇੱਕ e ਅੱਖਰ ਤੋਂ ਬਾਅਦ ਇੱਕ ਅਚਾਨਕ ਅੱਖਰ ਹੁੰਦਾ ਹੈ, ਤਾਂ endptr ਪਤਾ, ਜੇਕਰ ਪ੍ਰਦਾਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਬਾਅਦ ਵਿੱਚ ਅੱਖਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੇਗਾ e ਅਤੇ e ਹੀ ਨਹੀਂ। ਸਾਬਕਾ ਲਈample: strtod (“100exy”, endptr);

endptr x ਅੱਖਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰੇਗਾ।

ਖਰਾਬ ਅਸਿੱਧੇ ਫੰਕਸ਼ਨ ਕਾਲਾਂ (X03-2628) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਇੱਕ ਢਾਂਚੇ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਸਟੋਰ ਕੀਤੇ ਫੰਕਸ਼ਨ ਪੁਆਇੰਟਰ ਦੁਆਰਾ ਕੀਤੀਆਂ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਅਸਫਲ ਹੋ ਸਕਦੀਆਂ ਹਨ।

strtof ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਸ (XC8-2626) ਲਈ ਜ਼ੀਰੋ ਵਾਪਸ ਕਰਦਾ ਹੈ ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ strtof () et al ਅਤੇ scanf () et al, ਹਮੇਸ਼ਾ ਇੱਕ ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਸੰਖਿਆ ਨੂੰ ਬਦਲਦੇ ਹਨ ਜੋ ਜ਼ੀਰੋ ਤੱਕ ਇੱਕ ਘਾਤਕ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample: strtof (“Oxl”, &endptr); ਮੁੱਲ 0 ਵਾਪਸ ਕਰੇਗਾ, 1 ਨਹੀਂ।
ਗਲਤ ਸਟੈਕ ਸਲਾਹਕਾਰ ਮੈਸੇਜਿੰਗ (XC8-2542, XC8-2541) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਵਰਤੇ ਗਏ ਦੁਹਰਾਓ ਜਾਂ ਅਨਿਸ਼ਚਿਤ ਸਟੈਕ (ਸੰਭਵ ਤੌਰ 'ਤੇ alloca() ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ) ਦੇ ਸਬੰਧ ਵਿੱਚ ਸਟੈਕ ਸਲਾਹਕਾਰ ਚੇਤਾਵਨੀ ਨਹੀਂ ਛੱਡੀ ਜਾਂਦੀ ਹੈ।
ਡੁਪਲੀਕੇਟ ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2421) ਨਾਲ ਅਸਫਲਤਾ ਜਿੱਥੇ ਇੱਕ ਤੋਂ ਵੱਧ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਇੱਕੋ ਬਾਡੀ ਹੈ, ਕੰਪਾਈਲਰ ਕੋਲ ਇੱਕ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਲਈ ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੀ ਹੈ ਦੂਜੇ ਨੂੰ ਕਾਲ ਕਰੋ। ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਸਾਰੇ ਕਾਲ-ਕਲੋਬਰਡ ਰਜਿਸਟਰਾਂ ਨੂੰ ਬੇਲੋੜੀ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਮੌਜੂਦਾ ਇੰਟਰੱਪਟ ਹੈਂਡਲਰ ਦੇ ਐਪੀਲੋਗ ਦੇ ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇੰਟਰਪਟਸ ਸਮਰੱਥ ਹੋ ਜਾਣਗੇ, ਜਿਸ ਨਾਲ ਕੋਡ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।
ਕਾਂਸਟ ਆਬਜੈਕਟ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਨਹੀਂ ਹਨ (XC8-2408) avrxmega3 ਅਤੇ avrtiny ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਯੂਨਿਟੀਅਲਾਈਜ਼ਡ ਕੰਸਟ ਆਬਜੈਕਟਸ ਨੂੰ ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਭਾਵੇਂ ਇੱਕ ਚੇਤਾਵਨੀ ਸੁਝਾਅ ਦਿੰਦੀ ਹੈ ਕਿ ਉਹਨਾਂ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਹੈ। ਇਹ ਉਹਨਾਂ ਡਿਵਾਈਸਾਂ ਨੂੰ ਪ੍ਰਭਾਵਤ ਨਹੀਂ ਕਰੇਗਾ ਜਿਹਨਾਂ ਕੋਲ ਡੇਟਾ ਮੈਮੋਰੀ ਸਪੇਸ ਵਿੱਚ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਮੈਪ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਅਤੇ ਨਾ ਹੀ ਇਹ ਕਿਸੇ ਵੀ ਆਬਜੈਕਟ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰੇਗਾ ਜੋ ਸ਼ੁਰੂਆਤੀ ਹੈ।
ਅਵੈਧ DFP ਮਾਰਗ (XCS-2376) ਨਾਲ ਖਰਾਬ ਆਉਟਪੁੱਟ ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ ਇੱਕ ਅਵੈਧ DFP ਮਾਰਗ ਅਤੇ ਇੱਕ 'ਸਪੈਕ' ਨਾਲ ਬੁਲਾਇਆ ਗਿਆ ਹੈ file ਚੁਣੀ ਗਈ ਡਿਵਾਈਸ ਲਈ ਮੌਜੂਦ ਹੈ, ਕੰਪਾਈਲਰ ਗੁੰਮ ਹੋਏ ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ ਦੀ ਰਿਪੋਰਟ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ 'ਸਪੈਕ' ਨੂੰ ਚੁਣ ਰਿਹਾ ਹੈ। file, ਜੋ ਫਿਰ ਇੱਕ ਅਵੈਧ ਆਉਟਪੁੱਟ ਦੀ ਅਗਵਾਈ ਕਰ ਸਕਦਾ ਹੈ। 'ਵਿਸ਼ੇਸ਼' files ਵੰਡੇ ਗਏ DFPs ਨਾਲ ਅੱਪ-ਟੂ-ਡੇਟ ਨਹੀਂ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਸਿਰਫ਼ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਟੈਸਟਿੰਗ ਲਈ ਵਰਤਣ ਲਈ ਸਨ।
ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਦਾ ਪਤਾ ਨਹੀਂ ਲੱਗਾ (XC8-1966) ਕੰਪਾਈਲਰ ਕਿਸੇ ਐਡਰੈੱਸ (_at 0 ਰਾਹੀਂ) ਅਤੇ _ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਹੋਰ ਆਬਜੈਕਟਾਂ 'ਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਣਾਏ ਗਏ ਆਬਜੈਕਟ ਦੀ ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾ ਰਿਹਾ ਹੈ।ਸੰਪਰਦਾion () ਨਿਰਧਾਰਕ ਅਤੇ ਜੋ ਇੱਕੋ ਪਤੇ ਨਾਲ ਜੁੜੇ ਹੋਏ ਹਨ।
ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਅਤੇ _memx (XC8-1763) ਵਿੱਚ ਅਸਫਲਤਾ _memx ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਇੱਕ ਆਰਗੂਮੈਂਟ ਦੇ ਨਾਲ libgcc ਫਲੋਟ ਫੰਕਸ਼ਨ ਫੇਲ ਹੋ ਸਕਦਾ ਹੈ। ਨੋਟ ਕਰੋ ਕਿ ਲਾਇਬ੍ਰੇਰੀ ਰੁਟੀਨ ਨੂੰ ਕੁਝ C ਓਪਰੇਟਰਾਂ ਤੋਂ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ, ਸਾਬਕਾ ਲਈampਲੇ, ਹੇਠ ਦਿੱਤੇ ਕੋਡ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤਾ ਗਿਆ ਹੈ: ਵਾਪਸੀ regFloatVar > memxFloatVar;
ਲਈ ਸੀਮਿਤ libgcc ਲਾਗੂਕਰਨ (AVRTC-731) ATTiny4/5/9/10/20/40 ਉਤਪਾਦ, libgcc ਵਿੱਚ ਮਿਆਰੀ C/Math ਲਾਇਬ੍ਰੇਰੀ ਲਾਗੂ ਕਰਨਾ ਬਹੁਤ ਸੀਮਤ ਹੈ ਜਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਸੀਮਾਵਾਂ (AVRTC-732) 128 kb ਤੋਂ ਵੱਧ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਚਿੱਤਰ ਟੂਲਚੇਨ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹਨ; ਹਾਲਾਂਕਿ, ਲਿੰਕਰ ਅਧੂਰੇ ਛੱਡਣ ਦੀਆਂ ਉਦਾਹਰਨਾਂ ਹਨ ਜਦੋਂ -mrelax ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਲੋੜੀਂਦੇ ਫੰਕਸ਼ਨ ਸਟੱਬ ਬਣਾਉਣ ਦੀ ਬਜਾਏ ਬਿਨਾਂ ਕਿਸੇ ਢਿੱਲ ਦੇ ਅਤੇ ਇੱਕ ਮਦਦਗਾਰ ਗਲਤੀ ਸੰਦੇਸ਼ ਦੇ ਬਿਨਾਂ।
ਨਾਮ ਸਪੇਸ ਸੀਮਾਵਾਂ (AVRTC-733) ਨਾਮ ਦਿੱਤੇ ਐਡਰੈੱਸ ਸਪੇਸ ਟੂਲਚੇਨ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹਨ, ਉਪਭੋਗਤਾ ਦੇ ਗਾਈਡ ਸੈਕਸ਼ਨ ਸਪੈਸ਼ਲ ਟਾਈਪ ਕੁਆਲੀਫਾਇਰ ਵਿੱਚ ਦੱਸੀਆਂ ਗਈਆਂ ਸੀਮਾਵਾਂ ਦੇ ਅਧੀਨ।
ਟਾਈਮ ਜ਼ੋਨ The ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ GMT ਨੂੰ ਮੰਨਦੇ ਹਨ ਅਤੇ ਲੋਕਲ ਟਾਈਮ ਜ਼ੋਨਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ ਹਨ, ਇਸ ਤਰ੍ਹਾਂ loca It ime 0 ਉਸੇ ਸਮੇਂ ਨੂੰ gmtime ( ) ਦੇ ਰੂਪ ਵਿੱਚ ਵਾਪਸ ਕਰੇਗਾ, ਸਾਬਕਾ ਲਈample.

ਦਸਤਾਵੇਜ਼ / ਸਰੋਤ

AVR MCU ਲਈ ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 ਰੀਲੀਜ਼ ਨੋਟਸ [pdf] ਯੂਜ਼ਰ ਗਾਈਡ
AVR MCU ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 ਰੀਲੀਜ਼ ਨੋਟਸ, MPLAB XC8 C, ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ, AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ
AVR MCU ਲਈ ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 ਰੀਲੀਜ਼ ਨੋਟਸ [pdf] ਯੂਜ਼ਰ ਗਾਈਡ
AVR MCU ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 ਰੀਲੀਜ਼ ਨੋਟਸ, MPLAB XC8 C, ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.39 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ, AVR MCU ਲਈ ਨੋਟਸ
ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ [pdf] ਯੂਜ਼ਰ ਗਾਈਡ
MPLAB XC8 C ਕੰਪਾਈਲਰ, MPLAB XC8 C, ਕੰਪਾਈਲਰ

ਹਵਾਲੇ

ਇੱਕ ਟਿੱਪਣੀ ਛੱਡੋ

ਤੁਹਾਡਾ ਈਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਲੋੜੀਂਦੇ ਖੇਤਰਾਂ ਨੂੰ ਚਿੰਨ੍ਹਿਤ ਕੀਤਾ ਗਿਆ ਹੈ *