ਮਾਈਕ੍ਰੋਚਿਪ-ਲੋਗੋ

MICROCHIP XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.45 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ

MICROCHIP-XC8-C-ਕੰਪਾਈਲਰ-ਵਰਜਨ-2-45-ਰਿਲੀਜ਼-ਨੋਟਸ-ਲਈ-AVR-MCU-PRO

ਉਤਪਾਦ ਜਾਣਕਾਰੀ

MPLAB XC8 C ਕੰਪਾਈਲਰ ਇੱਕ ਸਾਫਟਵੇਅਰ ਟੂਲ ਹੈ ਜੋ ਮਾਈਕ੍ਰੋਚਿੱਪ AVR ਡਿਵਾਈਸਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ C ਕੋਡ ਨੂੰ ਕੰਪਾਇਲ ਕਰਨ ਅਤੇ ਚੱਲਣਯੋਗ ਬਣਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ files ਇਹਨਾਂ ਡਿਵਾਈਸਾਂ ਲਈ. ਇਸ ਉਪਭੋਗਤਾ ਮੈਨੂਅਲ ਵਿੱਚ ਸੰਦਰਭ ਕੀਤਾ ਗਿਆ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.45 ਹੈ, ਜਿਸਦੀ ਅਧਿਕਾਰਤ ਬਿਲਡ ਮਿਤੀ 18 ਅਗਸਤ, 2023 ਹੈ। ਪਿਛਲਾ ਸੰਸਕਰਣ 2.41 ਸੀ, ਜੋ 8 ਫਰਵਰੀ, 2023 ਨੂੰ ਬਣਾਇਆ ਗਿਆ ਸੀ। ਕੰਪਾਈਲਰ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਮੈਨੂਅਲ ਦੇ ਨਾਲ ਆਉਂਦਾ ਹੈ, ਜੋ ਵਾਧੂ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਅਤੇ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਨਾਲ MPLAB XC ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼। ਜਦੋਂ ਤੁਸੀਂ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਲਾਇਸੈਂਸ ਖਰੀਦਦੇ ਹੋ ਤਾਂ ਇਹ ਦਸਤਾਵੇਜ਼ ਦਸਤਾਵੇਜ਼ ਪੈਕੇਜ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। MPLAB XC8 C ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਦੇ ਸਮੇਂ ਸਾਰੇ ਉਪਲਬਧ 8-ਬਿੱਟ AVR MCU ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ avr_chipinfo.html ਦਾ ਹਵਾਲਾ ਦੇ ਸਕਦੇ ਹੋ file ਸਾਰੇ ਸਮਰਥਿਤ ਡਿਵਾਈਸਾਂ ਅਤੇ ਉਹਨਾਂ ਦੀ ਸੰਰਚਨਾ ਬਿੱਟ ਸੈਟਿੰਗਾਂ ਦੀ ਸੂਚੀ ਲਈ ਕੰਪਾਈਲਰ ਦੀ ਡੌਕ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ। MPLAB XC8 ਕੰਪਾਈਲਰ ਦੇ ਵੱਖ-ਵੱਖ ਐਡੀਸ਼ਨ ਉਪਲਬਧ ਹਨ। ਲਾਇਸੰਸਸ਼ੁਦਾ (PRO) ਐਡੀਸ਼ਨ ਮੁਫ਼ਤ ਐਡੀਸ਼ਨ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਉੱਚ ਪੱਧਰ ਦਾ ਅਨੁਕੂਲਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਕੰਪਾਈਲਰ ਨੂੰ ਲਾਇਸੰਸਸ਼ੁਦਾ ਉਤਪਾਦ ਦੇ ਤੌਰ 'ਤੇ ਸਰਗਰਮ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇੱਕ ਐਕਟੀਵੇਸ਼ਨ ਕੁੰਜੀ ਖਰੀਦਣ ਦੀ ਲੋੜ ਹੈ। ਹਾਲਾਂਕਿ, ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਵਾਲੇ ਸੰਸਕਰਣ ਨੂੰ ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਦੇ ਅਣਮਿੱਥੇ ਸਮੇਂ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਕਾਰਜਾਤਮਕ ਸੁਰੱਖਿਆ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ, ਇੱਕ MPLAB XC8 ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਉਪਲਬਧ ਹੈ। ਇਸਨੂੰ ਐਕਟੀਵੇਸ਼ਨ ਲਈ ਮਾਈਕ੍ਰੋਚਿੱਪ ਤੋਂ ਖਰੀਦਿਆ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਲਾਇਸੈਂਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਵਾਰ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਸਾਰੇ ਅਨੁਕੂਲਨ ਪੱਧਰਾਂ ਅਤੇ ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। MPLAB XC ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਇਸੈਂਸ ਦਾ ਵੀ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਇੰਸਟਾਲੇਸ਼ਨ, ਐਕਟੀਵੇਸ਼ਨ, ਲਾਇਸੈਂਸ ਦੀਆਂ ਕਿਸਮਾਂ, ਅਤੇ ਮਾਈਗ੍ਰੇਸ਼ਨ ਮੁੱਦਿਆਂ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਜਾਣਕਾਰੀ MPLAB XC C ਕੰਪਾਈਲਰ (DS50002059) ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਇੰਸਟਾਲ ਅਤੇ ਲਾਇਸੰਸਿੰਗ ਵਿੱਚ ਲੱਭੀ ਜਾ ਸਕਦੀ ਹੈ।

ਉਤਪਾਦ ਵਰਤੋਂ ਨਿਰਦੇਸ਼

  1. MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੌਫਟਵੇਅਰ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਮਾਈਕ੍ਰੋਚਿੱਪ AVR ਡਿਵਾਈਸਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਅਤੇ ਨਿਰਦੇਸ਼ਾਂ ਲਈ ਉਪਭੋਗਤਾ ਮੈਨੂਅਲ ਪੜ੍ਹੋ।
  2. ਜੇਕਰ ਤੁਸੀਂ 8-ਬਿੱਟ PIC ਡਿਵਾਈਸਾਂ ਲਈ ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ PIC ਦਸਤਾਵੇਜ਼ ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਨੋਟਸ ਵੇਖੋ।
  3. ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਕੰਪਾਈਲਰ ਚਲਾਉਣ ਲਈ ਸਿਸਟਮ ਲੋੜਾਂ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ। ਮੈਕੋਸ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਅਤੇ ਨੋਟਰਾਈਜ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। MPLAB XC ਨੈੱਟਵਰਕ ਲਾਈਸੈਂਸ ਸਰਵਰ Microsoft Windows 10 ਅਤੇ ਇਸਤੋਂ ਉੱਪਰ, Ubuntu 18.04 ਅਤੇ ਇਸਤੋਂ ਉੱਪਰ, ਅਤੇ macOS 10.15 ਅਤੇ ਇਸਤੋਂ ਉੱਪਰ ਦੇ ਲਈ ਉਪਲਬਧ ਹੈ। ਨੋਟ ਕਰੋ ਕਿ ਇਹਨਾਂ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ।
  4. MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਨੂੰ ਨੈੱਟਵਰਕ ਲਾਇਸੰਸ (SW006021-VM) ਲਈ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਲਾਇਸੈਂਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਮਰਥਿਤ OS ਦੀਆਂ ਵਰਚੁਅਲ ਮਸ਼ੀਨਾਂ 'ਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। MPLAB XC ਨੈੱਟਵਰਕ ਸਰਵਰ ਦੇ ਸਾਰੇ 32-ਬਿੱਟ ਸੰਸਕਰਣ ਵਰਜਨ 3.00 ਤੋਂ ਬੰਦ ਕਰ ਦਿੱਤੇ ਗਏ ਹਨ।
  5. MPLAB XC8 C ਕੰਪਾਈਲਰ ਨੂੰ ਲਾਇਸੰਸਸ਼ੁਦਾ (PRO) ਉਤਪਾਦ ਵਜੋਂ ਸਰਗਰਮ ਕਰਨ ਲਈ, ਇੱਕ ਐਕਟੀਵੇਸ਼ਨ ਕੁੰਜੀ ਖਰੀਦੋ। ਇਹ ਮੁਫਤ ਸੰਸਕਰਣ ਦੇ ਮੁਕਾਬਲੇ ਉੱਚ ਪੱਧਰੀ ਅਨੁਕੂਲਤਾ ਪ੍ਰਦਾਨ ਕਰੇਗਾ। ਹਾਲਾਂਕਿ, ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਵਾਲੇ ਕੰਪਾਈਲਰ ਨੂੰ ਬਿਨਾਂ ਲਾਇਸੈਂਸ ਦੇ ਅਣਮਿੱਥੇ ਸਮੇਂ ਲਈ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
  6. ਜੇਕਰ ਤੁਸੀਂ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ MPLAB XC8 ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਇਸ ਨੂੰ ਮਾਈਕ੍ਰੋਚਿੱਪ ਤੋਂ ਖਰੀਦੇ ਗਏ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਲਾਇਸੈਂਸ ਨਾਲ ਐਕਟੀਵੇਟ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਕੰਪਾਈਲਰ ਇਸ ਲਾਇਸੈਂਸ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ। ਇੱਕ ਵਾਰ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਅਨੁਕੂਲਨ ਪੱਧਰ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸਾਰੀਆਂ ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਨੈੱਟਵਰਕ ਸਰਵਰ ਲਾਇਸੈਂਸ MPLAB XC ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਕੰਪਾਈਲਰ ਦੇ ਇਸ ਰੀਲੀਜ਼ ਦੁਆਰਾ ਸਮਰਥਿਤ ਹੈ।
  7. MPLAB XC8 C ਕੰਪਾਈਲਰ ਦੀ ਸਥਾਪਨਾ, ਐਕਟੀਵੇਸ਼ਨ, ਅਤੇ ਲਾਇਸੈਂਸਿੰਗ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ ਨਿਰਦੇਸ਼ਾਂ ਲਈ, MPLAB XC C ਕੰਪਾਈਲਰ (DS50002059) ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਅਤੇ ਲਾਇਸੈਂਸ ਦੇਣਾ ਦਸਤਾਵੇਜ਼ ਵੇਖੋ।
  8. ਜੇਕਰ ਤੁਸੀਂ ਮੁਲਾਂਕਣ ਲਾਇਸੰਸ ਦੇ ਅਧੀਨ ਕੰਪਾਈਲਰ ਚਲਾ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸੰਕਲਨ ਦੇ ਦੌਰਾਨ ਇੱਕ ਚੇਤਾਵਨੀ ਪ੍ਰਾਪਤ ਹੋਵੇਗੀ ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੀ ਮੁਲਾਂਕਣ ਦੀ ਮਿਆਦ ਦੇ ਅੰਤ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋਵੋਗੇ। ਇਹੀ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ HPA ਗਾਹਕੀ ਦੇ ਖਤਮ ਹੋਣ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋ।

ਵੱਧview

ਜਾਣ-ਪਛਾਣ
ਮਾਈਕ੍ਰੋਚਿੱਪ MPLAB® XC8 C ਕੰਪਾਈਲਰ ਦੇ ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਕਈ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ਬੱਗ ਫਿਕਸ, ਅਤੇ ਨਵੀਆਂ ਡਿਵਾਈਸਾਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਹਨ।

ਬਣਾਉਣ ਦੀ ਮਿਤੀ
ਇਸ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਦੀ ਅਧਿਕਾਰਤ ਬਿਲਡ ਮਿਤੀ 18 ਅਗਸਤ 2023 ਹੈ।

ਪਿਛਲਾ ਸੰਸਕਰਣ
ਪਿਛਲਾ MPLAB XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.41 ਸੀ, 8 ਫਰਵਰੀ, 2023 ਨੂੰ ਬਣਾਇਆ ਗਿਆ ਸੀ।

ਕਾਰਜਾਤਮਕ ਸੁਰੱਖਿਆ ਮੈਨੂਅਲ
MPLAB XC ਕੰਪਾਈਲਰਾਂ ਲਈ ਇੱਕ ਫੰਕਸ਼ਨਲ ਸੇਫਟੀ ਮੈਨੂਅਲ ਦਸਤਾਵੇਜ਼ ਪੈਕੇਜ ਵਿੱਚ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਲਾਇਸੈਂਸ ਖਰੀਦਦੇ ਹੋ।

ਕੰਪੋਨੈਂਟ ਲਾਇਸੰਸ ਅਤੇ ਸੰਸਕਰਣ
AVR MCUs ਟੂਲਸ ਲਈ MPLAB XC8 C ਕੰਪਾਈਲਰ GNU ਜਨਰਲ ਪਬਲਿਕ ਲਾਈਸੈਂਸ (GPL) ਦੇ ਅਧੀਨ ਲਿਖਿਆ ਅਤੇ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇਸਦਾ ਸਰੋਤ ਕੋਡ ਮੁਫਤ ਵਿੱਚ ਵੰਡਿਆ ਗਿਆ ਹੈ ਅਤੇ ਜਨਤਾ ਲਈ ਉਪਲਬਧ ਹੈ। GNU GPL ਦੇ ਅਧੀਨ ਟੂਲਸ ਲਈ ਸਰੋਤ ਕੋਡ ਮਾਈਕ੍ਰੋਚਿੱਪ ਤੋਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ webਸਾਈਟ. ਤੁਸੀਂ ਵਿੱਚ GNU GPL ਪੜ੍ਹ ਸਕਦੇ ਹੋ file ਨਾਮ ਤੁਹਾਡੀ ਇੰਸਟਾਲ ਡਾਇਰੈਕਟਰੀ ਦੀ ਸਬ-ਡਾਇਰੈਕਟਰੀ ਸਥਿਤ ਹੈ। GPL ਦੇ ਅਧੀਨ ਸਿਧਾਂਤਾਂ ਦੀ ਇੱਕ ਆਮ ਚਰਚਾ ਇੱਥੇ ਪਾਈ ਜਾ ਸਕਦੀ ਹੈ। ਸਿਰਲੇਖ ਲਈ ਸਹਾਇਤਾ ਕੋਡ ਪ੍ਰਦਾਨ ਕੀਤਾ ਗਿਆ ਹੈ files, ਲਿੰਕਰ ਸਕ੍ਰਿਪਟਾਂ, ਅਤੇ ਰਨਟਾਈਮ ਲਾਇਬ੍ਰੇਰੀਆਂ ਮਲਕੀਅਤ ਕੋਡ ਹਨ ਅਤੇ GPL ਦੇ ਅਧੀਨ ਨਹੀਂ ਆਉਂਦੇ ਹਨ। ਇਹ ਕੰਪਾਈਲਰ GCC ਸੰਸਕਰਣ 5.4.0, binutils ਸੰਸਕਰਣ 2.26, ਅਤੇ avr-libc ਸੰਸਕਰਣ 2.0.0 ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।

