ਮਾਈਕ੍ਰੋਚਿੱਪ ਲੋਗੋMPLAB® XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.41 AVR® MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ
ਮਾਲਕ ਦਾ ਮੈਨੂਅਲ

MPLAB XC8 C ਕੰਪਾਈਲਰ ਵਿਕਾਸ ਸਾਫਟਵੇਅਰ

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

ਵੱਧview

1.1. ਜਾਣ-ਪਛਾਣ
ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB® XC8 C ਕੰਪਾਈਲਰ ਦੇ ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਕਈ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਬੱਗ ਫਿਕਸ ਸ਼ਾਮਲ ਹਨ।
1.2 ਬਣਾਉਣ ਦੀ ਮਿਤੀ
ਇਸ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਦੀ ਅਧਿਕਾਰਤ ਬਿਲਡ ਮਿਤੀ 8 ਫਰਵਰੀ 2023 ਹੈ।
1.3 ਪਿਛਲਾ ਸੰਸਕਰਣ
ਪਿਛਲਾ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.40 3 ਜੁਲਾਈ 2022 ਨੂੰ ਬਣਾਇਆ ਗਿਆ ਸੀ।
1.4 ਕਾਰਜਾਤਮਕ ਸੁਰੱਖਿਆ ਮੈਨੂਅਲ
MPLAB XC ਕੰਪਾਈਲਰਾਂ ਲਈ ਇੱਕ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਮੈਨੂਅਲ ਦਸਤਾਵੇਜ਼ ਪੈਕੇਜ ਵਿੱਚ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਲਾਇਸੈਂਸ ਖਰੀਦਦੇ ਹੋ।
1.5 ਕੰਪੋਨੈਂਟ ਲਾਇਸੰਸ ਅਤੇ ਸੰਸਕਰਣ
AVR MCUs ਟੂਲਸ ਲਈ 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. ਵਿੰਡੋਜ਼ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। ਮੈਕੋਸ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਅਤੇ ਨੋਟਰਾਈਜ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। MPLAB XC ਨੈੱਟਵਰਕ ਲਾਈਸੈਂਸ ਸਰਵਰ 64-ਬਿੱਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਦੀ ਇੱਕ ਕਿਸਮ ਲਈ ਉਪਲਬਧ ਹੈ, ਜਿਸ ਵਿੱਚ Microsoft Windows 10 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ ਦਾ ਵੀ ਸ਼ਾਮਲ ਹੈ; ਉਬੰਟੂ 18.04 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ; ਜਾਂ macOS 10.15 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ। ਸਰਵਰ ਵਿੰਡੋਜ਼ ਸਰਵਰ, ਲੀਨਕਸ ਡਿਸਟ੍ਰੀਬਿਊਸ਼ਨਾਂ, ਜਿਵੇਂ ਕਿ Oracle® Enterprise Linux® ਅਤੇ Red Hate Enterprise Linux ਦੇ ਨਾਲ-ਨਾਲ ਸਮਰਥਿਤ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣਾਂ ਸਮੇਤ ਕਈ ਹੋਰ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ ਵੀ ਚੱਲ ਸਕਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਇਹਨਾਂ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਨੂੰ ਨੈੱਟਵਰਕ ਲਾਇਸੰਸ (SW006021-VM) ਲਈ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਲਾਇਸੈਂਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਮਰਥਿਤ OS ਦੀਆਂ ਵਰਚੁਅਲ ਮਸ਼ੀਨਾਂ 'ਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। MPLAB XC ਨੈੱਟਵਰਕ ਸਰਵਰ ਦੇ ਸਾਰੇ 32-ਬਿੱਟ ਸੰਸਕਰਣ ਵਰਜਨ 3.00 ਤੋਂ ਬੰਦ ਕਰ ਦਿੱਤੇ ਗਏ ਹਨ।
ਜੰਤਰ ਸਹਿਯੋਗੀ
ਇਹ ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਦੇ ਸਮੇਂ ਸਾਰੇ ਉਪਲਬਧ 8-ਬਿੱਟ AVR MCU ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਸਮਰਥਿਤ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਲਈ (ਕੰਪਾਈਲਰ ਦੀ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ) ਵੇਖੋ। ਇਹ ਫਾਈਲਾਂ ਵੀ ਸੂਚੀਬੱਧ ਹਨ
avr_chipinfo.html ਹਰੇਕ ਡਿਵਾਈਸ ਲਈ ਡੌਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਿੱਟ ਸੈਟਿੰਗਾਂ।

1.7 ਐਡੀਸ਼ਨ ਅਤੇ ਲਾਇਸੰਸ ਅੱਪਗਰੇਡ
MPLAB XC8 ਕੰਪਾਈਲਰ ਨੂੰ ਇੱਕ ਲਾਇਸੰਸਸ਼ੁਦਾ (PRO) ਜਾਂ ਬਿਨਾਂ ਲਾਇਸੈਂਸ (ਮੁਫ਼ਤ) ਉਤਪਾਦ ਵਜੋਂ ਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਆਪਣੇ ਕੰਪਾਈਲਰ ਨੂੰ ਲਾਇਸੈਂਸ ਦੇਣ ਲਈ ਇੱਕ ਐਕਟੀਵੇਸ਼ਨ ਕੁੰਜੀ ਖਰੀਦਣ ਦੀ ਲੋੜ ਹੈ। ਇੱਕ ਲਾਇਸੰਸ ਮੁਫਤ ਉਤਪਾਦ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਉੱਚ ਪੱਧਰ ਦੇ ਅਨੁਕੂਲਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਵਾਲੇ ਕੰਪਾਈਲਰ ਨੂੰ ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਦੇ ਅਣਮਿੱਥੇ ਸਮੇਂ ਲਈ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਇੱਕ MPLAB XC8 ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਨੂੰ ਮਾਈਕ੍ਰੋਚਿੱਪ ਤੋਂ ਖਰੀਦੇ ਗਏ ਇੱਕ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਲਾਇਸੈਂਸ ਨਾਲ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਕੰਪਾਈਲਰ ਇਸ ਲਾਇਸੈਂਸ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ। ਇੱਕ ਵਾਰ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਅਨੁਕੂਲਨ ਪੱਧਰ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸਾਰੀਆਂ ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। MPLAB XC ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਦਾ ਇਹ ਰੀਲੀਜ਼ ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਈਸੈਂਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
ਲਾਇਸੈਂਸ ਦੀਆਂ ਕਿਸਮਾਂ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇ ਨਾਲ ਕੰਪਾਈਲਰ ਦੀ ਸਥਾਪਨਾ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ MPLAB XC C ਕੰਪਾਈਲਰ (DS50002059) ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇਣਾ ਦਸਤਾਵੇਜ਼ ਦੇਖੋ।

1.8. ਇੰਸਟਾਲੇਸ਼ਨ ਅਤੇ ਸਰਗਰਮੀ
ਇਸ ਕੰਪਾਈਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਨਵੀਨਤਮ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਬਾਰੇ ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ ਮਾਈਗ੍ਰੇਸ਼ਨ ਮੁੱਦੇ ਅਤੇ ਸੀਮਾਵਾਂ ਸੈਕਸ਼ਨ ਵੀ ਦੇਖੋ।
ਜੇਕਰ 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.8.1. ਇੰਸਟਾਲੇਸ਼ਨ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਵਿੰਡੋਜ਼ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਅਧੀਨ ਕੰਪਾਈਲਰ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਵਿੱਚ ਮੁਸ਼ਕਲਾਂ ਦਾ ਅਨੁਭਵ ਕਰਦੇ ਹੋ, ਤਾਂ ਹੇਠਾਂ ਦਿੱਤੇ ਸੁਝਾਵਾਂ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
ਇੱਕ ਪ੍ਰਬੰਧਕ ਦੇ ਤੌਰ ਤੇ ਇੰਸਟਾਲ ਚਲਾਓ.
ਇੰਸਟਾਲਰ ਐਪਲੀਕੇਸ਼ਨ ਦੀਆਂ ਅਨੁਮਤੀਆਂ ਨੂੰ 'ਪੂਰਾ ਕੰਟਰੋਲ' 'ਤੇ ਸੈੱਟ ਕਰੋ। (ਫਾਈਲ 'ਤੇ ਸੱਜਾ-ਕਲਿਕ ਕਰੋ, ਵਿਸ਼ੇਸ਼ਤਾ ਚੁਣੋ, ਸੁਰੱਖਿਆ ਟੈਬ, ਉਪਭੋਗਤਾ ਚੁਣੋ, ਸੰਪਾਦਨ ਕਰੋ।)
ਟੈਂਪ ਫੋਲਡਰ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਨੂੰ 'ਪੂਰਾ ਕੰਟਰੋਲ' 'ਤੇ ਸੈੱਟ ਕਰੋ।
ਟੈਂਪ ਫੋਲਡਰ ਦੀ ਸਥਿਤੀ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, Run ਕਮਾਂਡ (Windows logo key + R) ਵਿੱਚ %temp% ਟਾਈਪ ਕਰੋ।
ਇਹ ਉਸ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਦਿਖਾਉਂਦੇ ਹੋਏ ਇੱਕ ਫਾਈਲ ਐਕਸਪਲੋਰਰ ਡਾਇਲਾਗ ਖੋਲ੍ਹੇਗਾ ਅਤੇ ਤੁਹਾਨੂੰ ਉਸ ਫੋਲਡਰ ਦਾ ਮਾਰਗ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਵੇਗਾ।
1.9 ਕੰਪਾਈਲਰ ਦਸਤਾਵੇਜ਼ੀ
ਕੰਪਾਈਲਰ ਦੇ ਉਪਭੋਗਤਾ ਦੀਆਂ ਗਾਈਡਾਂ ਨੂੰ HTML ਪੰਨੇ ਤੋਂ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ ਜਦੋਂ MPLAB X IDE ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਨੀਲੇ ਹੈਲਪ ਬਟਨ ਨੂੰ ਕਲਿੱਕ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਸਕ੍ਰੀਨਸ਼ੌਟ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ।

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

ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ ਡਿਵੈਲਪਮੈਂਟ ਸੌਫਟਵੇਅਰ -

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

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

MPLAB XC8 ਦਸਤਾਵੇਜ਼ਾਂ ਦੇ ਆਨ-ਲਾਈਨ ਅਤੇ ਅੱਪ-ਟੂ-ਡੇਟ ਸੰਸਕਰਣਾਂ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਮਾਈਕ੍ਰੋਚਿੱਪ ਦੇ ਔਨਲਾਈਨ ਤਕਨੀਕੀ ਦਸਤਾਵੇਜ਼ਾਂ 'ਤੇ ਜਾਓ। webਸਾਈਟ. ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਨਵੇਂ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤੇ AVR ਦਸਤਾਵੇਜ਼:

  • MPLAB® XC8 C ਕੰਪਾਈਲਰ ਯੂਜ਼ਰਸ ਗਾਈਡ AVR® MCU (ਰਿਵੀਜ਼ਨ G) ਲਈ
  • AVR® GNU ਟੂਲਚੇਨ ਤੋਂ MPLAB® XC8 ਮਾਈਗ੍ਰੇਸ਼ਨ ਗਾਈਡ (ਸੰਸ਼ੋਧਨ A)
  • ਹੈਕਸਮੇਟ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ (ਸੰਸ਼ੋਧਨ B)

