مایکروچپ - logoد MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز یادښتونه
د کارن لارښود

دا سند د MPLAB XC8 C کمپیلر پورې اړوند مهم معلومات لري کله چې د مایکروچیپ AVR وسیلې په نښه کوي. مهرباني وکړئ د دې سافټویر چلولو دمخه یې ولولئ.
که تاسو د 8-bit PIC وسیلو لپاره کمپیلر کاروئ نو د عکس سند لپاره د MPLAB XC8 C کمپیلر ریلیز نوټونه وګورئ.

اوورview

1.1. پیژندنه
د مایکروچپ MPLAB® XC8 C کمپیلر دا خوشې کول یو فعال خوندیتوب کمپیلر دی، د دې کمپیلر v2.36 خوشې کولو پراساس او کوم چې اوس د شبکې سرور جواز ملاتړ کوي.
1.2. د خپریدو نیټه
د دې کمپیلر نسخې رسمي خپریدو نیټه د جنوري 27 ده 2022.
1.3. مخکینی نسخه
پخوانی MPLAB XC8 C کمپیلر نسخه 2.36 وه، د 25 جنوري 2022 خپور شو.
1.4. د فعالیت خوندیتوب لارښود
د MPLAB XC تالیف کونکو لپاره د فعالیت خوندیتوب لارښود د اسنادو کڅوړه کې شتون لري کله چې تاسو د فعال خوندیتوب جواز پیرود کوئ.
1.5. د اجزاو جوازونه او نسخې® هغه MPLAB
د AVR MCUs وسیلو لپاره XC8 C کمپیلر د GNU عمومي عامه جواز (GPL) لاندې لیکل شوي او توزیع شوي چې پدې معنی چې د دې سرچینې کوډ په وړیا ډول توزیع شوی او خلکو ته شتون لري.
د GNU GPL لاندې وسیلو لپاره د سرچینې کوډ ممکن د مایکروچپ څخه جلا ډاونلوډ شي webسایټ تاسو کولی شئ د GNU GPL په نوم فایل کې ولولئ چې ستاسو د انسټال جواز.txt avr/doc لارښود فرعي لارښود موقعیت لري. د GPL لاندې اصولو عمومي بحث ممکن دلته وموندل شي.
د سرلیک فایلونو، لینکر سکریپټونو، او د چلولو وخت کتابتونونو لپاره چمتو شوي مالتړ کوډ د ملکیت کوډ دی او د GPL لاندې نه پوښل کیږي.
دا کمپیلر د GCC نسخه 5.4.0، binutils نسخه 2.26 تطبیق دی، او د avr-libc نسخه 2.0.0 کاروي.
1.6. د سیسټم اړتیاوې
د MPLAB XC8 C کمپیلر او د جواز ورکولو سافټویر چې دا یې کاروي د مختلف عملیاتي سیسټمونو لپاره شتون لري ، پشمول د لاندې 64-bit نسخې: د مایکروسافټ وینډوز 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 فعالیت خوندیتوب دا خوشې کول
کمپیلر د شبکې سرور جواز ملاتړ کوي.
د جواز ډولونو او د جواز سره د کمپیلر نصبولو په اړه معلوماتو لپاره د MPLAB XC C Compilers (DS50002059) نصب او جواز ورکولو سند وګورئ.
1.9. نصب او فعالول
د دې کمپیلر سره د وروستي جواز مدیر په اړه مهم معلوماتو لپاره د مهاجرت مسلو او محدودیتونو برخې هم وګورئ.
که د MPLAB IDE کاروئ، ډاډ ترلاسه کړئ چې د دې وسیلې نصبولو دمخه د MPLAB X IDE وروستی نسخه 5.0 یا وروسته نصب کړئ. د کمپیلر نصبولو دمخه IDE پریږدئ. د (وینډوز)، (لینکس) یا (macOS) .exe .run .app کمپیلر انسټالر اپلیکیشن چل کړئ، د بیلګې په توګه او په سکرین کې لارښوونې تعقیب کړئ.
XC8-1.00.11403-windows.exe
د ډیفالټ نصبولو لارښود سپارښتنه کیږي. که تاسو لینکس کاروئ، نو تاسو باید د ټرمینل په کارولو او د روټ حساب څخه کمپیلر نصب کړئ. د مدیر امتیازاتو سره د macOS حساب په کارولو سره نصب کړئ.
فعالول اوس د نصبولو لپاره په جلا توګه ترسره کیږي. د نورو معلوماتو لپاره د MPLAB® XC C Compilers (DS52059) لپاره د جواز مدیر سند وګورئ.
که تاسو د ارزونې جواز لاندې تالیف کونکي چلول غوره کړئ ، نو تاسو به اوس د تالیف پرمهال خبرداری ترلاسه کړئ کله چې تاسو د خپلې ارزونې دورې پای ته رسیدو په 14 ورځو کې یاست. ورته خبرداری ورکول کیږي که تاسو د خپل HPA ګډون پای ته رسیدو 14 ورځو کې یاست.
د XC شبکې لایسنس سرور یو جلا انسټالر دی او د واحد کارونکي کمپیلر انسټالر کې شامل نه دی.
د XC جواز مدیر اوس د فلوټینګ شبکې جوازونو رومینګ ملاتړ کوي. د ګرځنده کاروونکو په هدف، دا خصوصیت د فلوټینګ جواز ته اجازه ورکوي چې د لنډې مودې لپاره له شبکې څخه لاړ شي. د دې خصوصیت په کارولو سره ، تاسو کولی شئ له شبکې څخه وصل شئ او لاهم خپل MPLAB XC کمپیلر وکاروئ. د دې خصوصیت په اړه د نورو لپاره د XCLM انسټالولو سند فولډر وګورئ.
MPLAB X IDE کې د لایسنس کړکۍ (وسیلې> جوازونه) شامل دي ترڅو په لید کې رومینګ اداره کړي.

1.9.1. د نصب کولو مسلو حل کول
که تاسو د وینډوز عملیاتي سیسټمونو لاندې د کمپیلر نصبولو کې ستونزې تجربه کوئ، لاندې وړاندیزونه هڅه وکړئ.

  • انسټالول د مدیر په توګه پرمخ وړئ.
  • د نصب کونکي غوښتنلیک اجازې 'بشپړ کنټرول' ته تنظیم کړئ. (په فایل کې ښي کلیک وکړئ، ملکیتونه غوره کړئ، امنیت ټب، کاروونکي غوره کړئ، سمون.)
  • د temp فولډر اجازه "بشپړ کنټرول" ته تنظیم کړئ!
  • د temp فولډر موقعیت ټاکلو لپاره، د چلولو کمانډ کې ټایپ کړئ (د وینډوز لوګو کیلي + R). %temp% دا به د فایل اکسپلورر ډیالوګ پرانیزي چې دا لارښود ښیې او تاسو ته به اجازه درکړي چې د دې فولډر لاره وټاکئ.