ਸਿਸਟਮ ਦੀਆਂ ਲੋੜਾਂ
MPLAB XC8 C ਕੰਪਾਈਲਰ ਅਤੇ ਲਾਇਸੈਂਸਿੰਗ ਸੌਫਟਵੇਅਰ ਜੋ ਇਸ ਦੁਆਰਾ ਵਰਤੇ ਜਾਂਦੇ ਹਨ, ਕਈ ਤਰ੍ਹਾਂ ਦੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਲਈ ਉਪਲਬਧ ਹਨ, ਜਿਸ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੇ 64-ਬਿੱਟ ਸੰਸਕਰਣ ਸ਼ਾਮਲ ਹਨ: Microsoft® Windows® 10, Ubuntu® 18.04, macOS® 13.2 (Ventura), ਅਤੇ ਪ੍ਰੋਫੈਸ਼ਨਲ ਐਡੀਸ਼ਨ ਫੇਡੋਰਾ 34. ਵਿੰਡੋਜ਼ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। ਮੈਕੋਸ ਲਈ ਬਾਈਨਰੀਆਂ ਕੋਡ-ਦਸਤਖਤ ਅਤੇ ਨੋਟਰਾਈਜ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ। MPLAB XC ਨੈੱਟਵਰਕ ਲਾਈਸੈਂਸ ਸਰਵਰ 64-ਬਿੱਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਦੀ ਇੱਕ ਕਿਸਮ ਲਈ ਉਪਲਬਧ ਹੈ, ਜਿਸ ਵਿੱਚ Microsoft Windows 10 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ ਦਾ ਵੀ ਸ਼ਾਮਲ ਹੈ; ਉਬੰਟੂ 18.04 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ; ਜਾਂ macOS 10.15 ਅਤੇ ਇਸ ਤੋਂ ਉੱਪਰ। ਸਰਵਰ ਵਿੰਡੋਜ਼ ਸਰਵਰ, ਲੀਨਕਸ ਡਿਸਟਰੀਬਿਊਸ਼ਨ, ਜਿਵੇਂ ਕਿ Oracle® Enterprise Linux® ਅਤੇ Red Hat® Enterprise Linux ਦੇ ਨਾਲ-ਨਾਲ ਸਮਰਥਿਤ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣਾਂ ਸਮੇਤ ਕਈ ਹੋਰ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ ਵੀ ਚੱਲ ਸਕਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਇਹਨਾਂ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ 'ਤੇ MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। MPLAB XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਨੂੰ ਨੈੱਟਵਰਕ ਲਾਇਸੰਸ (SW006021-VM) ਲਈ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਲਾਇਸੈਂਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਮਰਥਿਤ OS ਦੀਆਂ ਵਰਚੁਅਲ ਮਸ਼ੀਨਾਂ 'ਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। MPLAB XC ਨੈੱਟਵਰਕ ਸਰਵਰ ਦੇ ਸਾਰੇ 32-ਬਿੱਟ ਸੰਸਕਰਣ ਵਰਜਨ 3.00 ਤੋਂ ਬੰਦ ਕਰ ਦਿੱਤੇ ਗਏ ਹਨ।

ਜੰਤਰ ਸਹਿਯੋਗੀ
ਇਹ ਕੰਪਾਈਲਰ ਰੀਲੀਜ਼ ਦੇ ਸਮੇਂ ਸਾਰੇ ਉਪਲਬਧ 8-ਬਿੱਟ AVR MCU ਡਿਵਾਈਸਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਸਾਰੇ ਸਮਰਥਿਤ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਲਈ avr_chipinfo.html (ਕੰਪਾਈਲਰ ਦੀ ਡੌਕ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ) ਦੇਖੋ। ਇਹ ਫਾਈਲਾਂ ਹਰੇਕ ਡਿਵਾਈਸ ਲਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਿੱਟ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਸੂਚੀਬੱਧ ਕਰਦੀਆਂ ਹਨ।

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

ਇੰਸਟਾਲੇਸ਼ਨ ਅਤੇ ਸਰਗਰਮ
ਇਸ ਕੰਪਾਈਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਨਵੀਨਤਮ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਬਾਰੇ ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ ਮਾਈਗ੍ਰੇਸ਼ਨ ਮੁੱਦੇ ਅਤੇ ਸੀਮਾਵਾਂ ਸੈਕਸ਼ਨ ਵੀ ਦੇਖੋ। ਜੇਕਰ MPLAB IDE ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਇਸ ਟੂਲ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਨਵੀਨਤਮ MPLAB X IDE ਸੰਸਕਰਣ 5.0 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਦੇ ਸੰਸਕਰਣ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਓ। ਕੰਪਾਈਲਰ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ IDE ਨੂੰ ਛੱਡ ਦਿਓ। .run (Linux) ਜਾਂ .app (macOS) ਕੰਪਾਈਲਰ ਇੰਸਟੌਲਰ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਓ, ਜਿਵੇਂ ਕਿ XC8-1.00.11403-windows.exe ਅਤੇ ਸਕ੍ਰੀਨ 'ਤੇ ਨਿਰਦੇਸ਼ਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। ਡਿਫਾਲਟ ਇੰਸਟਾਲੇਸ਼ਨ ਡਾਇਰੈਕਟਰੀ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਲੀਨਕਸ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੰਪਾਈਲਰ ਨੂੰ ਟਰਮੀਨਲ ਅਤੇ ਰੂਟ ਖਾਤੇ ਤੋਂ ਇੰਸਟਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰਸ਼ਾਸਕ ਦੇ ਅਧਿਕਾਰਾਂ ਦੇ ਨਾਲ ਇੱਕ macOS ਖਾਤੇ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਥਾਪਿਤ ਕਰੋ। ਸਰਗਰਮੀ ਹੁਣ ਇੰਸਟਾਲੇਸ਼ਨ ਲਈ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ MPLAB® XC C ਕੰਪਾਈਲਰ (DS52059) ਲਈ ਦਸਤਾਵੇਜ਼ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਦੇਖੋ। ਜੇਕਰ ਤੁਸੀਂ ਮੁਲਾਂਕਣ ਲਾਇਸੰਸ ਦੇ ਤਹਿਤ ਕੰਪਾਈਲਰ ਚਲਾਉਣ ਦੀ ਚੋਣ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਹੁਣ ਸੰਕਲਨ ਦੇ ਦੌਰਾਨ ਇੱਕ ਚੇਤਾਵਨੀ ਮਿਲੇਗੀ ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੀ ਮੁਲਾਂਕਣ ਦੀ ਮਿਆਦ ਦੇ ਅੰਤ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋਵੋਗੇ। ਇਹੀ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ HPA ਗਾਹਕੀ ਦੇ ਖਤਮ ਹੋਣ ਦੇ 14 ਦਿਨਾਂ ਦੇ ਅੰਦਰ ਹੋ। XC ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸ ਸਰਵਰ ਇੱਕ ਵੱਖਰਾ ਇੰਸਟਾਲਰ ਹੈ ਅਤੇ ਸਿੰਗਲ-ਯੂਜ਼ਰ ਕੰਪਾਈਲਰ ਇੰਸਟੌਲਰ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। ਐਕਸਸੀ ਲਾਈਸੈਂਸ ਮੈਨੇਜਰ ਹੁਣ ਫਲੋਟਿੰਗ ਨੈੱਟਵਰਕ ਲਾਇਸੈਂਸਾਂ ਦੀ ਰੋਮਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਮੋਬਾਈਲ ਉਪਭੋਗਤਾਵਾਂ ਦੇ ਉਦੇਸ਼ ਨਾਲ, ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਇੱਕ ਫਲੋਟਿੰਗ ਲਾਇਸੈਂਸ ਨੂੰ ਥੋੜੇ ਸਮੇਂ ਲਈ ਨੈਟਵਰਕ ਤੋਂ ਬਾਹਰ ਜਾਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਨੈੱਟਵਰਕ ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਫਿਰ ਵੀ ਆਪਣੇ MPLAB XC ਕੰਪਾਈਲਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ XCLM ਇੰਸਟਾਲ ਦਾ ਡੌਕ ਫੋਲਡਰ ਦੇਖੋ। MPLAB X IDE ਵਿੱਚ ਰੋਮਿੰਗ ਨੂੰ ਦ੍ਰਿਸ਼ਟੀਗਤ ਰੂਪ ਵਿੱਚ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਇੱਕ ਲਾਇਸੈਂਸ ਵਿੰਡੋ (ਟੂਲਜ਼ > ਲਾਇਸੈਂਸ) ਸ਼ਾਮਲ ਹੈ।

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

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

ਟੈਂਪ ਫੋਲਡਰ ਦੀ ਸਥਿਤੀ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, Run ਕਮਾਂਡ (Windows logo key + R) ਵਿੱਚ %temp% ਟਾਈਪ ਕਰੋ। ਇਹ ਉਸ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਦਿਖਾਉਂਦੇ ਹੋਏ ਇੱਕ ਫਾਈਲ ਐਕਸਪਲੋਰਰ ਡਾਇਲਾਗ ਖੋਲ੍ਹੇਗਾ ਅਤੇ ਤੁਹਾਨੂੰ ਉਸ ਫੋਲਡਰ ਦਾ ਮਾਰਗ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਵੇਗਾ।

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

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

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

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

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

ਕੋਈ ਨਹੀਂ

  • 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-ਨਿਸ਼ਾਨਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ ਜਿਨ੍ਹਾਂ ਦਾ ਕੰਪਾਈਲਰ ਹੁਣ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਉਪ-ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਸੰਸਕਰਣ ਨੰਬਰ ਉਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਹਿਲੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਬਾਅਦ ਵਿੱਚ ਆਉਂਦੀਆਂ ਹਨ।

ਸੰਸਕਰਣ 2.45
ਯੂਨੀਵਰਸਲ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ (XC8-3175, XCLM-224) ਕੰਪਾਈਲਰ ਨਾਲ ਵਰਤੇ ਗਏ ਲਾਇਸੈਂਸ ਮੈਨੇਜਰ ਦਾ ਮੈਕੋਸ ਸੰਸਕਰਣ ਹੁਣ ਯੂਨੀਵਰਸਲ ਹੈ, ਜੋ ਕਿ ਇੰਟੇਲ- ਅਤੇ M1-ਅਧਾਰਿਤ ਮਸ਼ੀਨਾਂ ਦੋਨਾਂ ਲਈ ਮੂਲ ਸਮਰਥਨ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ। ਲਾਇਸੰਸ ਮੈਨੇਜਰ ਦੇ ਲੀਨਕਸ ਸੰਸਕਰਣ ਲਈ ਹੁਣ glibc ਦੇ ਘੱਟੋ-ਘੱਟ ਸੰਸਕਰਣ 2.25 ਦੀ ਲੋੜ ਹੈ। ਮੈਕ ਯੂਨੀਵਰਸਲ ਬਾਈਨਰੀਜ਼ (XC8-3168, XC8-2951) macOS ਲਈ ਕੰਪਾਈਲਰ ਬਾਈਨਰੀ ਫਾਈਲਾਂ ਹੁਣ ਯੂਨੀਵਰਸਲ ਹਨ, ਜੋ Intel- ਅਤੇ M1-ਅਧਾਰਿਤ ਮਸ਼ੀਨਾਂ ਦੋਨਾਂ ਲਈ ਮੂਲ ਸਮਰਥਨ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੀਆਂ ਹਨ। ਘਟਾਏ ਗਏ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਲਾਇਬ੍ਰੇਰੀ ਆਕਾਰ (XC8-3112, XC8-3071) ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ sinf() pow(), sqrt(), expf(), log1fp(), ਅਤੇ nextafterf() ਸ਼ਾਮਲ ਹਨ। , ਜੋ ਇਹਨਾਂ ਰੁਟੀਨਾਂ ਲਈ ਕੋਡ ਆਕਾਰ ਵਿੱਚ ਕਮੀ ਵੇਖਦੇ ਹਨ। ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੁਣ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਭਾਗਾਂ ਲਈ ਉਪਲਬਧ ਹੈ: AVR16EA28, AVR16EA32, AVR16EA48, AVR32EA28, AVR32EA32, AVR32EA48, AVR16EB14, AVR16EB20, AVR16EB28, AVR16EA32, AVRXNUMXEAXNUMX ਅਤੇ.

ਸੰਸਕਰਣ 2.41

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