AVR® GNU Toolchain to MPLAB® XC8 ਮਾਈਗ੍ਰੇਸ਼ਨ ਗਾਈਡ ਸਰੋਤ ਕੋਡ ਅਤੇ ਬਿਲਡ ਵਿਕਲਪਾਂ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ ਜੋ ਤੁਹਾਨੂੰ AVR 8-bit GNU ਟੂਲਚੇਨ ਤੋਂ ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ ਵਿੱਚ ਇੱਕ C-ਅਧਾਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਮਾਈਗਰੇਟ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕਰਨ ਲਈ ਲੋੜੀਂਦੇ ਹੋ ਸਕਦੇ ਹਨ। ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਰੈਫਰੈਂਸ ਗਾਈਡ ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਫੰਕਸ਼ਨਾਂ ਦੇ ਵਿਵਹਾਰ ਅਤੇ ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ-ਨਾਲ ਲਾਇਬ੍ਰੇਰੀ ਕਿਸਮਾਂ ਅਤੇ ਮੈਕਰੋਜ਼ ਦੀ ਉਦੇਸ਼ਿਤ ਵਰਤੋਂ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਇਸ ਵਿੱਚੋਂ ਕੁਝ ਜਾਣਕਾਰੀ ਪਹਿਲਾਂ AVR® MCU ਲਈ MPLAB® XC8 C ਕੰਪਾਈਲਰ ਉਪਭੋਗਤਾ ਗਾਈਡ ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ। ਡਿਵਾਈਸ-ਵਿਸ਼ੇਸ਼ ਲਾਇਬ੍ਰੇਰੀ ਜਾਣਕਾਰੀ ਅਜੇ ਵੀ ਇਸ ਕੰਪਾਈਲਰ ਗਾਈਡ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ ਹੁਣੇ ਹੀ 8-ਬਿੱਟ ਡਿਵਾਈਸਾਂ ਅਤੇ MPLAB XC8 C ਕੰਪਾਈਲਰ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ MPLAB® XC8 ਯੂਜ਼ਰਜ਼ ਗਾਈਡ ਫਾਰ ਏਮਬੇਡਡ ਇੰਜੀਨੀਅਰ - AVR® MCUs (DS50003108) ਕੋਲ MPLAB X IDE ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਸਥਾਪਤ ਕਰਨ ਅਤੇ ਤੁਹਾਡੇ ਪਹਿਲੇ MPLAB XC8 C ਪ੍ਰੋਜੈਕਟ ਲਈ ਕੋਡ ਲਿਖਣ ਬਾਰੇ ਜਾਣਕਾਰੀ ਹੈ। ਇਹ ਗਾਈਡ ਹੁਣ ਕੰਪਾਈਲਰ ਨਾਲ ਵੰਡੀ ਗਈ ਹੈ।
ਹੈਕਸਮੇਟ ਯੂਜ਼ਰਸ ਗਾਈਡ ਉਹਨਾਂ ਲਈ ਹੈ ਜੋ ਹੈਕਸਮੇਟ ਨੂੰ ਇਕੱਲੇ ਐਪਲੀਕੇਸ਼ਨ ਵਜੋਂ ਚਲਾ ਰਹੇ ਹਨ।

ਨਵਾਂ ਕੀ ਹੈ

ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਨਵੀਆਂ AVR-ਨਿਸ਼ਾਨਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਕੰਪਾਈਲਰ ਹੁਣ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਉਪ-ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਸੰਸਕਰਣ ਨੰਬਰ ਉਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਹਿਲੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਬਾਅਦ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ।
3.1 ਸੰਸਕਰਣ 2.41
ਬੂਟਰੋ ਸਪੋਰਟ (XC8-3053) ਕੰਪਾਈਲਰ ਕਿਸੇ ਵੀ ਸੈਕਸ਼ਨ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਐਟ.ਬੂਟਰੋ ਐਡਰੈੱਸ 0x860000 ਦੇ ਪ੍ਰੀਫਿਕਸ ਨਾਲ HEX ਫਾਈਲ ਵਿੱਚ ਰੱਖੇਗਾ। ਇਹ ਭਾਗ BOOTROW ਮੈਮੋਰੀ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ ਕਿ ਕੁੰਜੀਆਂ ਅਤੇ ਹੋਰ ਸੁਰੱਖਿਅਤ ਜਾਣਕਾਰੀ ਦੇ ਸਟੋਰੇਜ਼ ਲਈ ਤਿਆਰ ਕੀਤੇ ਗਏ ਹਨ ਜੋ ਸਿਰਫ਼ ਬੂਟਲੋਡਰ ਲਈ ਪਹੁੰਚਯੋਗ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।

ਰਿਡੰਡੈਂਟ ਰਿਟਰਨ ਐਲੀਮੀਨੇਸ਼ਨ (XC8-3048) ਜਦੋਂ ਕਸਟਮ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਕੰਪਾਈਲਰ ਹੁਣ ਟੇਲ ਜੰਪ ਦੇ ਨਾਲ ਰੀਟ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਬੇਲੋੜੀਆਂ ਹਦਾਇਤਾਂ ਨੂੰ ਖਤਮ ਕਰ ਦੇਵੇਗਾ। ਇਹ ਪਹਿਲਾਂ ਕੀਤੇ ਗਏ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਦੇ ਸਮਾਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਹੈ, ਪਰ ਇਹ ਹੁਣ ਸਾਰੇ ਅਨਾਥ ਭਾਗਾਂ 'ਤੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਭਾਵੇਂ ਇੱਕ ਕਸਟਮ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਫਿਟ ਅਲੋਕੇਸ਼ਨ ਸਕੀਮ ਖੇਡ ਵਿੱਚ ਨਹੀਂ ਹੈ। ਸਮਾਂ ਕਿਸਮ ਤਬਦੀਲੀ (XC8-2982, 2932) C99 ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਕਿਸਮ, ਨੂੰ ਇੱਕ time_t ਤੋਂ ਇੱਕ ਕਿਸਮ ਵਿੱਚ ਬਦਲਿਆ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਕੁਝ ਸਮਾਂ-ਸਬੰਧਤ ਲੰਬੇ ਲੰਬੇ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਕੋਡ-ਆਕਾਰ ਸੁਧਾਰ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ. ਹਸਤਾਖਰਿਤ ਲੰਬੇ mktime()
ਨਿਊ nop (XC8-2946, 2945) ਵਿੱਚ ਮੈਕਰੋ ਜੋੜਿਆ ਗਿਆ ਹੈ। ਇਹ ਮੈਕਰੋ ਇੱਕ ਨੋ-NOP() ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ ਆਉਟਪੁੱਟ ਵਿੱਚ nop ਓਪਰੇਸ਼ਨ ਨਿਰਦੇਸ਼.
XCLM (XC8-2944) ਲਈ ਅੱਪਡੇਟ ਕੰਪਾਈਲਰ ਨਾਲ ਵਰਤੇ ਗਏ ਲਾਇਸੰਸ ਮੈਨੇਜਰ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਕੰਪਾਈਲਰ ਦੇ ਲਾਇਸੰਸ ਵੇਰਵਿਆਂ ਦੀ ਜਾਂਚ ਕਰਨ ਵੇਲੇ ਹੁਣ ਵਧੇਰੇ ਜਵਾਬਦੇਹ ਹੈ।
Trampਅਲਾਈਨਡ ਕਾਲਾਂ (XC8-2760) ਕੰਪਾਈਲਰ ਹੁਣ ਲੰਬੇ-ਫਾਰਮ ਕਾਲ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਛੋਟੇ ਰਿਸ਼ਤੇਦਾਰ ਕਾਲਾਂ ਨਾਲ ਬਦਲ ਸਕਦਾ ਹੈ ਜਦੋਂ ਨਿਰਦੇਸ਼ਾਂ ਦੇ ਅਨੁਸਾਰੀ ਰੂਪ ਆਮ ਤੌਰ 'ਤੇ ਆਪਣੀ ਮੰਜ਼ਿਲ ਦੀ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਹੋਣਗੇ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਕੰਪਾਈਲਰ ਇੱਕ ਹਦਾਇਤ ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ ਨਿਰਦੇਸ਼ਾਂ ਨਾਲ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ ਜੋ 'tr.ampਲੋੜੀਂਦੇ ਪਤੇ 'ਤੇ oline' ਐਗਜ਼ੀਕਿਊਸ਼ਨ, ਸਾਬਕਾ ਲਈample: jmp
rcal tramp_foo ;ਕਾਲ foo ਸੀ

rcal tramp_foo

tramp_foo:
jmp foo

ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ, ਸਮਾਨ ਪ੍ਰੋਗਰਾਮ ਵਹਾਅ ਅਨੁਕੂਲਨ ਦੇ ਨਾਲ, -mrelax ਵਿਕਲਪ ਦੁਆਰਾ ਨਿਯੰਤਰਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

