මයික්‍රොචිප් - ලාංඡනයMPLAB XC8 C සම්පාදක අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන්
පරිශීලක මාර්ගෝපදේශය

MICROCHIP AVR උපාංග ඉලක්ක කරන විට MPLAB XC8 C සම්පාදකයට අදාළ වැදගත් තොරතුරු මෙම ලේඛනයේ අඩංගු වේ. මෙම මෘදුකාංගය ක්‍රියාත්මක කිරීමට පෙර කරුණාකර එය කියවන්න.
ඔබ 8-BIT PIC උපාංග සඳහා compiler භාවිතා කරන්නේ නම් PIC ලේඛනය සඳහා MPLAB XC8 C කම්පිලර් නිකුතු සටහන් බලන්න.

ඉවරයිview

1.1. හැඳින්වීම
Microchip MPLAB® XC8 C සම්පාදකයේ මෙම නිකුතුව මෙම සම්පාදකයේ v2.36 නිකුතුව මත පදනම් වූ සහ දැන් ජාල සේවාදායක බලපත්‍රය සඳහා සහය දක්වන ක්‍රියාකාරී ආරක්‍ෂිත සම්පාදකයකි.
1.2 නිකුත් කරන දිනය
මෙම සම්පාදක අනුවාදයේ නිල නිකුත් කිරීමේ දිනය 27 ජනවාරි 2022 වේ.
1.3 පෙර අනුවාදය
පෙර MPLAB XC8 C සම්පාදක අනුවාදය 2.36, 25 ජනවාරි 2022 නිකුත් කරන ලදී.
1.4 ක්රියාකාරී ආරක්ෂණ අත්පොත
MPLAB XC සම්පාදක සඳහා ක්‍රියාකාරී ආරක්ෂණ අත්පොතක් ඔබ ක්‍රියාකාරී ආරක්ෂණ බලපත්‍රයක් මිලදී ගන්නා විට ලේඛන පැකේජයේ ඇත.
1.5 සංරචක බලපත්‍ර සහ අනුවාද® ඔහු MPLAB
AVR MCUs මෙවලම් සඳහා XC8 C සම්පාදකය GNU සාමාන්‍ය මහජන බලපත්‍රය (GPL) යටතේ ලියා බෙදා හරිනු ලැබේ, එයින් අදහස් කරන්නේ එහි මූල කේතය නොමිලේ බෙදා හරින අතර මහජනයාට ලබා ගත හැකි බවයි.
GNU GPL යටතේ ඇති මෙවලම් සඳහා වන මූල කේතය Microchip වෙතින් වෙන වෙනම බාගත කළ හැක 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-bit අනුවාද ඇතුළුව විවිධ මෙහෙයුම් පද්ධති සඳහා ලබා ගත හැකිය: Microsoft Windows 10 හි වෘත්තීය සංස්කරණ; උබුන්ටු 18.04; සහ macOS 10.15.5. වින්ඩෝස් සඳහා ද්විමය කේත අත්සන් කර ඇත. macOS සඳහා ද්විමය කේත-අත්සන් කර නොතාරිස් කර ඇත.
ඔබ ජාල බලපත්‍ර සේවාදායකයක් ධාවනය කරන්නේ නම්, බලපත්‍ර සේවාදායකයට සත්කාරකත්වය සැපයීම සඳහා සම්පාදකයින් විසින් සහාය දක්වන මෙහෙයුම් පද්ධති සහිත පරිගණක පමණක් භාවිතා කළ හැක. xclm අනුවාදය 2.0 ලෙස, ජාල බලපත්‍ර සේවාදායකය මයික්‍රොසොෆ්ට් වින්ඩෝස් සර්වර් වේදිකාවක් මත ස්ථාපනය කළ හැකි නමුත් බලපත්‍ර සේවාදායකය මෙහෙයුම් පද්ධතියේ සේවාදායක අනුවාදයක් මත ධාවනය කිරීමට අවශ්‍ය නොවේ.
1.7 උපාංග සඳහා සහය දක්වයි
මෙම සම්පාදකය නිකුත් කරන අවස්ථාවේ දන්නා සියලුම 8-bit AVR MCU උපාංග සඳහා සහය දක්වයි. බලන්න (සම්පාදකයෙහි avr_chipinfo.html නාමාවලිය) සහාය දක්වන සියලුම උපාංග ලැයිස්තුවක් සඳහා. මෙම ගොනු එක් එක් උපාංගය සඳහා වින්‍යාස බිටු ලේඛන සැකසුම් ද ලැයිස්තුගත කරයි.
1.8 සංස්කරණ සහ බලපත්‍ර උත්ශ්‍රේණි කිරීම්
MPLAB XC8 සම්පාදකය බලපත්‍රලාභී (PRO) හෝ බලපත්‍ර රහිත (නොමිලේ) නිෂ්පාදනයක් ලෙස සක්‍රිය කළ හැක. ඔබේ සම්පාදකයට බලපත්‍ර ලබා දීම සඳහා ඔබ සක්‍රිය කිරීමේ යතුරක් මිලදී ගත යුතුය. බලපත්‍රයක් නොමිලේ නිෂ්පාදනයට සාපේක්ෂව ඉහළ මට්ටමේ ප්‍රශස්තකරණයකට ඉඩ සලසයි. බලපත්‍ර රහිත සම්පාදකයක් බලපත්‍රයක් නොමැතිව දින නියමයක් නොමැතිව ක්‍රියාත්මක කළ හැක.
MPLAB XC8 ක්‍රියාකාරී ආරක්ෂණ සම්පාදකයක් මයික්‍රොචිප් වෙතින් මිලදී ගත් ක්‍රියාකාරී ආරක්ෂණ බලපත්‍රයක් සමඟ සක්‍රිය කළ යුතුය. මෙම බලපත්‍රය නොමැතිව සම්පාදකය ක්‍රියා නොකරයි. සක්‍රිය වූ පසු, ඔබට ඕනෑම ප්‍රශස්තිකරණ මට්ටමක් තෝරාගෙන සියලුම සම්පාදක විශේෂාංග භාවිතා කළ හැක. MPLAB XC Functional Safety හි මෙම නිකුතුව
Compiler ජාල සේවාදායක බලපත්‍රය සඳහා සහය දක්වයි.
බලපත්‍ර වර්ග සහ බලපත්‍රයක් සහිත සම්පාදක ස්ථාපනය පිළිබඳ තොරතුරු සඳහා MPLAB XC C Compilers (DS50002059) ස්ථාපනය සහ බලපත්‍ර ලබා දීම බලන්න.
1.9. ස්ථාපනය සහ සක්රිය කිරීම
මෙම සම්පාදකය සමඟ ඇතුළත් කර ඇති නවතම බලපත්‍ර කළමනාකරු පිළිබඳ වැදගත් තොරතුරු සඳහා සංක්‍රමණ ගැටළු සහ සීමා කොටස් ද බලන්න.
MPLAB IDE භාවිතා කරන්නේ නම්, මෙම මෙවලම ස්ථාපනය කිරීමට පෙර නවතම MPLAB X IDE අනුවාදය 5.0 හෝ පසුව ස්ථාපනය කිරීමට වග බලා ගන්න. සම්පාදකය ස්ථාපනය කිරීමට පෙර IDE වෙතින් ඉවත් වන්න. (Windows), (Linux) හෝ (macOS) .exe .run .app compiler ස්ථාපක යෙදුම ධාවනය කරන්න, උදා සහ තිරයේ ඇති උපදෙස් අනුගමනය කරන්න.
XC8-1.00.11403-windows.exe
පෙරනිමි ස්ථාපන නාමාවලිය නිර්දේශ කෙරේ. ඔබ Linux භාවිතා කරන්නේ නම්, ඔබ සම්පාදකය ටර්මිනලයක් භාවිතයෙන් සහ root ගිණුමකින් ස්ථාපනය කළ යුතුය. පරිපාලක වරප්‍රසාද සහිත macOS ගිණුමක් භාවිතයෙන් ස්ථාපනය කරන්න.
සක්රිය කිරීම දැන් ස්ථාපනය සඳහා වෙන වෙනම සිදු කෙරේ. වැඩි විස්තර සඳහා MPLAB® XC C Compilers (DS52059) සඳහා ලේඛන බලපත්‍ර කළමනාකරු බලන්න.
ඔබ ඇගයීම් බලපත්‍රය යටතේ සම්පාදකය ක්‍රියාත්මක කිරීමට තෝරා ගන්නේ නම්, ඔබ ඔබේ ඇගයුම් කාල සීමාව අවසන් වී දින 14ක් ඇතුළත සිටින විට සම්පාදනය කිරීමේදී ඔබට දැන් අනතුරු ඇඟවීමක් ලැබෙනු ඇත. ඔබ ඔබේ HPA දායකත්වය අවසන් වී දින 14ක් ඇතුළත සිටින්නේ නම් එම අනතුරු ඇඟවීමම නිකුත් කෙරේ.
XC ජාල බලපත්‍ර සේවාදායකය වෙනම ස්ථාපකයක් වන අතර එය තනි පරිශීලක සම්පාදක ස්ථාපකයට ඇතුළත් නොවේ.
XC බලපත්‍ර කළමනාකරු දැන් පාවෙන ජාල බලපත්‍රවල රෝමිං සඳහා සහය දක්වයි. ජංගම දුරකථන භාවිතා කරන්නන් ඉලක්ක කර ගත් මෙම විශේෂාංගය මඟින් පාවෙන බලපත්‍රයක් කෙටි කාලයක් සඳහා ජාලයෙන් ඉවත් වීමට ඉඩ සලසයි. මෙම විශේෂාංගය භාවිතයෙන්, ඔබට ජාලයෙන් විසන්ධි විය හැකි අතර තවමත් ඔබේ MPLAB XC සම්පාදකය භාවිතා කළ හැක. මෙම විශේෂාංගය පිළිබඳ වැඩි විස්තර සඳහා XCLM ස්ථාපනයේ ලේඛන ෆෝල්ඩරය බලන්න.
MPLAB X IDE රෝමිං දෘශ්‍ය ලෙස කළමනාකරණය කිරීමට බලපත්‍ර කවුළුවක් (මෙවලම් > බලපත්‍ර) ඇතුළත් වේ.

1.9.1. ස්ථාපන ගැටළු විසඳීම
ඕනෑම Windows මෙහෙයුම් පද්ධතියක් යටතේ සම්පාදකය ස්ථාපනය කිරීමේදී ඔබට දුෂ්කරතා ඇති වන්නේ නම්, පහත යෝජනා උත්සාහ කරන්න.

  • ස්ථාපනය පරිපාලක ලෙස ධාවනය කරන්න.
  • ස්ථාපක යෙදුමේ අවසර 'සම්පූර්ණ පාලනය' ලෙස සකසන්න. (ගොනුව මත දකුණු-ක්ලික් කරන්න, ගුණාංග තෝරන්න, ආරක්ෂක පටිත්ත, පරිශීලක තෝරන්න, සංස්කරණය කරන්න.)
  • තාවකාලික ෆෝල්ඩරයේ අවසරයන් "සම්පූර්ණ පාලනය!.
  • තාවකාලික ෆෝල්ඩරයේ පිහිටීම තීරණය කිරීම සඳහා, ධාවන විධානය ටයිප් කරන්න (Windows logo key + R). %temp% මෙමගින් එම නාමාවලිය පෙන්වන ගොනු ගවේෂක සංවාදයක් විවෘත වන අතර එම ෆෝල්ඩරයේ මාර්ගය තීරණය කිරීමට ඔබට ඉඩ සලසයි.