ਸੰਸਕਰਣ 2.40

  • ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੁਣ ਹੇਠਾਂ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਉਪਲਬਧ ਹੈ: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32,AVR64,AVR28,AVR64 32, ਅਤੇ AVR64EA48.
  • ਪ੍ਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ (ਪੀਏ) ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਟੂਲ ਨੂੰ ਸੁਧਾਰਿਆ ਗਿਆ ਹੈ ਤਾਂ ਕਿ ਇੱਕ ਫੰਕਸ਼ਨ ਕਾਲ ਇੰਸਟ੍ਰਕਸ਼ਨ (ਕਾਲ/ਰਕਾਲ) ਵਾਲੇ ਕੋਡ ਦੀ ਰੂਪਰੇਖਾ ਤਿਆਰ ਕੀਤੀ ਜਾ ਸਕੇ। ਇਹ ਉਦੋਂ ਹੀ ਵਾਪਰੇਗਾ ਜੇਕਰ ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਪਾਸ ਕਰਨ ਜਾਂ ਫੰਕਸ਼ਨ ਤੋਂ ਵਾਪਸੀ ਮੁੱਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਸਟੈਕ ਦੀ ਵਰਤੋਂ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਦੇ ਨਾਲ ਕਿਸੇ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ ਜਾਂ ਕਿਸੇ ਅਜਿਹੇ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵੇਲੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਇਸ ਉਦੇਸ਼ ਲਈ ਮਨੋਨੀਤ ਰਜਿਸਟਰਾਂ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਆਰਗੂਮੈਂਟ ਲੈਂਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ – mno-pa-outline-calls ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਾਂ -mno-pa-on- ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਆਬਜੈਕਟ ਫਾਈਲ ਅਤੇ ਜਾਂ ਫੰਕਸ਼ਨ ਲਈ ਵਿਧੀਗਤ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।file -mno-pa-on-ਫੰਕਸ਼ਨ, ਕ੍ਰਮਵਾਰ, ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਦੇ ਨਾਲ ਚੁਣੇ ਹੋਏ nopa ਗੁਣ (__nopa ਨਿਰਧਾਰਕ) ਦੀ ਵਰਤੋਂ ਕਰਕੇ।
  • ਕੋਡ ਕਵਰੇਜ ਮੈਕਰੋ ਕੰਪਾਈਲਰ ਹੁਣ ਮੈਕਰੋ __CODECOV ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੇਕਰ ਇੱਕ ਵੈਧ -mcodecov ਵਿਕਲਪ ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ।
  • ਮੈਮੋਰੀ ਰਿਜ਼ਰਵੇਸ਼ਨ ਵਿਕਲਪ xc8-cc ਡਰਾਈਵਰ ਹੁਣ -mreserve=space@start:end ਵਿਕਲਪ ਨੂੰ ਸਵੀਕਾਰ ਕਰੇਗਾ ਜਦੋਂ AVR ਟੀਚਿਆਂ ਲਈ ਨਿਰਮਾਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। ਇਹ ਵਿਕਲਪ ਡਾਟਾ ਜਾਂ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਸਪੇਸ ਵਿੱਚ ਖਾਸ ਮੈਮੋਰੀ ਰੇਂਜ ਨੂੰ ਰਾਖਵਾਂ ਰੱਖਦਾ ਹੈ, ਲਿੰਕਰ ਨੂੰ ਇਸ ਖੇਤਰ ਵਿੱਚ ਕੋਡ ਜਾਂ ਵਸਤੂਆਂ ਨੂੰ ਭਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ।
  • ਚੁਸਤ ਸਮਾਰਟ IO ਸਮਾਰਟ IO ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਕਈ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ ਪ੍ਰਿੰਟਫ ਕੋਰ ਕੋਡ ਵਿੱਚ ਆਮ ਟਵੀਕਸ, %n ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕ ਨੂੰ ਇੱਕ ਸੁਤੰਤਰ ਰੂਪ ਵਜੋਂ ਮੰਨਣਾ, ਮੰਗ 'ਤੇ ਵਰਾਗ ਪੌਪ ਰੁਟੀਨ ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ, ਹੈਂਡਲ ਕਰਨ ਲਈ ਜਿੱਥੇ ਸੰਭਵ ਹੋ ਸਕੇ ਛੋਟੇ ਡੇਟਾ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸ਼ਾਮਲ ਹੈ। IO ਫੰਕਸ਼ਨ ਆਰਗੂਮੈਂਟਸ, ਅਤੇ ਫੀਲਡ ਚੌੜਾਈ ਅਤੇ ਸ਼ੁੱਧਤਾ ਹੈਂਡਲਿੰਗ ਵਿੱਚ ਫੈਕਟਰਿੰਗ ਆਮ ਕੋਡ। ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਮਹੱਤਵਪੂਰਨ ਕੋਡ ਅਤੇ ਡਾਟਾ ਬਚਤ ਹੋ ਸਕਦੀ ਹੈ, ਨਾਲ ਹੀ IO ​​ਦੀ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਵੀ ਵਧ ਸਕਦੀ ਹੈ।

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

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

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

ਸੰਸਕਰਣ 2.32

  • ਸਟੈਕ ਗਾਈਡੈਂਸ ਇੱਕ PRO ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਦੇ ਨਾਲ ਉਪਲਬਧ, ਕੰਪਾਈਲਰ ਦੀ ਸਟੈਕ ਮਾਰਗਦਰਸ਼ਨ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਕਿਸੇ ਵੀ ਸਟੈਕ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਡੂੰਘਾਈ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਇਹ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕਾਲ ਗ੍ਰਾਫ ਦਾ ਨਿਰਮਾਣ ਅਤੇ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ, ਹਰੇਕ ਫੰਕਸ਼ਨ ਦੀ ਸਟੈਕ ਵਰਤੋਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਰਿਪੋਰਟ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਤੋਂ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਸਟੈਕ ਦੀ ਡੂੰਘਾਈ ਦਾ ਅਨੁਮਾਨ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ -mchp-stack-usage ਕਮਾਂਡ-ਲਾਈਨ ਵਿਕਲਪ ਰਾਹੀਂ ਯੋਗ ਕੀਤੀ ਗਈ ਹੈ। ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ ਸਟੈਕ ਵਰਤੋਂ ਦਾ ਸੰਖੇਪ ਛਾਪਿਆ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਸਟੈਕ ਰਿਪੋਰਟ ਮੈਪ ਫਾਈਲ ਵਿੱਚ ਉਪਲਬਧ ਹੈ, ਜਿਸਦੀ ਆਮ ਤਰੀਕੇ ਨਾਲ ਬੇਨਤੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
  • ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਹਾਇਤਾ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32DB28, AVR64B32, AVR32 48, ਅਤੇ AVRXNUMXDBXNUMX।
  • ਵਾਪਿਸ ਲਿਆ ਗਿਆ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਅੱਗੇ ਦਿੱਤੇ AVR ਹਿੱਸਿਆਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ: AVR16DA28, AVR16DA32 ਅਤੇ, AVR16DA48।

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

ਸੰਸਕਰਣ 2.30

  • ਡਾਟਾ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਰੋਕਣ ਲਈ ਨਵਾਂ ਵਿਕਲਪ ਇੱਕ ਨਵਾਂ -mno-data-init ਡਰਾਈਵਰ ਵਿਕਲਪ ਡਾਟਾ ਦੀ ਸ਼ੁਰੂਆਤ ਅਤੇ bss ਭਾਗਾਂ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਇਹ ਅਸੈਂਬਲੀ ਫਾਈਲਾਂ ਵਿੱਚ do_clear_bss ਚਿੰਨ੍ਹਾਂ ਦੇ ਆਉਟਪੁੱਟ ਨੂੰ ਦਬਾ ਕੇ ਕੰਮ ਕਰਦਾ ਹੈ, ਜੋ ਬਦਲੇ ਵਿੱਚ ਲਿੰਕਰ ਦੁਆਰਾ ਉਹਨਾਂ ਰੁਟੀਨਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ।
  • ਵਿਸਤ੍ਰਿਤ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਬਹੁਤ ਸਾਰੇ ਅਨੁਕੂਲਤਾ ਸੁਧਾਰ ਕੀਤੇ ਗਏ ਹਨ, ਜਿਸ ਵਿੱਚ ਬੇਲੋੜੇ ਵਾਪਸੀ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਇੱਕ skip-if-bit-is ਹਦਾਇਤਾਂ ਤੋਂ ਬਾਅਦ ਕੁਝ ਜੰਪਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਅਤੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਅਤੇ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਦੁਹਰਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਹੈ।
    ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਓਪਟੀਮਾਈਜੇਸ਼ਨਾਂ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਵਾਧੂ ਵਿਕਲਪ ਹੁਣ ਉਪਲਬਧ ਹਨ, ਖਾਸ ਤੌਰ 'ਤੇ -fsection- ਐਂਕਰ, ਜੋ ਇੱਕ ਚਿੰਨ੍ਹ ਦੇ ਅਨੁਸਾਰੀ ਸਥਿਰ ਵਸਤੂਆਂ ਦੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ; -mpa- iterations=n , ਜੋ ਕਿ 2 ਦੇ ਡਿਫਾਲਟ ਤੋਂ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਦੁਹਰਾਓ ਦੀ ਸੰਖਿਆ ਨੂੰ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ; ਅਤੇ, -mpa-callcost-shortcall, ਜੋ ਕਿ ਵਧੇਰੇ ਹਮਲਾਵਰ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਕਰਦਾ ਹੈ, ਇਸ ਉਮੀਦ ਵਿੱਚ ਕਿ ਲਿੰਕਰ ਲੰਬੀਆਂ ਕਾਲਾਂ ਨੂੰ ਆਰਾਮ ਦੇ ਸਕਦਾ ਹੈ। ਇਹ ਆਖਰੀ ਵਿਕਲਪ ਕੋਡ ਦਾ ਆਕਾਰ ਵਧਾ ਸਕਦਾ ਹੈ ਜੇਕਰ ਅੰਡਰਲਾਈੰਗ ਧਾਰਨਾਵਾਂ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
  • ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਉਪਲਬਧ ਹੈ: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DA32, AVR128DA48, AVR128DA64, XNUMXDBXNUMX, AVRXNUMXDBXNUMX, ਅਤੇ AVRXNUMXDBXNUMX।
  • ਵਾਪਸ ਲੈਣ ਵਾਲੇ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੁਣ ਹੇਠ ਦਿੱਤੇ ਏਵੀਆਰ ਦੇ ਭਾਗਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹਨ: ata5272, ata5790, ata5790, ata5791, ata5795, ata6285, ata6286, ata6612, ata6613.q, ਅਤੇ.

ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)

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

ਸੰਸਕਰਣ 2.20

  • ਨਿਮਨਲਿਖਤ AVR ਭਾਗਾਂ ਲਈ ਨਵੀਂ ਡਿਵਾਈਸ ਸਹਾਇਤਾ ਸਹਾਇਤਾ ਉਪਲਬਧ ਹੈ: ATTINY1624, ATTINY1626, ਅਤੇ ATTINY1627।
  • ਬਿਹਤਰ ਸਰਵੋਤਮ ਫਿਟ ਐਲੋਕੇਸ਼ਨ ਕੰਪਾਈਲਰ ਵਿੱਚ ਸਭ ਤੋਂ ਵਧੀਆ ਫਿਟ ਐਲੋਕੇਟਰ (BFA) ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ ਤਾਂ ਜੋ ਭਾਗਾਂ ਨੂੰ ਇੱਕ ਕ੍ਰਮ ਵਿੱਚ ਅਲਾਟ ਕੀਤਾ ਜਾ ਸਕੇ ਜੋ ਬਿਹਤਰ ਅਨੁਕੂਲਤਾ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। BFA ਹੁਣ ਨਾਮਿਤ ਐਡਰੈੱਸ ਸਪੇਸ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਅਤੇ ਡਾਟਾ ਅਰੰਭਕਰਨ ਨੂੰ ਬਿਹਤਰ ਢੰਗ ਨਾਲ ਸੰਭਾਲਦਾ ਹੈ।
  • ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਹੁਣ ਹੋਰ ਕੋਡ ਕ੍ਰਮਾਂ ਉੱਤੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਪਿਛਲੀਆਂ ਸਥਿਤੀਆਂ ਜਿੱਥੇ ਇਸ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੇ ਕੋਡ ਦਾ ਆਕਾਰ ਵਧਾਇਆ ਹੋ ਸਕਦਾ ਹੈ ਉਹਨਾਂ ਨੂੰ ਲਿੰਕਰ ਦੀ ਕੂੜਾ ਇਕੱਠਾ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਬਾਰੇ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਨੂੰ ਜਾਣੂ ਕਰਵਾ ਕੇ ਸੰਬੋਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
  • AVR ਅਸੈਂਬਲਰ ਦੀ ਗੈਰਹਾਜ਼ਰੀ AVR ਅਸੈਂਬਲਰ ਹੁਣ ਇਸ ਵੰਡ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ।

ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