1.10 د کمپیلر اسناد

د مایکروچیپ MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د خوشې کولو یادداشتونه - سندد تالیف کونکي کارونکي لارښودونه د HTML پاڼې څخه خلاص کیدی شي چې ستاسو په براوزر کې خلاصیږي کله چې په MPLAB X IDE ډشبورډ کې د نیلي مرستې تڼۍ کلیک وکړئ ، لکه څنګه چې په سکرین شاټ کې اشاره شوې.
که تاسو د 8-bit AVR اهدافو لپاره جوړوئ، د MPLAB® XC8 C کمپیلر کارن® لارښود د AVR لپاره
MCU د هغه کمپیلر اختیارونو او ځانګړتیاو په اړه معلومات لري چې پدې جوړښت کې پلي کیږي.

1.11. د پیرودونکي ملاتړ
مایکروچپ د دې کمپیلر نسخې په اړه د بګ راپورونو ، وړاندیزونو یا نظرونو هرکلی کوي. مهرباني وکړئ د ملاتړ سیسټم له لارې د بګ راپورونه یا فیچر غوښتنې مستقیم کړئ.

د اسنادو تازه معلومات

د MPLAB XC8 اسنادو آنلاین او تازه نسخو لپاره، مهرباني وکړئ د مایکروچپ آنلاین وګورئ
تخنیکي اسناد webسایټ
په دې خپرونه کې نوي یا تازه شوي AVR اسناد:
د MPLAB® XC C کمپیلرونو نصب او جواز ورکول (DS50002059) بیاکتنه L
د مایکروچپ متحد معیاري کتابتون د حوالې لارښود د مایکروچپ متحد معیاري کتابتون لخوا ټاکل شوي دندو چلند او انٹرفیس تشریح کوي، او همدارنګه د کتابتون ډولونو او میکرو کارول. د دې معلوماتو څخه ځینې دمخه د AVR لپاره MPLA® XC8 C Compiler User!s Guide® کې موجود وو.
MCU. د وسیلې ځانګړي کتابتون معلومات لاهم پدې کمپیلر لارښود کې شتون لري.
د هیکسمیټ کارن لارښود په دې خپرونه کې په لارښود کې شامل شوی. دا لارښود د هغو اسنادو لپاره دی چې Hexmate د یو واحد غوښتنلیک په توګه چلوي.
لاندې برخې اصالحات او اضافي معلومات چمتو کوي کوم چې د کمپیلر سره لیږل شوي د کارونکي لارښودونو کې موندل شوي.

2.1. د smart-io-format اختیار
د-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. omit-frame-pointer اختیار
د – f omit-frame-pointer اختیار کمپیلر ته لارښوونه کوي چې په سټیک کې د شیانو ته د لاسرسي لپاره په مستقیم ډول د سټیک پوینټر څخه کار واخلي او که امکان ولري ، هغه کوډ پریږدي چې د چوکاټ راجستر خوندي کوي ، پیل کوي او بحالوي. دا په ټولو غیر صفر اصلاح کولو کچو کې په اوتومات ډول فعال شوی.
د اختیار منفي کول، د -fno-omit- frame-pointer په کارولو سره، کیدای شي د اصلاح شوي کوډ ډیبګ کولو کې مرسته وکړي؛ په هرصورت، دا اختیار تضمین نه کوي چې د چوکاټ پوائنټر به تل کارول کیږي.