1.10 සම්පාදක ලේඛනගත කිරීම

MICROCHIP MPLAB XC8 C සම්පාදක අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන් - ලේඛනයScreenshot හි දක්වා ඇති පරිදි MPLAB X IDE උපකරණ පුවරුවේ නිල් උදවු බොත්තම ක්ලික් කරන විට ඔබේ බ්‍රවුසරයේ විවෘත වන HTML පිටුවෙන් සම්පාදකයාගේ පරිශීලක මාර්ගෝපදේශ විවෘත කළ හැක.
ඔබ 8-bit AVR ඉලක්ක සඳහා ගොඩනඟන්නේ නම්, AVR සඳහා MPLAB® XC8 C Compiler User's® මාර්ගෝපදේශය
MCU හි මෙම ගෘහ නිර්මාණ ශිල්පයට අදාළ වන සම්පාදක විකල්ප සහ විශේෂාංග පිළිබඳ තොරතුරු අඩංගු වේ.

1.11. පාරිභෝගික සහාය
Microchip මෙම සම්පාදක අනුවාදය සම්බන්ධයෙන් දෝෂ වාර්තා, යෝජනා හෝ අදහස් සාදරයෙන් පිළිගනී. කරුණාකර කිසියම් දෝෂ වාර්තා හෝ විශේෂාංග ඉල්ලීම් ආධාරක පද්ධතිය හරහා යොමු කරන්න.

ලේඛන යාවත්කාලීන

MPLAB XC8 ප්‍රලේඛනයේ මාර්ගගත සහ යාවත්කාලීන අනුවාද සඳහා, කරුණාකර Microchip's Online වෙත පිවිසෙන්න
තාක්ෂණික ලියකියවිලි webඅඩවිය.
මෙම නිකුතුවේ නව හෝ යාවත්කාලීන AVR ලේඛන:
MPLAB® XC C Compilers (DS50002059) සංශෝධනය L ස්ථාපනය කිරීම සහ බලපත්‍ර ලබා දීම
Microchip Unifed Standard Library Reference Guide මගින් Microchip Unifed Standard Library මගින් නිර්වචනය කර ඇති කාර්යයන්හි හැසිරීම සහ අතුරු මුහුණත මෙන්ම පුස්තකාල වර්ග සහ මැක්‍රෝ වල අපේක්ෂිත භාවිතය විස්තර කරයි. මෙම තොරතුරු වලින් සමහරක් කලින් AVR සඳහා MPLA® XC8 C Compiler User!s Guide® හි අඩංගු විය.
MCU උපාංග-විශේෂිත පුස්තකාල තොරතුරු තවමත් මෙම සම්පාදක මාර්ගෝපදේශයෙහි අඩංගු වේ.
මෙම නිකුතුවේ නාමාවලියෙහි Hexmate පරිශීලක මාර්ගෝපදේශය ඇතුළත් කර ඇත. මෙම මාර්ගෝපදේශය තනි යෙදුමක් ලෙස Hexmate ධාවනය කරන ලේඛන සඳහා අදහස් කෙරේ.
සම්පාදකය සමඟ යවන ලද පරිශීලක මාර්ගෝපදේශවල ඇති නිවැරදි කිරීම් සහ අමතර තොරතුරු පහත කොටස් සපයයි.

2.1 smart-io-format විකල්පය
The-msmart-io-format=fmt fmt විකල්පය, ආකෘතිගත IO පරිවර්තන පිරිවිතර අඩංගු තන්තුවක්, ස්මාර්ට් IO ශ්‍රිතයන් විසින් ලැයිස්තුගත පිරිවිතරයන් භාවිතා කරන බව සම්පාදකයාට දන්වයි.
කේත ප්‍රමාණය අඩු කිරීම සඳහා, සම්පාදකය මෙම ශ්‍රිත සඳහා වන සියලුම ඇමතුම් හරහා එකතු කර ඇති ආකෘති තන්තුවල පවතින පරිවර්තන පිරිවිතර මත පදනම්ව, ස්මාර්ට් IO ශ්‍රිතවල මුද්‍රණ සහ ස්කෑන් පවුල්වලට සම්බන්ධ පුස්තකාල කේතය අභිරුචිකරණය කරයි. මෙම විශේෂාංගය සම්පූර්ණයෙන්ම ස්වයංක්‍රීය වන අතර අක්‍රිය කළ නොහැක.
සමහර අවස්ථා වලදී, සම්පාදනය කරන ලද IO ශ්‍රිත ඇමතුමෙන් භාවිත තොරතුරු නිර්ණය කිරීමට සම්පාදකයාට නොහැකි වේ. විකල්පය භාවිතා කර ඇත්නම්, මෙම ශ්‍රිත සඳහා අවශ්‍ය පරිවර්තන පිරිවිතර තන්තුවෙන් ලබා ගනී; එසේ නොමැතිනම්, සම්පාදකය -msmart-io-format=fmt fmt ශ්‍රිතයන් භාවිතා කරන්නේ කෙසේද යන්න පිළිබඳව කිසිදු උපකල්පනයක් නොකරන අතර සම්පූර්ණ ක්‍රියාකාරී හැඩතල ගැන්වූ IO ශ්‍රිතයන් අවසාන වැඩසටහන් රූපයට සම්බන්ධ කර ඇති බව සහතික කරයි.
උදාහරණයක් ලෙසample, ස්මාර්ට් IO කාර්යයන් සඳහා පහත ඇමතුම් සලකා බලන්න.

vscanf ("%d:%li", va_list1);
vprintf ("%-s%d", va_list2);
vprintf(fmt1, va_list3);// අපැහැදිලි භාවිතය
vscanf(fmt2, va_list4);// අපැහැදිලි භාවිතය

අවසාන ඇමතුම් දෙක සකසන විට, සම්පාදකයාට ආකෘති තන්තුවලින් හෝ තර්කවලින් කිසිදු භාවිත තොරතුරු අඩු කළ නොහැක. මෙම අවස්ථාවන්හිදී, -msmart-io-format විකල්පය භාවිතා කළ හැකි අතර, වැඩසටහනේ කේත ප්‍රමාණය අඩු කරමින් වඩාත් ප්‍රශස්ත හැඩතල ගැන්වූ I0 ශ්‍රිතයන් උත්පාදනය කිරීමට ඉඩ ලබා දෙනු ඇත. උදාහරණයක් ලෙසample, fmtl සහ fmt2 විසින් පෙන්වා දෙන ලද ආකෘති තන්තු සාමූහිකව භාවිතා කරන්නේ “%d”, “%i” සහ “% s” පරිවර්තන පිරිවිතර පමණක් නම්, -msmart-io-format=fmt=”%d%i%s ” විකල්පය නිකුත් කළ යුතුය.

ටින්ට් තන්තුවෙහි කොඩි සහ විකරණකාරක ඇතුළුව ඕනෑම වලංගු පරිවර්තන පිරිවිතර අඩංගු විය හැක (උදාample "%-13. 91s"), සහ භාවිතාව අපැහැදිලි වන ශ්‍රිත මගින් භාවිතා කරන ඒවා හරියටම පිළිබිඹු විය යුතුය. හි පිරිවිතර ඇතුළත් කිරීමට අපොහොසත් වීම ටිකක් සංයුති කරන ලද I0 ශ්‍රිතයන් විසින් භාවිතා කර ඇති තර්කය කේත අසාර්ථක වීමට හේතු විය හැක.
fmt හිස් තන්තුවක් නම් හෝ හඳුනාගත හැකි පරිවර්තන පිරිවිතර නොමැති නම්, අනතුරු ඇඟවීමක් නිකුත් කරනු ලබන අතර සම්පූර්ණ ක්‍රියාකාරී හැඩතල ගැන්වූ I0 ශ්‍රිතයන් අවසන් වැඩසටහන් රූපයට සම්බන්ධ කෙරේ.
මෙම විකල්පය විධාන රේඛාවේ කිහිප වතාවක් භාවිතා කළ හැක. එක් එක් විකල්පය සමඟ භාවිතා කරන පරිවර්තන පිරිවිතර එකතු වී ඇත.

2.2 හැර-රාමු-දර්ශක විකල්පය
– f omit- frame-pointer විකල්පය සම්පාදකයාට අට්ටියේ ඇති වස්තූන් වෙත ප්‍රවේශ වීම සඳහා ස්ටැක් පොයින්ටරය සෘජුවම භාවිතා කරන ලෙස උපදෙස් දෙන අතර, හැකි නම්, රාමු ලේඛනය සුරකින, ආරම්භ කරන සහ ප්‍රතිසාධනය කරන කේතය මඟ හරින්න. එය සියලු ශුන්‍ය නොවන ප්‍රශස්තිකරණ මට්ටම්වලදී ස්වයංක්‍රීයව සක්‍රීය වේ.
විකල්පය නිෂේධනය කිරීම, -fno-omit- frame-pointer භාවිතා කිරීම, ප්‍රශස්ත කේතය නිදොස් කිරීමට සහාය විය හැක; කෙසේ වෙතත්, මෙම විකල්පය රාමු දර්ශකය සැමවිටම භාවිතා කරන බවට සහතික නොවේ.