ਸੰਸਕਰਣ 2.10

  • ਕੋਡ ਕਵਰੇਜ ਇਸ ਰੀਲੀਜ਼ ਵਿੱਚ ਇੱਕ ਕੋਡ ਕਵਰੇਜ ਵਿਸ਼ੇਸ਼ਤਾ ਸ਼ਾਮਲ ਹੈ ਜੋ ਕਿਸੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਸਰੋਤ ਕੋਡ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਹੱਦ ਤੱਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਸਹੂਲਤ ਦਿੰਦੀ ਹੈ। ਇਸਨੂੰ ਯੋਗ ਕਰਨ ਲਈ ਵਿਕਲਪ -mcodecov=ram ਦੀ ਵਰਤੋਂ ਕਰੋ। ਤੁਹਾਡੇ ਹਾਰਡਵੇਅਰ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ, ਕੋਡ ਕਵਰੇਜ ਜਾਣਕਾਰੀ ਨੂੰ ਡਿਵਾਈਸ ਵਿੱਚ ਇਕੱਠਾ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਇਸਨੂੰ MPLAB X IDE ਦੁਆਰਾ ਇੱਕ ਕੋਡ ਕਵਰੇਜ ਪਲੱਗਇਨ ਦੁਆਰਾ ਟ੍ਰਾਂਸਫਰ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਪਲੱਗਇਨ ਬਾਰੇ ਜਾਣਕਾਰੀ ਲਈ IDE ਦਸਤਾਵੇਜ਼ ਵੇਖੋ।
    #pragma nocodecov ਨੂੰ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਾਅਦ ਦੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਬਾਹਰ ਕੱਢਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਪੂਰੀ ਫਾਈਲ ਨੂੰ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਾਹਰ ਕਰਨ ਲਈ ਆਦਰਸ਼ਕ ਤੌਰ 'ਤੇ ਪ੍ਰੈਗਮਾ ਨੂੰ ਫਾਈਲ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਜੋੜਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਵਿਕਲਪਕ ਤੌਰ 'ਤੇ, __attribute__((nocodecov)) ਦੀ ਵਰਤੋਂ ਕਵਰੇਜ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਇੱਕ ਖਾਸ ਫੰਕਸ਼ਨ ਨੂੰ ਬਾਹਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
  • ਡਿਵਾਈਸ ਵੇਰਵਾ ਫਾਈਲਾਂ avr_chipinfo.html ਨਾਮਕ ਇੱਕ ਨਵੀਂ ਡਿਵਾਈਸ ਫਾਈਲ ਕੰਪਾਈਲਰ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਦੀ ਡੌਕਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਥਿਤ ਹੈ। ਇਹ ਫਾਈਲ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਸਮਰਥਿਤ ਸਾਰੇ ਡਿਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਦਿੰਦੀ ਹੈ। ਇੱਕ ਡਿਵਾਈਸ ਦੇ ਨਾਮ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ ਇਹ ਇੱਕ ਪੰਨਾ ਖੋਲ੍ਹੇਗਾ ਜੋ ਉਸ ਡਿਵਾਈਸ ਲਈ ਸਾਰੀਆਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਕੌਂਫਿਗਰੇਸ਼ਨ ਬਿੱਟ ਸੈਟਿੰਗ/ਮੁੱਲ ਜੋੜਿਆਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਸਾਬਕਾ ਦੇ ਨਾਲamples.
  • ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਪ੍ਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਓਪਟੀਮਾਈਜੇਸ਼ਨ, ਜੋ ਅਸੈਂਬਲੀ ਕੋਡ ਦੇ ਆਮ ਬਲਾਕਾਂ ਨੂੰ ਉਸ ਬਲਾਕ ਦੀ ਐਕਸਟਰੈਕਟ ਕੀਤੀ ਕਾਪੀ ਲਈ ਕਾਲਾਂ ਨਾਲ ਬਦਲਦੇ ਹਨ, ਨੂੰ ਕੰਪਾਈਲਰ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ। ਇਹ ਇੱਕ ਵੱਖਰੇ ਐਪਲੀਕੇਸ਼ਨ ਦੁਆਰਾ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜੋ ਕਿ ਪੱਧਰ 2, 3 ਜਾਂ s ਅਨੁਕੂਲਤਾਵਾਂ ਦੀ ਚੋਣ ਕਰਨ ਵੇਲੇ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਅਨੁਕੂਲਤਾ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੀ ਹੈ, ਪਰ ਇਹ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਅਤੇ ਕੋਡ ਡੀਬੱਗੇਬਿਲਟੀ ਨੂੰ ਘਟਾ ਸਕਦੀ ਹੈ। ਪਰੋਸੀਜਰਲ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ -mno-pa ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉੱਚ ਅਨੁਕੂਲਤਾ ਪੱਧਰਾਂ 'ਤੇ ਅਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜਾਂ -mpa ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੇਠਲੇ ਅਨੁਕੂਲਨ ਪੱਧਰਾਂ (ਤੁਹਾਡੇ ਲਾਇਸੰਸ ਦੇ ਅਧੀਨ) 'ਤੇ ਸਮਰੱਥ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ -mno-pa-on- ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਆਬਜੈਕਟ ਫਾਈਲ ਲਈ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।file=fileਨਾਮ, ਜਾਂ -mno-pa-on- function=function ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਿਸੇ ਫੰਕਸ਼ਨ ਲਈ ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡੇ ਸਰੋਤ ਕੋਡ ਦੇ ਅੰਦਰ, ਫੰਕਸ਼ਨ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੇ ਨਾਲ __attribute__((nopa)) ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜਾਂ __nopa ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜੋ ਕਿ __attribute__((nopa,noinline)) ਤੱਕ ਫੈਲਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਫੰਕਸ਼ਨ ਇਨਲਾਈਨਿੰਗ ਨੂੰ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅਤੇ ਇਨਲਾਈਨ ਕੋਡ ਦਾ ਐਬਸਟਰੈਕਸ਼ਨ ਹੋਣਾ।
  • ਪ੍ਰੈਗਮਾ ਵਿੱਚ ਲਾਕ ਬਿੱਟ ਸਹਿਯੋਗ #pragma ਸੰਰਚਨਾ ਨੂੰ ਹੁਣ AVR ਲਾਕ ਬਿੱਟਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਹੋਰ ਸੰਰਚਨਾ ਬਿੱਟਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਪ੍ਰੈਗਮਾ ਨਾਲ ਵਰਤਣ ਲਈ ਸੈਟਿੰਗ/ਮੁੱਲ ਜੋੜਿਆਂ ਲਈ avr_chipinfo.html ਫਾਈਲ (ਉੱਪਰ ਜ਼ਿਕਰ ਕੀਤੀ ਗਈ) ਦੀ ਜਾਂਚ ਕਰੋ।
  • ਨਵੀਂ ਡਿਵਾਈਸ ਸਪੋਰਟ ਸਪੋਰਟ ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਲਈ ਉਪਲਬਧ ਹੈ: AVR28DA128, AVR64DA128, AVR32DA128, ਅਤੇ AVR48DA128।

ਸੰਸਕਰਣ 2.05

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

ਸੰਸਕਰਣ 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 ਲਾਇਬ੍ਰੇਰੀ ਫਾਈਲ ਨੂੰ ਬਣਾਉਣ ਜਾਂ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਸਮਾਨ ਅਰਥ ਵਿਗਿਆਨ ਵਾਲੇ ਵਿਕਲਪਾਂ ਦੇ ਸਮਾਨ ਸੈੱਟ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਅਤੇ ਇਸ ਤਰ੍ਹਾਂ ਲਾਇਬ੍ਰੇਰੀਅਨ ਨੂੰ ਬੁਲਾਉਣ ਦਾ ਸਿਫਾਰਸ਼ ਕੀਤਾ ਤਰੀਕਾ ਹੈ। ਜੇਕਰ ਪੁਰਾਤਨ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਲੋੜੀਂਦਾ ਹੈ, ਤਾਂ ਪਿਛਲੇ ਲਾਇਬ੍ਰੇਰੀਅਨ ਨੂੰ ਪੁਰਾਣੇ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣਾਂ ਵਿੱਚ ਸਵੀਕਾਰ ਕੀਤੇ ਪੁਰਾਣੇ-ਸ਼ੈਲੀ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿੱਧਾ ਬੁਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।

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

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

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

ਸੰਸਕਰਣ 2.41
ਗਲਤ fma ਫੰਕਸ਼ਨ ਹਟਾਏ ਗਏ (XC8-2913) C99 ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ( ) ਨੇ ਇੱਕ ਸਿੰਗਲ ਰਾਊਂਡਿੰਗ ਲਈ ਅਨੰਤ ਸ਼ੁੱਧਤਾ ਦੇ ਨਾਲ ਗੁਣਾ-ਜੋੜ ਦੀ ਗਣਨਾ ਨਹੀਂ ਕੀਤੀ, ਸਗੋਂ ਹਰ ਓਪਰੇਸ਼ਨ ਨਾਲ ਰਾਊਂਡਿੰਗ ਗਲਤੀਆਂ ਇਕੱਠੀਆਂ ਕੀਤੀਆਂ। ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸਪਲਾਈ ਕੀਤੀ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।

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

ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

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