3.2 ਸੰਸਕਰਣ 2.40
ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੁਣ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਉਪਲਬਧ ਹੈ: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32,AVR64,AVR28,AVR64 32, ਅਤੇ AVR64EA48.
ਪ੍ਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ (ਪੀਏ) ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਟੂਲ ਨੂੰ ਸੁਧਾਰਿਆ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਇੱਕ ਫੰਕਸ਼ਨ ਕਾਲ ਇੰਸਟ੍ਰਕਸ਼ਨ (/ ) ਵਾਲੇ ਕੋਡ ਨੂੰ ਉਪਯੋਗ ਕੀਤਾ ਜਾ ਸਕੇ। ਇਹ ਸਿਰਫ ਕਾਲ ਆਰਕਾਲ ਹੋਵੇਗਾ ਜੇਕਰ ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਪਾਸ ਕਰਨ ਲਈ ਜਾਂ ਫੰਕਸ਼ਨ ਤੋਂ ਵਾਪਸੀ ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਦੇ ਨਾਲ ਕਿਸੇ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ ਜਾਂ ਕਿਸੇ ਅਜਿਹੇ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਇਸ ਉਦੇਸ਼ ਲਈ ਮਨੋਨੀਤ ਰਜਿਸਟਰਾਂ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਆਰਗੂਮੈਂਟ ਲੈਂਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਾਂ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਕ੍ਰਮਵਾਰ the- ਅਤੇ, ਕ੍ਰਮਵਾਰ, ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਦੇ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ (ਵਿਸ਼ੇਸ਼ਕਰਤਾ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਆਬਜੈਕਟ ਫਾਈਲ ਜਾਂ ਫੰਕਸ਼ਨ ਲਈ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
mno-pa-ਆਊਟਲਾਈਨ-ਕਾਲ -mno-pa-on-file -mno-pa-on-ਫੰਕਸ਼ਨ nopa ਕੋਡ ਕਵਰੇਜ ਮੈਕਰੋ ਕੰਪਾਈਲਰ ਹੁਣ ਮੈਕਰੋ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੇਕਰ ਇੱਕ ਵੈਧ ਵਿਕਲਪ __nopa __CODECOV -mcodecov ਨਿਰਧਾਰਿਤ ਹੈ।
ਮੈਮੋਰੀ ਰਿਜ਼ਰਵੇਸ਼ਨ ਵਿਕਲਪ AVR ਟੀਚਿਆਂ ਲਈ ਬਣਾਉਣ ਵੇਲੇ ਡਰਾਈਵਰ ਹੁਣ xc8-cc -mreserve=space@start:end ਵਿਕਲਪ ਨੂੰ ਸਵੀਕਾਰ ਕਰੇਗਾ। ਇਹ ਵਿਕਲਪ ਡੇਟਾ ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਸਪੇਸ ਵਿੱਚ ਖਾਸ ਮੈਮੋਰੀ ਰੇਂਜ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ, ਲਿੰਕਰ ਨੂੰ ਇਸ ਖੇਤਰ ਵਿੱਚ ਕੋਡ ਜਾਂ ਵਸਤੂਆਂ ਨੂੰ ਭਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਚੁਸਤ ਸਮਾਰਟ IO ਸਮਾਰਟ IO ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਕਈ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ ਪ੍ਰਿੰਟਫ ਕੋਰ ਕੋਡ ਵਿੱਚ ਆਮ ਟਵੀਕਸ, %n ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕ ਨੂੰ ਇੱਕ ਸੁਤੰਤਰ ਰੂਪ ਦੇ ਰੂਪ ਵਿੱਚ ਮੰਨਣਾ, ਮੰਗ 'ਤੇ ਵਰਾਗ ਪੌਪ ਰੁਟੀਨ ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ, 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 ਵਿਕਲਪ ਛੋਟੇ ਇੰਟਰੱਪਟ ਸਰਵਿਸ ਰੂਟੀਨ ਲਈ ਤਿਆਰ ਸੰਦਰਭ ਸਵਿੱਚ ਕੋਡ ਨੂੰ ਕੰਟਰੋਲ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਰਜਿਸਟਰ ਵਰਤੋਂ ਲਈ ਅਸੈਂਬਲਰ ਕੋਲ ISR ਨੂੰ ਸਕੈਨ ਕਰੇਗੀ ਅਤੇ ਲੋੜ ਪੈਣ 'ਤੇ ਹੀ ਇਹਨਾਂ ਵਰਤੇ ਗਏ ਰਜਿਸਟਰਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੇਗੀ।
ਕੌਂਫਿਗਰੇਬਲ ਫਲੈਸ਼ ਮੈਪਿੰਗ 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 ਨਵੀਆਂ ਯੂਨੀਫਾਈਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਹਿੱਸੇ ਵਜੋਂ, printf ਅਤੇ scanf ਪਰਿਵਾਰਾਂ ਵਿੱਚ I0 ਫੰਕਸ਼ਨ ਹੁਣ ਹਰੇਕ ਬਿਲਡ 'ਤੇ ਕਸਟਮ-ਜਨਰੇਟ ਕੀਤੇ ਗਏ ਹਨ, ਇਸ ਆਧਾਰ 'ਤੇ ਕਿ ਇਹ ਫੰਕਸ਼ਨਾਂ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਕਿਵੇਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਇਹ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਰੋਤਾਂ ਨੂੰ ਕਾਫ਼ੀ ਹੱਦ ਤੱਕ ਘਟਾ ਸਕਦਾ ਹੈ।
ਸਮਾਰਟ ICI ਸਹਾਇਤਾ ਵਿਕਲਪ ਸਮਾਰਟ I0 ਫੰਕਸ਼ਨਾਂ (ਜਿਵੇਂ ਕਿ ਪ੍ਰਿੰਟ f () ਜਾਂ scanf ()) ਲਈ ਕਾਲਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੇ ਸਮੇਂ, ਕੰਪਾਈਲਰ ਹਮੇਸ਼ਾਂ ਫਾਰਮੈਟ ਸਤਰ ਤੋਂ ਪਤਾ ਨਹੀਂ ਲਗਾ ਸਕਦਾ ਜਾਂ ਕਾਲ ਦੁਆਰਾ ਲੋੜੀਂਦੇ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕਾਂ ਤੋਂ ਆਰਗੂਮੈਂਟਾਂ ਤੋਂ ਅਨੁਮਾਨ ਨਹੀਂ ਲਗਾ ਸਕਦਾ। ਪਹਿਲਾਂ, ਕੰਪਾਈਲਰ ਹਮੇਸ਼ਾ ਕੋਈ ਧਾਰਨਾ ਨਹੀਂ ਬਣਾਉਂਦਾ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਸੀ ਕਿ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕਾਰਜਸ਼ੀਲ 10 ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਅੰਤਿਮ ਪ੍ਰੋਗਰਾਮ ਚਿੱਤਰ ਨਾਲ ਜੋੜਿਆ ਗਿਆ ਸੀ। ਇੱਕ ਨਵਾਂ – msmart-io-format=fmt ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਕੰਪਾਈਲਰ ਨੂੰ ਸਮਾਰਟ I0 ਫੰਕਸ਼ਨਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕਾਂ ਦੀ ਵਰਤੋਂਕਾਰ ਦੁਆਰਾ ਸੂਚਿਤ ਕੀਤਾ ਜਾ ਸਕੇ, ਜਿਸਦੀ ਵਰਤੋਂ ਅਸਪਸ਼ਟ ਹੈ, ਬਹੁਤ ਜ਼ਿਆਦਾ ਲੰਬੇ 10 ਰੂਟੀਨਾਂ ਨੂੰ ਲਿੰਕ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। (ਵਧੇਰੇ ਵੇਰਵਿਆਂ ਲਈ ਸਮਾਰਟ-ਆਈਓ-ਫਾਰਮੈਟ ਵਿਕਲਪ ਦੇਖੋ।)
ਕਸਟਮ ਸੈਕਸ਼ਨ ਲਗਾਉਣਾ ਪਹਿਲਾਂ, -W1, -ਸੈਕਸ਼ਨ-ਸਟਾਰਟ ਵਿਕਲਪ ਸਿਰਫ ਬੇਨਤੀ ਕੀਤੇ ਪਤੇ 'ਤੇ ਨਿਰਧਾਰਤ ਸੈਕਸ਼ਨ ਰੱਖਦਾ ਸੀ ਜਦੋਂ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਉਸੇ ਨਾਮ ਨਾਲ ਇੱਕ ਆਉਟਪੁੱਟ ਸੈਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੀ ਸੀ। ਜਦੋਂ ਅਜਿਹਾ ਨਹੀਂ ਸੀ, ਤਾਂ ਭਾਗ ਨੂੰ ਲਿੰਕਰ ਦੁਆਰਾ ਚੁਣੇ ਗਏ ਪਤੇ 'ਤੇ ਰੱਖਿਆ ਗਿਆ ਸੀ ਅਤੇ ਵਿਕਲਪ ਨੂੰ ਜ਼ਰੂਰੀ ਤੌਰ 'ਤੇ ਅਣਡਿੱਠ ਕੀਤਾ ਗਿਆ ਸੀ। ਹੁਣ ਵਿਕਲਪ ਨੂੰ ਸਾਰੇ ਕਸਟਮ ਸੈਕਸ਼ਨਾਂ ਲਈ ਸਨਮਾਨਿਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਭਾਵੇਂ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਸੈਕਸ਼ਨ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਨਾ ਕਰੇ। ਨੋਟ ਕਰੋ, ਹਾਲਾਂਕਿ, ਮਿਆਰੀ ਭਾਗਾਂ ਲਈ, ਜਿਵੇਂ ਕਿ . ਟੈਕਸਟ, . bss ਜਾਂ . ਡੇਟਾ, ਸਭ ਤੋਂ ਵਧੀਆ ਫਿਟ ਐਲੋਕਟਰ ਦਾ ਅਜੇ ਵੀ ਉਹਨਾਂ ਦੀ ਪਲੇਸਮੈਂਟ 'ਤੇ ਪੂਰਾ ਨਿਯੰਤਰਣ ਹੋਵੇਗਾ, ਅਤੇ ਵਿਕਲਪ ਦਾ ਕੋਈ ਪ੍ਰਭਾਵ ਨਹੀਂ ਹੋਵੇਗਾ। -ton, -Tsection=addr ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਉਪਭੋਗਤਾ ਦੀ ਗਾਈਡ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ।
3.6 ਸੰਸਕਰਣ 2.32
ਸਟੈਕ ਗਾਈਡੈਂਸ ਇੱਕ PRO ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਦੇ ਨਾਲ ਉਪਲਬਧ, ਕੰਪਾਈਲਰ ਦੀ ਸਟੈਕ ਮਾਰਗਦਰਸ਼ਨ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਕਿਸੇ ਵੀ ਸਟੈਕ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਡੂੰਘਾਈ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਹ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਾਲ ਗ੍ਰਾਫ ਦਾ ਨਿਰਮਾਣ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ, ਹਰੇਕ ਫੰਕਸ਼ਨ ਦੀ ਸਟੈਕ ਵਰਤੋਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਰਿਪੋਰਟ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਸਟੈਕ ਦੀ ਡੂੰਘਾਈ ਦਾ ਅਨੁਮਾਨ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ -mchp-stack-usage ਕਮਾਂਡ-ਲਾਈਨ ਵਿਕਲਪ ਰਾਹੀਂ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ। ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ ਸਟੈਕ ਵਰਤੋਂ ਦਾ ਸੰਖੇਪ ਛਾਪਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਸਟੈਕ ਰਿਪੋਰਟ ਨਕਸ਼ੇ ਵਿੱਚ ਉਪਲਬਧ ਹੈ file, ਜਿਸ ਦੀ ਆਮ ਤਰੀਕੇ ਨਾਲ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਹਾਇਤਾ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64B32, AVR32 48, ਅਤੇ AVR16DB28। ਵਾਪਿਸ ਲਿਆ ਗਿਆ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਅੱਗੇ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ: AVR16DA32, AVR16DA48 ਅਤੇ, AVRXNUMXDAXNUMX।
3.7 ਸੰਸਕਰਣ 2.31
ਕੋਈ ਨਹੀਂ।
3.8 ਸੰਸਕਰਣ 2.30
ਡਾਟਾ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਰੋਕਣ ਲਈ ਨਵਾਂ ਵਿਕਲਪ ਇੱਕ ਨਵਾਂ -mno-data-init ਡਰਾਈਵਰ ਵਿਕਲਪ ਡਾਟਾ ਦੀ ਸ਼ੁਰੂਆਤ ਅਤੇ bss ਭਾਗਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਇਹ ਡੂ ਕਾਪੀ ਡੇਟਾ ਦੇ ਆਉਟਪੁੱਟ ਨੂੰ ਦਬਾ ਕੇ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਅਸੈਂਬਲੀ ਵਿੱਚ ਸਪਸ਼ਟ bss ਚਿੰਨ੍ਹ ਕਰਦੇ ਹਨ files, ਜੋ ਬਦਲੇ ਵਿੱਚ ਲਿੰਕਰ ਦੁਆਰਾ ਉਹਨਾਂ ਰੁਟੀਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ।
ਵਿਸਤ੍ਰਿਤ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਬਹੁਤ ਸਾਰੇ ਅਨੁਕੂਲਤਾ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ ਬੇਲੋੜੇ ਵਾਪਸੀ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਇੱਕ skip-if-bit-is ਹਦਾਇਤਾਂ ਤੋਂ ਬਾਅਦ ਕੁਝ ਜੰਪਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਅਤੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਅਤੇ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਦੁਹਰਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਵਾਧੂ ਵਿਕਲਪ ਹੁਣ ਉਪਲਬਧ ਹਨ, ਖਾਸ ਤੌਰ 'ਤੇ -f ਭਾਗ-ਐਂਕਰ, ਜੋ ਕਿ ਇੱਕ ਚਿੰਨ੍ਹ ਦੇ ਅਨੁਸਾਰੀ ਸਥਿਰ ਵਸਤੂਆਂ ਦੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ; -mpa-iterations=n, ਜੋ ਕਿ 2 ਦੇ ਡਿਫਾਲਟ ਤੋਂ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਦੁਹਰਾਓ ਦੀ ਸੰਖਿਆ ਨੂੰ ਬਦਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ; ਅਤੇ, -mpa-callcost-shortcall, ਜੋ ਕਿ ਵਧੇਰੇ ਹਮਲਾਵਰ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਕਰਦਾ ਹੈ, ਇਸ ਉਮੀਦ ਵਿੱਚ ਕਿ ਲਿੰਕਰ ਲੰਬੀਆਂ ਕਾਲਾਂ ਨੂੰ ਆਰਾਮ ਦੇ ਸਕਦਾ ਹੈ। ਇਹ ਆਖਰੀ ਵਿਕਲਪ ਕੋਡ ਦਾ ਆਕਾਰ ਵਧਾ ਸਕਦਾ ਹੈ ਜੇਕਰ ਅੰਡਰਲਾਈੰਗ ਧਾਰਨਾਵਾਂ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਉਪਲਬਧ ਹੈ: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, 5272DB5790, AVR5790DB5791, ਅਤੇ AVR5795DB6285। ਵਾਪਸ ਲੈਣ ਵਾਲੇ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੁਣ ਹੇਠ ਦਿੱਤੇ ਏਵੀਆਰ ਦੇ ਭਾਗਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹਨ: ata6286, ata6612, ata6613, ata6614, ata6616, ata6617, ata664251, ataXNUMX, ataXNUMX.q, ਅਤੇ.
3.9 ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਸਿਰਲੇਖ file ਕੰਪਾਈਲਰ ਬਿਲਟ-ਇਨ ਲਈ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਕੰਪਾਈਲਰ ਭਾਸ਼ਾ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਜਿਵੇਂ ਕਿ MISRA, ਸਿਰਲੇਖ 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) ) ਦੀ ਵਰਤੋਂ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਕਿਸੇ ਖਾਸ ਫੰਕਸ਼ਨ ਨੂੰ ਬਾਹਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
ਡਿਵਾਈਸ ਦਾ ਵੇਰਵਾ files ਇੱਕ ਨਵਾਂ ਯੰਤਰ file avr_chipinfo ਕਹਿੰਦੇ ਹਨ। html ਕੰਪਾਈਲਰ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਦੀ ਡੌਕਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਥਿਤ ਹੈ। ਇਹ file ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸਾਰੇ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਦਿੰਦਾ ਹੈ। ਕਿਸੇ ਡਿਵਾਈਸ ਦੇ ਨਾਮ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ ਇਹ ਇੱਕ ਪੰਨਾ ਖੋਲ੍ਹੇਗਾ ਜੋ ਉਸ ਡਿਵਾਈਸ ਲਈ ਸਾਰੀਆਂ ਮਨਜ਼ੂਰ ਸੰਰਚਨਾ ਬਿੱਟ ਸੈਟਿੰਗ/ਮੁੱਲ ਦੇ ਦਰਦ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਸਾਬਕਾ ਦੇ ਨਾਲamples. ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ
ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ, ਜੋ ਕਿ ਅਸੈਂਬਲੀ ਕੋਡ ਦੇ ਆਮ ਬਲਾਕਾਂ ਨੂੰ ਉਸ ਬਲਾਕ ਦੀ ਐਕਸਟਰੈਕਟ ਕੀਤੀ ਕਾਪੀ ਲਈ ਕਾਲਾਂ ਨਾਲ ਬਦਲਦੇ ਹਨ, ਨੂੰ ਕੰਪਾਈਲਰ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ। ਇਹ ਇੱਕ ਵੱਖਰੇ ਐਪਲੀਕੇਸ਼ਨ ਦੁਆਰਾ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ ਕਿ ਪੱਧਰ 2, 3 ਜਾਂ s ਅਨੁਕੂਲਤਾਵਾਂ ਦੀ ਚੋਣ ਕਰਨ ਵੇਲੇ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਅਨੁਕੂਲਤਾ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੀ ਹੈ, ਪਰ ਇਹ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਅਤੇ ਕੋਡ ਡੀਬੱਗੇਬਿਲਟੀ ਨੂੰ ਘਟਾ ਸਕਦੀ ਹੈ। ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਵਿਕਲਪ -mno-pa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉੱਚ ਅਨੁਕੂਲਤਾ ਪੱਧਰਾਂ 'ਤੇ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਾਂ -mpa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੇਠਲੇ ਅਨੁਕੂਲਨ ਪੱਧਰਾਂ (ਤੁਹਾਡੇ ਲਾਇਸੰਸ ਦੇ ਅਧੀਨ) 'ਤੇ ਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ ਕਿਸੇ ਵਸਤੂ ਲਈ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ file -mno-pa-on- ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏfile=fileਨਾਮ, ਜਾਂ -mno-pa-on-function=function ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਸੇ ਫੰਕਸ਼ਨ ਲਈ ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡੇ ਸਰੋਤ ਕੋਡ ਦੇ ਅੰਦਰ, ਫੰਕਸ਼ਨ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਨਾਲ ਵਿਸ਼ੇਸ਼ਤਾ ( (nopa) ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜਾਂ nopa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਫੰਕਸ਼ਨ ਲਈ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਅਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਵਿਸ਼ੇਸ਼ਤਾ ( (nopa, noinline)) ਤੱਕ ਫੈਲਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਫੰਕਸ਼ਨ ਇਨਲਾਈਨਿੰਗ ਨੂੰ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ ਅਤੇ ਇਨਲਾਈਨਡ ਕੋਡ ਦਾ ਐਬਸਟਰੈਕਸ਼ਨ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ।
ਪ੍ਰੈਗਮਾ ਵਿੱਚ ਲਾਕ ਬਿੱਟ ਸਹਿਯੋਗ #pragma ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਹੁਣ AVR ਲਾਕ ਬਿੱਟਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਹੋਰ ਸੰਰਚਨਾ ਬਿੱਟਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। avr_chipinfo ਦੀ ਜਾਂਚ ਕਰੋ। html file (ਉੱਪਰ ਜ਼ਿਕਰ ਕੀਤਾ) ਇਸ ਪ੍ਰੈਗਮਾ ਨਾਲ ਵਰਤਣ ਲਈ ਸੈਟਿੰਗ/ਮੁੱਲ ਜੋੜਿਆਂ ਲਈ। ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਲਈ ਉਪਲਬਧ ਹੈ: AVR28DAl28, AVR64DAl28, AVR32DA 128, ਅਤੇ AVR48DA 128।
3.13 ਸੰਸਕਰਣ 2.05
ਤੁਹਾਡੇ ਬਕ ਲਈ ਹੋਰ ਬਿੱਟ ਇਸ ਕੰਪਾਈਲਰ ਅਤੇ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਦਾ ਮੈਕੋਸ ਸੰਸਕਰਣ ਹੁਣ ਇੱਕ 64-ਬਿੱਟ ਐਪਲੀਕੇਸ਼ਨ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਏਗਾ ਕਿ ਕੰਪਾਈਲਰ ਮੈਕੋਸ ਦੇ ਤਾਜ਼ਾ ਸੰਸਕਰਣਾਂ 'ਤੇ ਬਿਨਾਂ ਚੇਤਾਵਨੀਆਂ ਦੇ ਸਥਾਪਿਤ ਅਤੇ ਚੱਲੇਗਾ।
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਕੌਂਸਟ ਆਬਜੈਕਟ ਕੰਪਾਈਲਰ ਹੁਣ RAM ਵਿੱਚ ਸਥਿਤ ਹੋਣ ਦੀ ਬਜਾਏ, ਪ੍ਰੋਗਰਾਮ ਫਲੈਸ਼ ਮੈਮੋਰੀ ਵਿੱਚ const-ਯੋਗ ਵਸਤੂਆਂ ਨੂੰ ਰੱਖ ਸਕਦਾ ਹੈ। ਕੰਪਾਈਲਰ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਕੰਪਾਈਲਰ ਟੀ-ਕੁਆਲੀਫਾਈਡ ਗਲੋਬਲ ਡੇਟਾ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਫਲੈਸ਼ ਮੈਮੋਰੀ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਜਾਵੇ ਅਤੇ ਇਸ ਡੇਟਾ ਨੂੰ ਸਿੱਧੇ ਅਤੇ ਅਸਿੱਧੇ ਤੌਰ 'ਤੇ ਉਚਿਤ ਪ੍ਰੋਗਰਾਮ-ਮੈਮੋਰੀ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਕਸੈਸ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਨਵੀਂ ਵਿਸ਼ੇਸ਼ਤਾ ਮੂਲ ਰੂਪ ਵਿੱਚ ਸਮਰੱਥ ਹੈ ਪਰ -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 ਡਰਾਈਵਰ ਨੂੰ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਸਵੀਕਾਰ ਕੀਤੇ ਪੁਰਾਣੇ-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿੱਧਾ ਕਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਕਾਮਨ C ਇੰਟਰਫੇਸ ਇਹ ਕੰਪਾਈਲਰ ਹੁਣ MPLAB ਕਾਮਨ C ਇੰਟਰਫੇਸ ਦੇ ਅਨੁਕੂਲ ਹੋ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਰੋਤ ਕੋਡ ਨੂੰ ਸਾਰੇ MPLAB XC ਕੰਪਾਈਲਰਾਂ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਪੋਰਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। -mext=cci ਵਿਕਲਪ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ ਬੇਨਤੀ ਕਰਦਾ ਹੈ, ਕਈ ਭਾਸ਼ਾ ਐਕਸਟੈਂਸ਼ਨਾਂ ਲਈ ਵਿਕਲਪਕ ਸੰਟੈਕਸ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
ਨਵਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਡਰਾਈਵਰ ਇੱਕ ਨਵਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਡਰਾਈਵਰ ਪਿਛਲੇ PIC ਲਾਇਬ੍ਰੇਰੀਅਨ ਲਾਇਬ੍ਰੇਰੀਅਨ ਅਤੇ AVR avr-ar ਲਾਇਬ੍ਰੇਰੀਅਨ ਤੋਂ ਉੱਪਰ ਹੈ। ਇਹ ਡ੍ਰਾਈਵਰ GCC-archiver-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਜੋ ਜਾਂ ਤਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਲਈ ਅਨੁਵਾਦ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਚਲਾਏ ਜਾ ਰਹੇ ਹਨ। ਨਵਾਂ ਡਰਾਈਵਰ ਕਿਸੇ ਵੀ 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 ਕੰਪਾਈਲਰਾਂ ਨਾਲ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, XC8 ਸਟ੍ਰਿੰਗ-ਟੂ ਫੰਕਸ਼ਨ, ਜਿਵੇਂ ਕਿ strtol () ਆਦਿ, ਹੁਣ ਕਿਸੇ ਇਨਪੁਟ ਸਟ੍ਰਿੰਗ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰਨਗੇ ਜੇਕਰ ਨਿਰਧਾਰਿਤ ਅਧਾਰ 36 ਤੋਂ ਵੱਡਾ ਹੈ ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ EINVAL 'ਤੇ errno ਸੈੱਟ ਕਰੇਗਾ। C ਸਟੈਂਡਰਡ ਫੰਕਸ਼ਨਾਂ ਦੇ ਵਿਹਾਰ ਨੂੰ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਹ ਅਧਾਰ ਮੁੱਲ ਵੱਧ ਜਾਂਦਾ ਹੈ।
ਅਣਉਚਿਤ ਗਤੀ ਅਨੁਕੂਲਨ ਲੈਵਲ 3 ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-03) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ। ਇਸ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਪੱਧਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਪ੍ਰੋਜੈਕਟ ਇਸ ਰੀਲੀਜ਼ ਦੇ ਨਾਲ ਬਣਾਏ ਜਾਣ 'ਤੇ ਕੋਡ ਆਕਾਰ ਅਤੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਵਿੱਚ ਅੰਤਰ ਦੇਖ ਸਕਦੇ ਹਨ।
ਲਾਇਬ੍ਰੇਰੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਬਹੁਤ ਸਾਰੇ ਸਟੈਂਡਰਡ C ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਲਈ ਕੋਡ ਹੁਣ ਮਾਈਕ੍ਰੋਚਿੱਪ ਦੀ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਸਾਬਕਾ avr-libc ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਤੁਲਨਾ ਵਿੱਚ ਕੁਝ ਹਾਲਾਤਾਂ ਵਿੱਚ ਵੱਖਰਾ ਵਿਵਹਾਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਸਾਬਕਾ ਲਈampਇਸ ਲਈ, ਫਾਰਮੈਟ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ 1printf flt ਲਾਇਬ੍ਰੇਰੀ (-1printf_flt ਵਿਕਲਪ) ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ ਹੁਣ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ। I0 ਫਲੋਟ-ਫਾਰਮੈਟ ਨਿਰਧਾਰਕਾਂ ਲਈ ਸਮਰਥਨ। ਸਮਾਰਟ 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 ਖਾਕਾ ਕੰਪਾਈਲਰ ਹੁਣ DFPs (ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ) ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਇੱਕ ਵੱਖਰੇ ਖਾਕੇ ਨੂੰ ਮੰਨਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਇਹ ਹੋਵੇਗਾ ਕਿ ਇੱਕ ਪੁਰਾਣਾ DFP ਇਸ ਰੀਲੀਜ਼ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਨਵੀਨਤਮ DFPs ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਣਗੇ।
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 (ਐਡਰੈੱਸ) ਨਿਰਧਾਰਕ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੈਮੋਰੀ ਵਿੱਚ ਖਾਸ ਪਤੇ 'ਤੇ ਰੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਸਾਬਕਾ ਲਈampLe:
#ਸ਼ਾਮਲ
int foobar_at(0x800100);
char __at(0x250) getID(int offset) { … }
ਇਸ ਨਿਰਧਾਰਕ ਲਈ ਦਲੀਲ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਇੱਕ ਸਥਿਰ ਜੋ ਉਸ ਪਤੇ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ 'ਤੇ ਪਹਿਲਾ ਬਾਈਟ ਜਾਂ ਹਦਾਇਤ ਰੱਖੀ ਜਾਵੇਗੀ। RAM ਪਤੇ 0x800000 ਦੇ ਆਫਸੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦਰਸਾਏ ਗਏ ਹਨ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ CCI ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ।
ਨਵਾਂ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਸਿੰਟੈਕਸ ਕੰਪਾਈਲਰ ਹੁਣ CCI _interrupt (num) ਨਿਰਧਾਰਕ ਨੂੰ ਇਹ ਦਰਸਾਉਣ ਲਈ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਕਿ C ਫੰਕਸ਼ਨ ਇੰਟਰੱਪਟ ਹੈਂਡਲਰ ਹਨ। ਸਪੈਸੀਫਾਇਰ ਇੱਕ ਇੰਟਰੱਪਟ ਨੰਬਰ ਲੈਂਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈampLe:
#ਸ਼ਾਮਲ
void __interrupt(SPI_STC_vect_num) spi_Isr(void) { … }