2.3 unroll-loop විකල්ප
The – funrol I-loops සහ -(unroll-all-loops options controls speed-orientated optimizations that which try to remove branching delays in loops. Unrolled loops සාමාන්‍යයෙන් විශාල කේත ප්‍රමාණයේ වියදමින්, උත්පාදනය කරන ලද කේතය ක්‍රියාත්මක කිරීමේ වේගය වැඩි කරයි.
- funrol I-loops විකල්පය සම්පාදනය කරන අවස්ථාවේදී හෝ කේතය ලූපයට ඇතුළු වූ විට පුනරාවර්තන ගණන තීරණය කළ හැකි ලූප දිග හරියි. -funroll-all-loops විකල්පය වඩාත් ආක්‍රමණශීලී වන අතර, පුනරාවර්තන ගණන නොදන්නා විට පවා, සියලු ලූප දිග හැරේ. එය සාමාන්‍යයෙන් ක්‍රියාත්මක කිරීමේ වේගය වැඩි දියුණු කිරීමේදී - funrol 1-loops විකල්පයට වඩා අඩු ඵලදායී වේ.

2.4 මේදය-ඉටෝ-වස්තු විකල්පය
- f fat-1 to-obj ects විකල්පය සම්පාදකයෙන් මේදය වස්තුව ජනනය කරන ලෙස ඉල්ලා සිටී files, දෙකම අඩංගු වේ
වස්තු කේතය සහ GIMPLE (GCC හි අභ්‍යන්තර නිරූපණයන්ගෙන් එකක්), අද්විතීය ELF කොටස් වෙත ලියා ඇත. එවැනි වස්තූන් file-flto විකල්පය මඟින් පාලනය වන සම්මත සබැඳි-කාල ප්‍රශස්තිකරණය කරන සහ භාවිතා නොකරන ව්‍යාපෘති සමඟ සම්බන්ධ කළ හැකි පුස්තකාල කේතය සඳහා s ප්‍රයෝජනවත් වේ.
මෙම විකල්පයේ – fno-fat-lto-objects ආකෘතිය, කිසිදු විකල්පයක් නිශ්චිතව දක්වා නොමැති නම් පෙරනිමිය වන, වස්තුවට වස්තු කේතය ඇතුළත් කිරීම යටපත් කරයි. files, වේගවත් ගොඩනැගීම් ඇති කරයි. කෙසේ වෙතත්, එවැනි වස්තුවක් fileසම්මත සබැඳි-කාල ප්‍රශස්තකාරකය භාවිතයෙන් s සැමවිටම සම්බන්ධ කළ යුතුය.

2.5 Ito-partition විකල්පය
ද - flto-partiti on=අ Igo ri thm විකල්පය වස්තුව කොටස් කිරීමට භාවිතා කරන ඇල්ගොරිතම පාලනය කරයි fileසබැඳි-කාල ප්‍රශස්තකාරකය ධාවනය කරන විට s. තර්කය කිසිවක් කොටස් කිරීම සම්පූර්ණයෙන්ම අක්‍රීය නොකරන අතර සම්පූර්ණ වැඩසටහන් විශ්ලේෂණ (WPA) අදියරෙන් සෘජුවම සම්බන්ධක-කාල ප්‍රශස්තිකරණ පියවර ක්‍රියාත්මක කරයි. මෙම මෙහෙයුම් ආකාරය කුඩා වැඩසටහන් සමඟ ගැටළුවක් විය නොහැකි වුවද, විශාල සම්පාදක මතක අවශ්‍යතා සහ දිගු ගොඩනැගීමේ කාලයන්හි වියදමින් වඩාත් ප්‍රශස්ත ප්‍රතිඵල ලබා දෙනු ඇත. වස්තුව කොටස් කිරීම fileගොඩනැගීමේ කාර්ය සාධනය වැඩි දියුණු කළ හැකිය. තර්කය එක් කොටසක් භාවිතා කළ යුතු බව සඳහන් කරයි, සහ lto1 තර්කය මුල් මූලාශ්‍රය විසින් නියම කරන ලද කැඩපත් කරන කොටස් කිරීම නියම කරයි. files. පෙරනිමි තර්කය සමතුලිත වේ, එය හැකි විට සමාන ප්‍රමාණයේ කොටස් වලට කොටස් කිරීම නියම කරයි.

2.6 3.6.11 වගන්තියට එකතු කිරීම සිතියම්ගත සම්බන්ධක විකල්ප
-wl, - කොටස-ආරම්භය =තත්පර tion=එකතු කරන්න -wl compiler Driver විකල්පය භාවිතයෙන් ප්‍රවේශ විය හැකි, බහුලව භාවිතා වන සම්බන්ධක විකල්ප වගුවෙන් අතුරුදහන් වේ. මෙම විකල්පය මඟින් නියමිත ලිපිනයෙහි අභිරුචි නම් කරන ලද කොටස් ස්ථානගත කිරීමට ඉඩ ලබා දේ. (. දත්ත, වැනි සම්මත කොටස් තැබීමට එය භාවිතා කළ නොහැක. . bss, . පෙළ), එය -wl, -'r විකල්පය භාවිතයෙන් තැබිය යුතුය.

2.7 4.14.2 වගන්තියට සංශෝධනය කිරීම වෙන් කළ කොටස වෙනස් කිරීම සහ සම්බන්ධ කිරීම
පරිශීලක මාර්ගෝපදේශයේ මෙම කොටසේ අඩංගු තොරතුරුවලට පටහැනිව, මෙම නිකුතුවේ සම්පාදකයට සිදු කරන ලද වෙනස්කම් දැන් අදහස් කරන්නේ අභිරුචි කොටස් -w1 භාවිතයෙන් සම්බන්ධ කළ හැකි බවයි. - නිකාය අයන- start=section=acicir විකල්පය සහ සම්බන්ධක ස්ක්‍රිප්ට් වෙනස් කිරීමකින් තොරව.

මොනවද අළුත්

පහත දැක්වෙන්නේ නව AVR-ඉලක්ක විශේෂාංග compiler දැන් සහය දක්වයි. උපමාතෘකාවල අනුවාද අංකය, අනුගමනය කරන විශේෂාංග සඳහා සහය දක්වන පළමු සම්පාදක අනුවාදය දක්වයි.

3.1 අනුවාදය 2.39 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
ජාල සේවාදායක බලපත්‍රය MPLAB XC8 ක්‍රියාකාරී ආරක්ෂණ සම්පාදකයේ මෙම නිකුතුව ජාල සේවාදායක බලපත්‍රය සඳහා සහය දක්වයි.

3.2 අනුවාදය 2.36 
කිසිවක් නැත.
3.3 අනුවාදය 2.35 
පහත AVR කොටස් සඳහා නව උපාංග ආධාරක සහාය ඇත: ATTINY3224, ATTINY3226, ATTINY3227, AVR64DD14, AVR64DD20, AVR64DD28, සහ AVR64DD32.
වැඩිදියුණු කළ සන්දර්භය මාරු කිරීම නව -mcall-isr-prologues විකල්පය මඟින් බාධා කිරීම් ක්‍රියාකාරීත්වයන් ඇතුළුවීමේදී රෙජිස්ටර් සුරකින ආකාරය සහ බාධා කිරීමේ පුරුද්ද අවසන් වූ විට එම රෙජිස්ටර් ප්‍රතිසාධනය කරන ආකාරය වෙනස් කරයි. එය -mcall-prologues විකල්පයට සමාන ආකාරයකින් ක්‍රියා කරයි, නමුත් බාධා කිරීමේ කාර්යයන් (ISRs) වලට පමණක් බලපායි.
ඊටත් වඩා වැඩි දියුණු කළ සන්දර්භය මාරු කිරීම අලුත් එක -mgas-isr-prologues විකල්පය කුඩා බාධා කිරීම් සේවා චර්යාවන් සඳහා ජනනය කරන ලද සන්දර්භය මාරු කේතය පාලනය කරයි. සබල කළ විට, මෙම විශේෂාංගය එකලස් කරන්නා විසින් ලියාපදිංචි භාවිතය සඳහා ISR පරිලෝකනය කර අවශ්‍ය නම් පමණක් භාවිත කළ මෙම රෙජිස්ටර් සුරකින්න ඇත.
වින්‍යාසගත කළ හැකි ෆ්ලෑෂ් සිතියම්කරණය AVR DA සහ AVR DB පවුලේ සමහර උපාංගවලට SFR (උදා: FLMAP) ඇත, එය දත්ත මතකයට සිතියම්ගත කරන්නේ කුමන වැඩසටහන් මතකයේ 32k කොටසද යන්න සඳහන් කරයි. නව - mconst-data-in-config-mapped-progmem විකල්පය සම්බන්ධකයට සියලු අවාසි-සුදුසුකම් සහිත දත්ත එක් 32k කොටසක ස්ථානගත කිරීමට සහ මෙම දත්ත දත්ත තුළට සිතියම්ගත කර ඇති බව සහතික කිරීම සඳහා අදාළ SFR ලේඛනය ස්වයංක්‍රීයව ආරම්භ කිරීමට භාවිතා කළ හැක. මතක අවකාශය, එය වඩාත් ඵලදායී ලෙස ප්රවේශ වනු ඇත.

Microchip Unified Standard Libraries සියලුම MPLAB XC සම්පාදකයින් විසින් Microchip Unified Standard Library එකක් බෙදා ගනු ඇත, එය MPLAB XC8 හි මෙම නිකුතුව සමඟ දැන් ලබා ගත හැක. ද MPLAB® XC8 C සම්පාදකය
AVR සඳහා පරිශීලක මාර්ගෝපදේශය® MCU මෙම සම්මත කාර්යයන් සඳහා ලේඛන තවදුරටත් ඇතුළත් නොවේ. මෙම තොරතුරු දැන් සොයා ගත හැක Microchip Unified Standard Library Reference Guide. avr-libc විසින් කලින් නිර්වචනය කරන ලද සමහර ක්‍රියාකාරීත්වය තවදුරටත් ලබා ගත නොහැකි බව සලකන්න. (බලන්න පුස්තකාල ක්‍රියාකාරිත්වය.)
ස්මාර්ට් I0 නව ඒකාබද්ධ පුස්තකාලවල කොටසක් ලෙස, Printf සහ scanf පවුල්වල JO ශ්‍රිත දැන් එක් එක් ගොඩනැගීම මත අභිරුචි-උත්පාදනය කර ඇත, මෙම කාර්යයන් වැඩසටහනේ භාවිතා කරන ආකාරය මත පදනම්ව. මෙය වැඩසටහනක් භාවිතා කරන සම්පත් සැලකිය යුතු ලෙස අඩු කළ හැකිය.
Smart I0 සහය විකල්පය ස්මාර්ට් I0 ශ්‍රිතවලට ඇමතුම් විශ්ලේෂණය කරන විට (printf () හෝ scanf () වැනි), සම්පාදකයාට සෑම විටම ආකෘති තන්තුවෙන් තීරණය කිරීමට හෝ ඇමතුමට අවශ්‍ය පරිවර්තන නියමයන් තර්කවලින් අනුමාන කිරීමට නොහැකිය. මින් පෙර, සම්පාදකය සෑම විටම උපකල්පන සිදු නොකරන අතර සම්පූර්ණ ක්‍රියාකාරී ශ්‍රිත 10ක් අවසාන වැඩසටහන් රූපයට සම්බන්ධ කර ඇති බව සහතික කරයි. නව – msma rt-io- format=fmt විකල්පයක් එකතු කර ඇති අතර එමඟින් ස්මාර්ට් I0 ශ්‍රිතයන් භාවිතා කරන පරිවර්තන පිරිවිතර භාවිතා කරන්නාට ඒ වෙනුවට අපැහැදිලි වන අතර, අධික ලෙස දිගු චර්යාවන් 10 ක් සම්බන්ධ වීම වළක්වයි. (බලන්න ස්මාර්ට්-io-ආකෘතිය වැඩි විස්තර සඳහා විකල්පය.)
අභිරුචි කොටස් තැබීම මින් පෙර, -W1, –section-start විකල්පය මඟින් ලින්කර් ස්ක්‍රිප්ට් එකම නම සහිත ප්‍රතිදාන අංශයක් නිර්වචනය කළ විට පමණක් ඉල්ලුම් කළ ලිපිනයෙහි සඳහන් කළ කොටස තැබීය. එය එසේ නොවූ විට, සම්බන්ධකය විසින් තෝරාගත් ලිපිනයක කොටස තබා ඇති අතර විකල්පය අත්‍යවශ්‍යයෙන්ම නොසලකා හරින ලදී. දැන් සම්බන්ධක ස්ක්‍රිප්ට් කොටස නිර්වචනය නොකළද, සියලු අභිරුචි කොටස් සඳහා විකල්පය ගෞරවයට පාත්‍ර වේ. කෙසේ වෙතත්, සම්මත කොටස් සඳහා, එවැනි . පෙළ, . bss හෝ . දත්ත, හොඳම යෝග්‍යතා වෙන් කරන්නාට තවමත් ඔවුන්ගේ ස්ථානගත කිරීම පිළිබඳ සම්පූර්ණ පාලනයක් ඇති අතර, විකල්පය කිසිදු බලපෑමක් ඇති නොකරයි. -wl භාවිතා කරන්න, -Tsection=එකතු කරන්න විකල්පය, පරිශීලක මාර්ගෝපදේශයෙහි විස්තර කර ඇති පරිදි.

3.4 අනුවාදය 2.32
PRO සම්පාදක බලපත්‍රයක් සමඟින් ලබා ගත හැකි Stack Guidance, compiler's Stack Guidance විශේෂාංගය මඟින් වැඩසටහනක් භාවිතා කරන ඕනෑම තොගයක උපරිම ගැඹුර තක්සේරු කිරීමට භාවිතා කළ හැක. එය වැඩසටහනක ඇමතුම් ප්‍රස්ථාරය ගොඩනඟා විශ්ලේෂණය කරයි, එක් එක් ශ්‍රිතයේ අට්ටි භාවිතය තීරණය කරයි, සහ වැඩසටහන මඟින් භාවිතා කරන අට්ටිවල ගැඹුර අනුමාන කළ හැකි වාර්තාවක් නිෂ්පාදනය කරයි.
මෙම විශේෂාංගය -mchp-stack- usage command-line විකල්පය හරහා සක්‍රීය කර ඇත. ක්‍රියාත්මක කිරීමෙන් පසු තොග භාවිතයේ සාරාංශයක් මුද්‍රණය කෙරේ. සවිස්තරාත්මක තොග වාර්තාවක් සිතියමෙහි ඇත file, සුපුරුදු ආකාරයෙන් ඉල්ලා සිටිය හැක.
පහත සඳහන් AVR කොටස් සඳහා නව උපාංග සහාය ලබා ගත හැකිය: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64DB, AVR64DB,28 , සහ AVR32DB28.
පහත සඳහන් AVR කොටස් සඳහා ආපසු ලබා ගත් උපාංග සහය තවදුරටත් නොමැත: AVR 16DA28, AVR16DA32 සහ, AVR16DA48.

3.5 අනුවාදය 2.31 නැත.
3.6 අනුවාදය 2.30
දත්ත ආරම්භ කිරීම වැලැක්වීමට නව විකල්පය නව -mno-data-init ධාවකයක් මඟින් දත්ත ආරම්භ කිරීම සහ bss කොටස් ඉවත් කිරීම වළක්වයි. එකලස් කිරීමේදී do_copy_data සහ do_clear_bss සංකේතවල ප්‍රතිදානය යටපත් කිරීමෙන් එය ක්‍රියා කරයි. files, එය අනෙක් අතට සම්බන්ධ කරන්නා විසින් එම චර්යාවන් ඇතුළත් කිරීම වලක්වනු ඇත.
වැඩි දියුණු කරන ලද ප්‍රශස්තකරණයන් අතිරික්ත ප්‍රතිලාභ උපදෙස් ඉවත් කිරීම, skip-if-bit-is උපදෙස් අනුගමනය කරමින් සමහර පැනීම් ඉවත් කිරීම, සහ වැඩිදියුණු කරන ලද ක්‍රියාපටිපාටික සාරාංශය සහ මෙම ක්‍රියාවලිය පුනරාවර්තනය කිරීමේ හැකියාව ඇතුළුව ප්‍රශස්තිකරණ වැඩිදියුණු කිරීම් ගණනාවක් සිදු කර ඇත.
මෙම ප්‍රශස්තිකරණයන්ගෙන් සමහරක් පාලනය කිරීමට අමතර විකල්ප දැන් තිබේ, විශේෂයෙන් -fsection-anchors, එක් සංකේතයකට සාපේක්ෂව ස්ථිතික වස්තූන් වෙත ප්‍රවේශය සිදු කිරීමට ඉඩ සලසයි; -mpa-පුනරාවර්තන =n, 2 හි පෙරනිමියෙන් පරිපාටිමය වියුක්ත පුනරාවර්තන ගණන වෙනස් කිරීමට ඉඩ සලසයි; සහ, -mpa-callcost-shortcal 1, එය වඩාත් ආක්‍රමණශීලී ක්‍රියාපටිපාටික සාරාංශයක් සිදු කරයි, සම්බන්ධකයාට දිගු ඇමතුම් ලිහිල් කළ හැකිය යන බලාපොරොත්තුවෙන්. යටින් පවතින උපකල්පන සාක්ෂාත් කර නොගන්නේ නම් මෙම අවසාන විකල්පය කේත ප්‍රමාණය වැඩි කළ හැක.
අලුත් උපාංග සහාය පහත AVR කොටස් සඳහා සහය ඇත: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64D 128, AVR28DB128, සහ AVR32DB128.
ඉවත් කරන ලද උපාංග සහාය පහත AVR කොටස් සඳහා තවදුරටත් සහාය නොලැබේ: ATA5272, ATA5790, ATA5790N, ATA5791, ATA5795, ATA6285, ATA6286, ATA6612C, ATA6613C, ATA6614Q, ATA6616, ATA6617.

3.7 අනුවාදය 2.29 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
ශීර්ෂකය file compiler bunt-ins සඳහා සම්පාදකයාට MISRA වැනි භාෂා පිරිවිතරයන්ට අනුකූල විය හැකි බව සහතික කිරීම සඳහා ශීර්ෂකය file, විසින් ස්වයංක්‍රීයව ඇතුළත් කර ඇත , යාවත්කාලීන කර ඇත. මෙම ශීර්ෂය තුළ බිල්ට් in_avr_nop ( ) සහ _builtin_avr_delay_cycles () වැනි සියලු අභ්‍යන්තර ශ්‍රිත සඳහා මූලාකෘති අඩංගු වේ. සමහර ඉදි කිරීම් MISRA අනුකූල නොවිය හැක; සම්පාදක විධාන රේඛාවට නිර්වචනය XC_STRICT MISRA එකතු කිරීමෙන් මේවා මඟ හැරිය හැක. සවි කිරීම් සහ ඒවායේ ප්‍රකාශයන් ස්ථාවර පළල වර්ග භාවිතා කිරීමට යාවත්කාලීන කර ඇත.

3.8 අනුවාදය 2.20
අලුත් උපාංග සහාය පහත AVR කොටස් සඳහා සහය පවතී: ATTINY 1624, ATTINY1626, සහ ATTINY 1 627.
වඩා හොඳ හොඳම සුදුසු වෙන් කිරීම සම්පාදකයේ ඇති හොඳම යෝග්‍යතා විබෙදුම (BFA) වැඩිදියුණු කර ඇති අතර එමඟින් වඩා හොඳ ප්‍රශස්තකරණයට ඉඩ දෙන අනුපිළිවෙලකට කොටස් වෙන් කරනු ලැබේ. BFA දැන් නම් කරන ලද ලිපින අවකාශයන් සඳහා සහය දක්වන අතර දත්ත ආරම්භ කිරීම වඩා හොඳින් හසුරුවයි.
වැඩිදියුණු කළ පරිපාටිමය සාරාංශය ක්‍රියා පටිපාටි වියුක්ත ප්‍රශස්තිකරණය දැන් තවත් කේත අනුක්‍රමික මත සිදු කෙරේ. මෙම ප්‍රශස්තකරණය කේත ප්‍රමාණය වැඩි කළ හැකි පෙර අවස්ථා සම්බන්ධකයාගේ කසළ එකතු කිරීමේ ක්‍රියාවලිය පිළිබඳව ප්‍රශස්තිකරණ කේතය දැනුවත් කිරීම මගින් විසඳා ඇත.
AVR එකලස් කරන්නෙකු නොමැති වීම AVR එකලස් කරන්නා තවදුරටත් මෙම බෙදාහැරීම සමඟ ඇතුළත් නොවේ. 3.9 අනුවාදය 2.19 (ක්‍රියාකාරී ආරක්ෂාව මුදා හැරීම)
කිසිවක් නැත.
3.10 අනුවාදය 2.10
කේත ආවරණය ව්‍යාපෘතියක මූල කේතය ක්‍රියාත්මක කර ඇති ප්‍රමාණය විශ්ලේෂණය කිරීමට පහසුකම් සපයන කේත ආවරණ විශේෂාංගයක් මෙම නිකුතුවට ඇතුළත් වේ. එය සබල කිරීමට -mcodecov=ram විකල්පය භාවිතා කරන්න. ඔබගේ දෘඪාංගයේ වැඩසටහන ක්‍රියාත්මක කිරීමෙන් පසු, කේත ආවරණ තොරතුරු උපාංගය තුළ ගොනු කරනු ලබන අතර, මෙය කේත ආවරණ ප්ලගිනයක් හරහා MPLAB X IDE වෙත මාරු කර ප්‍රදර්ශනය කළ හැක. මෙම ප්ලගිනය පිළිබඳ තොරතුරු සඳහා IDE ප්‍රලේඛනය බලන්න ලබා ගත හැක.
#pragma nocodecov ආවරණ විශ්ලේෂණයෙන් පසුකාලීන කාර්යයන් බැහැර කිරීමට භාවිතා කළ හැක. ඉතා මැනවින් ප්‍රයෝගය ආරම්භයේදී එකතු කළ යුතුය file එම සම්පූර්ණයෙන් බැහැර කිරීමට file ආවරණ විශ්ලේෂණයෙන්. විකල්පයක් ලෙස, _attribute_ ( (nocodecov)) විශේෂිත කාර්යයක් ආවරණ විශ්ලේෂණයෙන් බැහැර කිරීමට භාවිතා කළ හැක.
උපාංග විස්තරය files නව උපාංගය file avr_chipinfo.html ලෙස හැඳින්වෙන ලේඛන නාමාවලියෙහි පිහිටා ඇත

සම්පාදක බෙදා හැරීම. මෙම file සම්පාදකය විසින් සහාය දක්වන සියලුම උපාංග ලැයිස්තුගත කරයි. උපාංගයේ නමක් මත ක්ලික් කරන්න, සහ එය එම උපාංගය සඳහා අවසර ලත් වින්‍යාස බිටු සැකසුම්/අගය යුගල පෙන්වන පිටුවක් විවෘත කරනු ඇත.amples.

කාර්ය පටිපාටි වියුක්ත කිරීම එකලස් කිරීමේ කේතයේ පොදු බ්ලොක් වෙනුවට එම බ්ලොක් එකේ උපුටා ගත් පිටපතකට ඇමතුම් ප්‍රතිස්ථාපනය කරන ක්‍රියා පටිපාටි සාරාංශ ප්‍රශස්තකරණයන් සම්පාදකයට එක් කර ඇත. මේවා වෙනම යෙදුමක් මගින් සිදු කරනු ලබන අතර, 2, 3 මට්ටම තෝරාගැනීමේදී සම්පාදකයා විසින් ස්වයංක්‍රීයව ක්‍රියා කරයි. s ප්රශස්තකරණයන්. මෙම ප්‍රශස්තකරණයන් කේත ප්‍රමාණය අඩු කරයි, නමුත් ඒවා ක්‍රියාත්මක කිරීමේ වේගය සහ කේත නිදොස් කිරීමේ හැකියාව අඩු කරයි.
-mno-pa විකල්පය භාවිතයෙන් ක්‍රියාපටිපාටික සාරාංශය ඉහළ ප්‍රශස්තිකරණ මට්ටම් වලදී අක්‍රිය කළ හැකිය, නැතහොත් -mpa භාවිතයෙන් අඩු ප්‍රශස්තිකරණ මට්ටම් (ඔබේ බලපත්‍රයට යටත්ව) සක්‍රීය කළ හැක. වස්තුවක් සඳහා එය අක්රිය කළ හැක file -mno-pa-on-f ile= භාවිතා කරමින්fileනම, හෝ -mno-pa-onfunotion=f භාවිතයෙන් ශ්‍රිතයක් සඳහා අක්‍රීය කර ඇත කාර්යය.
ඔබගේ ප්‍රභව කේතය තුළ, ක්‍රියා පටිපාටිමය සාරාංශය ශ්‍රිතයේ නිර්වචනය සමඟ attribute_ ( (nopa) ) භාවිතා කිරීමෙන් හෝ _attribute_ ( (nopa, noinline) ) දක්වා විහිදෙන nopa භාවිතා කිරීමෙන් ක්‍රියාවලියක් සඳහා අක්‍රීය කළ හැකි අතර එමඟින් ශ්‍රිතය ඇතුළත් කිරීම සිදු වීම වළක්වයි. සහ පේළිගත කේතයේ සාරාංශයක් තිබීම.
ප්‍රග්මා හි අගුළු බිට් ආධාරක AVR අගුළු බිටු මෙන්ම අනෙකුත් වින්‍යාස බිටු නියම කිරීමට #pragma config දැන් භාවිතා කළ හැක. avr_chipinfo.html පරීක්ෂා කරන්න file (ඉහත සඳහන් කර ඇත) මෙම ප්‍රයෝගය සමඟ භාවිතා කිරීමට සැකසීම්/අගය යුගල සඳහා.
අලුත් උපාංග සහාය පහත කොටස් සඳහා සහය පවතී: AVR28DAl28, AVR64DAl28, AVR32DAl28, සහ AVR48DAl28.

3.11 අනුවාදය 2.05
ඔබේ මුදලට තවත් බිටු මෙම සම්පාදකයේ සහ බලපත්‍ර කළමනාකරුගේ macOS අනුවාදය දැන් 64-bit යෙදුමකි. මැකෝස් හි මෑත කාලීන අනුවාදවල අනතුරු ඇඟවීම් නොමැතිව සම්පාදකය ස්ථාපනය කර ධාවනය වන බව මෙය සහතික කරයි.
වැඩසටහන් මතකයේ ඇති Const objects සම්පාදකයට දැන් RAM හි ස්ථානගත කිරීම වෙනුවට, Flash මතක වැඩසටහන තුළ const-qualified objects ස්ථානගත කළ හැක. cons t-සුදුසුකම් ලත් ගෝලීය දත්ත ක්‍රමලේඛ ෆ්ලෑෂ් මතකයේ ගබඩා වන පරිදි සම්පාදකය වෙනස් කර ඇති අතර මෙම දත්ත වලට අදාල වැඩසටහන්-මතක උපදෙස් භාවිතයෙන් සෘජුව සහ වක්‍රව ප්‍රවේශ විය හැක. මෙම නව විශේෂාංගය පෙරනිමියෙන් සක්‍රීය කර ඇති නමුත් -mno-const-data-in-progmem විකල්පය භාවිතයෙන් අක්‍රිය කළ හැක. avrxmega3 සහ avrtiny architectures සඳහා, මෙම විශේෂාංගය අවශ්‍ය නොවන අතර, මෙම උපාංග සඳහා දත්ත ලිපින අවකාශයට වැඩසටහන් මතකය සිතියම්ගත කර ඇති බැවින්, සෑම විටම අක්‍රිය වේ.
සම්මතය නොමිලේ මෙම සම්පාදකයේ බලපත්‍ර රහිත (නොමිලේ) අනුවාද දැන් 2 මට්ටම දක්වා සහ ඇතුළුව ප්‍රශස්තකරණයට ඉඩ දෙයි. මෙය සම්මත බලපත්‍රයක් භාවිතයෙන් කලින් කළ හැකි ප්‍රතිදානයට සමාන, සමාන නොවූවත්, ප්‍රතිදානයකට ඉඩ සලසයි.
සාදරයෙන් පිළිගනිමු AVRASM2 2-bit උපාංග සඳහා AVRASM8 එකලස් කිරීම දැන් XC8 සම්පාදක ස්ථාපකය තුළ ඇතුළත් කර ඇත. මෙම එකලස් කරන්නා XC8 සම්පාදකය විසින් භාවිතා නොකෙරේ, නමුත් අතින් ලියන ලද එකලස් කිරීමේ මූලාශ්‍රය මත පදනම් වූ ව්‍යාපෘති සඳහා පවතී.
අලුත් උපාංග සහාය පහත කොටස් සඳහා සහය පවතී: ATMEGA1608, ATMEGA 1609, ATMEGA808, සහ ATMEGA809.

3.12 අනුවාදය 2.00
ඉහළ මට්ටමේ රියදුරු xc8 -cc නමින් හැඳින්වෙන නව ධාවකයක්, දැන් පෙර තිබූ avr-gcc ධාවකයට සහ xc8 ධාවකයට ඉහළින් පිහිටා ඇති අතර, එය ඉලක්ක උපාංගයේ තේරීම මත පදනම්ව සුදුසු සම්පාදකය ඇමතීමට හැකිය. මෙම ධාවකය GCC මාදිලියේ විකල්ප පිළිගනී, ඒවා ක්‍රියාත්මක වන සම්පාදකය සඳහා පරිවර්තනය කර හෝ එය හරහා යවනු ලැබේ. මෙම ධාවකය ඕනෑම AVR හෝ PIC ඉලක්කයක් සමඟ සමාන අර්ථකථන සහිත සමාන විකල්ප කට්ටලයක් භාවිතා කිරීමට ඉඩ සලසයි, එබැවින් සම්පාදකය කැඳවීමට නිර්දේශිත ක්‍රමය වේ. අවශ්‍ය නම්, පැරණි avr-gcc ධාවකය කලින් සම්පාදක අනුවාද වල පිළිගත් පැරණි මාදිලියේ විකල්ප භාවිතා කර කෙලින්ම ඇමතිය හැක.
පොදු C අතුරුමුහුණත මෙම සම්පාදකයට දැන් MPLAB Common C අතුරුමුහුණතට අනුකූල විය හැක, සියලු MPLAB XC සම්පාදක හරහා මූලාශ්‍ර කේතය වඩාත් පහසුවෙන් ගෙනයාමට ඉඩ සලසයි. -mext=cci විකල්පය මෙම විශේෂාංගය ඉල්ලා සිටින අතර, බොහෝ භාෂා දිගු සඳහා විකල්ප වාක්‍ය ඛණ්ඩ සක්‍රීය කරයි.
නව පුස්තකාලයාධිපති රියැදුරු ඒ නව පුස්තකාලයාධිපති රියදුරු පෙර PIC පුස්තකාලයාධිපති සහ AVR avr-ar පුස්තකාලයාධිපතිවරයාට ඉහළින් ස්ථානගත කර ඇත. මෙම ධාවකය GCC-archiver-style විකල්පයන් පිළිගනී, ඒවා එක්කෝ පරිවර්තනය කර හෝ ක්‍රියාත්මක වන පුස්තකාලයාධිපති වෙත යවනු ලැබේ. නව ධාවකය ඕනෑම PIC හෝ AVR පුස්තකාලයක් සෑදීමට හෝ හැසිරවීමට සමාන අර්ථකථන සහිත සමාන විකල්ප කට්ටලයක් භාවිතා කිරීමට ඉඩ දෙයි. file එබැවින් පුස්තකාලයාධිපතිවරයා කැඳවීමට නිර්දේශිත මාර්ගය වේ. ලෙගසි ව්‍යාපෘති සඳහා අවශ්‍ය නම්, පෙර පුස්තකාලයාධිපතිවරයා කලින් සම්පාදක අනුවාදවල පිළිගත් පැරණි මාදිලියේ විකල්ප භාවිතා කර සෘජුවම ඇමතිය හැක.

සංක්‍රමණ ගැටළු

සම්පාදකයා විසින් දැන් වෙනස් ලෙස හසුරුවන පහත දැක්වෙන am විශේෂාංග. මෙම සම්පාදක අනුවාදයට කේතය මාරු කරන්නේ නම්, මෙම වෙනස්කම් සඳහා ඔබේ මූලාශ්‍ර කේතය වෙනස් කිරීම අවශ්‍ය විය හැකිය. උපමාතෘකා වල අනුවාද අංකයෙන් දැක්වෙන්නේ පහත වෙනස්කම් වලට සහය දක්වන පළමු සම්පාදක අනුවාදයයි.

4.1 අනුවාදය 2.39 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
කිසිවක් නැත.
4.2 අනුවාදය 2.36 කිසිවක් නැත.
4.3. අනුවාදය 2.35
අනෙකුත් XC සම්පාදක සමඟ අනුකූලතාව සහතික කිරීම සඳහා, තන්තු සිට පාදයන් හැසිරවීම (XC8-2420), XC8 string-to strtol () වැනි ශ්‍රිත, සඳහන් කර ඇති පාදය 36 ට වඩා විශාල නම්, ආදාන තන්තුවක් පරිවර්තනය කිරීමට තවදුරටත් උත්සාහ නොකරන අතර ඒ වෙනුවට EINVAL ලෙස errno සකසනු ඇත. C ප්‍රමිතියේ හැසිරීම නිශ්චිතව දක්වා නැත මෙම පාදක අගය ඉක්මවා ගිය විට කාර්යයන්.
නුසුදුසු වේග ප්‍රශස්තිකරණය 3 මට්ටමේ ප්‍රශස්තකරණය (-03) තෝරාගැනීමේදී ක්‍රියාපටිපාටික වියුක්ත ප්‍රශස්තකරණයන් සක්‍රීය කර ඇත. මෙම ප්‍රශස්තකරණය කේත වේගයේ වියදමින් කේත ප්‍රමාණය අඩු කරයි, එබැවින් සිදු නොකළ යුතුය. මෙම ප්‍රශස්තිකරණ මට්ටම භාවිතා කරන ව්‍යාපෘති මෙම නිකුතුව සමඟ ගොඩනඟන විට කේත ප්‍රමාණයේ සහ ක්‍රියාත්මක කිරීමේ වේගයෙහි වෙනස්කම් දැකිය හැකිය.
පුස්තකාල ක්රියාකාරිත්වය බොහෝ සම්මත C පුස්තකාල ශ්‍රිතයන් සඳහා කේතය දැන් පැමිණෙන්නේ Microchip හි Unified Standard Library වෙතින් වන අතර, එය කලින් avr-libc පුස්තකාලය විසින් සපයන ලද ඒවාට සාපේක්ෂව සමහර තත්වයන් තුළ වෙනස් හැසිරීම් ප්‍රදර්ශනය කළ හැකිය. උදාහරණයක් ලෙසample, float-format specifier සඳහා ආකෘතිගත I1 සහාය සක්‍රිය කිරීමට 1printf flt පුස්තකාලය (-0printf_flt විකල්පය) සම්බන්ධ කිරීම තවදුරටත් අවශ්‍ය නොවේ. Microchip Unified Standard Library හි ඇති smart 10 විශේෂාංග මෙම විකල්පය අතිරික්ත කරයි. අතිරේකව, ෆ්ලෑෂ්හි const strings මත ක්‍රියා කරන තන්තු සහ මතක ක්‍රියාකාරකම් සඳහා (උදා: strcpy_P ( ) ආදිය..) _P උපසර්ග ක්‍රියාවලි භාවිතය තවදුරටත් අවශ්‍ය නොවේ. const-data-in-program-memory විශේෂාංගය සක්‍රීය කර ඇති විට සම්මත C චර්යාවන් (උදා: strcpy 0 ) එවැනි දත්ත සමඟ නිවැරදිව ක්‍රියා කරයි.

4.4 අනුවාදය 2.32
කිසිවක් නැත.
4.5 අනුවාදය 2.31
කිසිවක් නැත.
4.6 අනුවාදය 2.30
කිසිවක් නැත.
4.1 අනුවාදය 2.29 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
කිසිවක් නැත.
4.2 අනුවාදය 2.20
වෙනස් කරන ලද DFP පිරිසැලසුම දැන් සම්පාදකය DFPs (උපාංග පවුල් ඇසුරුම්) විසින් භාවිතා කරන වෙනස් පිරිසැලසුමක් උපකල්පනය කරයි. මෙයින් අදහස් කරන්නේ පැරණි DFP මෙම නිකුතුව සමඟ ක්‍රියා නොකරනු ඇති බවත්, පැරණි සම්පාදකයින්ට නවතම DFP භාවිතා කිරීමට නොහැකි වනු ඇති බවත්ය.

4.3 අනුවාදය 2.19 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
කිසිවක් නැත.
4.4 අනුවාදය 2.10 නැත
4.5 අනුවාදය 2.05
වැඩසටහන් මතකයේ ඇති Const objects පෙරනිමියෙන් const-qualfiied වස්තු වැඩසටහන් මතකයේ තැන්පත් කර ප්‍රවේශ වන බව සලකන්න (ඇය විස්තර කර ඇති පරිදි). මෙය ඔබගේ ව්‍යාපෘතියේ ප්‍රමාණයට සහ ක්‍රියාත්මක වීමේ වේගයට බලපානු ඇත, නමුත් RAM භාවිතය අඩු කළ යුතුය. අවශ්‍ය නම්, -mnocons t-data-in-pr ogmem විකල්පය භාවිතයෙන් මෙම විශේෂාංගය අක්‍රිය කළ හැක.

4.6 අනුවාදය 2.00
වින්‍යාස ෆියුස් උපාංග වින්‍යාස ෆියුස් දැන් වින්‍යාස ප්‍රාග්මාවක් භාවිතයෙන් පසුව ෆියුස් තත්වය නියම කිරීමට සැකසුම් අගය යුගල භාවිතයෙන් වැඩසටහන්ගත කළ හැක, උදා #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
නිරපේක්ෂ වස්තූන් සහ කාර්යයන් CCI _ භාවිතයෙන් වස්තු සහ කාර්යයන් දැන් මතකයේ නිශ්චිත ලිපිනයක තැබිය හැක.at (ලිපිනය) specifier, උදාහරණයක් ලෙසampලෙ:
ඇතුළත් නම්
(0)0300100 හි int foobar;
char at(0x250) getID(int offset) ( මෙම specifier සඳහා වන තර්කය පළමු බයිටය හෝ උපදෙස් ලබා දෙන ලිපිනය නියෝජනය කරන නියතයක් විය යුතුය. RAM ලිපින Ox800000 හි ඕෆ්සෙට් එකක් භාවිතා කර පෙන්වයි. CCI සබල කරන්න මෙම විශේෂාංගය භාවිතා කරන්න.
නව බාධාකාරී ක්‍රියාකාරී සින්ටැක්ස් සම්පාදකය දැන් CCI _interrupt පිළිගනී (අංකය) C ශ්‍රිතයන් බාධාකාරී හසුරුවන්නක් බව දැක්වීමට specifier. නිශ්චයකයා බාධා අංකයක් ගනී, උදාampලෙ:

ස්ථාවර ගැටළු

සම්පාදකයට සිදු කර ඇති පහත නිවැරදි කිරීම්. මේවා උත්පාදනය කරන ලද කේතයේ දෝෂ නිරාකරණය කිරීමට හෝ පරිශිලක මාර්ගෝපදේශය විසින් අදහස් කරන ලද හෝ නිශ්චිතව දක්වා ඇති ආකාරයට සම්පාදකයේ ක්‍රියාකාරිත්වය වෙනස් කිරීමට ඉඩ ඇත. උපසිරැසිවල ඇති අනුවාද අංකය, පසුව එන ගැටළු සඳහා නිවැරදි කිරීම් අඩංගු පළමු සම්පාදක අනුවාදය දක්වයි. මාතෘකාවේ ඇති වරහන් ලේබලය(ය) ලුහුබැඳීමේ දත්ත ගබඩාවේ එම ගැටලුව හඳුනාගැනීමයි. ඔබට සහාය සම්බන්ධ කර ගැනීමට අවශ්‍ය නම් මේවා ප්‍රයෝජනවත් විය හැක.
උපාංග පවුලේ පැකේජය (DR)) උපාංගය හා සම්බන්ධ. DFPs වෙත සිදු කරන ලද වෙනස්කම් පිළිබඳ තොරතුරු සහ නවතම ඇසුරුම් බාගත කිරීම සඳහා MPLAB ඇසුරුම් කළමනාකරු බලන්න.

5.1 අනුවාදය 2.39 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
කිසිවක් නැත.
5.2 අනුවාදය 2.36
ප්‍රමාද කිරීමේදී දෝෂයකි (XCS2774) පෙරනිමි නිදහස් ප්‍රකාර ප්‍රශස්තිකරණයන්හි සුළු වෙනස්වීම් මඟින් ප්‍රමාදය ගොඩනංවන ලද කාර්යයන් වෙත ඔපෙරාන්ඩ් ප්‍රකාශන නිරන්තරයෙන් නැවීම වැළැක්විය, එහි ප්‍රතිඵලයක් ලෙස ඒවා නියත නොවන ලෙස සලකනු ලබන අතර දෝෂය අවුලුවයි. build in_avr_delay_cycles compile time integer නියතයක් අපේක්ෂා කරයි.

5.3 අනුවාදය 2.35
එක ළඟ වෙන් කිරීම _at භාවිතා කරමින් (XCS2653) එකම නම සහිත කොටසක බහු වස්තු ස්ථාන අඛණ්ඩව වෙන් කිරීම සහ _at () භාවිතා කිරීම නිවැරදිව ක්‍රියා කළේ නැත. උදාහරණයක් ලෙසampලෙ:
const char arrl[ ] attribute (section(“.mysec”) at (0x500) = (OxAB, OxCD);
const char arr2[ ] attribute (sectionr.mysec”)= (OxEF, OxFE);
arri පසු වහාම arr2 තැබිය යුතුය.
කොටස් ආරම්භක ලිපින සඳහන් කිරීම (XCS2650) ද -wl, –section-start විකල්පය නම් කරන ලද ආරම්භක ලිපිනයෙහි කොටස් තැබීමට නිහඬව අසමත් විය. ඕනෑම අභිරුචි නම් කරන ලද කොටස් සඳහා මෙම ගැටළුව විසඳා ඇත; කෙසේ වෙතත්, එය වැනි කිසිදු සම්මත අංශයක් සඳහා ක්‍රියා නොකරනු ඇත. පෙළ හෝ . bss, a භාවිතයෙන් තැබිය යුතුය -wl, -T විකල්පය.
ලිහිල් කරන විට සම්බන්ධකය කඩා වැටේ (XCS2647) කවදාද -mrelax ප්‍රශස්තිකරණය සක්‍රීය කර ඇති අතර ඒවා පවතින මතකයට නොගැලපෙන කේත හෝ දත්ත කොටස් විය, සම්බන්ධකය බිඳ වැටුණි. දැන්, එවැනි තත්වයක් තුළ, ඒ වෙනුවට දෝෂ පණිවිඩ නිකුත් කරනු ලැබේ.
නෑ නෑවැටෙනවාආපසු (XCS2646) ද -nofallback විකල්පය නිවැරදිව ක්‍රියාත්මක කර හෝ ලේඛනගත කර නොමැත. සම්පාදකය බලපත්‍ර රහිත නම්, සම්පාදකය නැවත අඩු ප්‍රශස්තකරණ සැකසීමකට නොවැටෙන බව සහතික කිරීම සඳහා මෙය දැන් තෝරා ගත හැකි අතර ඒ වෙනුවට දෝෂයක් නිකුත් කරනු ඇත.
නුසුදුසු වේග ප්‍රශස්තකරණය (XCS2637) 3 මට්ටමේ ප්‍රශස්තකරණය (-03) තෝරාගැනීමේදී ක්‍රියාපටිපාටික වියුක්ත ප්‍රශස්තකරණයන් සක්‍රීය කර ඇත. මෙම ප්‍රශස්තකරණය කේත වේගයේ වියදමින් කේත ප්‍රමාණය අඩු කරයි, එබැවින් සිදු නොකළ යුතුය.
නරක EEPROM ප්‍රවේශය (XCS2629) -mconst-data-in-progmem විකල්පය සක්‍රීය කර ඇති විට eeprom_read_block චර්යාව Xmega උපාංගවල නිවැරදිව ක්‍රියා නොකළේය (එය පෙරනිමි තත්ත්වය වේ), එහි ප්‍රතිඵලයක් ලෙස EEPROM මතකය නිවැරදිව කියවීමට නොහැකි විය.
වලංගු නොවන මතක වෙන් කිරීම (X03-2593, XC8-2651) කවදාද -Ttext හෝ -Tdata සම්බන්ධක විකල්පය (උදාample passed through a -wl driver option) නිශ්චිතව දක්වා ඇත, අනුරූප පෙළ/දත්ත කලාපයේ සම්භවය යාවත්කාලීන කරන ලදී; කෙසේ වෙතත්, අවසාන ලිපිනය ඒ අනුව සකස් නොකළ අතර, එමඟින් කලාපය ඉලක්කගත උපාංගයේ මතක පරාසය ඉක්මවා යාමට හේතු විය හැක.
අධික ලෙස ආරෝපණය කළ ශ්‍රිතයක් සහිත බිඳ වැටීම (XC8-2580) බාධා කිරීම්, සංඥා හෝ nmi ගුණාංග එකකට වඩා භාවිතා කරමින් ශ්‍රිතයක් ප්‍රකාශ කළහොත් සම්පාදකය බිඳ වැටේ, උදා, _attribute_ ( ( සංඥා , බාධා කිරීම් ) ).
වලංගු නොවන ATtiny බාධා කේතය (XC8-2465) ATtiny උපාංග සඳහා තැනීමේදී සහ ප්‍රශස්තිකරණය අක්‍රිය කර ඇති විට (-00), බාධා කිරීමේ ක්‍රියාකාරකම් මඟින් ඔපෙරාන්ඩ් පරාසයෙන් පිටත එකලස් කිරීමේ පණිවිඩ ක්‍රියාරම්භ කර ඇත.
භාවිතා කරන විට විකල්ප සම්මත නොවේ (XC8-2452). -wl බහුවිධ, කොමාවෙන් වෙන් වූ සම්බන්ධක විකල්ප සමඟ විකල්පය, සියලුම සම්බන්ධක විකල්ප සම්බන්ධකය වෙත ලබා නොදෙන ලදී.
ක්‍රමලේඛ මතකය වක්‍රව කියවීමේ දෝෂයක් (X03-2450) සමහර අවස්ථා වලදී, සම්පාදකය නිපදවා ඇත පොයින්ටරයක සිට ක්‍රමලේඛන මතකය දක්වා බයිට් දෙකක අගයක් කියවන විට අභ්‍යන්තර දෝෂයක් (හඳුනාගත නොහැකි insn)

5.4 අනුවාදය 2.32
පුස්තකාලයේ දෙවන ප්‍රවේශය අසාර්ථකයි (X03-2381) පවතින පුස්තකාල සංරක්ෂිතයකට ප්‍රවේශ වීම සඳහා xc8-ar.exe පුස්තකාල සංරක්ෂිතයේ Windows අනුවාදය දෙවන වරට කැඳවීම දෝෂ පණිවිඩය නැවත නම් කිරීමට නොහැකි වීමත් සමඟ අසාර්ථක විය හැක.

5.5 අනුවාදය 2.31
පැහැදිලි කළ නොහැකි සම්පාදක අසාර්ථක (XC8-2367) ධාවනය වන විට වින්ඩෝස් පද්ධති තාවකාලික ඩිරෙක්ටරිය '.' තිතක් ඇතුළත් මාර්ගයකට සකසා තිබූ වේදිකා අක්ෂරය, සම්පාදකය ක්‍රියාත්මක කිරීමට අසමත් විය හැක.

5.6 අනුවාදය 2.30
ගෝලීය ලේබල් ගෙනහැර දැක්වීමෙන් පසු අස්ථානගත වී ඇත (XC8-2299) අතින් ලිඛිත එකලස් කිරීමේ කේතය ගෝලීයව ස්ථානගත කරයි ක්‍රියා පටිපාටිමය සාරාංශය මගින් සාධක කර ඇති එකලස් කිරීමේ අනුපිළිවෙල තුළ ලේබල් නිවැරදිව නැවත ස්ථානගත කර නොතිබිය හැකිය.
සැහැල්ලු කඩා වැටීමක් (XC8-2287) භාවිතා කරමින් -mrelax විකල්පය විට සම්බන්ධකය බිඳ වැටීමට හේතු විය හැක tail jump relaxation optimizations උත්සාහ කළේ a අවසානයේ නොතිබූ ret උපදෙස් ඉවත් කිරීමටයි කොටස.
“ලේබල් අගයන්” GNU C භාවිතයෙන් ලේබල් අගයන් (XC8-2282) ප්‍රශස්ත කරන විට බිඳ වැටේ භාෂා දිගුව මඟින් ක්‍රියා පටිපාටික වියුක්ත ප්‍රශස්තකරණයන් බිඳ වැටීමට හේතු විය හැක, ගෙනහැර දක්වන ලද VMA පරාසයක විහිදුනු නිවැරදි කිරීමේ දෝෂයකි.
එතරම් const නොවේ (XC8-2271) සඳහා මූලාකෘති strstr () සහ අනෙකුත් කාර්යයන් වෙතින් -mconst-data- inprogmem විශේෂාංගය අක්‍රිය කර ඇති විට ආපසු ලබා දුන් string pointer හි සම්මත නොවන const qualifier තවදුරටත් සඳහන් නොකරන්න. avrxmega3 සහ avrtiny උපාංග සමඟ, මෙම විශේෂාංගය ස්ථිරවම සක්‍රීය කර ඇති බව සලකන්න.
නැතිවූ ආරම්භක (XC8-2269) පරිවර්තනයක විචල්‍ය එකකට වඩා වැඩි විට ඒකකය කොටසක තබා ඇත (භාවිතා කර ඇත කොටස or ගුණාංගය ( (කොටස) )), සහ එවැනි පළමු විචල්‍යය ශුන්‍ය ආරම්භ කිරීම හෝ ආරම්භකයක් නොතිබීම, එකම පරිවර්තන ඒකකයේ වෙනත් විචල්‍යයන් සඳහා එම කොටසෙහි තබා ඇති ආරම්භකයන් නැති විය.

5.1 අනුවාදය 2.2 9 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව) කිසිවක් නැත. 
5.2 අනුවාදය 2.20
දිගු විධානයන් සහිත දෝෂයක් (XC8-1983) AVR ඉලක්කයක් භාවිතා කරන විට, විධාන රේඛාව අතිශයින් විශාල නම් සහ උද්ධෘත, පසුතල යනාදී විශේෂ අක්ෂර අඩංගු නම්, compiler එක lilt not found දෝෂයක් සමඟ නතර වී තිබිය හැක.
පවරා නොදුන් rodata කොටස (XC8-1920) AVR සම්බන්ධකය avrxmega3 සහ avrtiny architectures සඳහා ගොඩනඟන විට අභිරුචි rodata කොටස් සඳහා මතකය පැවරීමට අසමත් විය, මතකය අතිච්ඡාදනය වීමේ දෝෂ ඇති කළ හැකිය.

5.3 අනුවාදය 2.19 (ක්‍රියාකාරී ආරක්ෂණ නිකුතුව)
කිසිවක් නැත.
5.4 අනුවාදය 2.10
නැවත ස්ථානගත කිරීමේ අසමත්වීම් (XC8-1891) හොඳම යෝග්‍යතා විබෙදුම්කරු වූයේ සම්බන්ධක ලිහිල් කිරීමෙන් පසු කොටස් අතර මතක 'සිදුරු' තැබීමයි. මතකය ඛණ්ඩනය කිරීම හැරුණු විට, මෙය pc-සාපේක්ෂ පැනීම් හෝ ඇමතුම් පරාසයෙන් බැහැර වීම සම්බන්ධ සම්බන්ධක නැවත ස්ථානගත කිරීමේ අසාර්ථක වීමේ හැකියාව වැඩි කළේය.
ලිහිල් කිරීම මගින් පරිවර්තනය නොකළ උපදෙස් (XC8-1889) පැනීමේ හෝ ඇමතුම් උපදෙස් සඳහා සම්බන්ධක ලිහිල් කිරීම සිදු නොවීය, ලිහිල් කළහොත් ඉලක්ක කරා ළඟා විය හැකිය.
අතුරුදහන් ක්‍රියාකාරීත්වය (XC8E-3) අර්ථ දැක්වීම් කිහිපයක් , clock_div_t සහ clock_presc ale_s et () වැනි, ATmega324PB, ATmega328PB, ATtiny441, සහ ATtiny841 ඇතුළු උපාංග සඳහා අර්ථ දක්වා නැත.
මැක්‍රෝ අස්ථානගත වී ඇත පූර්ව ප්‍රොසෙසර මැක්‍රෝස් _XC 8_MODE_, XC 8 VERS ION, XC, සහ xc8 සම්පාදකයා විසින් ස්වයංක්‍රීයව අර්ථ දක්වා නැත. මේවා දැන් තිබේ.

5.5 අනුවාදය 2.05
අභ්‍යන්තර සම්පාදක දෝෂය (XC8-1822) වින්ඩෝස් යටතේ ගොඩනැගීමේදී, කේතය ප්‍රශස්ත කිරීමේදී අභ්‍යන්තර සම්පාදක දෝෂයක් ඇති විය හැක.
RAM පිටාර ගැලීම අනාවරණය නොවීය (XC8-1800, XC8-1796) පවතින RAM ප්‍රමාණය ඉක්මවන වැඩසටහන් සමහර අවස්ථා වලදී සම්පාදකයා විසින් අනාවරණය කර නොගත් අතර, එහි ප්‍රතිඵලයක් ලෙස ධාවන කාල කේතය අසාර්ථක විය.
අතහැර දැමූ ෆ්ලෑෂ් මතකය (XC8-1792) avrxmega3 සහ avrtiny උපාංග සඳහා, ෆ්ලෑෂ් මතකයේ කොටස් MPLAB X IDE මඟින් වැඩසටහන්ගත නොකර තබා තිබිය හැක.
ප්‍රධාන (XC8-1788) ක්‍රියාත්මක කිරීමට අපොහොසත් වීම වැඩසටහනට ගෝලීය විචල්‍යයන් නිර්වචනය කර නොමැති සමහර අවස්ථාවන්හිදී, ධාවන කාල ආරම්භක කේතය පිටව නොගිය අතර ප්‍රධාන () ශ්‍රිතයට කිසි විටෙකත් ළඟා නොවීය.
වැරදි මතක තොරතුරු (XC8-1787) avrxmega3 සහ avrtiny උපාංග සඳහා, avr-size වැඩසටහන මඟින් වැඩසටහන් මතකය වෙනුවට පිස්සු පමණක් දත්ත RAM පරිභෝජනය කරන බව වාර්තා කරයි.
වැරදි ක්‍රමලේඛ මතක කියවීම (XC8-1783) දත්ත ලිපින අවකාශයට සිතියම්ගත කර ඇති ක්‍රමලේඛ මතකය සහිත උපාංග සඳහා සම්පාදනය කරන ලද ව්‍යාපෘති සහ PROGMEM macro/attribute භාවිතා කරන වස්තු නිර්වචනය කරන මෙම වස්තූන් වැරදි ලිපිනයකින් කියවා තිබිය හැක.
ගුණාංග සහිත අභ්‍යන්තර දෝෂයක් (XC8-1773) ඔබ _at 0 හෝ attribute() ටෝකන සමඟ පොයින්ටර් වස්තු නිර්වචනය කළේ නම්, උදා:ample, char * _at (0x800150) cp; එවැනි කේතයක් හමු වුවහොත් දැන් අනතුරු ඇඟවීමක් නිකුත් කෙරේ.

ප්‍රධාන ක්‍රියාත්මක කිරීමට අපොහොසත් වීම (XC8-1780, XC8-1767,XC8-1754) EEPROM විචල්‍යයන් භාවිතා කිරීම හෝ වින්‍යාස ප්‍රයෝගය භාවිතයෙන් ෆියුස් නිර්වචනය කිරීම ප්‍රධාන 0 වෙත ළඟා වීමට පෙර, ධාවන කාල ආරම්භක කේතයේ වැරදි දත්ත ආරම්භ කිරීම සහ/හෝ අගුලු දමා ඇති වැඩසටහන් ක්‍රියාත්මක කිරීමට හේතු විය හැක.

කුඩා උපාංග සමඟ ෆියුස් දෝෂය (XC8-1778, XC8-1742) attiny4/5/9/10120140 උපාංගවල ශීර්ෂයේ වැරදි ෆියුස් දිගක් දක්වා ඇත fileෆියුස් නිර්වචනය කරන ලද කේතය තැනීමට උත්සාහ කිරීමේදී සම්බන්ධක දෝෂ වලට තුඩු දෙන s.

ඛණ්ඩනය කිරීමේ දෝෂය (XC8-1777) කඩින් කඩ ඛණ්ඩනය කිරීමේ දෝෂයක් නිවැරදි කර ඇත.

එකලස් කිරීමේ බිඳවැටීම (XC8-1761) compiler Ubuntu 18 යටතේ ක්‍රියාත්මක වන විට avr -as assembler එක කඩා වැටෙන්නට ඇත.

නිෂ්කාශනය නොකළ වස්තු (XC8-1752) ආරම්භ නොකළ ස්ථිතික ගබඩා කාල වස්තු ධාවන කාල ආරම්භක කේතය මගින් ඉවත් කර නොතිබිය හැකිය.

ගැටුම්කාරී උපාංග පිරිවිතර නොසලකා හරින ලදී (XC8-1749) The බහු උපාංග පිරිවිතර විකල්ප භාවිතා කරන විට සහ විවිධ උපාංග දක්වන විට compiler දෝෂයක් ජනනය කළේ නැත.

ගොඩ අනුව මතක දූෂණය (XC8-1748) ද _heap_start සංකේතය වැරදි ලෙස සකසා ඇති අතර, එහි ප්‍රතිඵලයක් ලෙස සාමාන්‍ය විචල්‍යයන් ගොඩ මගින් දූෂිත වීමට ඉඩ ඇත.

සම්බන්ධක නැවත ස්ථානගත කිරීමේ දෝෂය (XC8-1739) හරියටම බයිට් 4ක් දුරින් ඉලක්කයක් සහිත rjmn හෝ rcall කේතයක් අඩංගු වූ විට සම්බන්ධක නැවත ස්ථානගත කිරීමේ දෝෂයක් නිකුත් වී තිබිය හැක.

5.6 අනුවාදය 2.00 නැත.

දන්නා ගැටළු

සම්පාදකයේ ක්‍රියාකාරිත්වයේ සීමාවන් පහත දැක්වේ. මේවා සාමාන්‍ය කේතීකරණ සීමා කිරීම් හෝ පරිශීලක අත්පොතෙහි අඩංගු තොරතුරු වලින් බැහැරවීම් විය හැක. වඩදිය බාදිය තුළ ඇති වරහන් ලේබලය (ය) ලුහුබැඳීමේ දත්ත ගබඩාවේ එම ගැටලුව හඳුනාගැනීමයි. ඔබට සහාය සම්බන්ධ කර ගැනීමට අවශ්‍ය නම් මෙය ප්‍රයෝජනවත් විය හැකිය. ලේබල් නොමැති එම අයිතම මෝඩි ක්‍රියාන්විතය විස්තර කරන සීමාවන් වන අතර ඒවා ස්ථිරවම ක්‍රියාත්මක වීමට ඉඩ ඇත.
6.1 MPLAB X IDE ඒකාබද්ධ කිරීම
MPLAB IDE ඒකාබද්ධ කිරීම MPLAB IDE වෙතින් Compiler භාවිතා කිරීමට අවශ්‍ය නම්, Compiler ස්ථාපනය කිරීමට පෙර ඔබ MPLAB IDE ස්ථාපනය කළ යුතුය.
6.2 කේත උත්පාදනය
වැරදියි ආරම්භ කිරීම (XC8-2679) සමහර ගෝලීය/ස්ථිතික බයිට් ප්‍රමාණයේ වස්තු සඳහා මූලික අගයන් දත්ත මතකයේ තබා ඇති ස්ථානය සහ ධාවන වේලාවේදී විචල්‍යයන් වෙත ප්‍රවේශ වන ස්ථානය අතර විෂමතාවයක් ඇත.
strtod වැරදි ලෙස endptr සකසයි (XC8-2652) strtod () මගින් පරිවර්තනය කිරීම සඳහා විෂය තන්තුවක ඝාතීය ආකෘතියේ පාවෙන ලක්ෂ්‍ය අංකයක් ලෙස පෙනෙන දේ අඩංගු වන විට සහ e අක්ෂරයකට පසුව අනපේක්ෂිත අක්ෂරයක් ඇති අවස්ථා වලදී, endptr ලිපිනය, සපයා ඇත්නම්, පසුව අක්ෂරය වෙත යොමු කෙරේ. ඊ මිස ඊ ම නොවේ. උදාහරණයක් ලෙසample: strtod ("100exy", endptr);

endptr x අක්ෂරය වෙත යොමු වීමට හේතු වනු ඇත.

නරක වක්‍ර ක්‍රියාකාරී ඇමතුම් (X03-2628) සමහර අවස්ථාවලදී, ව්‍යුහයක කොටසක් ලෙස ගබඩා කර ඇති ශ්‍රිත දර්ශකයක් හරහා සිදු කරන ලද ක්‍රියාකාරී ඇමතුම් අසාර්ථක විය හැක.

strtof ෂඩ් දශම පාවෙන සඳහා ශුන්‍යය ලබා දෙයි (XC8-2626) පුස්තකාල ශ්‍රිත strtof () et al සහ scanf () et al, සෑම විටම ඝාතකයක් ශුන්‍යයට සඳහන් නොකරන ෂඩාස්‍ර පාවෙන ලක්ෂ්‍ය අංකයක් පරිවර්තනය කරයි. උදාහරණයක් ලෙසample: strtof ("Oxl", &endptr) ; 0 නොව 1 අගය ලබා දෙනු ඇත.
සාවද්‍ය තොග උපදේශක පණිවිඩ යැවීම (XC8-2542, XC8-2541) සමහර අවස්ථා වලදී, භාවිතා කරන ලද පුනරාවර්තනය හෝ අවිනිශ්චිත තොගය (සමහර විට alloca() භාවිතය හරහා) සම්බන්ධ අට්ටි උපදේශක අනතුරු ඇඟවීම නිකුත් නොකෙරේ.
අනුපිටපත් බාධා කිරීමේ කේතය සමඟ අසමත් වීම (XC8-2421) එක් බාධාකාරී ශ්‍රිතයකට වඩා එකම ශරීරයක් ඇති විට, සම්පාදකයට එක් බාධාකාරී ශ්‍රිතයක් අනෙකට ඇමතීමේ ප්‍රතිදානය තිබිය හැක. මෙහි ප්‍රතිඵලයක් ලෙස සියලුම ඇමතුම්-ක්ලෝබර්ඩ් රෙජිස්ටර් අනවශ්‍ය ලෙස සුරැකෙනු ඇති අතර, කේත අසාර්ථක වීමට හේතු විය හැකි වත්මන් බාධා කිරීම් හසුරුවන්නාගේ කථාංගය ක්‍රියාත්මක වීමට පෙර පවා බාධා කිරීම් සක්‍රීය වනු ඇත.
කොන්ස් වැඩසටහන් මතකයේ නොමැති වස්තූන් (XC8-2408) avrxmega3 සහ avrtiny ව්‍යාපෘති සඳහා Unitialized const objects දත්ත මතකය තුළට දමනු ලැබේ, අනතුරු ඇඟවීමක් මඟින් ඒවා වැඩසටහන් මතකයේ තබා ඇති බව පැවසුවද. මෙය දත්ත මතක අවකාශයට සිතියම්ගත කර ඇති ක්‍රමලේඛ මතකය නොමැති උපාංගවලට බලපාන්නේ නැත, එය ආරම්භ කරන ලද කිසිදු වස්තුවකට බලපාන්නේ නැත.
වලංගු නොවන DFP මාර්ගයක් සහිත නරක ප්‍රතිදානය (XCS-2376) සම්පාදකය වලංගු නොවන DFP මාර්ගයක් සහ 'විශේෂයක්' සමඟ ක්‍රියා කරන්නේ නම් file තෝරාගත් උපාංගය සඳහා පවතී, සම්පාදකය අතුරුදහන් උපාංග පවුල් ඇසුරුම වාර්තා නොකරන අතර ඒ වෙනුවට 'විශේෂය' තෝරා ගනී file, පසුව අවලංගු ප්‍රතිදානයකට තුඩු දිය හැක. 'විශේෂය' fileබෙදා හරින ලද DFP සමඟ යාවත්කාලීන නොවිය හැකි අතර අභ්‍යන්තර සම්පාදක පරීක්ෂණ සමඟ පමණක් භාවිතා කිරීමට අදහස් කරන ලදී.
මතක අතිච්ඡාදනය අනාවරණය නොවීය (XC8-1966) සම්පාදකයා ලිපිනයක (_at 0 හරහා) නිරපේක්ෂ කරන ලද වස්තූන්ගේ මතක අතිච්ඡාදනය සහ _ භාවිතා කරන වෙනත් වස්තූන් හඳුනා නොගනී.නිකායඅයන () specifier සහ එම ලිපිනයටම සම්බන්ධ කර ඇත.
පුස්තකාල කාර්යයන් සහ _memx සමඟ අසමත් වීම (XC8-1763) _memx ලිපින අවකාශයේ තර්කයක් සමඟින් හැඳින්වෙන libgcc float ශ්‍රිත අසාර්ථක විය හැක. පුස්තකාල චර්යාවන් සමහර C ක්‍රියාකරුවන්ගෙන් කැඳවනු ලබන බව සලකන්න, උදාහරණයක් ලෙසample, පහත කේතය බලපායි: regFloatVar > memxFloatVar ආපසු දෙන්න;
සීමිත libgcc ක්‍රියාත්මක කිරීම (AVRTC-731) සඳහා ATTiny4/5/9/10/20/40 නිෂ්පාදන, libgcc හි සම්මත C / Math පුස්තකාල ක්‍රියාත්මක කිරීම ඉතා සීමිත හෝ නොපවතී.
වැඩසටහන් මතක සීමාවන් (AVRTC-732) 128 kb ට වැඩි වැඩසටහන් මතක රූප සඳහා මෙවලම් දාමය මඟින් සහය දක්වයි; කෙසේ වෙතත්, -mrelax විකල්පය භාවිතා කරන විට අවශ්‍ය ශ්‍රිත අංකුර උත්පාදනය කරනවාට වඩා ලිහිල් කිරීමකින් තොරව සහ ප්‍රයෝජනවත් දෝෂ පණිවිඩයකින් තොරව සම්බන්ධකය ගබ්සා වන අවස්ථා දන්නා අවස්ථා තිබේ.
අවකාශ සීමාවන් නම් කරන්න (AVRTC-733) නම් කරන ලද ලිපින අවකාශයන් භාවිතා කරන්නාගේ මාර්ගෝපදේශ කොටසේ විශේෂ ආකාරයේ සුදුසුකම් වල සඳහන් සීමාවන්ට යටත්ව මෙවලම් දාමය මගින් සහය දක්වයි.
වේලා කලාප ද පුස්තකාල ශ්‍රිතයන් GMT උපකල්පනය කරන අතර ප්‍රාදේශීය වේලා කලාප සඳහා සහය නොදක්වයි, මේ අනුව loca It ime 0 gmtime ( ) ලෙස එකම වේලාවක ආපසු ලබා දෙනු ඇත, උදාහරණයක් ලෙසample.

ලේඛන / සම්පත්

MICROCHIP MPLAB XC8 C සම්පාදක අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන් [pdf] පරිශීලක මාර්ගෝපදේශය
MPLAB XC8 C Compiler අනුවාදය 2.39 AVR MCU සඳහා නිකුතු සටහන්, MPLAB XC8 C, Compiler අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන්, AVR MCU සඳහා නිකුත් කිරීමේ සටහන්
MICROCHIP MPLAB XC8 C සම්පාදක අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන් [pdf] පරිශීලක මාර්ගෝපදේශය
MPLAB XC8 C Compiler අනුවාදය 2.39 AVR MCU සඳහා නිකුතු සටහන්, MPLAB XC8 C, Compiler අනුවාදය 2.39 AVR MCU සඳහා නිකුත් කිරීමේ සටහන්, AVR MCU සඳහා සටහන්
මයික්‍රොචිප් MPLAB XC8 C සම්පාදකය [pdf] පරිශීලක මාර්ගෝපදේශය
MPLAB XC8 C Compiler, MPLAB XC8 C, Compiler

යොමු කිරීම්

කමෙන්ට් එකක් දාන්න

ඔබගේ විද්‍යුත් තැපැල් ලිපිනය ප්‍රකාශනය නොකෙරේ. අවශ්‍ය ක්ෂේත්‍ර සලකුණු කර ඇත *