ਸੰਸਕਰਣ 2.35

  • ਸਟਰਿੰਗ-ਟੂ ਬੇਸ (XC8-2420) ਦਾ ਪ੍ਰਬੰਧਨ ਦੂਜੇ XC ਕੰਪਾਈਲਰਾਂ ਨਾਲ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ, XC8 ਸਟ੍ਰਿੰਗ-ਟੂ ਫੰਕਸ਼ਨ, ਜਿਵੇਂ ਕਿ strtol() ਆਦਿ, ਹੁਣ ਕਿਸੇ ਇਨਪੁਟ ਸਟ੍ਰਿੰਗ ਨੂੰ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਹੀਂ ਕਰਨਗੇ ਜੇਕਰ ਨਿਰਧਾਰਿਤ ਅਧਾਰ 36 ਤੋਂ ਵੱਡਾ ਹੈ ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ ਸੈੱਟ ਕਰੇਗਾ. C ਸਟੈਂਡਰਡ ਫੰਕਸ਼ਨਾਂ ਦੇ ਵਿਹਾਰ ਨੂੰ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਹ ਅਧਾਰ ਮੁੱਲ ਵੱਧ ਜਾਂਦਾ ਹੈ।
  • ਅਣਉਚਿਤ ਸਪੀਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਲੈਵਲ 3 ਓਪਟੀਮਾਈਜੇਸ਼ਨ (-O3) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਨ ਸਮਰਥਿਤ ਕੀਤੇ ਜਾ ਰਹੇ ਸਨ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ। ਇਸ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਪੱਧਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਪ੍ਰੋਜੈਕਟ ਇਸ ਰੀਲੀਜ਼ ਦੇ ਨਾਲ ਬਣਾਏ ਜਾਣ 'ਤੇ ਕੋਡ ਆਕਾਰ ਅਤੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਪੀਡ ਵਿੱਚ ਅੰਤਰ ਦੇਖ ਸਕਦੇ ਹਨ।
  • ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨੈਲਿਟੀ ਕਈ ਸਟੈਂਡਰਡ C ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਲਈ ਕੋਡ ਹੁਣ ਮਾਈਕ੍ਰੋਚਿੱਪ ਦੀ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਸਾਬਕਾ avr-libc ਲਾਇਬ੍ਰੇਰੀ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ ਤੁਲਨਾ ਵਿੱਚ ਕੁਝ ਹਾਲਾਤਾਂ ਵਿੱਚ ਵੱਖਰਾ ਵਿਵਹਾਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਸਾਬਕਾ ਲਈampਇਸ ਲਈ, ਫਲੋਟ-ਫਾਰਮੈਟ ਨਿਰਧਾਰਕਾਂ ਲਈ ਫਾਰਮੈਟ ਕੀਤੇ IO ਸਮਰਥਨ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ lprintf_flt ਲਾਇਬ੍ਰੇਰੀ (-lprintf_flt ਵਿਕਲਪ) ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ ਹੁਣ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ। ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਦੀਆਂ ਸਮਾਰਟ IO ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਇਸ ਵਿਕਲਪ ਨੂੰ ਬੇਲੋੜਾ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਸਟ੍ਰਿੰਗ ਅਤੇ ਮੈਮੋਰੀ ਫੰਕਸ਼ਨਾਂ (ਜਿਵੇਂ ਕਿ strcpy_P() ਆਦਿ..) ਲਈ _P ਸਫਿਕਸਡ ਰੁਟੀਨ ਦੀ ਵਰਤੋਂ ਜੋ ਫਲੈਸ਼ ਵਿੱਚ ਕੰਸਟ ਸਟ੍ਰਿੰਗਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਦੀ ਹੁਣ ਲੋੜ ਨਹੀਂ ਹੈ। ਸਟੈਂਡਰਡ C ਰੁਟੀਨ (ਜਿਵੇਂ ਕਿ strcpy() ਅਜਿਹੇ ਡੇਟਾ ਨਾਲ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨਗੇ ਜਦੋਂ const-data-in-program-memory ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਹੁੰਦੀ ਹੈ।

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

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

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

ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

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

ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

ਸੰਸਕਰਣ 2.10
ਕੋਈ ਨਹੀਂ

ਸੰਸਕਰਣ 2.05
ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਕੰਸਟ ਆਬਜੈਕਟ ਨੋਟ ਕਰੋ ਕਿ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, ਕੰਸਟ-ਕੁਆਲੀਫਾਈਡ ਆਬਜੈਕਟਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਜਾਵੇਗਾ ਅਤੇ ਐਕਸੈਸ ਕੀਤਾ ਜਾਵੇਗਾ (ਜਿਵੇਂ ਕਿ ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ)। ਇਹ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਆਕਾਰ ਅਤੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੀ ਗਤੀ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰੇਗਾ, ਪਰ ਰੈਮ ਦੀ ਵਰਤੋਂ ਨੂੰ ਘੱਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੇਕਰ ਲੋੜ ਹੋਵੇ, -mno-const-data-in-progmem ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ।

ਸੰਸਕਰਣ 2.00

  • ਸੰਰਚਨਾ ਫਿਊਜ਼ ਜੰਤਰ ਸੰਰਚਨਾ ਫਿਊਜ਼ ਹੁਣ ਇੱਕ ਸੰਰਚਨਾ ਪ੍ਰੈਗਮਾ ਵਰਤ ਕੇ ਪ੍ਰੋਗਰਾਮ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ ਜਿਸ ਤੋਂ ਬਾਅਦ ਫਿਊਜ਼ ਸਥਿਤੀ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਸੈੱਟ-ਵੈਲਿਊ ਜੋੜੇ, ਜਿਵੇਂ ਕਿ #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
  • ਸੰਪੂਰਨ ਆਬਜੈਕਟ ਅਤੇ ਫੰਕਸ਼ਨ ਵਸਤੂਆਂ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਹੁਣ CCI __at(ਐਡਰੈੱਸ) ਸਪੈਸੀਫਾਇਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮੈਮੋਰੀ ਵਿੱਚ ਖਾਸ ਪਤੇ 'ਤੇ ਰੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਸਾਬਕਾ ਲਈ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 ਪੈਕ ਮੈਨੇਜਰ ਨੂੰ ਦੇਖੋ।

ਸੰਸਕਰਣ 2.45

  • ਰੋਮਿੰਗ ਲਾਇਸੰਸ ਅਸਫਲਤਾ (XCLM-235) ਰੋਮਿੰਗ ਲਾਇਸੰਸ 2.28 ਤੋਂ ਬਾਅਦ ਦੇ glibc ਸੰਸਕਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ Linux ਪਲੇਟਫਾਰਮਾਂ 'ਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਹੇ।
  • ਢਾਂਚਿਆਂ ਦੀਆਂ ਐਰੇਜ਼ (XC8-3069) ਨਾਲ ਅੰਦਰੂਨੀ ਤਰੁੱਟੀ ਜਦੋਂ ਕਿਸੇ ਢਾਂਚੇ ਦੇ ਬਹੁ-ਅਯਾਮੀ ਐਰੇ ਮੈਂਬਰਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾਂਦੀ ਸੀ, ਤਾਂ ਐਰੇ ਵਿੱਚ ਐਡਰੈੱਸ ਸਪੇਸ ਕੁਆਲੀਫਾਇਰ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਚਾਰਿਆ ਨਹੀਂ ਗਿਆ ਸੀ। ਇਸ ਨਾਲ ਐਡਰੈੱਸ ਸਪੇਸ ਕੁਆਲੀਫਾਇਰ ਜਾਣਕਾਰੀ ਵਿੱਚ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ ਅਤੇ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ ਹੋਈ। ਇਸ ਸਥਿਤੀ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਹੈ.
  • ਅਣ-ਸ਼ੁਰੂਆਤੀ ਸਟ੍ਰੀਮਾਂ (ML-353, XC8-3100) ਨੂੰ ਮਾੜਾ ਲਿਖਦਾ ਹੈ ਜੇਕਰ FDEV_SETUP_STREAM ਜਾਂ _init_stdout/_init_stderr ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ/ਗਲਤੀ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਲਿਖਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਵਿਵਹਾਰ ਹੋਇਆ। ਇਸ ਨਾਲ stdlib ਫੰਕਸ਼ਨਾਂ ਤੋਂ ਲਿਖਣਾ ਵੀ ਪ੍ਰਭਾਵਿਤ ਹੁੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ perror(). ਇਹਨਾਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸ਼ੁਰੂ ਕੀਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਕੋਈ ਵੀ ਲਿਖਤ ਹੁਣ ਅਣਡਿੱਠ ਕਰ ਦਿੱਤੀ ਜਾਵੇਗੀ।
  • ਅਸਮਰਥਿਤ ਮੋਡੀਫਾਇਰ (XC8-2505) avr-libc ਲਾਇਬ੍ਰੇਰੀ ਨੇ ਪ੍ਰਿੰਟਫ-ਸ਼ੈਲੀ ਪਰਿਵਰਤਨ ਨਿਰਧਾਰਕਾਂ ਵਿੱਚ * ਮੋਡੀਫਾਇਰ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕੀਤਾ, ਸਾਬਕਾ ਲਈample “%.*f”। ਇਹ ਹੁਣ ਮਾਈਕ੍ਰੋਚਿੱਪ ਯੂਨੀਫਾਈਡ ਸਟੈਂਡਰਡ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਸ਼ੁਰੂਆਤ ਨਾਲ ਸਮਰਥਿਤ ਹੈ।
  • ਮਲਟੀਪਲ ਅਣ-ਸ਼ੁਰੂਆਤੀ ਚੇਤਾਵਨੀਆਂ (XC8-2409) ਕੰਪਾਈਲਰ ਇੱਕ ਕੰਸਟ ਐਰੇ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਵੇਲੇ ਕਈ ਇੱਕੋ ਜਿਹੇ ਚੇਤਾਵਨੀ ਸੁਨੇਹੇ ਜਾਰੀ ਕਰ ਰਿਹਾ ਸੀ ਜੋ ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ। ਸੁਨੇਹਾ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ ਜਾਰੀ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ, ਜੋ ਕਿ ਹੁਣ ਜਦੋਂ ਇਹ ਸਥਿਤੀ ਵਾਪਰਦੀ ਹੈ।

ਸੰਸਕਰਣ 2.41

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

ਸੰਸਕਰਣ 2.40

  • ਬਹੁਤ ਆਰਾਮਦਾਇਕ (XC8-2876) -mrelax ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਕੰਪਾਈਲਰ ਕੁਝ ਭਾਗਾਂ ਨੂੰ ਇਕੱਠੇ ਨਹੀਂ ਨਿਰਧਾਰਤ ਕਰ ਰਿਹਾ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਘੱਟ ਅਨੁਕੂਲ ਕੋਡ ਆਕਾਰ ਹੁੰਦੇ ਹਨ। ਇਹ ਨਵੀਂ MUSL ਲਾਇਬ੍ਰੇਰੀਆਂ ਜਾਂ ਕਮਜ਼ੋਰ ਚਿੰਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਕੋਡ ਨਾਲ ਹੋ ਸਕਦਾ ਹੈ।
  • ਚੇਤਾਵਨੀ (XC8-2875) ਵਿੱਚ ਦੱਸੇ ਅਨੁਸਾਰ ਮੈਪਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾ ਅਯੋਗ ਨਹੀਂ ਹੈ (XCXNUMX-XNUMX) const-data-in-config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਮਰੱਥ ਕਰਨ 'ਤੇ ਨਿਰਭਰ ਹੈ। ਜੇਕਰ const-data-in-config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸਮਰੱਥ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ, ਤਾਂ ਲਿੰਕ ਸਟੈਪ ਅਸਫਲ ਹੋ ਗਿਆ, ਇੱਕ ਚੇਤਾਵਨੀ ਸੰਦੇਸ਼ ਦੇ ਬਾਵਜੂਦ ਕਿ const-data-in -config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਆਪਣੇ ਆਪ ਅਯੋਗ ਕਰ ਦਿੱਤਾ ਗਿਆ ਸੀ, ਜੋ ਕਿ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਹੀ ਨਹੀਂ ਸੀ। const-data-in-config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਹੁਣ ਇਸ ਸਥਿਤੀ ਵਿੱਚ ਪੂਰੀ ਤਰ੍ਹਾਂ ਅਯੋਗ ਹੈ।
  • NVMCTRL (XC8-2848) ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਐਕਸੈਸ ਕਰਨ ਲਈ DFP ਬਦਲਦਾ ਹੈ AVR64EA ਡਿਵਾਈਸਾਂ ਦੁਆਰਾ ਵਰਤੇ ਗਏ ਰਨਟਾਈਮ ਸਟਾਰਟਅੱਪ ਕੋਡ ਨੇ ਇਸ ਗੱਲ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਨਹੀਂ ਰੱਖਿਆ ਕਿ NVMCTRL ਰਜਿਸਟਰ ਕੌਂਫਿਗਰੇਸ਼ਨ ਚੇਂਜ ਪ੍ਰੋਟੈਕਸ਼ਨ (ਸੀਸੀਪੀ) ਦੇ ਅਧੀਨ ਸੀ ਅਤੇ ਵਰਤੇ ਗਏ ਪੰਨੇ 'ਤੇ IO SFR ਸੈੱਟ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਸੀ। const-data-in-config-mapped-progmem ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾ ਦੁਆਰਾ। AVR-Ex_DFP ਸੰਸਕਰਣ 2.2.55 ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਰਨਟਾਈਮ ਸਟਾਰਟਅੱਪ ਕੋਡ ਨੂੰ ਇਸ ਰਜਿਸਟਰ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦੇਵੇਗੀ।
  • ਫਲੈਸ਼ ਮੈਪਿੰਗ ਤੋਂ ਬਚਣ ਲਈ DFP ਤਬਦੀਲੀਆਂ (XC8-2847) AVR128DA28/32/48/64 ਸਿਲੀਕਾਨ ਇਰੱਟਾ (DS80000882) ਵਿੱਚ ਰਿਪੋਰਟ ਕੀਤੀ ਗਈ ਫਲੈਸ਼-ਮੈਪਿੰਗ ਡਿਵਾਈਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਲਈ ਇੱਕ ਕੰਮ-ਕਾਜ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ। const-data-in-config-mapped-progmem ਕੰਪਾਈਲਰ ਵਿਸ਼ੇਸ਼ਤਾ ਪ੍ਰਭਾਵਿਤ ਡਿਵਾਈਸਾਂ ਲਈ ਮੂਲ ਰੂਪ ਵਿੱਚ ਲਾਗੂ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ, ਅਤੇ ਇਹ ਤਬਦੀਲੀ AVR-Dx_DFP ਸੰਸਕਰਣ 2.2.160 ਵਿੱਚ ਦਿਖਾਈ ਦੇਵੇਗੀ।
  • sinhf ਜਾਂ coshf (XC8-2834) ਨਾਲ sinhf() ਜਾਂ coshf() ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਸੰਦਰਭ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹੋਏ ਇੱਕ ਲਿੰਕ ਗਲਤੀ ਹੋਈ। ਹਵਾਲਾ ਦਿੱਤੇ ਗੁੰਮ ਫੰਕਸ਼ਨ ਨੂੰ ਹੁਣ ਕੰਪਾਈਲਰ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਵਿੱਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ।
  • nopa (XC8-2833) ਨਾਲ ਨੋਪਾ ਐਟਰੀਬਿਊਟ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਫੰਕਸ਼ਨ ਦੇ ਨਾਲ ਤਰੁੱਟੀਆਂ ਬਣਾਓ ਜਿਸ ਵਿੱਚ __asm__() ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰਧਾਰਿਤ ਅਸੈਂਬਲਰ ਦਾ ਨਾਮ ਅਸੈਂਬਲਰ ਤੋਂ ਗਲਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਸੁਮੇਲ ਸੰਭਵ ਨਹੀਂ ਹੈ।
  • ਪੁਆਇੰਟਰ ਆਰਗੂਮੈਂਟਾਂ (XC8-2755, XC8-2731) ਨਾਲ ਵੈਰੀਏਡਿਕ ਫੰਕਸ਼ਨ ਅਸਫਲਤਾ ਆਰਗੂਮੈਂਟਾਂ ਦੀ ਇੱਕ ਵੇਰੀਏਬਲ ਸੰਖਿਆ ਵਾਲੇ ਫੰਕਸ਼ਨ 24-ਬਿੱਟ (__memx ਕਿਸਮ) ਪੁਆਇੰਟਰ ਨੂੰ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀ ਵਿੱਚ ਪਾਸ ਕੀਤੇ ਜਾਣ ਦੀ ਉਮੀਦ ਕਰਦੇ ਹਨ ਜਦੋਂ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਹੁੰਦੀ ਹੈ ਸਮਰੱਥ ਆਰਗੂਮੈਂਟਸ ਜੋ ਡੇਟਾ ਮੈਮੋਰੀ ਲਈ ਪੁਆਇੰਟਰ ਸਨ 16-ਬਿੱਟ ਆਬਜੈਕਟ ਦੇ ਤੌਰ ਤੇ ਪਾਸ ਕੀਤੇ ਜਾ ਰਹੇ ਸਨ, ਜਿਸ ਕਾਰਨ ਕੋਡ ਅਸਫਲ ਹੋ ਗਿਆ ਜਦੋਂ ਉਹਨਾਂ ਨੂੰ ਅੰਤ ਵਿੱਚ ਪੜ੍ਹਿਆ ਗਿਆ। ਜਦੋਂ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਸਾਰੇ 16-ਬਿੱਟ ਪੁਆਇੰਟਰ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਹੁਣ 24-ਬਿੱਟ ਪੁਆਇੰਟਰਾਂ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
  • strtoxxx ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ ਫੇਲ ਹੋ ਰਿਹਾ ਹੈ (XC8-2620) ਜਦੋਂ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ, strtoxxx ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ endptr ਪੈਰਾਮੀਟਰ ਨੂੰ ਪ੍ਰੋਗ੍ਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਨਾ ਹੋਣ ਵਾਲੇ ਸਰੋਤ ਸਤਰ ਆਰਗੂਮੈਂਟਾਂ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।
  • ਅਵੈਧ ਕਾਸਟਾਂ ਲਈ ਚੇਤਾਵਨੀਆਂ (XC8-2612) ਕੰਪਾਈਲਰ ਹੁਣ ਇੱਕ ਗਲਤੀ ਜਾਰੀ ਕਰੇਗਾ ਜੇਕਰ const-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਸਮਰੱਥ ਹੈ ਅਤੇ ਇੱਕ ਸਟ੍ਰਿੰਗ ਲਿਟਰਲ ਦਾ ਪਤਾ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ (const qualfier ਨੂੰ ਛੱਡਣਾ) ਵਿੱਚ ਕਾਸਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਸਾਬਕਾ ਲਈample, (uint8_t *) "ਹੈਲੋ ਵਰਲਡ!" . ਇੱਕ ਚੇਤਾਵਨੀ ਇੱਕ ਮੁੱਦਾ ਹੈ ਜੇਕਰ ਪਤਾ ਅਵੈਧ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇੱਕ const ਡੇਟਾ ਪੁਆਇੰਟਰ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਕਾਸਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।
  • ਅਣ-ਸ਼ੁਰੂਆਤੀ ਕੰਸਟ ਆਬਜੈਕਟ (XC8-2408) ਅਣ-ਸ਼ੁਰੂਆਤੀ ਅਤੇ ਕੰਸਟ ਅਸਥਿਰ ਵਸਤੂਆਂ ਦੀ ਪਲੇਸਮੈਂਟ
    ਉਹਨਾਂ ਡਿਵਾਈਸਾਂ ਤੇ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਨਹੀਂ ਰੱਖਿਆ ਜਾ ਰਿਹਾ ਸੀ ਜੋ ਉਹਨਾਂ ਦੀ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੇ ਸਾਰੇ ਜਾਂ ਹਿੱਸੇ ਨੂੰ ਡੇਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਮੈਪ ਕਰਦੇ ਹਨ। ਇਹਨਾਂ ਡਿਵਾਈਸਾਂ ਲਈ, ਅਜਿਹੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਹੁਣ ਪ੍ਰੋਗ੍ਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਹੈ, ਉਹਨਾਂ ਦੀ ਕਾਰਵਾਈ ਨੂੰ ਹੋਰ ਡਿਵਾਈਸਾਂ ਦੇ ਨਾਲ ਇਕਸਾਰ ਬਣਾਉਂਦਾ ਹੈ।

ਸੰਸਕਰਣ 2.39 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

ਸੰਸਕਰਣ 2.36
ਦੇਰੀ ਕਰਨ ਵੇਲੇ ਗਲਤੀ (XC8-2774) ਡਿਫੌਲਟ ਫਰੀ ਮੋਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਵਿੱਚ ਮਾਮੂਲੀ ਤਬਦੀਲੀਆਂ ਨੇ ਬਿਲਟ-ਇਨ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਦੇਰੀ ਲਈ ਓਪਰੇਂਡ ਸਮੀਕਰਨਾਂ ਨੂੰ ਲਗਾਤਾਰ ਫੋਲਡ ਕਰਨ ਤੋਂ ਰੋਕਿਆ, ਨਤੀਜੇ ਵਜੋਂ ਉਹਨਾਂ ਨੂੰ ਗੈਰ-ਸਥਿਰ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਗਲਤੀ ਨੂੰ ਟਰਿੱਗਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ: __builtin_avr_delay_cycles ਇੱਕ ਕੰਪਾਇਲ ਸਮੇਂ ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ ਸਥਿਰ

ਸੰਸਕਰਣ 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) -Wl,–ਸੈਕਸ਼ਨ-ਸਟਾਰਟ ਵਿਕਲਪ ਨਾਮਜ਼ਦ ਸ਼ੁਰੂਆਤੀ ਪਤੇ 'ਤੇ ਭਾਗਾਂ ਨੂੰ ਰੱਖਣ ਵਿੱਚ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੋ ਰਿਹਾ ਸੀ। ਇਹ ਮੁੱਦਾ ਕਿਸੇ ਵੀ ਕਸਟਮ-ਨਾਮ ਵਾਲੇ ਭਾਗਾਂ ਲਈ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ; ਹਾਲਾਂਕਿ, ਇਹ ਕਿਸੇ ਵੀ ਮਿਆਰੀ ਭਾਗਾਂ ਲਈ ਕੰਮ ਨਹੀਂ ਕਰੇਗਾ, ਜਿਵੇਂ ਕਿ .text ਜਾਂ .bss, ਜੋ ਇੱਕ -Wl,-T ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਰੱਖੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ। ਆਰਾਮ ਕਰਨ ਵੇਲੇ ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ (XC8-2647) ਜਦੋਂ -mrelax ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ ਅਤੇ ਕੋਡ ਜਾਂ ਡੇਟਾ ਸੈਕਸ਼ਨ ਸਨ ਜੋ ਉਪਲਬਧ ਮੈਮੋਰੀ ਵਿੱਚ ਫਿੱਟ ਨਹੀਂ ਹੁੰਦੇ ਸਨ, ਲਿੰਕਰ ਕਰੈਸ਼ ਹੋ ਗਿਆ ਸੀ। ਹੁਣ, ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ, ਇਸ ਦੀ ਬਜਾਏ ਗਲਤੀ ਸੰਦੇਸ਼ ਜਾਰੀ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।
  • ਕੋਈ ਨੋ-ਫਾਲਿੰਗ-ਬੈਕ (XC8-2646) -nofallback ਵਿਕਲਪ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਨਾ ਹੀ ਦਸਤਾਵੇਜ਼ੀ ਤੌਰ 'ਤੇ। ਇਹ ਹੁਣ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਕੰਪਾਈਲਰ ਘੱਟ ਅਨੁਕੂਲਤਾ ਸੈਟਿੰਗ 'ਤੇ ਵਾਪਸ ਨਹੀਂ ਆਵੇਗਾ ਜੇਕਰ ਕੰਪਾਈਲਰ ਲਾਇਸੈਂਸ ਨਹੀਂ ਹੈ, ਅਤੇ ਇਸ ਦੀ ਬਜਾਏ ਇੱਕ ਗਲਤੀ ਜਾਰੀ ਕਰੇਗਾ।
  • ਅਣਉਚਿਤ ਸਪੀਡ ਓਪਟੀਮਾਈਜੇਸ਼ਨ (XC8-2637) ਪੱਧਰ 3 ਅਨੁਕੂਲਨ (-O3) ਦੀ ਚੋਣ ਕਰਦੇ ਸਮੇਂ ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਸੀ। ਇਹ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਕੋਡ ਦੀ ਗਤੀ ਦੇ ਖਰਚੇ 'ਤੇ ਕੋਡ ਦਾ ਆਕਾਰ ਘਟਾਉਂਦੇ ਹਨ, ਇਸ ਲਈ ਅਜਿਹਾ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਸੀ।
  • ਖਰਾਬ EEPROM ਪਹੁੰਚ (XC8-2629) eeprom_read_block ਰੁਟੀਨ ਨੇ Xmega ਡਿਵਾਈਸਾਂ 'ਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕੀਤਾ ਜਦੋਂ – mconst-data-in-progmem ਵਿਕਲਪ ਨੂੰ ਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਸੀ (ਜੋ ਕਿ ਡਿਫੌਲਟ ਸਥਿਤੀ ਹੈ), ਨਤੀਜੇ ਵਜੋਂ EEPROM ਮੈਮੋਰੀ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਨਹੀਂ ਪੜ੍ਹਿਆ ਜਾ ਰਿਹਾ ਹੈ।
  • ਗਲਤ ਮੈਮੋਰੀ ਵੰਡ (XC8-2593, XC8-2651) ਜਦੋਂ -Ttext ਜਾਂ -Tdata ਲਿੰਕਰ ਵਿਕਲਪ (ਸਾਬਕਾ ਲਈample ਇੱਕ -Wl ਡ੍ਰਾਈਵਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਾਸ ਕੀਤਾ ਗਿਆ ਹੈ) ਨਿਰਧਾਰਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਸੰਬੰਧਿਤ ਟੈਕਸਟ/ਡਾਟਾ ਖੇਤਰ ਮੂਲ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ; ਹਾਲਾਂਕਿ, ਅੰਤਮ ਪਤੇ ਨੂੰ ਉਸ ਅਨੁਸਾਰ ਐਡਜਸਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਨਾਲ ਖੇਤਰ ਟੀਚਾ ਡਿਵਾਈਸ ਦੀ ਮੈਮੋਰੀ ਰੇਂਜ ਤੋਂ ਵੱਧ ਗਿਆ ਸੀ।
  • ਓਵਰ-ਐਟਰੀਬਿਊਟਡ ਫੰਕਸ਼ਨ ਨਾਲ ਕ੍ਰੈਸ਼ (XC8-2580) ਕੰਪਾਈਲਰ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਕਿਸੇ ਫੰਕਸ਼ਨ ਨੂੰ ਇੰਟਰੱਪਟ, ਸਿਗਨਲ ਜਾਂ nmi ਗੁਣਾਂ ਵਿੱਚੋਂ ਇੱਕ ਤੋਂ ਵੱਧ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ, __attribute__((__signal__, __interrupt__))।
  • ਅਵੈਧ ATtiny ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2465) ਜਦੋਂ ATtiny ਡਿਵਾਈਸਾਂ ਲਈ ਬਿਲਡਿੰਗ ਅਤੇ ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਅਸਮਰੱਥ (-O0), ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨਾਂ ਨੇ ਓਪਰੇਂਡ ਨੂੰ ਰੇਂਜ ਤੋਂ ਬਾਹਰ ਕਰ ਦਿੱਤਾ ਹੋ ਸਕਦਾ ਹੈ
  • (XC8-2452) ਦੁਆਰਾ ਪਾਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਰਹੇ ਵਿਕਲਪ (XCXNUMX-XNUMX) ਮਲਟੀਪਲ, ਕਾਮੇ ਨਾਲ ਵੱਖ ਕੀਤੇ ਲਿੰਕਰ ਵਿਕਲਪਾਂ ਨਾਲ -Wl ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਲਿੰਕਰ ਨੂੰ ਸਾਰੇ ਲਿੰਕਰ ਵਿਕਲਪ ਪਾਸ ਨਹੀਂ ਕੀਤੇ ਜਾ ਰਹੇ ਸਨ।
  • ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ (XC8-2450) ਨੂੰ ਅਸਿੱਧੇ ਤੌਰ 'ਤੇ ਪੜ੍ਹਨ ਵਿੱਚ ਗਲਤੀ ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਕੰਪਾਈਲਰ ਨੇ ਇੱਕ ਅੰਦਰੂਨੀ ਗਲਤੀ (ਅਣਪਛਾਣਯੋਗ insn) ਪੈਦਾ ਕੀਤੀ ਜਦੋਂ ਇੱਕ ਪੁਆਇੰਟਰ ਤੋਂ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਿੱਚ ਦੋ ਬਾਈਟ ਮੁੱਲ ਪੜ੍ਹਦੇ ਹੋਏ।

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

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