ਸਥਿਰ ਮੁੱਦੇ

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

5.1 ਸੰਸਕਰਣ 2.41
ਵੈਨਟੂਰਾ (XC8-3088) ਡੋਂਗਲ 'ਤੇ ਡੋਂਗਲ ਮੁੱਦੇ ਕੰਪਾਈਲਰ ਨੂੰ ਲਾਇਸੰਸ ਦੇਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ macOS Ventura ਮੇਜ਼ਬਾਨਾਂ 'ਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਨਹੀਂ ਪੜ੍ਹਿਆ ਗਿਆ ਹੈ, ਨਤੀਜੇ ਵਜੋਂ ਲਾਇਸੰਸਿੰਗ ਅਸਫਲਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। XCLM ਲਾਇਸੰਸ ਮੈਨੇਜਰ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਇਸ ਮੁੱਦੇ ਨੂੰ ਠੀਕ ਕਰਦੀਆਂ ਹਨ।
ਮੈਮੋਰੀ ਵੰਡ ਦਾ ਗਲਤ ਸੰਕੇਤ (XC8-2925) ਮਿਆਰੀ ਲਾਇਬ੍ਰੇਰੀ ਮੈਮੋਰੀ ਪ੍ਰਬੰਧਨ ਫੰਕਸ਼ਨਾਂ (malloc () et al) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਮੈਮੋਰੀ ਦੇ SIZE_MAX ਬਾਈਟ (ਜਾਂ ਇਸ ਦੇ ਨੇੜੇ ਦਾ ਮੁੱਲ) ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਗਲਤ ਢੰਗ ਨਾਲ ਸਫਲ ਹੋਈ। ਇਸ ਨੇ ਇਸ ਗੱਲ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਨਹੀਂ ਰੱਖਿਆ ਕਿ ਸਧਾਰਨ ਡਾਇਨਾਮਿਕ ਮੈਮੋਰੀ ਵੰਡ ਲਾਗੂ ਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਬੇਨਤੀ ਕੀਤੇ ਬਲਾਕ ਤੋਂ ਇਲਾਵਾ ਵਾਧੂ ਬਾਈਟਾਂ ਦੀ ਲੋੜ ਸੀ। ਇੱਕ NULL ਪੁਆਇੰਟਰ ਹੁਣ ਵਾਪਸ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਗਲਤੀ ENOMEM 'ਤੇ ਸੈੱਟ ਕੀਤੀ ਜਾਵੇਗੀ।
ਗਲਤ fma ਫੰਕਸ਼ਨ ਹਟਾਏ ਗਏ (XC8-2913) C99 ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ fma ( ) -ਫੈਮਲੀ ਫੰਕਸ਼ਨ ( ) ਨੇ ਇੱਕ ਸਿੰਗਲ ਰਾਊਂਡਿੰਗ ਲਈ ਅਨੰਤ ਸ਼ੁੱਧਤਾ ਦੇ ਨਾਲ ਗੁਣਾ-ਜੋੜ ਦੀ ਗਣਨਾ ਨਹੀਂ ਕੀਤੀ, ਸਗੋਂ ਹਰ ਓਪਰੇਸ਼ਨ ਨਾਲ ਰਾਊਂਡਿੰਗ ਗਲਤੀਆਂ ਇਕੱਠੀਆਂ ਕੀਤੀਆਂ। ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸਪਲਾਈ ਕੀਤੀ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਸਟ੍ਰਿੰਗ ਪਰਿਵਰਤਨ ਦੀ ਖਰਾਬ ਹੈਂਡਲਿੰਗ (XC8-2921, XC8-2652) ਜਦੋਂ ਸਟ੍ਰੋਡ Cr ਦੁਆਰਾ ਪਰਿਵਰਤਨ ਲਈ ਇੱਕ 'ਵਿਸ਼ੇ ਦੇ ਕ੍ਰਮ' ਵਿੱਚ ਘਾਤਕ ਫਾਰਮੈਟ ਵਿੱਚ ਇੱਕ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰ ਦਿਖਾਈ ਦਿੰਦਾ ਸੀ ਅਤੇ e/E ਅੱਖਰ ਤੋਂ ਬਾਅਦ ਇੱਕ ਅਣਕਿਆਸੀ ਅੱਖਰ ਸੀ, ਤਾਂ ਜਿੱਥੇ endptr ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਸੀ, ਇਸ ਨੂੰ ਇੱਕ ਐਡਰੈੱਸ ਦਿੱਤਾ ਗਿਆ ਸੀ ਜਿਸ ਵਿੱਚ e/E ਤੋਂ ਬਾਅਦ ਅੱਖਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਦੋਂ ਕਿ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ e/E ਅੱਖਰ ਵੱਲ ਇਸ਼ਾਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ। ਸਾਬਕਾ ਲਈample, strtod (“100exx”, &ep) ਨੂੰ 100.00 ਵਾਪਸ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਸਤਰ ਦੇ “exx” ਹਿੱਸੇ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਲਈ ep ਸੈੱਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਫੰਕਸ਼ਨ ਸਹੀ ਮੁੱਲ ਵਾਪਸ ਕਰ ਰਿਹਾ ਸੀ ਪਰ ep ਨੂੰ ਸਤਰ ਦੇ “xx” ਹਿੱਸੇ ਵੱਲ ਪੁਆਇੰਟ ਕਰਨ ਲਈ ਸੈੱਟ ਕਰ ਰਿਹਾ ਸੀ।

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) ਦੇ ਅਧੀਨ ਸੀ ਅਤੇ I0 SFR ਨੂੰ const-data-in-configmapped-progmem ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਪੰਨੇ 'ਤੇ ਸੈੱਟ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਸੀ। 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 () ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਸੰਦਰਭ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹੋਏ ਇੱਕ ਲਿੰਕ ਗਲਤੀ ਹੋਈ। ਹਵਾਲਾ ਦਿੱਤੇ ਗੁੰਮ ਫੰਕਸ਼ਨ ਨੂੰ ਹੁਣ ਕੰਪਾਈਲਰ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ।
nopa (XC,8-2833) ਨਾਲ ਗਲਤੀਆਂ ਬਣਾਓ nopa ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਇੱਕ ਫੰਕਸ਼ਨ ਨਾਲ ਵਰਤਣਾ ਜਿਸਦਾ ਅਸੈਂਬਲਰ ਨਾਮ asm ( ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਅਸੈਂਬਲਰ ਤੋਂ ਗਲਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਚਾਲੂ ਕੀਤਾ। ਇਹ ਸੁਮੇਲ ਸੰਭਵ ਨਹੀਂ ਹੈ।
ਪੁਆਇੰਟਰ ਆਰਗੂਮੈਂਟਸ (XC8-2755, XC8-2731) ਦੇ ਨਾਲ ਵਿਭਿੰਨ ਫੰਕਸ਼ਨ ਅਸਫਲਤਾ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਇੱਕ ਵੇਰੀਏਬਲ ਸੰਖਿਆ ਵਾਲੇ ਫੰਕਸ਼ਨ 24-ਬਿੱਟ ( memx ਕਿਸਮ) ਪੁਆਇੰਟਰ ਨੂੰ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਵਿੱਚ ਪਾਸ ਕੀਤੇ ਜਾਣ ਦੀ ਉਮੀਦ ਕਰਦੇ ਹਨ ਜਦੋਂ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਹੁੰਦੀ ਹੈ। ਆਰਗੂਮੈਂਟਸ ਜੋ ਡੇਟਾ ਮੈਮੋਰੀ ਲਈ ਪੁਆਇੰਟਰ ਸਨ 16-ਬਿੱਟ ਆਬਜੈਕਟ ਦੇ ਤੌਰ ਤੇ ਪਾਸ ਕੀਤੇ ਜਾ ਰਹੇ ਸਨ, ਜਿਸ ਕਾਰਨ ਕੋਡ ਅਸਫਲ ਹੋ ਗਿਆ ਜਦੋਂ ਉਹਨਾਂ ਨੂੰ ਅੰਤ ਵਿੱਚ ਪੜ੍ਹਿਆ ਗਿਆ। ਜਦੋਂ constdata-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਸਾਰੇ 16-ਬਿੱਟ ਪੁਆਇੰਟਰ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਹੁਣ 24-ਬਿੱਟ ਪੁਆਇੰਟਰਾਂ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
strtoxxx ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ ਫੇਲ ਹੋ ਰਿਹਾ ਹੈ (XC8-2620) ਜਦੋਂ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ, strtoxxx ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ endptr ਪੈਰਾਮੀਟਰ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਨਾ ਹੋਣ ਵਾਲੇ ਸਰੋਤ ਸਤਰ ਆਰਗੂਮੈਂਟਾਂ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।
ਅਵੈਧ ਕਾਸਟਾਂ ਲਈ ਚੇਤਾਵਨੀਆਂ (XC8-2612) ਕੰਪਾਈਲਰ ਹੁਣ ਇੱਕ ਗਲਤੀ ਜਾਰੀ ਕਰੇਗਾ ਜੇਕਰ const-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਸਮਰੱਥ ਹੈ ਅਤੇ ਇੱਕ ਸਟ੍ਰਿੰਗ ਲਿਟਰਲ ਦਾ ਪਤਾ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ (const ਕੁਆਲੀਫਾਇਰ ਨੂੰ ਛੱਡਣਾ) ਵਿੱਚ ਕਾਸਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਸਾਬਕਾ ਲਈample, (uint 8_t *) “ਹੈਲੋ ਵਰਲਡ!”। ਇੱਕ ਚੇਤਾਵਨੀ ਇੱਕ ਮੁੱਦਾ ਹੈ ਜੇਕਰ ਪਤਾ ਅਵੈਧ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇੱਕ const ਡੇਟਾ ਪੁਆਇੰਟਰ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਕਾਸਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
ਅਣ-ਸ਼ੁਰੂਆਤੀ ਕੰਸਟ ਵਸਤੂਆਂ ਦੀ ਪਲੇਸਮੈਂਟ (XC8-2408) ਅਣ-ਸ਼ੁਰੂਆਤੀ const ਅਤੇ const ਪਰਿਵਰਤਨਸ਼ੀਲ ਵਸਤੂਆਂ ਨੂੰ ਉਹਨਾਂ ਡਿਵਾਈਸਾਂ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਨਹੀਂ ਰੱਖਿਆ ਜਾ ਰਿਹਾ ਸੀ ਜੋ ਉਹਨਾਂ ਦੀ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੇ ਸਾਰੇ ਜਾਂ ਹਿੱਸੇ ਨੂੰ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਮੈਪ ਕਰਦੇ ਹਨ। ਇਹਨਾਂ ਡਿਵਾਈਸਾਂ ਲਈ, ਅਜਿਹੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਹੁਣ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਹੈ, ਉਹਨਾਂ ਦੀ ਕਾਰਵਾਈ ਨੂੰ ਹੋਰ ਡਿਵਾਈਸਾਂ ਦੇ ਨਾਲ ਇਕਸਾਰ ਬਣਾਉਂਦੇ ਹੋਏ।

5.3 ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।
5.4 ਸੰਸਕਰਣ 2.36
ਦੇਰੀ ਕਰਨ ਵੇਲੇ ਗਲਤੀ (XC8-2774) ਡਿਫੌਲਟ ਫ੍ਰੀ ਮੋਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਵਿੱਚ ਮਾਮੂਲੀ ਤਬਦੀਲੀਆਂ ਨੇ ਬਿਲਟ-ਇਨ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਦੇਰੀ ਵਿੱਚ ਓਪਰੇਂਡ ਸਮੀਕਰਨਾਂ ਨੂੰ ਲਗਾਤਾਰ ਫੋਲਡ ਕਰਨ ਤੋਂ ਰੋਕਿਆ, ਨਤੀਜੇ ਵਜੋਂ ਉਹਨਾਂ ਨੂੰ ਗੈਰ-ਸਥਿਰਤਾ ਵਜੋਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: ਬਿਲਟਇਨ avr delay_cycles ਇੱਕ ਕੰਪਾਈਲ ਟਾਈਮ ਪੂਰਨ ਅੰਕ ਸਥਿਰਤਾ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ।
5.5 ਸੰਸਕਰਣ 2.35
_at (XC8-2653) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰੰਤਰ ਵੰਡ ਇੱਕੋ ਨਾਮ ਵਾਲੇ ਭਾਗ ਵਿੱਚ ਮਲਟੀਪਲ ਆਬਜੈਕਟ ਸਥਾਨਾਂ ਦੀ ਨਿਰੰਤਰ ਵੰਡ ਅਤੇ _at ( ) ਦੀ ਵਰਤੋਂ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰਦੀ ਹੈ। ਸਾਬਕਾ ਲਈampLe:
const char arr1[] __attribute__((section(“.mysec”))) __at (0x500) = {0xAB, 0xCD};
const char arr2[] __attribute__((section(“.mysec”))) = {0xEF, 0xFE};
arr2 ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ arr1 ਰੱਖਣਾ ਚਾਹੀਦਾ ਹੈ।
ਸੈਕਸ਼ਨ ਸਟਾਰਟ ਐਡਰੈੱਸ ਨਿਰਧਾਰਤ ਕਰਨਾ (XC8-2650) The -W1, -ਸੈਕਸ਼ਨ-ਸਟਾਰਟ ਵਿਕਲਪ ਨਾਮਜ਼ਦ ਸ਼ੁਰੂਆਤੀ ਪਤੇ 'ਤੇ ਭਾਗਾਂ ਨੂੰ ਰੱਖਣ ਵਿੱਚ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਰਿਹਾ ਸੀ। ਇਹ ਮੁੱਦਾ ਕਿਸੇ ਵੀ ਕਸਟਮ-ਨਾਮ ਵਾਲੇ ਭਾਗਾਂ ਲਈ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ; ਹਾਲਾਂਕਿ, ਇਹ ਕਿਸੇ ਵੀ ਮਿਆਰੀ ਭਾਗਾਂ ਲਈ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ, ਜਿਵੇਂ ਕਿ . ਟੈਕਸਟ ਜਾਂ . bss, ਜਿਸ ਨੂੰ -W1, -T ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।
ਆਰਾਮ ਕਰਨ ਵੇਲੇ ਲਿੰਕਰ ਕਰੈਸ਼ (XC8-2647) ਜਦੋਂ -mrelax ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ ਅਤੇ ਕੋਡ ਜਾਂ ਡੇਟਾ ਸੈਕਸ਼ਨ ਸਨ ਜੋ ਉਪਲਬਧ ਮੈਮੋਰੀ ਵਿੱਚ ਫਿੱਟ ਨਹੀਂ ਸਨ, ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਗਿਆ। ਹੁਣ, ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ, ਇਸ ਦੀ ਬਜਾਏ ਗਲਤੀ ਸੰਦੇਸ਼ ਜਾਰੀ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।

ਕੋਈ ਨੋ-ਫਾਲਿੰਗ-ਬੈਕ (XC8-2646) The -nofallback ਵਿਕਲਪ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਨਾ ਹੀ ਦਸਤਾਵੇਜ਼ੀ ਤੌਰ 'ਤੇ। ਇਹ ਹੁਣ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਕੰਪਾਈਲਰ ਘੱਟ ਅਨੁਕੂਲਤਾ ਸੈਟਿੰਗ 'ਤੇ ਵਾਪਸ ਨਹੀਂ ਆਵੇਗਾ ਜੇਕਰ ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਨਹੀਂ ਹੈ, ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ ਇੱਕ ਗਲਤੀ ਜਾਰੀ ਕਰੇਗਾ।

ਅਣਉਚਿਤ ਗਤੀ ਅਨੁਕੂਲਨ (X03-2637) ਲੈਵਲ 3 ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-03) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ।
ਖਰਾਬ EEPROM ਪਹੁੰਚ (XC8-2629) ਦ eeprom_read_block ਰੁਟੀਨ ਨੇ Xmega ਜੰਤਰਾਂ ਉੱਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕੀਤਾ ਜਦੋਂ -mconst-data-in-progmem ਵਿਕਲਪ ਯੋਗ ਕੀਤਾ ਗਿਆ ਸੀ (ਜੋ ਕਿ ਡਿਫਾਲਟ ਸਥਿਤੀ ਹੈ), ਨਤੀਜੇ ਵਜੋਂ EEPROM ਮੈਮੋਰੀ ਸਹੀ ਢੰਗ ਨਾਲ ਨਹੀਂ ਪੜ੍ਹੀ ਜਾ ਰਹੀ ਹੈ।
ਗਲਤ ਮੈਮੋਰੀ ਵੰਡ (XC8-2593, XC8-2651) ਜਦੋਂ -Ttext ਜਾਂ -Tdata ਲਿੰਕਰ ਵਿਕਲਪ (ਉਦਾਹਰਨ ਲਈample ਇੱਕ -vl ਡਰਾਈਵਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਾਸ ਕੀਤਾ ਗਿਆ) ਦਿੱਤਾ ਗਿਆ ਹੈ, ਸੰਬੰਧਿਤ ਟੈਕਸਟ/ਡਾਟਾ ਖੇਤਰ ਮੂਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ; ਹਾਲਾਂਕਿ, ਅੰਤਮ ਪਤੇ ਨੂੰ ਉਸ ਅਨੁਸਾਰ ਐਡਜਸਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਨਾਲ ਖੇਤਰ ਟੀਚਾ ਡਿਵਾਈਸ ਦੀ ਮੈਮੋਰੀ ਰੇਂਜ ਤੋਂ ਵੱਧ ਗਿਆ ਸੀ।
ਓਵਰ-ਐਟਰੀਬਿਊਟਡ ਫੰਕਸ਼ਨ (XC8-2580) ਨਾਲ ਕ੍ਰੈਸ਼ ਕੰਪਾਈਲਰ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਇੰਟਰੱਪਟ, ਸਿਗਨਲ ਜਾਂ nmi ਗੁਣਾਂ ਵਿੱਚੋਂ ਇੱਕ ਤੋਂ ਵੱਧ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ, ਵਿਸ਼ੇਸ਼ਤਾ ( ( ਸਿਗਨਲ , ਇੰਟਰੱਪਟ ) )।
ਅਵੈਧ ATtiny ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2465) ਜਦੋਂ ATtiny ਡਿਵਾਈਸਾਂ ਅਤੇ ਅਨੁਕੂਲਤਾਵਾਂ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ (-00), ਤਾਂ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨਾਂ ਨੇ ਰੇਂਜ ਅਸੈਂਬਲਰ ਸੁਨੇਹਿਆਂ ਤੋਂ ਬਾਹਰ ਓਪਰੇਂਡ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਹੋ ਸਕਦਾ ਹੈ।
ਵਿਕਲਪ ਪਾਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਰਹੇ (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 ਸੈੱਟ () , ਨੂੰ ਡਿਵਾਈਸਾਂ ਲਈ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਵਿੱਚ ATmega324PB, ATmega328PB, ATtiny441, ਅਤੇ ATtiny841 ਸ਼ਾਮਲ ਹਨ।
ਗਾਇਬ ਮੈਕਰੋ ਪ੍ਰੀਪ੍ਰੋਸੈਸਰ ਮੈਕਰੋਜ਼ _XC8_MODE_, _XC8_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 () ਜਾਂ ਗੁਣ () ਟੋਕਨ ਪੁਆਇੰਟਰ ਨਾਮ ਅਤੇ dereferenced ਕਿਸਮ ਦੇ ਵਿਚਕਾਰ, ਸਾਬਕਾ ਲਈample, char*
_at (0x800150) cp; ਅਜਿਹੇ ਕੋਡ ਦਾ ਸਾਹਮਣਾ ਕਰਨ 'ਤੇ ਹੁਣ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
ਮੁੱਖ ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲ (XC8-1780, XC8-1767, XC8-1754) EEPROM ਵੇਰੀਏਬਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਜਾਂ ਕੌਂਫਿਗ ਪ੍ਰੈਗਮਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਮੁੱਖ () ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ, ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਵਿੱਚ ਗਲਤ ਡੇਟਾ ਅਰੰਭਕਰਨ ਅਤੇ/ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ।
ਛੋਟੇ ਯੰਤਰਾਂ ਨਾਲ ਫਿਊਜ਼ ਗਲਤੀ (XC8-1778, XC8-1742) attiny4/5/9/10/20/40 ਡਿਵਾਈਸਾਂ ਦੇ ਸਿਰਲੇਖ ਵਿੱਚ ਇੱਕ ਗਲਤ ਫਿਊਜ਼ ਲੰਬਾਈ ਨਿਰਧਾਰਤ ਕੀਤੀ ਗਈ ਸੀ files ਜੋ ਕਿ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਾਲੇ ਕੋਡ ਨੂੰ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਲਿੰਕਰ ਗਲਤੀਆਂ ਵੱਲ ਲੈ ਜਾਂਦਾ ਹੈ।
ਵਿਭਾਜਨ ਨੁਕਸ (XC8-1777) ਇੱਕ ਰੁਕ-ਰੁਕ ਕੇ ਵੰਡਣ ਦਾ ਨੁਕਸ ਠੀਕ ਕੀਤਾ ਗਿਆ ਹੈ।
ਅਸੈਂਬਲਰ ਕਰੈਸ਼ (XC8-1761) ਜਦੋਂ ਕੰਪਾਈਲਰ ਉਬੰਟੂ 18 ਦੇ ਅਧੀਨ ਚਲਾਇਆ ਗਿਆ ਸੀ ਤਾਂ avr-as ਅਸੈਂਬਲਰ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਸੀ।
ਵਸਤੂਆਂ ਨੂੰ ਸਾਫ਼ ਨਹੀਂ ਕੀਤਾ ਗਿਆ (XC8-1752) ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਦੁਆਰਾ ਅਣ-ਸ਼ੁਰੂਆਤ ਸਥਿਰ ਸਟੋਰੇਜ ਮਿਆਦ ਦੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਕਲੀਅਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੋ ਸਕਦਾ ਹੈ।
ਵਿਰੋਧੀ ਡਿਵਾਈਸ ਨਿਰਧਾਰਨ ਨੂੰ ਅਣਡਿੱਠ ਕੀਤਾ ਗਿਆ (XC8-1749) ਕੰਪਾਈਲਰ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ ਜਦੋਂ ਮਲਟੀਪਲ ਡਿਵਾਈਸ ਸਪੈਸੀਫਿਕੇਸ਼ਨ ਵਿਕਲਪ ਵਰਤੇ ਗਏ ਸਨ ਅਤੇ ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਨੂੰ ਸੰਕੇਤ ਕੀਤਾ ਗਿਆ ਸੀ।
ਹੀਪ ਦੁਆਰਾ ਮੈਮੋਰੀ ਭ੍ਰਿਸ਼ਟਾਚਾਰ (XC8-1748) The _heap_start ਚਿੰਨ੍ਹ ਨੂੰ ਗਲਤ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਆਮ ਵੇਰੀਏਬਲਾਂ ਦੇ ਹੀਪ ਦੁਆਰਾ ਖਰਾਬ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।
ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਗਲਤੀ (XC8-1739) ਇੱਕ ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਗਲਤੀ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਕੋਡ ਵਿੱਚ ਇੱਕ rjmp ਜਾਂ rcal ਸੀ ਜਿਸਦਾ ਟੀਚਾ ਬਿਲਕੁਲ 4k ਬਾਈਟ ਦੂਰ ਹੁੰਦਾ ਹੈ।
5.6 ਸੰਸਕਰਣ 2.00
ਕੋਈ ਨਹੀਂ।

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

ਕੰਪਾਈਲਰ ਦੇ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਕਮੀਆਂ ਹਨ। ਇਹ ਆਮ ਕੋਡਿੰਗ ਪਾਬੰਦੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਜਾਂ ਉਪਭੋਗਤਾ ਦੇ ਮੈਨੂਅਲ ਵਿੱਚ ਸ਼ਾਮਲ ਜਾਣਕਾਰੀ ਤੋਂ ਭਟਕਣਾ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਸਿਰਲੇਖ ਵਿੱਚ ਬਰੈਕਟ ਕੀਤੇ ਲੇਬਲ(ਲੇ) ਟਰੈਕਿੰਗ ਡੇਟਾਬੇਸ ਵਿੱਚ ਮੁੱਦੇ ਦੀ ਪਛਾਣ ਹਨ। ਇਹ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਉਹ ਆਈਟਮਾਂ ਜਿਹਨਾਂ ਵਿੱਚ ਲੇਬਲ ਨਹੀਂ ਹਨ ਉਹ ਸੀਮਾਵਾਂ ਹਨ ਜੋ ਕਿ ਮੋਡੀ ਓਪਰੇੰਡੀ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਜੋ ਸਥਾਈ ਤੌਰ 'ਤੇ ਲਾਗੂ ਰਹਿਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।
6.1 MPLAB X IDE ਏਕੀਕਰਣ
MPLAB IDE integration ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ MPLAB IDE ਤੋਂ ਵਰਤਿਆ ਜਾਣਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੰਪਾਈਲਰ ਨੂੰ ਇੰਸਟਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ MPLAB IDE ਨੂੰ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
6.2 ਕੋਡ ਜਨਰੇਸ਼ਨ
ਸੈਕਸ਼ਨ-ਐਂਕਰਜ਼ ਵਿਕਲਪ (XC8-3045) ਪ੍ਰੋਗਰਾਮ ਦੇ ਨਾਲ Segfault ਜੋ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀਆਂ ਦੇ ਨਾਲ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਜੋ -fsection-anchors ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰ ਸਕਦਾ ਹੈ: ਸੈਗਮੈਂਟੇਸ਼ਨ ਫਾਲਟ।
ਡੀਬੱਗ ਜਾਣਕਾਰੀ ਸਿੰਕ ਤੋਂ ਬਾਹਰ (XC8-2948) ਜਦੋਂ ਲਿੰਕਰ ਆਰਾਮ ਅਨੁਕੂਲਤਾ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਸੁੰਗੜਦੀ ਹੈ (ਉਦਾਹਰਨ ਲਈample call to rcall instructions), ਮੈਪਿੰਗ ਨੂੰ ਐਡਰੈੱਸ ਕਰਨ ਲਈ ਸਰੋਤ ਲਾਈਨ ਸਮਕਾਲੀ ਨਹੀਂ ਰਹਿ ਸਕਦੀ ਹੈ ਜਦੋਂ ਇੱਕ ਭਾਗ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਸੁੰਗੜਨ ਦੀ ਕਾਰਵਾਈ ਹੁੰਦੀ ਹੈ।
ਹੇਠਾਂ ਦਿੱਤੇ ਸਾਬਕਾ ਵਿੱਚample, foo ਲਈ ਦੋ ਕਾਲਾਂ ਹਨ ਜੋ ਰਿਸ਼ਤੇਦਾਰ ਕਾਲਾਂ ਲਈ ਆਰਾਮਦਾਇਕ ਹੁੰਦੀਆਂ ਹਨ।
PA ਮੈਮੋਰੀ ਵੰਡ ਅਸਫਲਤਾ (XC8-2881) ਪ੍ਰੋਸੀਜ਼ਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਆਪਟੀਮਾਈਜ਼ਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਲਿੰਕਰ ਮੈਮੋਰੀ ਅਲੋਕੇਸ਼ਨ ਗਲਤੀਆਂ ਦੀ ਰਿਪੋਰਟ ਕਰ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕੋਡ ਦਾ ਆਕਾਰ ਡਿਵਾਈਸ 'ਤੇ ਉਪਲਬਧ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੀ ਮਾਤਰਾ ਦੇ ਨੇੜੇ ਹੁੰਦਾ ਹੈ, ਭਾਵੇਂ ਪ੍ਰੋਗਰਾਮ ਉਪਲਬਧ ਸਪੇਸ ਨੂੰ ਫਿੱਟ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।
ਇੰਨਾ ਸਮਾਰਟ ਨਹੀਂ Smart-I0 (XC8-2872) ਕੰਪਾਈਲਰ ਦੀ ਸਮਾਰਟ-ਆਈਓ ਵਿਸ਼ੇਸ਼ਤਾ snprint f ਫੰਕਸ਼ਨ ਲਈ ਵੈਧ ਪਰ ਉਪ-ਅਨੁਕੂਲ ਕੋਡ ਤਿਆਰ ਕਰੇਗੀ ਜੇਕਰ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ ਜਾਂ ਜੇ ਡਿਵਾਈਸ ਨੇ ਆਪਣੀ ਸਾਰੀ ਫਲੈਸ਼ ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਮੈਪ ਕੀਤੀ ਹੈ।
ਇਸ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਰਟ Smart-I0 (XC8-2869) ਕੰਪਾਈਲਰ ਦੀ ਸਮਾਰਟ-ਆਈਓ ਵਿਸ਼ੇਸ਼ਤਾ ਵੈਧ ਪਰ ਸਬ-ਅਪਟੀਮਲ ਕੋਡ ਤਿਆਰ ਕਰੇਗੀ ਜਦੋਂ -flto ਅਤੇ -fno-ਬਿਲਟਿਨ ਦੋਵੇਂ ਵਿਕਲਪ ਵਰਤੇ ਜਾਣਗੇ।
ਸਬ-ਓਨਲੀ ਰੀਡ-ਓਨਲੀ ਡਾਟਾ ਪਲੇਸਮੈਂਟ (XC8-2849) ਲਿੰਕਰ ਵਰਤਮਾਨ ਵਿੱਚ APPCODE ਅਤੇ APPDATA ਮੈਮੋਰੀ ਭਾਗਾਂ ਬਾਰੇ ਜਾਣੂ ਨਹੀਂ ਹੈ, ਅਤੇ ਨਾ ਹੀ ਮੈਮੋਰੀ ਨਕਸ਼ੇ ਵਿੱਚ [ਨੋ-ਰੀਡ-ਵਾਇਲ-ਰਾਈਟ ਡਿਵੀਜ਼ਨਾਂ ਬਾਰੇ। ਨਤੀਜੇ ਵਜੋਂ, ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਸੰਭਾਵਨਾ ਹੈ ਕਿ ਲਿੰਕਰ ਮੈਮੋਰੀ ਦੇ ਇੱਕ ਅਣਉਚਿਤ ਖੇਤਰ ਵਿੱਚ ਸਿਰਫ਼-ਪੜ੍ਹਨ ਲਈ ਡਾਟਾ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦਾ ਹੈ। ਜੇਕਰ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜੇਕਰ const-data-in-config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਵੀ ਯੋਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਗੁੰਮ ਹੋਏ ਡੇਟਾ ਦੀ ਸੰਭਾਵਨਾ ਵੱਧ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਵਸਤੂ file ਪ੍ਰੋਸੈਸਿੰਗ ਆਰਡਰ (XC8-2863) ਉਹ ਕ੍ਰਮ ਜਿਸ ਵਿੱਚ ਵਸਤੂਆਂ files ਨੂੰ ਲਿੰਕਰ ਦੁਆਰਾ ਸੰਸਾਧਿਤ ਕੀਤਾ ਜਾਵੇਗਾ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-mpa ਵਿਕਲਪ) ਦੀ ਵਰਤੋਂ ਦੇ ਅਧਾਰ ਤੇ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਸਿਰਫ ਕੋਡ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰੇਗਾ ਜੋ ਕਈ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਕਮਜ਼ੋਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।
ਪੂਰਨ (XC8-2777) ਨਾਲ ਲਿੰਕਰ ਗਲਤੀ ਜਦੋਂ RAM ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਇੱਕ ਪਤੇ 'ਤੇ ਇੱਕ ਵਸਤੂ ਨੂੰ ਸੰਪੂਰਨ ਬਣਾਇਆ ਗਿਆ ਹੈ ਅਤੇ ਅਣ-ਸ਼ੁਰੂਆਤ ਵਸਤੂਆਂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਇੱਕ ਲਿੰਕਰ ਗਲਤੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦੀ ਹੈ।
ਛੋਟੀ ਵੇਕ-ਅੱਪ ਆਈਡੀਜ਼ (XC8-2775) ATA5700/2 ਡਿਵਾਈਸਾਂ ਲਈ, PHIDO/1 ਰਜਿਸਟਰਾਂ ਨੂੰ 16 ਬਿੱਟ ਚੌੜੇ ਦੀ ਬਜਾਏ ਸਿਰਫ਼ 32 ਬਿੱਟ ਚੌੜੇ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਚਿੰਨ੍ਹ (XC8-2758) ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ ਲਿੰਕਰ ਕਰੈਸ਼ ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ -mrelax ਡਰਾਈਵਰ ਵਿਕਲਪ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਸਰੋਤ ਕੋਡ ਇੱਕ ਚਿੰਨ੍ਹ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਜੋ -cc., -de f sym ਲਿੰਕਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
ਗਲਤ ਸ਼ੁਰੂਆਤ (XC8-2679) ਉੱਥੇ ਇੱਕ ਅੰਤਰ ਹੈ ਜਿੱਥੇ ਕੁਝ ਗਲੋਬਲ/ਸਟੈਟਿਕ ਬਾਈਟ-ਆਕਾਰ ਦੀਆਂ ਵਸਤੂਆਂ ਲਈ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲਾਂ ਨੂੰ ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਕਿੱਥੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਰਨਟਾਈਮ 'ਤੇ ਐਕਸੈਸ ਕੀਤਾ ਜਾਵੇਗਾ।
ਖਰਾਬ ਅਸਿੱਧੇ ਫੰਕਸ਼ਨ ਕਾਲਾਂ (XC8-2628) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਇੱਕ ਢਾਂਚੇ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਸਟੋਰ ਕੀਤੇ ਫੰਕਸ਼ਨ ਪੁਆਇੰਟਰ ਦੁਆਰਾ ਕੀਤੀਆਂ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਅਸਫਲ ਹੋ ਸਕਦੀਆਂ ਹਨ।
strtof ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਸ (XC8-2626) ਲਈ ਜ਼ੀਰੋ ਵਾਪਸ ਕਰਦਾ ਹੈ ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ strtof et al ਅਤੇ scanf ( ) et al, ਹਮੇਸ਼ਾ ਇੱਕ ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਸੰਖਿਆ ਨੂੰ ਬਦਲਦੇ ਹਨ ਜੋ ਜ਼ੀਰੋ ਲਈ ਇੱਕ ਘਾਤਕ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਸਾਬਕਾ ਲਈampLe:
strtof (“Oxl”, &endptr);
ਮੁੱਲ 0 ਵਾਪਸ ਕਰੇਗਾ, I ਨਹੀਂ।
ਗਲਤ ਸਟੈਕ ਸਲਾਹਕਾਰ ਮੈਸੇਜਿੰਗ (XC8-2542, XC8-2541) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਵਰਤੇ ਗਏ ਦੁਹਰਾਓ ਜਾਂ ਅਨਿਸ਼ਚਿਤ ਸਟੈਕ (ਸੰਭਵ ਤੌਰ 'ਤੇ alloca() ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ) ਦੇ ਸਬੰਧ ਵਿੱਚ ਸਟੈਕ ਸਲਾਹਕਾਰ ਚੇਤਾਵਨੀ ਨਹੀਂ ਛੱਡੀ ਜਾਂਦੀ ਹੈ।
ਡੁਪਲੀਕੇਟ ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2421) ਨਾਲ ਅਸਫਲਤਾ ਜਿੱਥੇ ਇੱਕ ਤੋਂ ਵੱਧ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਇੱਕੋ ਬਾਡੀ ਹੈ, ਕੰਪਾਈਲਰ ਕੋਲ ਇੱਕ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਲਈ ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੀ ਹੈ ਦੂਜੇ ਨੂੰ ਕਾਲ ਕਰੋ। ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਸਾਰੇ ਕਾਲ-ਕਲੋਬਰਡ ਰਜਿਸਟਰਾਂ ਨੂੰ ਬੇਲੋੜੀ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਮੌਜੂਦਾ ਇੰਟਰੱਪਟ ਹੈਂਡਲਰ ਦੇ ਐਪੀਲੋਗ ਦੇ ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇੰਟਰਪਟਸ ਸਮਰੱਥ ਹੋ ਜਾਣਗੇ, ਜਿਸ ਨਾਲ ਕੋਡ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।
ਅਵੈਧ DFP ਮਾਰਗ (XC8-2376) ਨਾਲ ਖਰਾਬ ਆਉਟਪੁੱਟ ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ ਇੱਕ ਅਵੈਧ DFP ਮਾਰਗ ਅਤੇ ਇੱਕ 'ਸਪੈਕ' ਨਾਲ ਬੁਲਾਇਆ ਗਿਆ ਹੈ file ਚੁਣੀ ਗਈ ਡਿਵਾਈਸ ਲਈ ਮੌਜੂਦ ਹੈ, ਕੰਪਾਈਲਰ ਗੁੰਮ ਹੋਏ ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ ਦੀ ਰਿਪੋਰਟ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ 'ਸਪੈਕ' ਨੂੰ ਚੁਣ ਰਿਹਾ ਹੈ। file, ਜੋ ਫਿਰ ਇੱਕ ਅਵੈਧ ਆਉਟਪੁੱਟ ਦੀ ਅਗਵਾਈ ਕਰ ਸਕਦਾ ਹੈ। 'ਵਿਸ਼ੇਸ਼' files ਵੰਡੇ ਗਏ DFPs ਨਾਲ ਅੱਪ-ਟੂ-ਡੇਟ ਨਹੀਂ ਹੋ ਸਕਦੇ ਹਨ ਅਤੇ ਸਿਰਫ਼ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਟੈਸਟਿੰਗ ਲਈ ਵਰਤਣ ਲਈ ਸਨ।
ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਦਾ ਪਤਾ ਨਹੀਂ ਲੱਗਾ (XC8-1966) ਕੰਪਾਈਲਰ ਕਿਸੇ ਐਡਰੈੱਸ (_at ( ) ਰਾਹੀਂ) ਅਤੇ ਸੈਕਸ਼ਨ ( ) ਨਿਰਧਾਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਹੋਰ ਆਬਜੈਕਟਾਂ 'ਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਣਾਏ ਗਏ ਆਬਜੈਕਟਾਂ ਦੀ ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾ ਰਿਹਾ ਹੈ ਅਤੇ ਜੋ ਉਸੇ ਪਤੇ ਨਾਲ ਜੁੜੇ ਹੋਏ ਹਨ।
ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਅਤੇ _memx (XC8-1763) ਵਿੱਚ ਅਸਫਲਤਾ memx ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਇੱਕ ਆਰਗੂਮੈਂਟ ਨਾਲ libgcc ਫਲੋਟ ਫੰਕਸ਼ਨ ਫੇਲ ਹੋ ਸਕਦਾ ਹੈ। ਨੋਟ ਕਰੋ ਕਿ ਲਾਇਬ੍ਰੇਰੀ ਰੁਟੀਨ ਨੂੰ ਕੁਝ C ਓਪਰੇਟਰਾਂ ਤੋਂ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ, ਸਾਬਕਾ ਲਈample, ਹੇਠ ਦਿੱਤੇ ਕੋਡ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤਾ ਗਿਆ ਹੈ:
regFloatVar > memxFloatVar ਵਾਪਸ ਕਰੋ;
ਲਿਮਟਿਡ libgcc ਲਾਗੂਕਰਨ (AVRTC-731) ATTiny4/5/9/10/20/40 ਉਤਪਾਦਾਂ ਲਈ, libgcc ਵਿੱਚ ਮਿਆਰੀ C/Math ਲਾਇਬ੍ਰੇਰੀ ਲਾਗੂ ਕਰਨਾ ਬਹੁਤ ਸੀਮਤ ਹੈ ਜਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਸੀਮਾਵਾਂ (AVRTC-732) 128 kb ਤੋਂ ਵੱਧ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਚਿੱਤਰ ਟੂਲਚੇਨ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹਨ; ਹਾਲਾਂਕਿ, ਲਿੰਕਰ ਅਬੌਰਟਸ ਦੇ ਜਾਣੇ-ਪਛਾਣੇ ਉਦਾਹਰਣ ਹਨ ਜਦੋਂ -mre lax ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਲੋੜੀਂਦੇ ਫੰਕਸ਼ਨ ਸਟੱਬ ਬਣਾਉਣ ਦੀ ਬਜਾਏ ਬਿਨਾਂ ਕਿਸੇ ਢਿੱਲ ਦੇ ਅਤੇ ਇੱਕ ਮਦਦਗਾਰ ਗਲਤੀ ਸੰਦੇਸ਼ ਦੇ ਬਿਨਾਂ।
ਨਾਮ ਸਪੇਸ ਸੀਮਾਵਾਂ (AVRTC-733) ਨਾਮ ਦਿੱਤੇ ਐਡਰੈੱਸ ਸਪੇਸ ਟੂਲਚੇਨ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹਨ, ਉਪਭੋਗਤਾ ਦੇ ਗਾਈਡ ਸੈਕਸ਼ਨ ਸਪੈਸ਼ਲ ਟਾਈਪ ਕੁਆਲੀਫਾਇਰ ਵਿੱਚ ਦੱਸੀਆਂ ਗਈਆਂ ਸੀਮਾਵਾਂ ਦੇ ਅਧੀਨ।
ਟਾਈਮ ਜ਼ੋਨ The ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ GMT ਨੂੰ ਮੰਨਦੇ ਹਨ ਅਤੇ ਲੋਕਲ ਟਾਈਮ ਜ਼ੋਨਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ ਹਨ, ਇਸ ਤਰ੍ਹਾਂ ਲੋਕਲਟਾਈਮ ( ) gmtime ( ) ਵਾਂਗ ਹੀ ਸਮਾਂ ਵਾਪਸ ਕਰੇਗਾ, ਸਾਬਕਾ ਲਈample.

file:///Applications/microchip/xc8/v2.41/docs/Readme_XC8_for_AVR.htm

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

ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB XC8 C ਕੰਪਾਈਲਰ ਡਿਵੈਲਪਮੈਂਟ ਸੌਫਟਵੇਅਰ [pdf] ਮਾਲਕ ਦਾ ਮੈਨੂਅਲ
MPLAB XC8 C, MPLAB XC8 C ਕੰਪਾਈਲਰ ਵਿਕਾਸ ਸਾਫਟਵੇਅਰ, ਕੰਪਾਈਲਰ ਵਿਕਾਸ ਸਾਫਟਵੇਅਰ, ਵਿਕਾਸ ਸਾਫਟਵੇਅਰ, ਸਾਫਟਵੇਅਰ

ਹਵਾਲੇ

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

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