2.3. unroll-loops اختیارونه
د – funrol I-loops او -(د unroll-all-loops اختیارونه د سرعت پر اساس اصلاح کول کنټرولوي چې هڅه کوي په لوپس کې د برانچینګ ځنډونه لرې کړي. غیر رول شوي لوپونه معمولا د لوی کوډ اندازې په لګښت د تولید شوي کوډ اجرا کولو سرعت زیاتوي.
د - فنرول I-loops اختیار لوپونه خلاصوي چیرې چې د تکرار شمیره د تالیف په وخت یا کله چې کوډ لوپ ته ننوځي ټاکل کیدی شي. د -funroll-all-loops اختیار ډیر تیریدونکی دی، د ټولو لوپونو خلاصول، حتی کله چې د تکرار شمیره معلومه نه وي. دا په عموم ډول د - funrol 1-loops اختیار په پرتله د اعدام سرعت ښه کولو کې لږ اغیزمن دی.

2.4. غوړ-آتو-توکي اختیار
د – f fat-1 to-obj ects اختیار غوښتنه کوي چې کمپیلر د غوړ څیز تولید کړي files، کوم چې دواړه لري
د اعتراض کوډ او GIMPLE (د GCC یو له داخلي نمایندګیو څخه)، د ځانګړي ELF برخو ته لیکل شوی. داسې توکي files د کتابتون کوډ لپاره ګټور دی چې د هغو پروژو سره تړل کیدی شي چې د معیاري لینک وخت اصلاح کونکي کاروي او نه کاروي، د -flto اختیار لخوا کنټرول کیږي.
د دې اختیار - fno-fat-lto-objects بڼه، کوم چې ډیفالټ دی که چیرې کوم اختیار مشخص شوی نه وي، په اعتراض کې د اعتراض کوډ شاملول فشاروي. files، په پایله کې ګړندی جوړونه. په هرصورت، دا ډول اعتراض files باید تل د معیاري لینک وخت اصلاح کونکي په کارولو سره وصل شي.

2.5. د Ito-تقسیم اختیار
د – flto-partiti پر=a زه تاسو ته درکوم اختیار هغه الګوریتم کنټرولوي چې د څیز د ویشلو لپاره کارول کیږي files کله چې د لینک وخت اصلاح کوونکی چلوي. دلیل هیڅ یو په بشپړ ډول تقسیم کول غیر فعال نه کوي او د لینک وخت اصلاح کولو مرحله په مستقیم ډول د ټول پروګرام تحلیل (WPA) مرحلې څخه اجرا کوي. د عملیاتو دا طریقه به تر ټولو غوره پایلې تولید کړي، د لوی کمپیلر حافظې اړتیاو او اوږد جوړ وختونو په لګښت، که څه هم دا امکان نلري چې د کوچنیو پروګرامونو سره ستونزه وي. د څیز تقسیمول files کولی شي د جوړونې فعالیت ښه کړي. استدلال یو مشخص کوي چې دقیقا یوه برخه باید وکارول شي ، او دلیل lto1 هغه تقسیم کول مشخص کوي چې عکسونه یې د اصلي سرچینې لخوا ترتیب شوي files. ډیفالټ دلیل متوازن دی، کوم چې د امکان په صورت کې په مساوي اندازې ټوټو کې تقسیم کول مشخص کوي.

2.6. په 3.6.11 برخه کې اضافه کول نقشه شوي لینکر اختیارونه
-wl، برخه - پیل = ثانیه tion = اضافه د عام استعمال شوي لینکر اختیارونو جدول څخه ورک دی، د -wl کمپیلر ډرایور اختیار په کارولو سره د لاسرسي وړ دی. دا اختیار په ټاکل شوي پته کې د دودیز نوم شوي برخې ځای په ځای کولو ته اجازه ورکوي. دا د معیاري برخو د ځای په ځای کولو لپاره نشي کارول کیدی، لکه (. ډاټا، . بی ایس ایس . متن)، کوم چې باید د -wl، -'r اختیار په کارولو سره ځای په ځای شي.

2.7. 4.14.2 برخه کې تعدیل د تخصیص شوي برخې بدلول او لینک کول
په یاد ولرئ چې د کارونکي لارښود پدې برخه کې د معلوماتو برخلاف ، پدې خپرونه کې تالیف کونکي کې شوي بدلونونه اوس پدې معنی دي چې دودیز برخې د -w1 په کارولو سره تړل کیدی شي ، – فرقه ion- start=section=acicir اختیار او پرته له دې چې لینکر سکریپټ بدل کړي.

څه نوي دي

لاندې د نوي AVR هدف ځانګړتیاوې دي چې کمپیلر یې اوس ملاتړ کوي. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه په ګوته کوي ترڅو د هغه ځانګړتیاو ملاتړ وکړي چې تعقیبوي.

3.1. نسخه 2.39 (فعال خوندیتوب خوشې کول)
د شبکې سرور لایسنس د MPLAB XC8 فعالیت خوندیتوب کمپیلر دا خپریدل د شبکې سرور جواز ملاتړ کوي.

3.2. نسخه 2.36 
هیڅ نه.
3.3. نسخه 2.35 
د نوي وسیلې ملاتړ ملاتړ د لاندې AVR برخو لپاره شتون لري: ATTINY3224، ATTINY3226، ATTINY3227، AVR64DD14، AVR64DD20، AVR64DD28، او AVR64DD32.
د شرایطو بدلول ښه شوي د نوي -mcall-isr-prologues اختیار بدلوي چې څنګه د مداخلې فعالیت په ننوتلو کې راجسترونه خوندي کوي او دا څنګه راجستر کیږي کله چې د مداخلې معمول پای ته ورسیږي. دا د -mcall-prologues اختیار ته ورته کار کوي، مګر یوازې د مداخلې افعال (ISRs) اغیزه کوي.
حتی ډیر ښه شوی د شرایطو بدلول نوی -mgas-isr-prologues اختیار د شرایطو سویچ کوډ کنټرولوي چې د کوچني مداخلې خدماتو معمولونو لپاره رامینځته شوی. کله چې فعال شي، دا فیچر به د راجستر کارونې لپاره ISR سکین کړي او یوازې د اړتیا په صورت کې دا کارول شوي راجسترونه خوندي کړي.
د ترتیب وړ فلش نقشه کول د AVR DA او AVR DB کورنۍ کې ځینې وسیلې SFR (د بیلګې په توګه FLMAP) لري چې مشخص کوي د برنامې حافظې کومه 32k برخه به د ډیټا حافظې کې نقشه شي. نوی - mconst-data-in-config-mapped-progmem اختیار د دې لپاره کارول کیدی شي چې لینکر په یوه 32k برخه کې ټول موافقت لرونکي ډیټا ځای په ځای کړي او په اتوماتيک ډول اړوند SFR راجستر پیل کړي ترڅو ډاډ ترلاسه شي چې دا ډاټا په ډیټا کې نقشه شوې ده. د حافظې ځای، چیرته چې دا به په اغیزمنه توګه لاسرسی ومومي.

د مایکروچپ متحد معیاري کتابتون ټول MPLAB د XC تالیف کونکي به د مایکروچپ متحد معیاري کتابتون شریک کړي ، کوم چې اوس د MPLAB XC8 د دې خوشې کیدو سره شتون لري. د MPLAB® د XC8 C کمپیلر
د AVR لپاره د کارونکي لارښود® MCU نور د دې معیاري دندو لپاره اسناد شامل نه دي. دا معلومات اوس په کې موندل کیدی شي د مایکروچپ متحد معیاري کتابتون حوالې لارښود. په یاد ولرئ چې ځینې فعالیت چې مخکې د avr-libc لخوا تعریف شوي نور شتون نلري. (وګورئ د کتابتون فعالیت.)
سمارټ I0 د نوي متحد کتابتونونو د یوې برخې په توګه، په چاپ او سکینف کورنیو کې د JO افعال اوس په هر جوړښت کې دودیز تولید شوي، په دې اساس چې دا فعالیتونه څنګه په پروګرام کې کارول کیږي. دا کولی شي د برنامې لخوا کارول شوي سرچینې د پام وړ کم کړي.
د سمارټ I0 مرستې اختیار کله چې د سمارټ I0 فنکشنونو (لکه printf () یا scanf () ته د تلیفونونو تحلیل کول، کمپیلر تل نشي کولی د فارمیټ سټینګ څخه وټاکي یا د هغه دلیلونو څخه اټکل وکړي چې د تبادلې مشخص کونکي د کال لخوا اړین دي. پخوا، کمپیلر به تل هیڅ انګیرنه نه کوي او ډاډ ترلاسه کوي چې په بشپړ ډول فعال 10 افعال د وروستي پروګرام عکس سره تړل شوي. یو نوی - msma rt-io-format=fmt اختیار اضافه شوی ترڅو تالیف کونکي د تبادلې مشخص کونکو لخوا د سمارټ I0 فنکشنونو لخوا کارول شوي د تبادلې مشخص کونکو لخوا خبر شي چې کارول یې مبهم دي ، د ډیر اوږد 10 روټینونو سره د تړل کیدو مخه نیسي. (وګورئ smart-io-format د نورو جزیاتو لپاره اختیار.)
د ګمرکي برخو ځای په ځای کول مخکې، د -W1، -section-start اختیار یوازې ټاکل شوې برخه په غوښتل شوي پته کې ځای پرځای کول کله چې لینکر سکریپټ د ورته نوم سره د محصول برخه تعریف کړه. کله چې دا قضیه نه وه، برخه په هغه پته کې کیښودل شوه چې د لینکر لخوا غوره شوی و او اختیار په اصل کې له پامه غورځول شوی و. اوس اختیار به د ټولو دودیزو برخو لپاره ویاړ شي، حتی که د لینکر سکریپټ برخه نه تعریفوي. په هرصورت، یادونه وکړئ چې د معیاري برخو لپاره، لکه . متن، . بی ایس ایس یا . معلومات غوره فټ تخصیص کونکی به لاهم د دوی ځای په ځای کولو بشپړ کنټرول ولري ، او اختیار به هیڅ اغیزه ونلري. -wl وکاروئ، - برخه = اضافه اختیار، لکه څنګه چې د کاروونکي لارښود کې تشریح شوی.

3.4. نسخه 2.32
د سټیک لارښود د PRO کمپیلر لایسنس سره شتون لري ، د تالیف کونکي سټیک لارښود ب featureه د برنامې لخوا کارول شوي هر سټیک اعظمي ژوروالي اټکل کولو لپاره کارول کیدی شي. دا د برنامه کال ګراف رامینځته کوي او تحلیل کوي ، د هر فنکشن سټیک کارول ټاکي ، او یو راپور رامینځته کوي ، له کوم څخه چې د برنامې لخوا کارول شوي سټیک ژورتیا اټکل کیدی شي.
دا فیچر د -mchp-stack- کارولو کمانډ لاین اختیار له لارې فعال شوی. د سټیک کارولو لنډیز د اجرا کولو وروسته چاپ کیږي. په نقشه کې یو تفصیلي سټیک راپور شتون لري file، کوم چې په معمول ډول غوښتنه کیدی شي.
د نوي وسیلې ملاتړ ملاتړ د لاندې AVR برخو لپاره شتون لري: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTNY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB28, AVR32, AVR28, AVR64 ، او AVR32DB32.
د بیرته اخیستل شوي وسیلې ملاتړ ملاتړ نور د لاندې 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, AVR64DA64, AVR128DA28, AVR128DA32,AVR128 B 48، AVR128DB64، او AVRXNUMXDBXNUMX.
بیرته اخیستل شوي وسیله ملاتړ د لاندې AVR برخو لپاره ملاتړ نور شتون نلري: ATA5272، ATA5790، ATA5790N، ATA5791، ATA5795، ATA6285، ATA6286، ATA6612C، ATA6613C، ATA6614Q، ATA6616C، ATA6617C، ATA664251Q، ATAXNUMXC، ATAXNUMXN.

3.7. نسخه 2.29 (فعال خوندیتوب خوشې کول)
سرلیک file د کمپیلر بنټ ان لپاره د دې لپاره چې ډاډ ترلاسه شي چې کمپیلر کولی شي د ژبې ځانګړتیاو سره مطابقت ولري لکه 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 ټول هغه وسایل لیست کوي چې د کمپیلر لخوا ملاتړ کیږي. د وسیلې په نوم کلیک وکړئ ، او دا به یوه پا pageه پرانیزي چې د دې وسیلې لپاره ټول د منلو وړ ترتیب بټ ترتیب / ارزښت جوړه ښیې ، د پخواني سرهamples.

طرزالعمل خلاصون د طرزالعمل خلاصون اصلاحونه، کوم چې د اسمبلۍ کوډ عام بلاکونه د دې بلاک استخراج شوي کاپي ته د زنګونو سره ځای په ځای کوي، په کمپیلر کې اضافه شوي. دا د یو جلا غوښتنلیک لخوا ترسره کیږي، کوم چې په اتوماتيک ډول د تالیف کونکي لخوا غوښتنه کیږي کله چې د 2، 3 یا لیول غوره کول. s اصلاح کول. دا اصلاح کول د کوډ اندازه کموي، مګر دوی ممکن د اجرا سرعت او د کوډ ډیبګیت کم کړي.
د پروسیجر خلاصول د -mno-pa اختیار په کارولو سره د اصلاح کولو لوړې کچې کې غیر فعال کیدی شي ، یا د -mpa په کارولو سره په ټیټ اصلاح کچه (ستاسو د جواز تابع) کې فعال کیدی شي. دا د یو شی لپاره غیر فعال کیدی شي file د -mno-pa-on-f ile= په کارولو سرهfileنوم، یا د -mno-pa-onfunion=f په کارولو سره د فعالیت لپاره غیر فعال شوی اتحاد
ستاسو د سرچینې کوډ دننه، طرزالعمل خلاصول د فنکشن تعریف سره د خاصیت_ ( (nopa) ) په کارولو سره، یا د nopa په کارولو سره د فنکشن لپاره غیر فعال کیدی شي، کوم چې _attribute_ ( (nopa، noinline)) ته پراخیږي او پدې توګه د فعالیت انلاین کولو مخه نیسي. او د انلاین کوډ خلاصول شتون لري.
په پراګما کې د بټ ملاتړ لاک کړئ د #pragma ترتیب اوس د AVR لاک بټونو او همدارنګه د نورو ترتیب کولو بټونو مشخص کولو لپاره کارول کیدی شي. avr_chipinfo.html وګورئ file (پورته ذکر شوی) د دې پراګما سره د کارولو لپاره ترتیب / ارزښت جوړه لپاره.
نوی د وسیلې ملاتړ ملاتړ د لاندې برخو لپاره شتون لري: AVR28DAl28، AVR64DAl28، AVR32DAl28، او AVR48DAl28.

3.11. نسخه 2.05
ستاسو د پیسو لپاره نور بټونه د دې کمپیلر او لایسنس مدیر macOS نسخه اوس د 64-bit غوښتنلیک دی. دا به ډاډ ترلاسه کړي چې کمپیلر به د macOS وروستي نسخو کې د خبرتیا پرته نصب او پرمخ وړي.
د پروګرام په حافظه کې Const توکي تالیف کوونکی اوس کولی شي په برنامه فلش حافظه کې د ثابت وړ توکي ځای په ځای کړي ، د دې پرځای چې دا په RAM کې موقعیت ولري. تالیف کونکی بدل شوی ترڅو د وړتیا وړ نړیوال ډیټا د برنامه فلش حافظې کې زیرمه شي او دا ډیټا په مستقیم او غیر مستقیم ډول د مناسب برنامې - حافظې لارښوونو په کارولو سره لاسرسی کیدی شي. دا نوی فیچر په ډیفالټ فعال شوی مګر د -mno-const-data-in-progmem اختیار په کارولو سره غیر فعال کیدی شي. د avrxmega3 او avrtiny جوړښتونو لپاره، دا فیچر ته اړتیا نشته او تل غیر فعال وي، ځکه چې د پروګرام حافظه د دې وسیلو لپاره د معلوماتو پته ځای کې نقشه شوې ده.
معیاري وړیا د دې کمپیلر غیر جواز لرونکي (وړیا) نسخې اوس د 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 کامن C انٹرفیس سره مطابقت ولري ، د سرچینې کوډ ته اجازه ورکوي چې په ټولو MPLAB XC کمپیلرونو کې په اسانۍ سره پورټ شي. د -mext=cci اختیار د دې ځانګړتیا غوښتنه کوي، د ډیرو ژبو توسیعونو لپاره بدیل ترکیب فعالوي.
نوی کتابتون چلوونکی A نوی کتابتون چلوونکی د پخوانی PIC کتابتون کتابتون او د AVR avr-ar کتابتون څخه پورته موقعیت لري. دا ډرایور د GCC-archiver-style اختیارونه مني، کوم چې یا یې ژباړل شوي یا د اجرا وړ کتابتون ته لیږدول شوي. نوی ډرایور د ورته سیمانټیکونو سره ورته ورته انتخابونو ته اجازه ورکوي چې د PIC یا AVR کتابتون جوړولو یا سمبالولو لپاره وکارول شي. file او په دې توګه د کتابتون غوښتنه کولو وړاندیز شوی لاره ده. که د میراثي پروژو لپاره اړتیا وي، پخوانی کتابتون مستقیم د زاړه طرز انتخابونو په کارولو سره بلل کیدی شي چې دا په پخوانیو کمپیلر نسخو کې منل شوی.

د مهاجرت مسلې

لاندې ام ځانګړتیاوې دي چې اوس د کمپیلر لخوا په مختلف ډول اداره کیږي. دا بدلونونه ممکن ستاسو د سرچینې کوډ کې تعدیل ته اړتیا ولري که چیرې دې کمپیلر نسخې ته کوډ پورټینګ کړي. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه په ګوته کوي ترڅو د تعقیب شوي بدلونونو ملاتړ وکړي.

4.1. نسخه 2.39 (فعال خوندیتوب خوشې کول)
هیڅ نه.
4.2. نسخه 2.36 هیڅ نه.
4.3. نسخه 2.35
د تار څخه د اډو اداره کول (XC8-2420) د دې لپاره چې د نورو XC کمپیلرونو سره یوشانتیا یقیني شي، د XC8 تار ته فنکشنونه، لکه strtol () etc.، نور به هڅه ونکړي چې د ان پټ سټینګ بدل کړي که چیرې مشخص شوی اساس له 36 څخه لوی وي او پرځای به یې EINVAL ته errno تنظیم کړي. د C معیار چلند نه مشخص کوي افعال کله چې د دې اساس ارزښت ډیر شي.
نامناسب سرعت اصلاح کول د طرزالعمل خلاصون اصلاح کول فعال شوي و کله چې د 3 کچه غوره کول (-03). دا اصلاح کول د کوډ سرعت په لګښت د کوډ اندازه کموي، نو باید ترسره شوي نه وي. هغه پروژې چې د دې اصلاح کولو کچه کاروي ممکن د کوډ اندازې او اجرا کولو سرعت کې توپیرونه وګوري کله چې د دې خوشې کیدو سره جوړ شي.
د کتابتون فعالیت د ډیری معیاري C کتابتون دندو لپاره کوډ اوس د مایکروچپ متحد معیاري کتابتون څخه راځي، کوم چې ممکن په ځینو شرایطو کې د پخواني avr-libc کتابتون لخوا چمتو شوي په پرتله مختلف چلند ښکاره کړي. د مثال لپارهampپه هرصورت، دا نور اړین ندي چې د 1printf flt کتابتون (-1printf_flt اختیار) سره اړیکه ونیسئ ترڅو د فلوټ فارمیټ مشخص کونکو لپاره فارمیټ شوي I0 ملاتړ فعال کړئ. د مایکروچپ متحد معیاري کتابتون سمارټ 10 ځانګړتیاوې دا اختیار بې ځایه کوي. برسېره پردې، د تار او حافظې د کارونو لپاره د _P ضمیمه شوي معمولونو کارول (د مثال په توګه strcpy_P () او داسې نور. چې په فلش کې د کنسټ تارونو کار کوي نور اړین ندي. معیاري 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 ممکن د دې خوشې کیدو سره کار ونکړي ، او زاړه تالیف کونکي به ونه شي کولی وروستي DFPs وکاروي.

4.3. نسخه 2.19 (فعال خوندیتوب خوشې کول)
هیڅ نه.
4.4. نسخه 2.10 هیڅ نه
4.5. نسخه 2.05
د پروګرام په حافظه کې Const څیزونه په یاد ولرئ چې د ډیفالټ له مخې، د کانسټ وړ توکي به د پروګرام په حافظه کې ځای پر ځای شي او لاسرسی ومومي (لکه څنګه چې د هغې تشریح شوی). دا به ستاسو د پروژې اندازه او اجرا کولو سرعت اغیزه وکړي، مګر باید د RAM کارول کم کړي. دا خصوصیت غیر فعال کیدی شي، که اړتیا وي، د -mnocons t-data-in-pr ogmem اختیار په کارولو سره.

4.6. نسخه 2.00
د کنفیګریشن فیوزونه د وسیلې کنفیګریشن فیوز اوس کولی شي د ترتیب پراګما په کارولو سره برنامه شي او د فیوز حالت مشخص کولو لپاره د ترتیب ارزښت جوړه تعقیب کړي ، د مثال په توګه #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
مطلق شیان او افعال توکي او افعال اوس د CCI په کارولو سره په حافظه کې په ځانګړي پته کې کیښودل کیدی شي _at (پته) مشخص کوونکی، د مثال لپارهampLe:
که شامل وي
int foobar په (0)0300100 );
char at(0x250) getID(int offset) ( د دې مشخص کونکي دلیل باید یو ثابت وي چې د پتې استازیتوب کوي په کوم کې چې لومړی بایټ یا لارښوونې به ځای په ځای شي. د RAM پتې د Ox800000 د آف سیٹ په کارولو سره ښودل شوي. CCI فعال کړئ دا ځانګړتیا وکاروئ.
د نوي مداخلې فنکشن ترکیب کمپیلر اوس د CCI _interrupt مني (شمیره) مشخص کوونکی دا په ګوته کوي چې د C افعال مداخله کونکي دي. مشخص کونکی د مداخلې شمیره اخلي، د مثال لپارهampLe:

ثابتې مسلې

لاندې اصالحات دي چې په کمپیلر کې شوي دي. دا ممکن په تولید شوي کوډ کې بګونه حل کړي یا د کمپیلر عملیات هغه ته بدل کړي کوم چې د کارونکي لارښود لخوا ټاکل شوي یا مشخص شوي. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه په ګوته کوي ترڅو د تعقیب مسلو لپاره اصلاحات ولري. په سرلیک کې بریکٹ شوي لیبل د تعقیب ډیټابیس کې د مسلې پیژندنه ده. دا ممکن ګټور وي که تاسو اړتیا لرئ د مرستې سره اړیکه ونیسئ.
په یاد ولرئ چې د وسیلې ځینې ځانګړي مسلې د وسیلې کورنۍ کڅوړه کې سم شوي (DR)د وسیلې سره تړاو لري. د DFPs کې د بدلونونو او وروستي کڅوړو ډاونلوډ کولو لپاره د معلوماتو لپاره د MPLAB پیک مدیر وګورئ.

5.1. نسخه 2.39 (فعال خوندیتوب خوشې کول)
هیڅ نه.
5.2. نسخه 2.36
د ځنډولو په وخت کې تېروتنه (XCS2774) د ډیفالټ وړیا حالت اصلاح کولو کې کوچني بدلونونه د ځنډ رامینځته شوي افعالاتو لپاره د عملیاتي څرګندونو دوامداره فولډ کولو مخه نیسي ، چې په پایله کې یې د غیر ثابت په توګه چلند کیږي او خطا یې رامینځته کوي. جوړ شوی in_avr_delay_cycles د تالیف وخت انټیجر ثابت تمه لري.

5.3. نسخه 2.35
پرله پسې تخصیص د _at (XCS2653) په یوه برخه کې د ورته نوم سره د څو شیانو ځای پرځای کول او د _at () کارول په سمه توګه کار نه کوي. د مثال لپارهampLe:
const char arrl[ ] صفت (section(“.mysec”) په (0x500) = (OxAB, OxCD);
const char arr2[ ] صفت (sectionr.mysec") = (OxEF, OxFE);
باید arr2 سمدلاسه د arri وروسته ځای په ځای کړي.
د برخې پیل پتې مشخص کول (XCS2650) د -wl، -section-start اختیار په خاموشۍ سره د نومول شوي پیل پته کې د برخو په ځای کولو کې پاتې راغلی. دا مسله د هر ډول دودیز نوم شوي برخې لپاره ټاکل شوې ده؛ په هرصورت، دا به د کوم معیاري برخو لپاره کار ونکړي، لکه . متن یا . bss، کوم چې باید د a په کارولو سره ځای په ځای شي -wl - د T اختیار.
لینکر ټکر کوي کله چې آرام کوي (XCS2647) کله د -mrelax اصلاح فعاله شوې وه او دوی د کوډ یا ډیټا برخې وې چې په موجود حافظه کې مناسب نه وې، لینکر خراب شو. اوس ، په داسې حالت کې ، د غلطۍ پیغامونه پرځای خپاره شوي.
نه نهغورځېدلبیرته (XCS2646) د - د nofallback اختیار په سمه توګه نه پلي شوی، او نه هم مستند شوی. دا اوس غوره کیدی شي ترڅو ډاډ ترلاسه شي چې کمپیلر به بیرته د ټیټ اصلاح کولو ترتیب ته نه راځي که چیرې کمپیلر غیر جواز ولري ، او پرځای به یې خطا صادره کړي.
نامناسب سرعت اصلاح کول (XCS2637) د طرزالعمل خلاصون اصلاح کول فعال شوي و کله چې د 3 کچه غوره کول (-03). دا اصلاح کول د کوډ سرعت په لګښت د کوډ اندازه کموي، نو باید ترسره شوي نه وي.
خراب EEPROM لاسرسی (XCS2629) د eeprom_read_block معمول په Xmega وسیلو کې سم کار نه کاوه کله چې د -mconst-data-in-progmem اختیار فعال شوی و (کوم چې ډیفالټ حالت دی) ، په پایله کې د EEPROM حافظه په سمه توګه نه لوستل کیږي.
د حافظې ناسم تخصیص (X03-2593, XC8-2651) کله د -Ttext یا -Tdata لینکر اختیار (د مثال لپارهample د -wl ډرایور اختیار په کارولو سره تیر شو) مشخص شوی ، د اړوند متن / ډیټا سیمه اصل تازه شوی؛ په هرصورت، د پای پته د دې مطابق نه وه تنظیم شوې، کوم چې کیدای شي سیمه د هدف آله د حافظې رینج څخه زیاته کړي.
د ډیر منسوب فعالیت سره حادثه (XC8-2580) کمپیلر خرابیږي که چیرې یو فنکشن د یو څخه ډیرو مداخلو، سیګنال یا nmi ځانګړتیاو په کارولو سره اعلان شي، د بیلګې په توګه، _attribute_ ( ( signal , interrupt ) ).
ناسم ATtiny مداخله کوډ (XC8-2465) کله چې د ATtiny وسیلو لپاره جوړول او اصلاح کول غیر فعال شوي (-00) ، د مداخلې افعال ممکن د رینج راټولونکي پیغامونو څخه بهر عملیات پیل کړي.
اختیارونه نه تیریږي (XC8-2452) کله چې کارول کیږي -wl د ډیری، کوما سره جلا شوي لینکر اختیارونو سره اختیار، د لینکر ټول اختیارونه لینکر ته نه لیږدول شوي.
په غیر مستقیم ډول د برنامه حافظې لوستلو تېروتنه (X03-2450) په ځینو مواردو کې ، کمپیلر تولید شوی داخلي تېروتنه (د نه پیژندلو insn) کله چې د دوه بایټ ارزښت له پوائنټر څخه د برنامې حافظې ته لوستل کیږي

5.4. نسخه 2.32
د کتابتون دوهم لاسرسی ناکام شو (X03-2381) د موجوده کتابتون آرشیف ته د لاسرسي لپاره دوهم ځل د xc8-ar.exe کتابتون آرشیور وینډوز نسخه غوښتنه کول ممکن د غلطۍ پیغام نوم بدلولو کې پاتې راتلل ناکام شوي وي.

5.5. نسخه 2.31
ناڅرګنده د کمپیلر ناکامي (XC8-2367) کله چې روان وي وینډوز هغه پلیټ فارمونه چې د سیسټم لنډمهاله لارښود یې یوې لارې ته ټاکلی و چې پکې یو ټکی '.' کرکټر، کمپیلر ممکن په اجرا کولو کې پاتې راغلی وي.

5.6. نسخه 2.30
نړیوال لیبلونه د (XC8-2299) د لاس لیکل شوي مجلس کوډ چې نړیوال ځای په ځای کوي وروسته له مینځه وړل شوي د مجلس په ترتیبونو کې لیبلونه چې د طرزالعمل خلاصون لخوا رامینځته شوي ممکن په سمه توګه ځای په ځای شوي نه وي.
د آرامۍ حادثې (XC8-2287) په کارولو سره - mrelax اختیار ممکن د لینکر د خرابیدو لامل شوی وي کله چې د tail jump د آرامۍ اصلاح کولو هڅه وکړه د ret لارښوونې لرې کړي چې په پای کې نه وې برخه
کریش کله چې لیبلونه د ارزښتونو په توګه غوره کول (XC8-2282) کوډ د "د ارزښتونو په توګه لیبلونه" GNU C په کارولو سره د ژبې غزول ممکن د طرزالعمل خلاصون اصلاحونه د خرابیدو لامل شوي وي ، د VMA رینج سپان فکس اپ غلطی سره.
دومره نه const (XC8-2271) د پروټوټایپ لپاره strstr () او نورې دندې له کله چې د -mconst-data- inprogmem خصوصیت غیر فعال وي نو بیرته راستانه شوي سټینګ پوائنټرونو کې غیر معیاري کانسټ کوالیفایر مه مشخص کوئ. په یاد ولرئ چې د avrxmega3 او avrtiny وسیلو سره، دا ځانګړتیا د تل لپاره فعاله شوې ده.
له لاسه ورکړې ابتدايي (XC8-2269) کله چې په ژباړه کې له یو څخه ډیر متغیر وي واحد په یوه برخه کې ځای پرځای شوی و (په کارولو سره برخه or صفت ( (برخه) ))، او لومړی دا ډول متغیر صفر ابتدایی شوی و یا ابتدایی نه درلود، د ورته ژباړې واحد کې د نورو متغیرونو لپاره ابتکار ورکونکي چې په ورته برخه کې ځای په ځای شوي وو ورک شوي.

5.1. نسخه 2.2 9 (فعال خوندیتوب خوشې کول) هیڅ نه. 
5.2. نسخه 2.20
د اوږدې کمانډونو سره تېروتنه (XC8-1983) کله چې د AVR هدف وکاروئ، کمپیلر ممکن د لیلټ نه موندل شوي غلطی سره ودریدلی وي، که د کمانډ لاین خورا لوی و او ځانګړي حروف ولري لکه نرخونه، بیک سلیشونه، او نور.
د روډاټا نه ټاکل شوې برخه (XC8-1920) د AVR لینکر د دودیز روډاټا برخو لپاره د حافظې په ټاکلو کې پاتې راغلی کله چې د avrxmega3 او avrtiny آرکیټیکچرونو لپاره رامینځته کیږي ، په احتمالي توګه د حافظې اوورلیپ غلطی رامینځته کوي

5.3. نسخه 2.19 (فعال خوندیتوب خوشې کول)
هیڅ نه.
5.4. نسخه 2.10
د ځای په ځای کولو ناکامۍ (XC8-1891) غوره مناسب تخصیص کونکی د لینکر آرامۍ وروسته د برخو په مینځ کې د حافظې 'سوري' پریږدي. د حافظې د ټوټې کیدو سربیره ، دې د کمپیوټر اړوند کودونو یا تلیفونونو له حد څخه بهر کیدو پورې اړوند د لینکر ځای په ځای کولو ناکامۍ احتمال ډیر کړی.
لارښوونې د استراحت (XC8-1889) لخوا نه بدلېدونکي د لینکر آرامۍ د کود یا زنګ لارښوونو لپاره ندي رامینځته شوي چې هدف ته د رسیدو وړ وي که چیرې آرام وي.
ورک شوی فعالیت (XC8E-3 ) له څو تعریفونو څخه ، لکه clock_div_t او clock_presc ale_s et ()، د وسایلو لپاره ندي تعریف شوي، په شمول د ATmega324PB، ATmega328PB، ATtiny441، او ATtiny841.
ورک شوي میکرو د پری پروسیسر میکرو _XC 8_MODE_، XC 8 VERS ION، XC، او xc8 په اتوماتيک ډول د کمپیلر لخوا ندي تعریف شوي. دا اوس شتون لري.

5.5. نسخه 2.05
د داخلي تالیف کولو تېروتنه (XC8-1822) کله چې د وینډوز لاندې جوړیږي، د کوډ اصلاح کولو په وخت کې د داخلي کمپیلر تېروتنه ممکن رامینځته شوې وي.
د 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 میکرو/خصوصیت په کارولو سره شیان تعریفوي ممکن دا توکي له غلط ادرس څخه لوستل شوي وي.
د ځانګړتیاوو سره داخلي تېروتنه (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 وسیلو د فیوز ناسم اوږدوالی درلود چې د دوی په سر کې مشخص شوی files چې د لینکر غلطیو لامل کیږي کله چې د کوډ جوړولو هڅه کوي چې فیوز تعریف کړي.

د قطع کولو غلطی (XC8-1777) د وقفې وقفې تېروتنه سمه شوې ده.

د اسمبلر حادثه (XC8-1761) د avr -as جمع کونکی ممکن هغه وخت ټکر شوی وي کله چې کمپیلر د اوبنټو 18 لاندې چلول شوی و.

هغه شیان چې پاک شوي ندي (XC8-1752) غیر پیل شوي جامد ذخیره کولو مودې توکي ممکن د چلولو وخت پیل کولو کوډ لخوا پاک شوي نه وي.

د متضاد وسیلې مشخصات له پامه غورځول شوي (XC8-1749) کمپیلر کومه تېروتنه نه وه رامینځته کړې کله چې د ډیری وسیلې مشخص کولو اختیارونه کارول شوي او مختلف وسیلې یې په ګوته کړي.

د حافظې فساد د هپ (XC8-1748) په واسطه د _heap_start سمبول په غلطه توګه ترتیب شوی و، چې په پایله کې د عادي متغیرونو احتمال د هپ لخوا فاسد شوی و.

د لینکر د ځای په ځای کولو تېروتنه (XC8-1739) د لینکر ځای په ځای کولو تېروتنه ممکن هغه وخت راپورته شوې وي کله چې کوډ کې rjmn یا rcal د هدف سره دقیقا 4k بایټ لرې وي.

5.6. نسخه 2.00 هیڅ نه.

پیژندل شوي مسایل

لاندې د کمپیلر په عملیاتو کې محدودیتونه دي. دا ممکن د کوډ کولو عمومي محدودیتونه وي، یا د کارونکي لارښود کې موجود معلوماتو څخه انحراف وي. په ټایډ کې بریکٹ شوي لیبل د تعقیب ډیټابیس کې د مسلې پیژندنه ده. دا ممکن ګټور وي که تاسو اړتیا لرئ د مرستې سره اړیکه ونیسئ. هغه توکي چې لیبلونه نلري هغه محدودیتونه دي چې د مودي عملیات تشریح کوي او احتمال لري چې د تل لپاره اغیزمن پاتې شي.
6.1. MPLAB X IDE ادغام
MPLAB د IDE ادغام که کمپیلر د MPLAB IDE څخه وکارول شي ، نو تاسو باید د کمپیلر نصبولو دمخه MPLAB IDE نصب کړئ.
6.2. د کوډ تولید
غلط ابتکار (XC8-2679) دلته توپیر شتون لري چیرې چې د ځینې نړیوال / جامد بایټ اندازې شیانو لپاره لومړني ارزښتونه د ډیټا حافظه کې ځای په ځای شوي او چیرې چې تغیرات به د چلولو په وخت کې لاسرسی ومومي.
strtod په غلطه توګه endptr ټاکي (XC8-2652) په داسې مثالونو کې چې د strtod () لخوا د تبادلې لپاره د موضوع سټرینګ کې هغه څه شامل دي چې داسې ښکاري چې د توزیع نقطه شمیره وي او د e کرکټر وروسته غیر متوقع کرکټر وي، نو د پای پته، که چمتو شي، وروسته به کرکټر ته اشاره وکړي. e او نه e پخپله. د مثال لپارهample: strtod ("100exy", endptr) ;

په پایله کې به endptr x کرکټر ته اشاره وکړي.

خراب غیر مستقیم فعالیت زنګونه (X03-2628) په ځینو مواردو کې، د فنکشن زنګونه د فنکشن پوائنټر له لارې رامینځته شوي چې د جوړښت برخې په توګه زیرمه شوي ممکن ناکام شي.

strtof د هیکساډیسیمل فلوټس لپاره صفر راګرځوي (XC8-2626) د کتابتون کارونه strtof () et al او scanf () et al، به تل د هیکساډیسیمل فلوټینګ پوائنټ شمیره بدلوي چې صفر ته یو exponent نه مشخص کوي. د مثال لپارهample: strtof ("Oxl"، &endptr) ; ارزښت به 0 بیرته راولي، نه 1.
ناسم سټیک مشاور پیغام رسول (XC8-2542, XC8-2541) په ځینو مواردو کې، د استعمال شوي تکرار یا نامعلوم سټیک په اړه د سټیک مشاور خبرداری (احتمالا د alloca()) کارولو له لارې نه خپریږي.
د نقل مداخلې کوډ سره ناکامي (XC8-2421) چیرې چې له یو څخه ډیر مداخلې فعالیت ورته بدن لري ، کمپیلر ممکن د یو مداخلې فنکشن لپاره محصول ولري بل ته زنګ ووهي. دا به په پایله کې ټول د کال-کلوبر شوي راجسترونه په غیر ضروري توګه خوندي شي، او مداخلې به حتی مخکې له دې چې د اوسني مداخلې هینډلر ایپیلوګ پیل شي فعال شي، کوم چې د کوډ ناکامۍ لامل کیدی شي.
د هغه شیان چې د پروګرام په حافظه کې ندي (XC8-2408) د avrxmega3 او avrtiny پروژو لپاره واحد شوي کانسټ توکي د ډیټا حافظې کې ځای په ځای شوي ، که څه هم یو خبرداری وړاندیز کوي چې دوی د برنامې حافظه کې ځای په ځای شوي. دا به په هغه وسایلو اغیزه ونکړي چې د ډیټا حافظې ځای کې د برنامه حافظه نقشه نلري ، او نه به دا په کوم شی اغیزه وکړي چې پیل شوی وي.
د ناسم DFP لارې سره خراب محصول (XCS-2376) که تالیف کونکی د غلط DFP لارې او یو 'شخص' سره وغوښتل شي file د ټاکل شوي وسیلې لپاره شتون لري ، تالیف کونکی د ورک شوي وسیلې کورنۍ کڅوړه راپور نه ورکوي او پرځای یې 'شخص' غوره کوي file، کوم چې بیا د ناسم محصول لامل کیدی شي. 'ځانګړنه' files ممکن د توزیع شوي DFPs سره تازه نه وي او یوازې د داخلي کمپیلر ازموینې سره د کارولو لپاره و.
د حافظې اوورلیپ نه موندل شوی (XC8-1966) تالیف کونکی د هغه شیانو د حافظې اوورلیپ نه کشف کوي چې په پته کې مطلق رامینځته شوي (د _at 0 له لارې) او نور توکي د _ په کارولو سره.فرقهion () مشخص کوونکی او دا په ورته پته پورې تړلي دي.
د کتابتون د دندو او _memx سره ناکامي (XC8-1763) د _memx پته ځای کې د دلیل سره د libgcc فلوټ فنکشن ویل کیدی شي ناکام شي. په یاد ولرئ چې د کتابتون معمولونه د ځینې C آپریټرانو څخه ویل کیږي، نو د مثال لپارهample، لاندې کوډ اغیزمن شوی دی: بیرته راګرځئ regFloatVar > memxFloatVar؛
د محدود libgcc تطبیق (AVRTC-731) لپاره ATTiny4/5/9/10/20/40 محصولات، په libgcc کې د معیاري C / ریاضي کتابتون پلي کول خورا محدود یا شتون نلري.
د پروګرام د حافظې محدودیتونه (AVRTC-732) د 128 kb څخه هاخوا د برنامې حافظې عکسونه د اوزار چین لخوا ملاتړ کیږي؛ په هرصورت، د لینکر د بندیدو پیژندل شوي مثالونه شتون لري پرته له آرامۍ او پرته له کوم ګټور خطا پیغام پرته د اړتیا وړ فنکشن سټبونو رامینځته کولو پرځای کله چې د -mrelax اختیار کارول کیږي.
د نوم ځای محدودیتونه (AVRTC-733) نومول شوي پته ځایونه د وسیلې چین لخوا ملاتړ کیږي ، د کارونکي لارښود برخه کې د ځانګړي ډول کوالیفایرونو کې ذکر شوي محدودیتونو تابع دي.
د وخت زونونه د کتابتون افعال GMT فرض کوي او د محلي وخت زونونو ملاتړ نه کوي، په دې توګه loca It ime 0 به د gmtime ( ) په څیر ورته وخت بیرته راوليample.

اسناد / سرچینې

د مایکروچیپ MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز یادښتونه [pdf] د کارونکي لارښود
د MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز یادښتونه، MPLAB XC8 C، کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز نوټونه، د AVR MCU لپاره د ریلیز نوټونه
د مایکروچیپ MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز یادښتونه [pdf] د کارونکي لارښود
د MPLAB XC8 C کمپیلر نسخه 2.39 د AVR MCU لپاره د خوشې کولو یادښتونه، MPLAB XC8 C، د کمپیلر نسخه 2.39 د AVR MCU لپاره د ریلیز یادښتونه، د AVR MCU لپاره یادښتونه
مایکروچپ MPLAB XC8 C کمپیلر [pdf] د کارونکي لارښود
MPLAB XC8 C کمپیلر، MPLAB XC8 C، کمپیلر

حوالې

یو نظر پریږدئ

ستاسو بریښنالیک پته به خپره نشي. اړین ساحې په نښه شوي *