ਸੰਸਕਰਣ 2.30

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

ਸੰਸਕਰਣ 2.29 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

ਸੰਸਕਰਣ 2.20

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

ਸੰਸਕਰਣ 2.19 (ਕਾਰਜਸ਼ੀਲ ਸੁਰੱਖਿਆ ਰੀਲੀਜ਼)
ਕੋਈ ਨਹੀਂ।

ਸੰਸਕਰਣ 2.10

  • ਰੀਲੋਕੇਸ਼ਨ ਅਸਫਲਤਾਵਾਂ (XC8-1891) ਸਭ ਤੋਂ ਵਧੀਆ ਫਿਟ ਐਲੋਕਟਰ ਲਿੰਕਰ ਆਰਾਮ ਤੋਂ ਬਾਅਦ ਭਾਗਾਂ ਦੇ ਵਿਚਕਾਰ ਮੈਮੋਰੀ 'ਹੋਲ' ਛੱਡ ਰਿਹਾ ਸੀ। ਮੈਮੋਰੀ ਨੂੰ ਖੰਡਿਤ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਇਸ ਨੇ ਪੀਸੀ-ਰਿਲੇਟਿਵ ਜੰਪਸ ਜਾਂ ਕਾਲਾਂ ਦਾ ਸੀਮਾ ਤੋਂ ਬਾਹਰ ਹੋਣ ਨਾਲ ਸਬੰਧਤ ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਅਸਫਲਤਾਵਾਂ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਨੂੰ ਵਧਾਇਆ ਹੈ।
  • ਹਿਦਾਇਤਾਂ ਵਿੱਚ ਢਿੱਲ (XC8-1889) ਦੁਆਰਾ ਨਹੀਂ ਬਦਲੀਆਂ ਗਈਆਂ ਲਿੰਕਰ ਢਿੱਲ ਛਾਲ ਮਾਰਨ ਜਾਂ ਕਾਲ ਕਰਨ ਦੀਆਂ ਹਦਾਇਤਾਂ ਲਈ ਨਹੀਂ ਆਈਆਂ ਜਿਨ੍ਹਾਂ ਦੇ ਟੀਚੇ ਢਿੱਲੇ ਹੋਣ 'ਤੇ ਪਹੁੰਚਯੋਗ ਹੋ ਜਾਂਦੇ ਹਨ।
  • ਗੁੰਮ ਹੈ ਕਾਰਜਕੁਸ਼ਲਤਾ (XC8E-388) ਤੋਂ ਕਈ ਪਰਿਭਾਸ਼ਾਵਾਂ , ਜਿਵੇਂ ਕਿ clock_div_t ਅਤੇ clock_prescale_set() , ਨੂੰ ATmega324PB, ATmega328PB, ATtiny441, ਅਤੇ ATtiny841 ਸਮੇਤ ਡਿਵਾਈਸਾਂ ਲਈ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।
  • ਗੁੰਮ ਮੈਕਰੋ ਪ੍ਰੀਪ੍ਰੋਸੈਸਰ ਮੈਕਰੋਜ਼ _XC8_MODE_, __XC8_VERSION, __XC , ਅਤੇ __XC8 ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਗਏ ਹਨ। ਇਹ ਹੁਣ ਉਪਲਬਧ ਹਨ।

ਸੰਸਕਰਣ 2.05

  • ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ (XC8-1822) ਵਿੰਡੋਜ਼ ਦੇ ਅਧੀਨ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਕੋਡ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਵੇਲੇ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ ਪੈਦਾ ਹੋ ਸਕਦੀ ਹੈ।
  • ਰੈਮ ਓਵਰਫਲੋ ਖੋਜਿਆ ਨਹੀਂ ਗਿਆ (XC8-1800, XC8-1796) ਪ੍ਰੋਗਰਾਮ ਜੋ ਕਿ ਉਪਲਬਧ RAM ਤੋਂ ਵੱਧ ਗਏ ਹਨ, ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਖੋਜਿਆ ਨਹੀਂ ਗਿਆ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਰਨਟਾਈਮ ਕੋਡ ਅਸਫਲ ਹੁੰਦਾ ਹੈ।
  • ਛੱਡੀ ਗਈ ਫਲੈਸ਼ ਮੈਮੋਰੀ (XC8-1792) avrxmega3 ਅਤੇ avrtiny ਡਿਵਾਈਸਾਂ ਲਈ, ਫਲੈਸ਼ ਮੈਮੋਰੀ ਦੇ ਹਿੱਸੇ MPLAB X IDE ਦੁਆਰਾ ਗੈਰ-ਪ੍ਰੋਗਰਾਮ ਕੀਤੇ ਗਏ ਹੋ ਸਕਦੇ ਹਨ।
  • ਮੁੱਖ (XC8-1788) ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲਤਾ ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ ਜਿੱਥੇ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਕੋਈ ਗਲੋਬਲ ਵੇਰੀਏਬਲ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਸਨ, ਰਨਟਾਈਮ ਸਟਾਰਟਅਪ ਕੋਡ ਬਾਹਰ ਨਹੀਂ ਆਇਆ ਅਤੇ main() ਫੰਕਸ਼ਨ ਤੱਕ ਕਦੇ ਨਹੀਂ ਪਹੁੰਚਿਆ ਸੀ।
  • ਗਲਤ ਮੈਮੋਰੀ ਜਾਣਕਾਰੀ (XC8-1787) avrxmega3 ਅਤੇ avrtiny ਡਿਵਾਈਸਾਂ ਲਈ, avr-ਸਾਈਜ਼ ਪ੍ਰੋਗਰਾਮ ਰਿਪੋਰਟ ਕਰ ਰਿਹਾ ਸੀ ਕਿ ਸਿਰਫ ਰੀਡ-ਓਨਲੀ ਡੇਟਾ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੀ ਬਜਾਏ RAM ਦੀ ਖਪਤ ਕਰ ਰਿਹਾ ਸੀ।
  • ਗਲਤ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਰੀਡ (XC8-1783) ਡਾਟਾ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਮੈਪ ਕੀਤੇ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਵਾਲੇ ਡਿਵਾਈਸਾਂ ਲਈ ਕੰਪਾਇਲ ਕੀਤੇ ਪ੍ਰੋਜੈਕਟ ਅਤੇ PROGMEM ਮੈਕਰੋ/ਐਟਰੀਬਿਊਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਰਿਭਾਸ਼ਿਤ ਆਬਜੈਕਟਸ ਨੇ ਇਹਨਾਂ ਆਬਜੈਕਟ ਨੂੰ ਗਲਤ ਪਤੇ ਤੋਂ ਪੜ੍ਹਿਆ ਹੋ ਸਕਦਾ ਹੈ।
  • ਗੁਣਾਂ ਨਾਲ ਅੰਦਰੂਨੀ ਤਰੁੱਟੀ (XC8-1773) ਜੇਕਰ ਤੁਸੀਂ ਪੁਆਇੰਟਰ ਆਬਜੈਕਟ ਨੂੰ __at() ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ() ਟੋਕਨਾਂ ਨਾਲ ਪੁਆਇੰਟਰ ਨਾਮ ਅਤੇ dereferenced ਕਿਸਮ ਦੇ ਵਿਚਕਾਰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ, ਤਾਂ ਇੱਕ ਅੰਦਰੂਨੀ ਤਰੁਟੀ ਆਈ ਹੈ, ਸਾਬਕਾ ਲਈample, char * __at(0x800150) cp; ਅਜਿਹੇ ਕੋਡ ਦਾ ਸਾਹਮਣਾ ਕਰਨ 'ਤੇ ਹੁਣ ਚੇਤਾਵਨੀ ਜਾਰੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
  • ਮੇਨ ਨੂੰ ਚਲਾਉਣ ਵਿੱਚ ਅਸਫਲਤਾ (XC8-1780, XC8-1767, XC8-1754) EEPROM ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਜਾਂ ਕਨਫਿਗ ਪ੍ਰੈਗਮਾ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਤ ਕਰਨ ਨਾਲ ਰਨਟਾਈਮ ਪਹੁੰਚ ਮੁੱਖ ਕੋਡ (, ).
  • ਛੋਟੇ ਯੰਤਰਾਂ ਦੇ ਨਾਲ ਫਿਊਜ਼ ਗਲਤੀ (XC8-1778, XC8-1742) attiny4/5/9/10/20/40 ਡਿਵਾਈਸਾਂ ਵਿੱਚ ਉਹਨਾਂ ਦੇ ਸਿਰਲੇਖ ਫਾਈਲਾਂ ਵਿੱਚ ਇੱਕ ਗਲਤ ਫਿਊਜ਼ ਲੰਬਾਈ ਨਿਰਧਾਰਤ ਕੀਤੀ ਗਈ ਸੀ ਜੋ ਕਿ ਫਿਊਜ਼ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਾਲੇ ਕੋਡ ਨੂੰ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ ਲਿੰਕਰ ਗਲਤੀਆਂ ਵੱਲ ਲੈ ਜਾਂਦਾ ਹੈ .
  • ਸੈਗਮੈਂਟੇਸ਼ਨ ਫਾਲਟ (XC8-1777) ਇੱਕ ਰੁਕ-ਰੁਕ ਕੇ ਸੈਗਮੈਂਟੇਸ਼ਨ ਫਾਲਟ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਹੈ।
  • ਅਸੈਂਬਲਰ ਕਰੈਸ਼ (XC8-1761) avr-as ਅਸੈਂਬਲਰ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕੰਪਾਈਲਰ ਉਬੰਟੂ 18 ਦੇ ਅਧੀਨ ਚਲਾਇਆ ਗਿਆ ਸੀ।
  • ਵਸਤੂਆਂ ਨੂੰ ਕਲੀਅਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ (XC8-1752) ਅਣ-ਸ਼ੁਰੂਆਤ ਸਥਿਰ ਸਟੋਰੇਜ ਮਿਆਦ ਦੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਰਨਟਾਈਮ ਸਟਾਰਟਅੱਪ ਕੋਡ ਦੁਆਰਾ ਕਲੀਅਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੋ ਸਕਦਾ ਹੈ।
  • ਵਿਰੋਧੀ ਡਿਵਾਈਸ ਨਿਰਧਾਰਨ ਨੂੰ ਅਣਡਿੱਠ ਕੀਤਾ ਗਿਆ (XC8-1749) ਕੰਪਾਈਲਰ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ ਜਦੋਂ ਕਈ ਡਿਵਾਈਸ ਨਿਰਧਾਰਨ ਵਿਕਲਪਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਸੀ ਅਤੇ ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਨੂੰ ਸੰਕੇਤ ਕੀਤਾ ਗਿਆ ਸੀ।
  • ਹੀਪ (XC8-1748) ਦੁਆਰਾ ਮੈਮੋਰੀ ਕਰੱਪਸ਼ਨ (XCXNUMX-XNUMX) __heap_start ਚਿੰਨ੍ਹ ਨੂੰ ਗਲਤ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ, ਨਤੀਜੇ ਵਜੋਂ ਆਮ ਵੇਰੀਏਬਲਾਂ ਦੇ ਹੀਪ ਦੁਆਰਾ ਖਰਾਬ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।
  • ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਅਸ਼ੁੱਧੀ (XC8-1739) ਇੱਕ ਲਿੰਕਰ ਰੀਲੋਕੇਸ਼ਨ ਤਰੁਟੀ ਹੋ ​​ਸਕਦੀ ਹੈ ਜਦੋਂ ਕੋਡ ਵਿੱਚ ਇੱਕ rjmp ਜਾਂ rcal ਸੀ ਜਿਸਦਾ ਟੀਚਾ ਬਿਲਕੁਲ 4k ਬਾਈਟ ਦੂਰ ਹੁੰਦਾ ਹੈ।

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

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

ਕੰਪਾਈਲਰ ਦੇ ਓਪਰੇਸ਼ਨ ਵਿੱਚ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਕਮੀਆਂ ਹਨ। ਇਹ ਆਮ ਕੋਡਿੰਗ ਪਾਬੰਦੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਜਾਂ ਉਪਭੋਗਤਾ ਦੇ ਮੈਨੂਅਲ ਵਿੱਚ ਸ਼ਾਮਲ ਜਾਣਕਾਰੀ ਤੋਂ ਭਟਕਣਾ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਸਿਰਲੇਖ ਵਿੱਚ ਬ੍ਰੈਕੇਟ ਕੀਤੇ ਲੇਬਲ(ਲੇ) ਟਰੈਕਿੰਗ ਡੇਟਾਬੇਸ ਵਿੱਚ ਉਸ ਮੁੱਦੇ ਦੀ ਪਛਾਣ ਹਨ। ਇਹ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਤੁਹਾਨੂੰ ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਉਹ ਆਈਟਮਾਂ ਜਿਹਨਾਂ ਵਿੱਚ ਲੇਬਲ ਨਹੀਂ ਹਨ ਉਹ ਸੀਮਾਵਾਂ ਹਨ ਜੋ ਕਿ ਮੋਡੀ ਓਪਰੇੰਡੀ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਜੋ ਸਥਾਈ ਤੌਰ 'ਤੇ ਲਾਗੂ ਰਹਿਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।

MPLAB X IDE ਏਕੀਕਰਣ

  • MPLAB IDE ਏਕੀਕਰਣ ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ MPLAB IDE ਤੋਂ ਵਰਤਿਆ ਜਾਣਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੰਪਾਈਲਰ ਨੂੰ ਸਥਾਪਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ MPLAB IDE ਨੂੰ ਸਥਾਪਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
  • ਐਰੇ ਡੀਬੱਗ ਜਾਣਕਾਰੀ (XC8-3157) ਕੰਪਾਈਲਰ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਡੀਬੱਗ ਜਾਣਕਾਰੀ __memx ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਐਰੇ ਲਈ ਆਬਜੈਕਟ ਕਿਸਮ ਨੂੰ ਸਹੀ ਰੂਪ ਵਿੱਚ ਨਹੀਂ ਦੱਸਦੀ ਹੈ। ਇਹ ਇੱਕ IDE ਵਿੱਚ ਵਸਤੂ ਦੇ ਨਿਰੀਖਣ ਨੂੰ ਰੋਕ ਦੇਵੇਗਾ।

ਕੋਡ ਜਨਰੇਸ਼ਨ

  • ਸੈਕਸ਼ਨ-ਐਂਕਰਜ਼ ਵਿਕਲਪ (XC8-3045) ਪ੍ਰੋਗਰਾਮ ਦੇ ਨਾਲ ਸੇਗਫਾਲਟ ਜੋ ਵੇਰੀਏਬਲ ਆਰਗੂਮੈਂਟ ਸੂਚੀਆਂ ਦੇ ਨਾਲ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਜੋ ਕਿ -fsection-ਐਂਕਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਇੱਕ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਗਲਤੀ ਨੂੰ ਚਾਲੂ ਕਰ ਸਕਦਾ ਹੈ: ਸੈਗਮੈਂਟੇਸ਼ਨ ਫਾਲਟ
  • ਡੀਬੱਗ ਜਾਣਕਾਰੀ ਸਿੰਕ ਤੋਂ ਬਾਹਰ (XC8-2948) ਜਦੋਂ ਲਿੰਕਰ ਆਰਾਮ ਅਨੁਕੂਲਤਾ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਸੁੰਗੜਦੀ ਹੈ (ਉਦਾਹਰਣ ਲਈample call to rcall instructions), ਮੈਪਿੰਗ ਨੂੰ ਐਡਰੈੱਸ ਕਰਨ ਲਈ ਸਰੋਤ ਲਾਈਨ ਸਮਕਾਲੀ ਨਹੀਂ ਰਹਿ ਸਕਦੀ ਹੈ ਜਦੋਂ ਇੱਕ ਭਾਗ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਸੁੰਗੜਨ ਦੀ ਕਾਰਵਾਈ ਹੁੰਦੀ ਹੈ। ਹੇਠ ਸਾਬਕਾ ਵਿੱਚample, foo ਲਈ ਦੋ ਕਾਲਾਂ ਹਨ ਜੋ ਰਿਸ਼ਤੇਦਾਰ ਕਾਲਾਂ ਲਈ ਆਰਾਮਦਾਇਕ ਹੁੰਦੀਆਂ ਹਨ।
  • PA ਮੈਮੋਰੀ ਵੰਡ ਅਸਫਲਤਾ (XC8-2881) ਪ੍ਰਕਿਰਿਆ ਸੰਬੰਧੀ ਐਬਸਟਰੈਕਸ਼ਨ ਆਪਟੀਮਾਈਜ਼ਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਲਿੰਕਰ ਮੈਮੋਰੀ ਵੰਡ ਦੀਆਂ ਗਲਤੀਆਂ ਦੀ ਰਿਪੋਰਟ ਕਰ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕੋਡ ਦਾ ਆਕਾਰ ਡਿਵਾਈਸ 'ਤੇ ਉਪਲਬਧ ਪ੍ਰੋਗਰਾਮ ਮੈਮੋਰੀ ਦੀ ਮਾਤਰਾ ਦੇ ਨੇੜੇ ਹੁੰਦਾ ਹੈ, ਭਾਵੇਂ ਕਿ ਪ੍ਰੋਗਰਾਮ ਉਪਲਬਧ ਨੂੰ ਫਿੱਟ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਪੇਸ
  • ਇੰਨਾ ਸਮਾਰਟ ਨਹੀਂ ਸਮਾਰਟ-IO (XC8-2872) ਕੰਪਾਈਲਰ ਦੀ ਸਮਾਰਟ-ਆਈਓ ਵਿਸ਼ੇਸ਼ਤਾ snprintf ਫੰਕਸ਼ਨ ਲਈ ਵੈਧ ਪਰ ਉਪ-ਅਨੁਕੂਲ ਕੋਡ ਤਿਆਰ ਕਰੇਗੀ ਜੇਕਰ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਅਸਮਰੱਥ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ ਜਾਂ ਜੇ ਡਿਵਾਈਸ ਕੋਲ ਇਸ ਦੀਆਂ ਸਾਰੀਆਂ ਚੀਜ਼ਾਂ ਹਨ। ਫਲੈਸ਼ ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਮੈਪ ਕੀਤਾ ਗਿਆ ਹੈ।
  • ਇਸ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਰਟ ਸਮਾਰਟ-ਆਈਓ (XC8-2869) ਕੰਪਾਈਲਰ ਦੀ ਸਮਾਰਟ-ਆਈਓ ਵਿਸ਼ੇਸ਼ਤਾ ਵੈਧ ਪਰ ਸਬ-ਅਨੁਕੂਲ ਕੋਡ ਤਿਆਰ ਕਰੇਗੀ ਜਦੋਂ -flto ਅਤੇ -fno-ਬਿਲਟਿਨ ਦੋਵੇਂ ਵਿਕਲਪ ਵਰਤੇ ਜਾਣਗੇ।
  • ਸਬ-ਓਨਲੀ ਰੀਡ-ਓਨਲੀ ਡੇਟਾ ਪਲੇਸਮੈਂਟ (XC8-2849) ਲਿੰਕਰ ਵਰਤਮਾਨ ਵਿੱਚ APPCODE ਅਤੇ APPDATA ਮੈਮੋਰੀ ਸੈਕਸ਼ਨਾਂ ਬਾਰੇ ਨਹੀਂ ਜਾਣਦਾ ਹੈ, ਅਤੇ ਨਾ ਹੀ ਮੈਮੋਰੀ ਮੈਪ ਵਿੱਚ [No-]ਰੀਡ-ਵਾਇਲ-ਰਾਈਟ ਡਿਵੀਜ਼ਨਾਂ ਬਾਰੇ ਜਾਣੂ ਹੈ। ਨਤੀਜੇ ਵਜੋਂ, ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਸੰਭਾਵਨਾ ਹੈ ਕਿ ਲਿੰਕਰ ਮੈਮੋਰੀ ਦੇ ਇੱਕ ਅਣਉਚਿਤ ਖੇਤਰ ਵਿੱਚ ਸਿਰਫ਼-ਪੜ੍ਹਨ ਲਈ ਡਾਟਾ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦਾ ਹੈ। ਜੇਕਰ const-data-in-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਯੋਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜੇਕਰ const-data-in-config-mapped-progmem ਵਿਸ਼ੇਸ਼ਤਾ ਵੀ ਯੋਗ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਗੁੰਮ ਹੋਏ ਡੇਟਾ ਦੀ ਸੰਭਾਵਨਾ ਵੱਧ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਇਹਨਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਅਯੋਗ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
  • ਆਬਜੈਕਟ ਫਾਈਲ ਪ੍ਰੋਸੈਸਿੰਗ ਆਰਡਰ (XC8-2863) ਉਹ ਕ੍ਰਮ ਜਿਸ ਵਿੱਚ ਲਿੰਕਰ ਦੁਆਰਾ ਆਬਜੈਕਟ ਫਾਈਲਾਂ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕੀਤੀ ਜਾਵੇਗੀ, ਪ੍ਰਕਿਰਿਆਤਮਕ ਐਬਸਟਰੈਕਸ਼ਨ ਅਨੁਕੂਲਨ (-mpa ਵਿਕਲਪ) ਦੀ ਵਰਤੋਂ ਦੇ ਅਧਾਰ ਤੇ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਸਿਰਫ ਕੋਡ ਨੂੰ ਪ੍ਰਭਾਵਤ ਕਰੇਗਾ ਜੋ ਕਈ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਕਮਜ਼ੋਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।
  • ਸੰਪੂਰਨ (XC8-2777) ਨਾਲ ਲਿੰਕਰ ਗਲਤੀ ਜਦੋਂ RAM ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਇੱਕ ਪਤੇ 'ਤੇ ਇੱਕ ਆਬਜੈਕਟ ਨੂੰ ਨਿਰਪੱਖ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਅਣ-ਸ਼ੁਰੂਆਤੀ ਵਸਤੂਆਂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇੱਕ ਲਿੰਕਰ ਗਲਤੀ ਸ਼ੁਰੂ ਹੋ ਸਕਦੀ ਹੈ।
  • ਸ਼ਾਰਟ ਵੇਕ-ਅੱਪ ਆਈਡੀ (XC8-2775) ATA5700/2 ਡਿਵਾਈਸਾਂ ਲਈ, PHID0/1 ਰਜਿਸਟਰਾਂ ਨੂੰ 16 ਬਿੱਟ ਚੌੜੇ ਦੀ ਬਜਾਏ ਸਿਰਫ 32 ਬਿੱਟ ਚੌੜੇ ਹੋਣ ਵਜੋਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
  • ਲਿੰਕਰ ਕਰੈਸ਼ ਜਦੋਂ ਕਾਲ ਸਿੰਬਲ (XC8-2758) ਲਿੰਕਰ ਕ੍ਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ -mrelax ਡਰਾਈਵਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਸਰੋਤ ਕੋਡ ਇੱਕ ਪ੍ਰਤੀਕ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਜਿਸ ਨੂੰ – Wl,–defsym ਲਿੰਕਰ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।
  • ਗਲਤ ਸ਼ੁਰੂਆਤੀਕਰਣ (XC8-2679) ਡਾਟਾ ਮੈਮੋਰੀ ਵਿੱਚ ਕੁਝ ਗਲੋਬਲ/ਸਟੈਟਿਕ ਬਾਈਟ-ਆਕਾਰ ਦੀਆਂ ਵਸਤੂਆਂ ਲਈ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ ਕਿੱਥੇ ਰੱਖੇ ਗਏ ਹਨ ਅਤੇ ਰਨਟਾਈਮ 'ਤੇ ਵੇਰੀਏਬਲ ਕਿੱਥੇ ਐਕਸੈਸ ਕੀਤੇ ਜਾਣਗੇ, ਇਸ ਵਿੱਚ ਇੱਕ ਅੰਤਰ ਹੈ।
  • ਖਰਾਬ ਅਸਿੱਧੇ ਫੰਕਸ਼ਨ ਕਾਲਾਂ (XC8-2628) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਕਿਸੇ ਢਾਂਚੇ ਦੇ ਹਿੱਸੇ ਵਜੋਂ ਸਟੋਰ ਕੀਤੇ ਫੰਕਸ਼ਨ ਪੁਆਇੰਟਰ ਦੁਆਰਾ ਕੀਤੀਆਂ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਅਸਫਲ ਹੋ ਸਕਦੀਆਂ ਹਨ।
  • strtof ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਸ (XC8-2626) ਲਈ ਜ਼ੀਰੋ ਰਿਟਰਨ ਕਰਦਾ ਹੈ। ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨ strtof() et al ਅਤੇ scanf() et al, ਹਮੇਸ਼ਾ ਇੱਕ ਹੈਕਸਾਡੈਸੀਮਲ ਫਲੋਟਿੰਗ-ਪੁਆਇੰਟ ਨੰਬਰ ਨੂੰ ਬਦਲਦਾ ਹੈ ਜੋ ਜ਼ੀਰੋ ਲਈ ਇੱਕ ਘਾਤਕ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਸਾਬਕਾ ਲਈample: strtof("0x1", &endptr); ਮੁੱਲ 0 ਵਾਪਸ ਕਰੇਗਾ, 1 ਨਹੀਂ।
  • ਗਲਤ ਸਟੈਕ ਸਲਾਹਕਾਰ ਮੈਸੇਜਿੰਗ (XC8-2542, XC8-2541) ਕੁਝ ਸਥਿਤੀਆਂ ਵਿੱਚ, ਵਰਤੇ ਗਏ ਦੁਹਰਾਓ ਜਾਂ ਅਨਿਯਮਿਤ ਸਟੈਕ (ਸੰਭਵ ਤੌਰ 'ਤੇ alloca() ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ) ਦੇ ਸਬੰਧ ਵਿੱਚ ਸਟੈਕ ਸਲਾਹਕਾਰ ਚੇਤਾਵਨੀ ਨਹੀਂ ਛੱਡੀ ਜਾਂਦੀ ਹੈ।
  • ਡੁਪਲੀਕੇਟ ਇੰਟਰੱਪਟ ਕੋਡ (XC8-2421) ਦੇ ਨਾਲ ਅਸਫਲਤਾ ਜਿੱਥੇ ਇੱਕ ਤੋਂ ਵੱਧ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਇੱਕੋ ਬਾਡੀ ਹੈ, ਕੰਪਾਈਲਰ ਕੋਲ ਇੱਕ ਇੰਟਰੱਪਟ ਫੰਕਸ਼ਨ ਲਈ ਆਉਟਪੁੱਟ ਹੋ ਸਕਦੀ ਹੈ ਦੂਜੇ ਨੂੰ ਕਾਲ ਕਰੋ। ਇਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਸਾਰੇ ਕਾਲ-ਕਲੋਬਰਡ ਰਜਿਸਟਰਾਂ ਨੂੰ ਬੇਲੋੜੀ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਅਤੇ ਮੌਜੂਦਾ ਇੰਟਰੱਪਟ ਹੈਂਡਲਰ ਦੇ ਐਪੀਲੋਗ ਦੇ ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇੰਟਰਪਟਸ ਸਮਰੱਥ ਹੋ ਜਾਣਗੇ, ਜਿਸ ਨਾਲ ਕੋਡ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।
  • ਅਵੈਧ DFP ਮਾਰਗ (XC8-2376) ਦੇ ਨਾਲ ਖਰਾਬ ਆਉਟਪੁੱਟ ਜੇਕਰ ਕੰਪਾਈਲਰ ਨੂੰ ਇੱਕ ਅਵੈਧ DFP ਮਾਰਗ ਨਾਲ ਬੁਲਾਇਆ ਗਿਆ ਹੈ ਅਤੇ ਚੁਣੀ ਗਈ ਡਿਵਾਈਸ ਲਈ ਇੱਕ 'ਸਪੈਕ' ਫਾਈਲ ਮੌਜੂਦ ਹੈ, ਤਾਂ ਕੰਪਾਈਲਰ ਗੁੰਮ ਹੋਏ ਡਿਵਾਈਸ ਫੈਮਿਲੀ ਪੈਕ ਦੀ ਰਿਪੋਰਟ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਇਸਦੀ ਬਜਾਏ 'ਸਪੈਕ' ਨੂੰ ਚੁਣ ਰਿਹਾ ਹੈ। ਫਾਈਲ, ਜੋ ਫਿਰ ਇੱਕ ਅਵੈਧ ਆਉਟਪੁੱਟ ਵੱਲ ਲੈ ਜਾ ਸਕਦੀ ਹੈ। 'ਵਿਸ਼ੇਸ਼' ਫਾਈਲਾਂ ਵੰਡੀਆਂ DFPs ਨਾਲ ਅੱਪ ਟੂ ਡੇਟ ਨਹੀਂ ਹੋ ਸਕਦੀਆਂ ਹਨ ਅਤੇ ਸਿਰਫ ਅੰਦਰੂਨੀ ਕੰਪਾਈਲਰ ਟੈਸਟਿੰਗ ਲਈ ਵਰਤਣ ਲਈ ਸਨ।
  • ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਅਣਡਿਟੈਕਡ (XC8-1966) ਕੰਪਾਈਲਰ ਕਿਸੇ ਪਤੇ (__at() ਰਾਹੀਂ) ਅਤੇ __section() ਨਿਰਧਾਰਕ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਹੋਰ ਆਬਜੈਕਟਾਂ 'ਤੇ ਨਿਰਪੱਖ ਬਣਾਏ ਗਏ ਆਬਜੈਕਟ ਦੀ ਮੈਮੋਰੀ ਓਵਰਲੈਪ ਦਾ ਪਤਾ ਨਹੀਂ ਲਗਾ ਰਿਹਾ ਹੈ ਅਤੇ ਜੋ ਉਸੇ ਪਤੇ ਨਾਲ ਲਿੰਕ ਹਨ।
  • ਲਾਇਬ੍ਰੇਰੀ ਫੰਕਸ਼ਨਾਂ ਅਤੇ __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 ਨੂੰ ਮੰਨਦੇ ਹਨ ਅਤੇ ਲੋਕਲ ਟਾਈਮ ਜ਼ੋਨਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ ਹਨ, ਇਸ ਤਰ੍ਹਾਂ localtime() gmtime() ਦੇ ਤੌਰ 'ਤੇ ਉਹੀ ਸਮਾਂ ਵਾਪਸ ਕਰੇਗਾ, ਜਿਵੇਂ ਕਿ ਸਾਬਕਾ ਲਈample.

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

MICROCHIP XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.45 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ [pdf] ਹਦਾਇਤਾਂ
AVR MCU, XC8 C, XC8 C ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.45 AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ, AVR MCU ਲਈ ਕੰਪਾਈਲਰ ਸੰਸਕਰਣ 2.45 ਰੀਲੀਜ਼ ਨੋਟਸ, AVR MCU ਲਈ ਸੰਸਕਰਣ 2.45 ਰੀਲੀਜ਼ ਨੋਟਸ, AVR MCU ਲਈ ਰੀਲੀਜ਼ ਨੋਟਸ, AVRAVCU ਲਈ ਨੋਟਸ, MCU ਲਈ ਨੋਟਸ

ਹਵਾਲੇ

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

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