MICROCHIP MPLAB XC8 C ڪمپائلر سافٽ ويئر
هي دستاويز MPLAB XC8 C ڪمپائلر سان لاڳاپيل اهم معلومات تي مشتمل آهي جڏهن مائڪروچپ AVR ڊوائيسز کي نشانو بڻايو وڃي.
مهرباني ڪري هن سافٽ ويئر کي هلائڻ کان اڳ پڙهو. ڏسو MPLAB XC8 C ڪمپائلر رليز نوٽس PIC ڊاڪيومينٽ لاءِ جيڪڏھن توھان استعمال ڪري رھيا آھيو 8-bit PIC ڊوائيسز لاءِ ڪمپائلر.
مٿانview
تعارف
Microchip MPLAB® XC8 C ڪمپيلر جو هي رليز ڪيترن ئي نيون خاصيتون، بگ فيڪس، ۽ نئين ڊوائيس سپورٽ تي مشتمل آهي.
تعمير جي تاريخ
هن ڪمپيلر ورزن جي سرڪاري تعمير جي تاريخ 3 جولاءِ 2022 آهي.
پويون نسخو
اڳوڻو MPLAB XC8 C ڪمپيلر ورزن 2.39 هو، هڪ فنڪشنل حفاظتي ڪمپلر، جيڪو 27 جنوري 2022 تي ٺهيل هو. اڳوڻو معياري ڪمپيلر ورزن 2.36 هو، جيڪو 27 جنوري 2022 تي ٺهيل هو.
فنڪشنل حفاظت دستي
MPLAB XC گڏ ڪرڻ وارن لاءِ هڪ فنڪشنل حفاظتي دستياب دستاويزي پيڪيج ۾ موجود آهي جڏهن توهان هڪ فنڪشنل حفاظتي لائسنس خريد ڪندا آهيو.
اجزاء لائسنس ۽ نسخو
MPLAB® XC8 C Compiler for AVR MCUs اوزار 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-bit ورجن شامل آهن: Microsoft Windows 10 جا پروفيشنل ايڊيشن؛ Ubuntu 18.04؛ ۽ macOS 10.15.5. ونڊوز لاءِ بائنري ڪوڊ سائن ڪيو ويو آهي. ميڪ او ايس لاءِ بائنريز ڪوڊ سائن ٿيل ۽ نوٽرائز ٿيل آهن.
جيڪڏھن توھان ھلائي رھيا آھيو ھڪ نيٽ ورڪ لائسنس سرور، صرف ڪمپيوٽرن سان گڏ آپريٽنگ سسٽم جيڪي ڪمپيلرز جي حمايت ڪن ٿا لائسنس سرور کي ميزباني ڪرڻ لاء استعمال ڪري سگھجن ٿيون. xclm ورزن 2.0 جي مطابق، نيٽ ورڪ لائسنس سرور Microsoft ونڊوز سرور پليٽ فارم تي نصب ٿي سگهي ٿو، پر لائسنس سرور کي آپريٽنگ سسٽم جي سرور ورزن تي هلائڻ جي ضرورت ناهي.
آلات سپورٽ ڪيو
هي مرتب ڪندڙ سڀني 8-bit AVR MCU ڊوائيسز کي سپورٽ ڪري ٿو جيڪا رليز جي وقت تي ڄاڻايل آهي. ڏسو (ڪمپائلر جي ڊاک ڊاريڪٽري ۾) سڀني سپورٽ ڊوائيسز جي فهرست لاء. هنن files هر ڊوائيس لاءِ ترتيب واري بٽ سيٽنگن کي پڻ لسٽ ڪري ٿو.
ايڊيشن ۽ لائسنس اپ گريڊ
MPLAB XC8 گڏ ڪرڻ وارو هڪ لائسنس يافته (PRO) يا غير لائسنس يافته (مفت) پيداوار جي طور تي چالو ٿي سگهي ٿو. توهان کي پنهنجي ڪمپيلر کي لائسنس ڏيڻ لاءِ هڪ ايڪٽيويشن چيڪ خريد ڪرڻ جي ضرورت آهي. لائسنس مفت پراڊڪٽ جي مقابلي ۾ اعليٰ سطح جي اصلاح جي اجازت ڏئي ٿو. هڪ غير لائسنس يافته ڪمپيلر بغير ڪنهن لائسنس جي اڻڄاتل طور تي هلائي سگهجي ٿو.
هڪ MPLAB XC8 فنڪشنل حفاظتي ڪمپلر لازمي طور تي فعال ٿيڻ گهرجي هڪ فنڪشنل حفاظت لائسنس سان خريد ڪيل مائڪروچپ. ڪمپيلر هن لائسنس کان سواءِ ڪم نه ڪندو. هڪ دفعو چالو ڪيو ويو، توهان ڪنهن به اصلاح جي سطح کي منتخب ڪري سگهو ٿا ۽ سڀني ڪمپيلر خاصيتون استعمال ڪري سگهو ٿا. MPLAB XC فنڪشنل سيفٽي ڪمپلر جو هي رليز نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو.
ڏسو انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB XC C Compilers (DS50002059) دستاويز لائسنس جي قسمن تي معلومات لاءِ ۽ هڪ لائسنس سان گڏ ڪمپلر جي انسٽاليشن.
لڳائڻ ۽ فعال ٿيڻ
پڻ ڏسو لڏپلاڻ جا مسئلا ۽ حدون سيڪشن هن ڪمپيلر سان شامل جديد لائسنس مينيجر بابت اهم معلومات لاءِ.
جيڪڏهن MPLAB IDE استعمال ڪري رهيا آهيو، هن اوزار کي انسٽال ڪرڻ کان پهريان تازو MPLAB X IDE ورجن 5.0 يا بعد ۾ انسٽال ڪرڻ جي پڪ ڪريو. ڪمپلر کي انسٽال ڪرڻ کان اڳ IDE کي ڇڏي ڏيو. .exe (Windows)، .run (Linux) يا ايپ (macOS) ڪمپائلر انسٽالر ايپليڪيشن کي هلايو، مثال طور XC8-1.00.11403-windows.exe ۽ اسڪرين تي ڏنل هدايتن تي عمل ڪريو.
ڊفالٽ انسٽاليشن ڊاريڪٽري جي سفارش ڪئي وئي آهي. جيڪڏهن توهان لينڪس استعمال ڪري رهيا آهيو، توهان کي لازمي طور تي انسٽال ڪرڻ گهرجي هڪ ٽرمينل استعمال ڪندي ۽ روٽ اڪائونٽ مان. انسٽال ڪريو MacOS اڪائونٽ استعمال ڪندي منتظم جي استحقاق سان.
چالو ھاڻي انسٽاليشن لاءِ الڳ الڳ ڪيو ويو آھي. ڏسو دستاويز لائسنس مئنيجر MPLAB® XC C Compilers (DS52059) لاءِ وڌيڪ معلومات لاءِ.
جيڪڏھن توھان چونڊيندا آھيو مرتب ڪندڙ کي هلائڻ لاءِ تشخيصي لائسنس تحت، توھان کي ھاڻي ملندو ھڪ انتباہ تاليف جي دوران جڏھن توھان ھوندؤ 14 ڏينهن اندر توھان جي تشخيص واري مدت جي ختم ٿيڻ کان. ساڳي ڊيڄاريندڙ جاري ڪئي وئي آهي جيڪڏهن توهان آهيو 14 ڏينهن اندر توهان جي HPA سبسڪرپشن جي ختم ٿيڻ جي.
XC نيٽورڪ لائسنس سرور هڪ الڳ انسٽالر آهي ۽ اڪيلو استعمال ڪندڙ ڪمپيلر انسٽالر ۾ شامل نه آهي.
XC لائسنس مئنيجر هاڻي سچل نيٽ ورڪ لائسنس جي رومنگ کي سپورٽ ڪري ٿو. موبائيل استعمال ڪندڙن لاءِ، هي فيچر هڪ سچل لائسنس کي اجازت ڏئي ٿو ته نيٽ ورڪ کي ٿوري وقت لاءِ بند ڪري. ھن خصوصيت کي استعمال ڪندي، توھان نيٽ ورڪ کان ڌار ڪري سگھو ٿا ۽ اڃا تائين پنھنجي MPLAB XC مرتب ڪندڙ کي استعمال ڪري سگھو ٿا. هن فيچر تي وڌيڪ لاءِ XCLM انسٽال جو ڊاڪ فولڊر ڏسو. MPLAB X IDE ۾ بصري طور تي رومنگ کي منظم ڪرڻ لاءِ لائسنس ونڊو (ٽولز> لائسنس) شامل آهن.
تنصيب جي مسئلن کي حل ڪرڻ
جيڪڏهن توهان Windows آپريٽنگ سسٽم مان ڪنهن به ڪمپلر کي انسٽال ڪرڻ ۾ مشڪلاتن جو تجربو ڪريو ٿا، هيٺ ڏنل تجويزون ڪوشش ڪريو.
- انسٽاليشن کي ايڊمنسٽريٽر طور ھلايو.
- انسٽالر ايپليڪيشن جي اجازتن کي سيٽ ڪريو 'مڪمل ڪنٽرول' تي. (سائيٽ ڪلڪ ڪريو fileمنتخب ڪريو پراپرٽيز، سيڪيورٽي ٽيب، چونڊيو يوزر، ايڊٽ ڪريو.)
- عارضي فولڊر جي اجازتن کي سيٽ ڪريو "مڪمل ڪنٽرول!
temp فولڊر جي جڳھ کي طئي ڪرڻ لاء، ٽائپ ڪريو %temp% کي رن ڪمانڊ ۾ (ونڊوز لوگو ڪي + آر). اهو کلي ويندو a file explorer dialog انهي ڊاريڪٽري کي ڏيکاري ٿو ۽ توهان کي انهي فولڊر جو رستو طئي ڪرڻ جي اجازت ڏيندو.
مرتب ڪندڙ دستاويز
ڪمپيلر جي استعمال ڪندڙ جي ھدايتن کي کوليو وڃي ٿو HTML پيج تان جيڪو توھان جي برائوزر ۾ کلي ٿو جڏھن MPLAB X IDE ڊيش بورڊ ۾ نيري مدد واري بٽڻ تي ڪلڪ ڪريو، جيئن اسڪرين شاٽ ۾ ڏيکاريل آھي.
جيڪڏھن توھان ٺاھي رھيا آھيو 8-bit AVR ھدف لاءِ، MPLAB® XC8 C Compiler User's Guide for AVR® MCU انھن ڪمپلر جي اختيارن ۽ خاصيتن تي مشتمل آھي جيڪي ھن فن تعمير تي لاڳو آھن.
ڪسٽمر سپورٽ
مائڪروچپ هن ڪمپيلر ورزن جي حوالي سان بگ رپورٽن، تجويزن يا تبصرن کي ڀليڪار ڪري ٿو. مھرباني ڪري ڪنھن به بگ رپورٽ يا خصوصيت جي درخواستن کي سپورٽ سسٽم ذريعي سڌو ڪريو.
دستاويزن جا تازه ڪاريون
MPLAB XC8 دستاويزن جي آن لائين ۽ تازه ترين ورزن لاءِ، مھرباني ڪري دورو ڪريو Microchip جي آن لائين ٽيڪنيڪل دستاويزن webسائيٽ.
ھن رليز ۾ نئون يا اپڊيٽ ٿيل AVR دستاويز:
- MUSL ڪاپي رائيٽ نوٽيس
- انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB XC C Compilers (نظرثاني M)
- MPLAB XC8 يوزر جي گائيڊ فار ايمبيڊڊ انجنيئرز - AVR MCUs (نظرثاني A)
- MPLAB XC8 C Compiler User! s Guide for AVR MCU (نظرثانی F)
- مائڪروچپ متحد معياري لائبريري ريفرنس گائيڊ (نظرثاني B)
Microchip Unified Standard Library Reference Guide بيان ڪري ٿي ته فعلن جي رويي ۽ انٽرفيس جي وضاحت ڪئي وئي Microchip Unified Standard Library پاران بيان ڪئي وئي آھي، گڏوگڏ لائبريري جي قسمن ۽ ميڪروز جو ارادو استعمال. ھن معلومات مان ڪجھ اڳ ۾ موجود ھئي MPLAB® XC8 C Compiler User!s Guide for AVR® MCU. ڊوائيس جي مخصوص لائبريري جي معلومات اڃا تائين هن ڪمپيلر گائيڊ ۾ شامل آهي.
جيڪڏهن توهان صرف 8-bit ڊوائيسز ۽ MPLAB XC8 C ڪمپائلر سان شروعات ڪري رهيا آهيو، MPLAB® XC8 استعمال ڪندڙ جي گائيڊ فار ايمبيڊڊ انجنيئرز – AVR® MCUs (DS50003108) وٽ معلومات آهي MPLAB X IDE ۾ پروجيڪٽ قائم ڪرڻ ۽ ڪوڊ لکڻ بابت. توهان جي پهرين MPLAB XC8 C منصوبي لاءِ. ھي ھدايت ھاڻي مرتب ڪندڙ سان ورهايو ويو آھي.
ھيميٽ يوزر گائيڊ ھن رليز ۾ ڊاڪس ڊاريڪٽري ۾ شامل ڪيو ويو آھي. هي گائيڊ انهن لاءِ آهي جيڪي هاميٽ کي اسٽينڊ اڪيلو ايپليڪيشن طور هلائي رهيا آهن.
نئون ڇا آهي
ھيٺيون آھن نيون AVR- ھدف جون خاصيتون جيڪي ھاڻي گڏ ڪندڙ کي سپورٽ ڪري ٿو. ذيلي عنوانن ۾ ورزن نمبر اشارو ڪري ٿو پهريون ڪمپلر ورزن انهن خاصيتن کي سپورٽ ڪرڻ لاءِ جيڪي پٺيان اچن ٿيون.
نسخو 2.40
نئين ڊوائيس سپورٽ سپورٽ ھاڻي ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: AT90PWM3، AVR16DD14، AVR16DD20، AVR16DD28، AVR16DD32، AVR32DD14، AVR32DD20، AVR32DD28، AVR32DD32، AVR64، AVR28 AVR64EA32، ۽ AVR64EA48.
بهتر طريقيڪار تجزيه طريقيڪار خلاصو (PA) اصلاحي اوزار کي بهتر ڪيو ويو آهي ته جيئن ڪوڊ جنهن ۾ هڪ فنڪشن ڪال هدايتون (ڪال ريڪال) ) بيان ڪري سگهجي. اهو صرف تڏهن ٿيندو جڏهن اسٽيڪ استعمال نه ڪيو ويو آهي دليلن کي پاس ڪرڻ ۽ نه ئي فنڪشن مان واپسي جي قيمت حاصل ڪرڻ لاءِ. اسٽيڪ استعمال ڪيو ويندو آھي جڏھن ھڪڙي فنڪشن کي ڪال ڪري رھيا آھن متغير دليلن جي فهرست سان يا جڏھن ھڪڙي فنڪشن کي سڏيندو آھي جيڪو ھن مقصد لاء نامزد ٿيل رجسٽرن کان وڌيڪ دليلن کي وٺندو آھي. ھن خصوصيت کي بند ڪري سگھجي ٿو monk-pa-outline-calls آپشن استعمال ڪندي، يا ڪنھن شئي لاءِ پروسيجرل خلاصو مڪمل طور تي بند ڪري سگھجي ٿو. file يا ڪم ڪندي -monk-pa-on- استعمال ڪنديfile ۽ -mo.-pa-on-function بالترتيب، يا nipa وصف (nipa specifier) کي منتخب طور تي افعال سان استعمال ڪندي
ڪوڊ ڪوريج ميڪرو ڪمپلر هاڻي وضاحت ڪري ٿو ميڪرو __CODECOV جيڪڏهن هڪ صحيح mcodecov اختيار بيان ڪيو ويو آهي.
ميموري رزرويشن آپشن xc8-cc ڊرائيور ھاڻي قبول ڪندو -mreserve=space@start: end option جڏھن 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-proem آپشن استعمال ڪري سگھجي ٿو لنڪر رکڻ لاءِ سڀني قابليت واري ڊيٽا کي ھڪڙي 32k سيڪشن ۾ رکڻ لاءِ ۽ پاڻمرادو لاڳاپيل SFR رجسٽر کي شروع ڪرڻ کي يقيني بڻائڻ لاءِ ته ھن ڊيٽا کي ڊيٽا ميموري اسپيس ۾ ميپ ڪيو ويو آھي. ، جتي ان کي وڌيڪ موثر طريقي سان پهچايو ويندو.
مائڪروچپ متحد معياري لائبريريون سڀ MPLAB XC گڏ ڪرڻ وارا هڪ مائڪروچپ يونيفائيڊ معياري لائبريري شيئر ڪندا، جيڪو هاڻي MPLAB XC8 جي هن رليز سان موجود آهي. MPLAB® XC8 C Compiler User's Guide/يا AVR® MCU ۾ ھاڻي انھن معياري ڪمن لاءِ دستاويز شامل نه آھن. ھي معلومات ھاڻي ملي سگھي ٿي Microchip Unified Standard Library Reference Guide ۾. نوٽ ڪريو ته avr-libc پاران بيان ڪيل ڪجھ ڪارڪردگي هاڻي موجود ناهي. (ڏسو لئبرر): '. ڪارڪردگي...)
سمارٽ IO نئين متحد لائبريرين جي حصي جي طور تي، پرنٽ ۽ اسڪين خاندانن ۾ IO افعال هاڻي هر تعمير تي ڪسٽم ٺاهيا ويا آهن، انهي جي بنياد تي اهي فنڪشن پروگرام ۾ ڪيئن استعمال ڪيا ويندا آهن. اهو پروگرام پاران استعمال ڪيل وسيلن کي ڪافي حد تائين گھٽائي سگھي ٿو.
اسمارٽ IO مدد آپشن جڏهن سمارٽ IO افعال (جهڙوڪ printf () يا scanf () ) تي ڪالن جو تجزيو ڪرڻ وقت، مرتب ڪندڙ هميشه فارميٽ جي اسٽرنگ مان اندازو نٿو لڳائي سگهي يا دليلن مان اندازو لڳائي سگهي ٿو جيڪي ڪال لاءِ گهربل تبديلين جي وضاحت ڪندڙ. اڳي، گڏ ڪرڻ وارو هميشه ڪو تصور نه ڪندو ۽ يقيني بڻائيندو ته مڪمل طور تي فنڪشنل IO افعال فائنل پروگرام تصوير ۾ ڳنڍيل هئا. هڪ نئون - msmart-io-format=fmt آپشن شامل ڪيو ويو آهي ته جيئن ڪمپيلر بدران سمارٽ IO افعال پاران استعمال ڪيل تبادلي جي وضاحت ڪندڙن جي استعمال ڪندڙ کي ڄاڻ ڏئي سگهجي ٿو جن جو استعمال مبهم آهي، تمام گهڻي ڊگهي IO روٽين کي ڳنڍڻ کان روڪيو. (وڌيڪ تفصيل لاءِ smart-io-format آپشن ڏسو.)
ڪسٽم حصن کي رکڻ اڳي، -Wl، -section-start اختيار صرف مخصوص سيڪشن کي درخواست ڪيل ايڊريس تي رکي ٿو جڏهن لنڪر اسڪرپٽ ساڳئي نالي سان هڪ آئوٽ سيڪشن جي وضاحت ڪري ٿي. جڏهن اهو معاملو نه هو، سيڪشن کي لنڪر طرفان چونڊيل ايڊريس تي رکيو ويو ۽ اختيار کي لازمي طور تي نظر انداز ڪيو ويو. ھاڻي اختيار کي ساراھيو ويندو سڀني ڪسٽم سيڪشن لاء، جيتوڻيڪ لنڪر اسڪرپٽ سيڪشن جي وضاحت نٿو ڪري. نوٽ، جيتوڻيڪ، معياري حصن لاء، جهڙوڪ . متن، . بي ايس ايس يا. ڊيٽا، بهترين فٽ مختص ڪندڙ اڃا تائين انهن جي جڳهه تي مڪمل ڪنٽرول هوندو، ۽ اختيار جو ڪو اثر نه ٿيندو. استعمال ڪريو -Wl، -Tsection=add آپشن، جيئن استعمال ڪندڙ جي گائيڊ ۾ بيان ڪيو ويو آهي.
نسخو 2.32
اسٽيڪ ھدايت هڪ PRO گڏ ڪرڻ واري لائسنس سان دستياب آهي، ڪمپلر جي اسٽيڪ گائيڊنگ فيچر استعمال ڪري سگهجي ٿي پروگرام جي استعمال ڪيل ڪنهن به اسٽيڪ جي وڌ ۾ وڌ کوٽائي جو اندازو لڳائڻ لاءِ. اهو هڪ پروگرام جي ڪال گراف کي ٺاهي ۽ تجزيو ڪري ٿو، هر فنڪشن جي اسٽيڪ استعمال کي طئي ڪري ٿو، ۽ هڪ رپورٽ ٺاهي ٿو، جنهن مان پروگرام پاران استعمال ڪيل اسٽيڪ جي کوٽائي جو اندازو لڳائي سگهجي ٿو. ھي مضمون فعال ڪيو ويو آھي -mchp-stack-usage ڪمانڊ لائن آپشن ذريعي. اسٽيڪ استعمال جو خلاصو عمل کان پوء ڇپيل آهي. هڪ تفصيلي اسٽيڪ رپورٽ نقشي ۾ موجود آهي file، جنهن کي عام طريقي سان عرض ڪري سگهجي ٿو.
نئين ڊوائيس سپورٽ سپورٽ هيٺ ڏنل AVR حصن لاءِ موجود آهي: ATTINY 427، ATTINY 424، ATTINY 426، ATTINY827، ATTINY824، ATTINY826، AVR32DB32، AVR64DB48، AVR64DB64، AVR64DB28، AVR32DB28، AVR64DB32 AVR32DB48، ۽ AVRXNUMXDBXNUMX.
واپس ورتو ويو ڊوائيس سپورٽ سپورٽ هيٺ ڏنل AVR حصن لاءِ هاڻي دستياب ناهي: AVR16DA28، AVR16DA32 ۽، AVR16DA48.
نسخو 2.31
ڪو به.
نسخو 2.30
ڊيٽا جي شروعات کي روڪڻ لاءِ نئون آپشن ھڪڙو نئون -mno-data-ini t ڊرائيور اختيار ڊيٽا جي شروعات کي روڪي ٿو ۽ بي ايس ايس سيڪشن کي صاف ڪرڻ. اهو اسيمبلي ۾ do_copy_ data ۽ d o_ clear_ bss علامتن جي آئوٽ کي دٻائڻ سان ڪم ڪري ٿو files، جيڪو موڙ ۾ لنڪر پاران انهن معمولن کي شامل ڪرڻ کان روڪيندو.
بهتر ڪيل اصلاحون ڪيتريون ئي اصلاحون ڪيون ويون آھن، جن ۾ بيڪار موٽڻ وارين ھدايتن کي ختم ڪرڻ، skip-if-bit-is جي ھدايتن جي پٺيان ڪجھ جمپز کي ختم ڪرڻ، ۽ بھتر طريقياتي تجريد ۽ ھن عمل کي ٻيهر ورجائڻ جي صلاحيت شامل آھي.
اضافي اختيارات ھاڻي موجود آھن انھن مان ڪجھ اصلاحن کي ڪنٽرول ڪرڻ لاءِ، خاص طور تي -f سيڪشن اينڪرز، جيڪي جامد شين جي رسائي کي ھڪڙي علامت جي نسبت سان انجام ڏيڻ جي اجازت ڏين ٿا؛ -mpai derations=n، جيڪا اجازت ڏئي ٿي ته طريقيڪار جي تجريد جي تعداد کي 2 جي ڊفالٽ مان تبديل ڪيو وڃي؛ ۽، -mpa- ڪال قيمت- شارٽ ڪال، جيڪو وڌيڪ جارحاڻي طريقي وارو خلاصو انجام ڏئي ٿو، انهي اميد ۾ ته لنڪر ڊگهي ڪالن کي آرام ڪري سگهي ٿو. هي آخري آپشن ڪوڊ جي سائيز کي وڌائي سگھي ٿو جيڪڏهن بنيادي تصورات کي محسوس نه ڪيو وڃي.
نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: AVR16DA28، AVR16DA32،
AVR16DA48، AVR32DA28، AVR32DA32، AVR32DA48، AVR64DA28، AVR64DA32، AVR64DA48، AVR64DA64، AVR128DB28، AVR128DB32، AVR128DB48، AVR128DB64،AVRXNUMXDAVXNUMX
واپس ورتو ويو ڊوائيس سپورٽ سپورٽ ھاڻي ھيٺ ڏنل AVR حصن لاءِ دستياب ناھي: ATA5272، ATA5790، ATA5790N، ATA5791، ATA5795، ATA6285، ATA6286، ATA6612C، ATA6613C، ATA6614Q، ATA6616C، ATA6617C، ATA664251Q، ATAXNUMXC، ATAXNUMXC، ATAXNUMXN.
نسخو 2.29 (فنڪشنل سيفٽي رليز)
مٿو file ڪمپيلر بلٽ انز لاءِ ان ڳالهه کي يقيني بڻائڻ لاءِ ته ڪمپلر ٻوليءَ جي وضاحتن سان مطابقت رکي ٿو جهڙوڪ MISRA، هيڊر file، جيڪو خودڪار طور تي شامل ڪيو ويو آهي ، اپڊيٽ ڪيو ويو آهي. هي هيڊر سڀني اندر تعمير ٿيل ڪمن لاءِ پروٽوٽائپس تي مشتمل آهي، جهڙوڪ _buil tin _avrnop () ۽ _buil tin_ avr delay_ cycles () . ڪجھ بلٽ ان MISRA مطابق نه ھجن. انهن کي ختم ڪري سگھجي ٿو define _Xe_ STRICT_ MISRA کي compiler ڪمانڊ لائن ۾ شامل ڪندي. تعمير ٿيل ۽ انهن جي اعلانن کي اپڊيٽ ڪيو ويو آهي مقرر ٿيل چوٽي جي قسمن کي استعمال ڪرڻ لاء.
نسخو 2.20
نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: ATTINY1624، ATTINY1626، ۽ ATTINY1627.
بھتر بھترين فٽ مختص ڪمپيلر ۾ بهترين فٽ مختص ڪندڙ (BFA) کي بهتر ڪيو ويو آهي ته جيئن سيڪشن کي ترتيب ۾ مختص ڪيو وڃي ته بهتر اصلاح جي اجازت ڏئي. BFA ھاڻي نالي واري ايڊريس اسپيس کي سپورٽ ڪري ٿو ۽ ڊيٽا جي شروعات کي بھتر سنڀاليندو آھي.
بهتر طريقيڪار تجزيه طريقيڪار جي تجزيي جي اصلاحن کي ھاڻي وڌيڪ ڪوڊ جي ترتيبن تي انجام ڏنو ويو آھي. اڳيون حالتون جتي هي اصلاح ٿي سگھي ٿي ڪوڊ جي سائيز ۾ اضافو ڪيو ويو آهي اصلاحي ڪوڊ کي لنڪر جي گندگي گڏ ڪرڻ جي عمل کان آگاهي ڪندي.
AVR جمع ڪندڙ جي غير موجودگي AVR اسمبلر هاڻي هن تقسيم سان شامل ناهي.
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
ڪوڊ ڪوريج هن رليز ۾ ڪوڊ ڪوريج جي خاصيت شامل آهي جيڪا ان حد تائين تجزيي کي آسان بڻائي ٿي جنهن تي منصوبي جي سورس ڪوڊ تي عمل ڪيو ويو آهي. ان کي فعال ڪرڻ لاءِ اختيار استعمال ڪريو -mcodecov=ram. توهان جي هارڊويئر تي پروگرام جي عمل کان پوء، ڪوڊ ڪوريج جي معلومات کي ڊوائيس ۾ گڏ ڪيو ويندو، ۽ اهو منتقل ڪري سگهجي ٿو ۽ ايم پي ايل بي ايڪس IDE ذريعي ڏيکاريل ڪوڊ ڪوريج پلگ ان ذريعي. هن پلگ ان تي معلومات حاصل ڪري سگهجي ٿو لاء IDE دستاويز ڏسو. #pragma mcodecov استعمال ٿي سگھي ٿو ايندڙ ڪمن کي ڪوريج جي تجزيي مان خارج ڪرڻ لاءِ. مثالي طور pragma جي شروعات ۾ شامل ڪيو وڃي file انهي سڄي کي خارج ڪرڻ لاء file ڪوريج جي تجزيي کان. متبادل طور تي، خاصيت ( (mcodecov) ) استعمال ٿي سگھي ٿي ھڪڙي خاص فنڪشن کي ڪوريج جي تجزيي مان خارج ڪرڻ لاء.
ڊوائيس جي وضاحت files هڪ نئون ڊوائيس file avr chipinfo سڏيو ويندو آهي. html compiler distribution جي docs ڊاريڪٽري ۾ واقع آهي. هي file سڀني ڊوائيسن کي لسٽ ڪري ٿو جيڪو ڪمپلر جي مدد سان. هڪ ڊوائيس جي نالي تي ڪلڪ ڪريو، ۽ اهو هڪ صفحو کوليندو جيڪو ڏيکاريندو سڀني قابل اجازت ترتيب واري ترتيب واري بٽ سيٽنگ / قيمت جوڙو انهي ڊوائيس لاء، اڳوڻي سان.amples.
طريقيڪار خلاصو پروسيسرل تجزيه اصلاحون، جيڪي عام بلاڪ جي اسمبلي ڪوڊ کي تبديل ڪن ٿيون ڪالن سان گڏ انهي بلاڪ جي ڪڍيل ڪاپي کي، ڪمپلر ۾ شامل ڪيو ويو آهي. اهي هڪ الڳ ايپليڪيشن ذريعي ڪيا ويا آهن، جيڪو خودڪار طور تي مرتب ڪندڙ طرفان سڏيو ويندو آهي جڏهن سطح 2، 3 يا اصلاحن کي چونڊيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي، پر اھي شايد عمل جي رفتار ۽ ڪوڊ ڊيبگگيبلٽي کي گھٽائي سگھن ٿيون.
طريقيڪار جي تجزيي کي -mno-pa اختيار استعمال ڪندي اعلي اصلاحي سطحن تي غير فعال ڪري سگھجي ٿو، يا -mpa استعمال ڪندي هيٺين اصلاح جي سطح (توهان جي لائسنس جي تابع) تي فعال ڪري سگھجي ٿو. اهو هڪ اعتراض لاء بند ڪري سگهجي ٿو file استعمال ڪندي -mno-pa-on-file=fileنالو، يا فنڪشن لاءِ غير فعال ڪيو ويو -mno-pa on function= function.
توهان جي ماخذ ڪوڊ جي اندر، طريقياتي تجزيي کي فعل جي تعريف سان _attribute_ ( (nopa)) استعمال ڪندي، يا _nopa استعمال ڪندي، فعل لاءِ غير فعال ٿي سگھي ٿو، جيڪو انتساب ( (nopa، noinline)) تائين وڌايو وڃي ٿو ۽ اھڙي طرح فنڪشن ان لائننگ کي ٿيڻ کان روڪي ٿو. ۽ اتي موجود ڪوڊ جو خلاصو.
پراگما ۾ لاڪ بٽ سپورٽ #pragma config ھاڻي استعمال ڪري سگھجن ٿيون AVR لاڪ بِٽس ۽ ٻين ڪنفيگريشن بِٽس کي بيان ڪرڻ لاءِ. چيڪ ڪريو avr چپ معلومات. html file (مٿي ذڪر ڪيو ويو آهي) هن pragma سان استعمال ڪرڻ لاء سيٽنگ / قدر جوڙو لاء.
نئين ڊوائيس سپورٽ سپورٽ ھيٺين حصن لاءِ دستياب آھي: AVR28DA128، AVR64DA128، AVR32DA128، ۽ AVR48DA128.
نسخو 2.05
توهان جي رقم لاء وڌيڪ بٽ هن مرتب ڪندڙ ۽ لائسنس مينيجر جو macOS نسخو هاڻي هڪ 64-bit ايپليڪيشن آهي. اهو يقيني بڻائيندو ته گڏ ڪرڻ وارو انسٽال ڪندو ۽ هلائيندو بغير ڊيڄاريندڙ MacOS جي تازي ورزن تي.
پروگرام ميموري ۾ ڪانسٽ آبجیکٹس ڪمپائلر ھاڻي پروگرام فليش ميموري ۾ ڪانسٽ لائق شيون رکي سگھي ٿو، بجاءِ انھن کي RAM ۾ رکڻ جي. ڪمپيلر ۾ ترميم ڪئي وئي آهي ته جيئن مسلسل معيار جي عالمي ڊيٽا کي پروگرام فليش ميموري ۾ محفوظ ڪيو وڃي ۽ هن ڊيٽا کي سڌو ۽ اڻ سڌي طرح استعمال ڪري سگهجي ٿو مناسب پروگرام-ميموري هدايتون استعمال ڪندي. ھي نئون فيچر ڊفالٽ طور فعال ڪيو ويو آھي پر -mno-const-data-in-progmem آپشن کي استعمال ڪندي غير فعال ڪري سگھجي ٿو. avrxmega3 ۽ avrtiny architectures لاءِ، ھي خصوصيت گھربل نه آھي ۽ ھميشه غير فعال آھي، ڇو ته پروگرام ميموري انھن ڊوائيسز لاءِ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آھي.
معياري مفت لاء ھن ڪمپيلر جا غير لائسنس وارا (مفت) ورجن ھاڻي اجازت ڏين ٿا اصلاحن جي ۽ ان ۾ ليول 2 تائين. ھي اجازت ڏيندو ھڪ جھڙو، جيتوڻيڪ ھڪ جھڙو نه، پر اھو ٻاھر آھي جيڪو اڳي معياري لائسنس استعمال ڪندي ممڪن ھو.
ڀليڪار AVRASM2 AVRASM2 گڏ ڪرڻ وارو 8-bit ڊوائيسز لاءِ ھاڻي شامل ڪيو ويو آھي XC8 ڪمپلر انسٽالر ۾. هي اسمبلر XC8 ڪمپلر طرفان استعمال نه ڪيو ويو آهي، پر هٿ سان لکيل اسيمبلي ذريعن جي بنياد تي منصوبن لاءِ دستياب آهي.
نئين ڊوائيس سپورٽ سپورٽ ھيٺين حصن لاءِ موجود آھي: ATMEGA1608، ATMEGA1609، ATMEGA808، ۽ ATMEGA809.
نسخو 2.00
اعليٰ درجي جو ڊرائيور هڪ نئون ڊرائيور، جنهن کي xc8-cc سڏيو ويندو آهي، هاڻي اڳئين avr-gcc ڊرائيور ۽ xc8 ڊرائيور کان مٿي آهي، ۽ اهو ٽارگيٽ ڊيوائس جي چونڊ جي بنياد تي مناسب مرتب ڪندڙ کي سڏي سگهي ٿو. هي ڊرائيور GCC طرز جي اختيارن کي قبول ڪري ٿو، جيڪي يا ته ترجمو ڪيا ويا آهن يا مرتب ڪيل ڪمپيلر ڏانهن منتقل ڪيا ويا آهن. هي ڊرائيور اجازت ڏئي ٿو اختيارن جي هڪجهڙائي سيٽن سان هڪجهڙا سيمينٽڪس ڪنهن به AVR يا PIC ٽارگيٽ سان استعمال ڪرڻ لاءِ ۽ اهڙيءَ طرح ڪمپلر کي سڏڻ جو تجويز ڪيل طريقو آهي. جيڪڏهن گهربل هجي، پراڻي avr-gcc ڊرائيور کي سڌو سنئون استعمال ڪري سگهجي ٿو پراڻي طرز جي اختيارن کي استعمال ڪندي ان کي اڳوڻي ڪمپيلر ورزن ۾ قبول ڪيو ويو.
عام سي انٽرفيس هي گڏ ڪرڻ وارو هاڻي MPLAB عام سي انٽرفيس جي مطابق ڪري سگهي ٿو، سورس ڪوڊ کي وڌيڪ آساني سان سڀني MPLAB XC گڏ ڪرڻ وارن ۾ پورٽ ڪرڻ جي اجازت ڏئي ٿو. -mext=cci آپشن هن خصوصيت جي درخواست ڪري ٿو، ڪيترن ئي ٻولين جي واڌارن لاء متبادل نحو کي فعال ڪرڻ.
نئون لائبرري ڊرائيور هڪ نئون لائبرري ڊرائيور پوئين PIC لائبرر لائبريرين ۽ AVR avr-ar لائبريرين کان مٿي پوزيشن ۾ آهي. هي ڊرائيور GCC-archiver طرز جي اختيارن کي قبول ڪري ٿو، جيڪي يا ته ترجمو ڪيا ويا آهن يا لائبريرين ڏانهن منتقل ڪيا ويا آهن. نون ڊرائيور کي اجازت ڏئي ٿو ته اختيارن جي ساڳي سيٽ سان ساڳي سيمينٽڪس کي استعمال ڪرڻ لاءِ استعمال ڪيو وڃي ڪنهن به PIC يا AVR لائبريري ٺاهي file ۽ اهڙيءَ طرح لائبريرين کي سڏڻ جو تجويز ڪيل طريقو آهي. جيڪڏهن گهربل پراجيڪٽس لاءِ گهربل هجي، ته پوئين لائبريرين کي سڌو سنئون سڏيو وڃي ٿو پراڻي طرز جا اختيار استعمال ڪندي جيڪي اڳئين مرتب ورزن ۾ قبول ڪيا ويا هئا.
لڏپلاڻ جا مسئلا
ھيٺيون خاصيتون آھن جيڪي ھاڻي مختلف طريقي سان گڏ ڪن ٿيون. اهي تبديليون شايد توهان جي ماخذ ڪوڊ ۾ ترميم جي ضرورت هجي جيڪڏهن ڪوڊنگ ڪوڊ هن ڪمپلر ورزن ڏانهن. ذيلي عنوانن ۾ ورزن جو نمبر اشارو ڪري ٿو پهريون مرتب ڪندڙ ورزن جي پٺيان تبديلين کي سپورٽ ڪرڻ لاءِ.
نسخو 2.40
ڪو به.
نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.36
ڪو به.
نسخو 2.35
اسٽرنگ جي بنيادن کي سنڀالڻ (XCS-2420) ٻين XC ڪمپلرز سان مطابقت کي يقيني بڻائڻ لاءِ، XC8 اسٽرنگ-ٽو افعال، جهڙوڪ strtol () وغيره، هاڻي ان پٽ اسٽرنگ کي تبديل ڪرڻ جي ڪوشش نه ڪندا جيڪڏهن بيان ڪيل بنياد 36 کان وڏو آهي ۽ ان جي بدران EINVAL تي errno سيٽ ڪندو. سي معيار جي ڪارڪردگي جي رويي کي بيان نه ڪندو آهي جڏهن هي بنيادي قيمت وڌي وڃي ٿي.
نامناسب رفتار جي اصلاح ليول 3 اصلاحن (-03) کي منتخب ڪرڻ وقت طريقيڪار تجزيي جي اصلاح کي فعال ڪيو پيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي ڪوڊ جي رفتار جي خرچ تي، تنهنڪري نه ڪيو وڃي ها. هن اصلاح جي سطح کي استعمال ڪندي پروجيڪٽ شايد ڪوڊ سائيز ۽ عمل جي رفتار ۾ فرق ڏسي سگھن ٿا جڏهن هن رليز سان ٺهيل آهي.
لائبريري ڪارڪردگي ڪيترن ئي معياري سي لائبريري جي ڪمن جو ڪوڊ هاڻي مائڪروچپ جي يونيفائيڊ معياري لائبريري مان اچي ٿو، جيڪو شايد اڳوڻي avr-libc لائبريري جي مهيا ڪيل مقابلي ۾ ڪجهه حالتن ۾ مختلف رويي کي ڏيکاري ٿو. مثال طورample، اهو هاڻي ضروري ناهي ته lprintf_flt لائبريري (-print _flt آپشن) ۾ ڳنڍڻ لاءِ فارميٽ ٿيل IO سپورٽ کي چالو ڪرڻ لاءِ float-format specifiers لاءِ. سمارٽ IO خاصيتون مائڪروچپ يونيفائيڊ معياري لائبريري هن آپشن کي بيڪار بڻائي ٿي. اضافي طور تي، _p suffixed routines جو استعمال اسٽرنگ ۽ ميموري جي ڪمن لاءِ (مثال طور strcpy_P () وغيره .. ) جيڪي فليش ۾ const strings تي هلن ٿا، هاڻي ضروري نه آهن. معياري سي روٽينز (مثال طور strcpy ()) اهڙي ڊيٽا سان صحيح ڪم ڪندي جڏهن const-data-in-program-memory فيچر فعال هوندو.
نسخو 2.32
ڪو به.
نسخو 2.31
ڪو به.
نسخو 2.30
ڪو به.
نسخو 2.29 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.20
تبديل ٿيل DFP ترتيب گڏ ڪرڻ وارو هاڻي DFPs (ڊيوائس فيملي پيڪ) پاران استعمال ڪيل مختلف ترتيب کي فرض ڪري ٿو. هن جو مطلب اهو ٿيندو ته هڪ پراڻو DFP شايد هن رليز سان ڪم نه ڪري سگهي، ۽ پراڻا مرتب ڪندڙ جديد ڊي ايف پي استعمال ڪرڻ جي قابل نه هوندا.
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
ڪو به
نسخو 2.05
پروگرام ميموري ۾ Const شيون نوٽ ڪريو ته ڊفالٽ طور، const-qualfiied شيون رکيا ويندا ۽ پروگرام ميموري ۾ پهچايا ويندا (جيئن هتي بيان ڪيو ويو آهي). اهو توهان جي منصوبي جي سائيز ۽ عمل جي رفتار کي متاثر ڪندو، پر رام جي استعمال کي گهٽائڻ گهرجي. هن خصوصيت کي غير فعال ڪري سگهجي ٿو، جيڪڏهن گهربل هجي، استعمال ڪندي -mnoconst-da-ta-in-progmem اختيار.
نسخو 2.00
ڪنفيگريشن فيوز ڊيوائس ڪنفيگريشن فيوز کي ھاڻي پروگرام ڪري سگھجن ٿا config pragma استعمال ڪندي ان کان پوءِ سيٽنگ-ويليو جوئر فيوز جي حالت کي بيان ڪرڻ لاءِ، مثال طور
#pragma ترتيب WDT0N = سيٽ
#pragma ترتيب B0DLEVEL = B0DLEVEL_4V3
مطلق شيون ۽ افعال شيون ۽ افعال ھاڻي ميموري ۾ مخصوص ايڊريس تي رکي سگھجن ٿا CCI _at (address) specifier، مثال لاءِample: #شامل int foobar at (Ox800100)؛ char at(Ox250) get ID(int offset) { … } هن وضاحت ڪندڙ لاءِ دليل لازمي طور تي هڪ مستقل هجڻ گهرجي جيڪو پتي جي نمائندگي ڪري ٿو جنهن تي پهريون بائيٽ يا هدايتون رکيل هونديون. RAM پتا 0x800000 جي آفسيٽ استعمال ڪندي ظاهر ڪيا ويا آھن. CCI کي فعال ڪريو ھن خصوصيت کي استعمال ڪرڻ لاءِ.
نئون مداخلت فنڪشن نحو مرتب ڪندڙ هاڻي قبول ڪري ٿو سي سي آءِ مداخلت (نمبر) وضاحت ڪندڙ کي ظاهر ڪرڻ لاءِ ته سي افعال مداخلت وارا هينڊلر آهن. وضاحت ڪندڙ هڪ مداخلت نمبر وٺندو آهي، مثال طورample: #شامل void interrupt(SPI STC_ vect _num) spi Isr(void) { … }
مقرر ٿيل مسئلا
هيٺيون تصحيحون ڪيون ويون آھن جيڪي ڪمپيلر ۾ ڪيون ويون آھن. اهي ٺاهيل ڪوڊ ۾ بگ کي درست ڪري سگھن ٿا يا ڪمپلر جي آپريشن کي تبديل ڪري سگھن ٿا جيڪو ارادو ڪيو ويو يا صارف جي گائيڊ طرفان بيان ڪيو ويو. ذيلي عنوانن ۾ ورزن نمبر اشارو ڪري ٿو پهريون مرتب ڪندڙ نسخو جنهن جي پٺيان مسئلن لاءِ فيڪس شامل آهن. عنوان ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهي مفيد ٿي سگهن ٿيون جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي.
نوٽ ڪريو ته ڊوائيس سان لاڳاپيل ڊوائيس فيملي پيڪ (DFP) ۾ ڪجهه ڊوائيس مخصوص مسئلا درست ڪيا ويا آهن. ڏسو MPLAB Pack Manager DFPs ۾ ڪيل تبديلين تي معلومات لاءِ ۽ جديد پيڪ ڊائون لوڊ ڪرڻ لاءِ.
نسخو 2.40
ڏاڍو آرامده (XCS-2876) جڏهن استعمال ڪندي -mrelax آپشن، گڏ ڪرڻ وارو ڪجهه حصن کي گڏ نه ڪري رهيو هو، نتيجي ۾ گهٽ بهتر ڪوڊ سائيز. اهو ٿي سگهي ٿو ڪوڊ سان جيڪو نئين MUSL لائبريري استعمال ڪيو يا ڪمزور علامتن سان.
نقشي سازي جي خصوصيت غير فعال نه ڪئي وئي جيئن خبرداري ۾ بيان ڪيو ويو آهي (XCS-2875) قيمت-ڊيٽا-ان-ڪنفگيشن ميپڊ پروگم خصوصيت تي انحصار آهي قيمت-ڊيٽا-ان-پروم فيچر فعال ٿيڻ تي. جيڪڏهن قيمت-ڊيٽا-ipconfig-mapped-proem خصوصيت واضح طور تي اختيار کي استعمال ڪندي فعال ڪيو ويو ۽ قيمت-ڊيٽا-انپروگم خصوصيت کي غير فعال ڪيو ويو، لنڪ قدم ناڪام ٿي ويو، انتباہ واري پيغام جي باوجود اهو بيان ڪيو ويو آهي ته ڊيٽا-ان-config-mapped- proem خصوصيت خودڪار طريقي سان غير فعال ٿي چڪي هئي، جيڪا مڪمل طور تي درست نه هئي. هن صورتحال ۾ const-data-in-config-mapped-proem فيچر هاڻي مڪمل طور تي غير فعال آهي.
DFP تبديليون صحيح طور تي NVMCTRL تائين رسائي حاصل ڪرڻ لاءِ (XCS-2848) AVR64EA ڊوائيسز پاران استعمال ٿيل رن ٽائم شروعاتي ڪوڊ ان ڳالهه ۾ نه رکيو ويو ته NVMCTRL رجسٽرڊ ڪنفيگريشن چينج پروٽيڪشن (سي سي پي) جي تحت هو ۽ IO SFR کي سيٽ ڪرڻ جي قابل نه هو پيج تي استعمال ڪيل پيج تي IO SFR کي const-data-in configmapped-proem compiler خصوصيت. AVR-Ex_DFP ورزن 2.2.55 ۾ ڪيل تبديليون رن ٽائم شروع ڪرڻ واري ڪوڊ کي صحيح طور تي ھن رجسٽر ۾ لکڻ جي اجازت ڏين ٿيون.
فليش ميپنگ کان بچڻ لاءِ DFP تبديليون (XCS-2847) AVR128DA28/32/48/64 Silicon Errata (DS80000882) ۾ رپورٽ ٿيل فليش ميپنگ ڊيوائس فيچر جي مسئلي لاءِ هڪ ڪم جي چوڌاري عمل ڪيو ويو آهي. const-data-in-config-mapped-proem compiler فيچر متاثر ٿيل ڊوائيسز لاءِ ڊفالٽ طور لاڳو نه ڪيو ويندو، ۽ اها تبديلي AVR-Ex_DFP ورزن 2.2.160 ۾ ظاهر ٿيندي.
sinhf يا coshf سان غلطي ٺاھيو (XCS-2834) sinhf () يا coshf () لائبريري جي ڪمن کي استعمال ڪرڻ جي ڪوشش جي نتيجي ۾ ھڪڙي ڳنڍ جي غلطي ٿي، ھڪڙي اڻ ڄاڻايل حوالن کي بيان ڪندي. غائب ٿيل فنڪشن جو حوالو ھاڻي شامل ڪيو ويو آھي مرتب ڪندڙ تقسيم ۾.
nopa سان غلطيون ٺاھيو (XCS-2833) nopa انتساب کي هڪ فنڪشن سان استعمال ڪندي جنهن ۾ ان جي اسمبلر جو نالو بيان ڪيو ويو آهي as () استعمال ڪندي اسمبلر کان غلطي جا پيغام. هي ميلاپ ممڪن ناهي.
پوائنٽر دليلن سان متغير فعل ناڪامي (XCS-2755, XCS-2731) 24-bit (_memo ٽائيپ) پوائنٽرز کي متغير دليلن جي لسٽ ۾ پاس ڪرڻ جي اميد رکي ٿو، جڏهن ته قيمت-ڊيٽا-ان-پروم فيچر فعال ٿئي ٿو. دليل جيڪي ڊيٽا ميموري ڏانهن اشارو ڪري رهيا هئا 16-bit شين جي طور تي گذري رهيا هئا، ڪوڊ ناڪامي سبب جڏهن اهي آخرڪار پڙهيا ويا. جڏهن cons data-in-proem خصوصيت کي فعال ڪيو ويندو آهي، سڀ 16-bit پوائنٽر دليلن کي هاڻي 24-bit پوائنٽرز ۾ تبديل ڪيو ويو آهي. strtoxxx لائبريري فنڪشن ناڪام ٿي رهيو آهي (XCS-2620) جڏهن const-data-in-proem فيچر کي فعال ڪيو ويو، strtoxxx لائبريري جي ڪمن ۾ داخل ٿيل پيراميٽر کي صحيح طريقي سان اپڊيٽ نه ڪيو ويو آهي ماخذ اسٽرنگ دليلن لاءِ نه ته پروگرام ميموري ۾.
غلط ڪاسٽن لاءِ الرٽ (XCS-2612) مرتب ڪندڙ هاڻي هڪ غلطي جاري ڪندو جيڪڏهن ڪاسٽ-ان-پروم فيچر کي فعال ڪيو ويو آهي ۽ اسٽرنگ لٽريل جو پتو واضح طور تي ڊيٽا ايڊريس اسپيس ڏانهن اڇلايو ويو آهي (ڪانسٽ قابليت کي ڇڏي ڏيڻ) لاءِample، (uint8 t *) "هيلو ورلڊ!". هڪ ڊيڄاريندڙ مسئلو آهي جيڪڏهن ايڊريس غلط ٿي سگهي ٿي جڏهن ڪاسٽ ڊيٽا پوائنٽر واضح طور تي ڊيٽا ايڊريس اسپيس ڏانهن اڇلائي وئي آهي.
اڻڄاتل ڪانسٽ شين جي جاءِ (XCS-2408) غير شروع ٿيل const ۽ const v olatile شيون انهن ڊوائيسز تي پروگرام ميموري ۾ نه رکيا ويندا هئا جيڪي انهن جي پروگرام جي ميموري جو سڄو يا حصو ڊيٽا ايڊريس اسپيس ۾ نقشي ۾ ٺاهيندا آهن. انهن ڊوائيسز لاء، اهڙيون شيون هاڻي پروگرام ميموري ۾ رکيل آهن، انهن جي آپريشن کي ٻين ڊوائيسز سان گڏ ٺاهيندي.
نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.36
دير ڪرڻ ۾ غلطي (XCS-2774) ڊفالٽ مفت موڊ جي اصلاحن ۾ معمولي تبديليون اوپيرينڊ ايڪسپريسز جي مسلسل فولڊنگ کي تاخير جي بلٽ ان افعال کي روڪيو، نتيجي ۾ انھن کي غير رابطا سمجھيو پيو وڃي ۽ نقص کي شروع ڪيو وڃي ٿو: _buil tin avr delay_ cycles توقع رکي ٿو ac oppile وقت جو عدد مسلسل.
نسخو 2.35
_at استعمال ڪندي مسلسل مختص (XCS-2653) ساڳئي نالي سان هڪ حصي ۾ ڪيترن ئي شين جي جڳهن جي مسلسل مختص ڪرڻ ۽ () تي استعمال ڪرڻ صحيح ڪم نه ڪيو. مثال طورample: constchararrl [ ] at tri butte ((sect on(".misses"))) at (Ox50 0 ) = {Oxo, Ox CD} ; قيمت چار arr2[ ] at tri butte ((section(".my s eke"))) = {Oxen, Ox FE}; aril کان پوء فوري طور تي arr2 رکڻ گهرجي.
سيڪشن جي شروعاتي پتي جي وضاحت ڪرڻ (XCS-2650) -وال، -سيڪشن-شروع آپشن خاموشي سان نامزد ٿيل شروعاتي ايڊريس تي سيڪشن رکڻ ۾ ناڪام ٿي رهيو هو. هي مسئلو مقرر ڪيو ويو آهي ڪنهن به ڪسٽم نالي سيڪشن لاءِ؛ بهرحال، اهو ڪنهن به معياري حصن لاءِ ڪم نه ڪندو، جهڙوڪ. متن يا. bss، جيڪو هڪ -Wl، -T اختيار استعمال ڪندي رکيل هجي.
لنڪر حادثو جڏهن آرام ڪيو (XCS-2647) جڏهن -relax اصلاح کي چالو ڪيو ويو ۽ ڪوڊ يا ڊيٽا سيڪشن هئا جيڪي دستياب ياداشت ۾ مناسب نه هئا، لنڪر تباهه ٿي ويو. هاڻي، اهڙي صورتحال ۾، غلطي پيغام جاري ڪيا ويا آهن.
خراب EEPROM رسائي (XCS-2629) ليپروما _read_ بلاڪ روٽين ميگا ڊوائيسز تي صحيح ڪم نه ڪيو جڏهن -monist-data-in-proem آپشن کي فعال ڪيو ويو (جيڪا ڊفالٽ اسٽيٽ آهي)، نتيجي ۾ EEPROM ميموري صحيح طريقي سان نه پڙهي وئي.
غلط ياداشت مختص (XCS-2593, XCS-2651) جڏهن -ٽيڪسٽ يا -ٽاٽا لنڪر آپشن (مثال طورample جي ذريعي گذري ويو a -Wl ڊرائيور اختيار استعمال ڪندي) بيان ڪيو ويو آهي، لاڳاپيل متن/ڊيٽا علائقي جي اصليت کي اپڊيٽ ڪيو ويو؛ جڏهن ته، آخري ايڊريس مطابق ترتيب نه ڏني وئي هئي، جيڪا علائقي کي ٽارگيٽ ڊوائيس جي ميموري جي حد کان وڌيڪ ڪري سگهي ٿي.
غلط ATtiny مداخلت ڪوڊ (XCS-2465) جڏهن ٽٽين ڊيوائسز جي تعمير ۽ اصلاحن کي بند ڪيو ويو (-00)، مداخلت واري ڪمن شايد رينج اسمبلر پيغامن کان ٻاهر آپرينڊ کي شروع ڪيو هجي.
اختيارن جي ذريعي نه ٿي گذريو (XCS-2452) جڏهن -Wl آپشن کي ڪيترن ئي، ڪاما کان الڳ ٿيل لنڪر اختيارن سان استعمال ڪيو وڃي، نه ته سڀئي لنڪر آپشنز لنڪر ڏانهن منتقل ڪيا پيا وڃن.
غلطي اڻ سڌي طرح پروگرام ميموري پڙهڻ (XCS-2450) ڪجهه مثالن ۾، ڪمپيلر هڪ اندروني غلطي پيدا ڪئي (ناقابل شناخت insn) جڏهن هڪ پوائنٽر کان پروگرام ميموري تائين ٻه بائيٽ ويل پڙهڻ.
نسخو 2.32
لائبريري جي ٻي رسائي ناڪام ٿي (XCS-2381) xc8-ar جي ونڊوز ورزن کي سڏڻ. exe لائبريري آرڪائيور ٻيو ڀيرو موجود لائبريري آرڪائيو تائين رسائي حاصل ڪرڻ لاءِ ناڪام ٿي سگھي ٿو ناڪامي پيغام جو نالو تبديل ڪرڻ جي ناڪامي سان.
نسخو 2.31
اڻڄاتل گڏ ڪرڻ واري ناڪامي (XCS-2367) جڏهن ونڊوز پليٽ فارمن تي هلندي هئي جنهن ۾ سسٽم عارضي ڊاريڪٽري هڪ رستي تي سيٽ ڪئي هئي جنهن ۾ ڊٽ شامل هوندو هو. ڪردار، گڏ ڪرڻ وارو عمل ڪرڻ ۾ ناڪام ٿي سگھي ٿو.
نسخو 2.30
گلوبل ليبل آئوٽ لائننگ کان پوءِ گم ٿي ويا (XCS-2299) هٿ سان لکيل اسيمبليءَ جو ڪوڊ جيڪو گلوبل ليبلز کي اسيمبليءَ جي ترتيبن ۾ رکي ٿو، جيڪي عمل جي تجزيي سان ٺهڪندڙ آهن، شايد صحيح طور تي بحال نه ڪيا ويا هجن.
آرام ڪرڻ وارو حادثو (XCS-2287) -merlad آپشن کي استعمال ڪرڻ سان شايد لنڪر حادثي جو سبب بڻيل هجي جڏهن tail jump relaxation optimizations ريٽ هدايتن کي هٽائڻ جي ڪوشش ڪئي جيڪا سيڪشن جي آخر ۾ نه هئي.
حادثو جڏهن ليبل کي قدر جي طور تي بهتر ڪرڻ (XCS-2282) ڪوڊ استعمال ڪندي "ليبلز ايز ويلز" جي GNU C ٻولي جي واڌ جي ڪري ٿي سگھي ٿي طريقيڪار جي تجزيي جي اصلاحن کي حادثي جو سبب بڻائين، ھڪڙي بيان ڪيل VMA رينج سان spans فڪس اپ غلطي سان.
ائين نه آهي (XCS-2271) شروعاتي لاءِ پروٽوٽائپس () ۽ ٻين ڪمن کان جڏهن ته -monist-data inprogmem خصوصيت کي غير فعال ڪيو ويو آهي، واپسي اسٽرنگ پوائنٽرز تي غير معياري قيمت جي قابليت جي وضاحت نه ڪريو. نوٽ ڪريو ته avrxmega3 ۽ avertin ڊوائيسز سان، ھي خصوصيت مستقل طور تي فعال آھي.
گم ٿيل شروعاتي (XCS-2269) جڏهن هڪ ترجمي جي يونٽ ۾ هڪ کان وڌيڪ متغير هڪ سيڪشن ۾ رکيا ويا هئا (سيڪشن يا وصف استعمال ڪندي ((سيڪشن)))، ۽ پهريون اهڙو متغير صفر شروع ڪيو ويو يا ان ۾ شروعاتي نه هئي، ساڳئي ترجمي جي يونٽ ۾ ٻين متغيرن لاءِ شروعات ڪندڙ جيڪي ساڳئي حصي ۾ رکيا ويا هئا، گم ٿي ويا.
نسخو 2.29 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.20
ڊگھي حڪمن سان غلطي (XCS-1983) جڏهن هڪ AVR ٽارگيٽ استعمال ڪندي، گڏ ڪرڻ وارو بند ٿي سگھي ٿو a سان file غلطي نه ملي، جيڪڏهن ڪمانڊ لائن تمام وڏي هئي ۽ خاص اکر شامل هئا جهڙوڪ ڪوٽا، پٺتي پيل، وغيره.
غير تفويض ٿيل روڊاٽا سيڪشن (XCS-1920) AVR لنڪر ڪسٽم روڊاٽا سيڪشن لاءِ ميموري تفويض ڪرڻ ۾ ناڪام ٿيو جڏهن avrxmega3 ۽ avrtiny آرڪيٽيڪچرز لاءِ تعمير ڪيو ويو، ممڪن طور تي ميموري اوورليپ غلطيون پيدا ڪندي
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
منتقلي ناڪامي (XCS-1891) بهترين فٽ مختص ڪندڙ ياداشت کي ڇڏي رهيو هو 'سوراخ' حصن جي وچ ۾ لنڪر آرام کان پوءِ. ميموري کي ٽڪرائڻ کان علاوه، اهو امڪان وڌائي ٿو اتي لنڪر جي منتقلي جي ناڪامي جي پي سي سان لاڳاپيل جمپس يا ڪال جي حد کان ٻاهر ٿيڻ سان.
هدايتون آرام سان تبديل نه ٿيون (XCS-1889) لنڪر ريليڪسيشن جمپ يا ڪال جي هدايتن لاءِ نه آئي آهي جن جا هدف آرام سان پهچڻ جي قابل ٿي ويندا.
غائب ڪارڪردگي (XCSE-388) مان ڪيتريون ئي وصفون ، جهڙوڪ clock_ div_t ۽ clock_prescale_set ()، ڊوائيسز لاءِ وضاحت نه ڪئي وئي، بشمول ATmega324PB، ATmega328PB، ATtiny441، ۽ ATtiny841.
غائب ميڪرو پري پروسيسر ميڪروس_ xcs _MODE_، _xcs VERSION، _xc، ۽ xcs خود بخود مرتب ڪندڙ طرفان وضاحت نه ڪئي وئي هئي. اهي هاڻي موجود آهن.
نسخو 2.05
اندروني گڏ ڪرڻ واري غلطي (XCS-1822) جڏهن ونڊوز جي هيٺان تعمير ڪندي، ڪوڊ کي بهتر ڪرڻ دوران هڪ اندروني ڪمپلر غلطي پيدا ٿي سگهي ٿي.
RAM اوور فلو نه مليو (XCS-1800, XCS-1796) پروگرام جيڪي موجود ريم کان وڌي ويا آهن انهن کي ڪجهه حالتن ۾ مرتب ڪندڙ طرفان ڳولي نه سگهيو آهي، نتيجي ۾ رن ٽائم ڪوڊ ناڪامي ٿي.
ختم ٿيل فليش ميموري (XCS-1792) avrxmega3 ۽ avrtiny ڊوائيسز لاء، فليش ميموري جا حصا MPLAB X IDE پاران غير پروگرام ٿيل ڇڏيا ويا هوندا.
مکيه عمل ڪرڻ ۾ ناڪامي (XCS-1788) ڪجهه حالتن ۾ جتي پروگرام ۾ ڪو به عالمي متغير بيان نه ڪيو ويو آهي، رن ٽائم شروعاتي ڪوڊ ٻاهر نه نڪتو ۽ مکيه () فنڪشن ڪڏهن به پهچي نه سگهيو.
غلط ياداشت جي ڄاڻ (XCS-1787) avrxmega3 ۽ avrtiny ڊوائيسز لاءِ، avr-size پروگرام رپورٽ ڪري رهيو هو ته صرف پڙهڻ لاءِ ڊيٽا پروگرام ميموري جي بدران رام استعمال ڪري رهيو هو.
غلط پروگرام ياداشت پڙهڻ (XCS-1783) پروجيڪٽس گڏ ڪيل ڊوائيسز لاءِ پروگرام ميموري سان گڏ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آهن ۽ جيڪي PROGMEM macro/attribute استعمال ڪندي شيون بيان ڪن ٿيون شايد اهي شيون غلط ايڊريس مان پڙهيا هجن.
خاصيتن سان اندروني غلطي (XCS-1773) هڪ اندروني غلطي ٿي وئي آهي جيڪڏهن توهان وضاحت ڪئي ته پوائنٽر اعتراض سان
_at () or attribute() ٽوڪن جي وچ ۾ پوائنٽر جو نالو ۽ dereferenced قسم، مثال لاءِampلي، چار*
_at ( 0x80015 0) cp؛ هڪ ڊيڄاريندڙ هاڻي جاري ڪيو ويو آهي جيڪڏهن اهڙو ڪوڊ سامهون اچي ٿو.
مکيه عمل ڪرڻ ۾ ناڪامي (XCS-1780, XCS-1767, XCS-1754) EEPROM متغيرن کي استعمال ڪرڻ يا config pragma کي استعمال ڪندي فيوز جي وضاحت ڪرڻ شايد ڊيٽا جي غلط شروعات ۽/يا رن ٽائم جي شروعاتي ڪوڊ ۾ پروگرام جي عمل کي بند ڪري ڇڏيو هجي، main () تائين پهچڻ کان اڳ.
ننڍڙن ڊوائيسز سان فيوز غلطي (XCS-1778، XCS-1742) attiny4/5/9/10/20/40 ڊوائيسز انهن جي هيڊر ۾ غلط فيوز جي ڊيگهه بيان ڪئي هئي files جيڪي لنڪر جي غلطين کي ڏسندا آهن جڏهن ڪوڊ ٺاهڻ جي ڪوشش ڪئي وئي جيڪا فيوز جي وضاحت ڪئي وئي آهي.
ورهاڱي جي غلطي (XCS-1777) هڪ وقفي وقفي جي غلطي کي درست ڪيو ويو آهي.
گڏ ڪرڻ وارو حادثو (XCS-1761) avr-as assembler شايد تباھ ٿي چڪو ھوندو جڏھن compiler Ubuntu 18 تحت ھلندو ھو.
شيون صاف نه ڪيون ويون (XCS-1752) غير شروع ٿيل جامد اسٽوريج جي مدت واريون شيون شايد رن ٽائم شروعاتي ڪوڊ ذريعي صاف نه ڪيون ويون آهن.
تڪراري ڊوائيس جي وضاحت کي نظرانداز ڪيو ويو (XCS-1749) گڏ ڪرڻ وارو غلطي پيدا نه ڪري رهيو هو جڏهن گھڻن ڊوائيس جي وضاحت جا اختيار استعمال ڪيا ويا ۽ مختلف ڊوائيسز کي اشارو ڪيو ويو.
ڍير ذريعي ميموري ڪرپشن (XCS-1748) هيپ_شروع جي نشاني غلط طور تي سيٽ ڪئي پئي وڃي، نتيجي ۾ عام متغيرن جي خراب ٿيڻ جو امڪان آهي.
ڳنڍيندڙ جي منتقلي جي غلطي (XCS-1739) هڪ لنڪر جي منتقلي جي غلطي ٿي سگھي ٿي جڏهن ڪوڊ ۾ هڪ rjmp يا rcal شامل هجي هڪ ٽارگيٽ سان بلڪل 4k بائيٽ پري.
نسخو 2.00
ڪو به.
ڄاڻايل مسئلا
هيٺيون حدون آهن مرتب ڪندڙ جي آپريشن ۾. اهي ٿي سگهن ٿيون عام ڪوڊنگ پابنديون، يا
صارف جي دستياب ۾ موجود معلومات کان انحراف. عنوان ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهو فائدو ٿي سگهي ٿو جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي. اهي شيون جن ۾ ليبل نه هوندا آهن اهي حدون آهن جيڪي بيان ڪن ٿيون موڊ آپرينڊي ۽ جيڪي مستقل طور تي اثر ۾ رهڻ جو امڪان آهن.
MPLAB X IDE انضمام
MPLAB IDE انضمام جيڪڏهن Compiler MPLAB IDE مان استعمال ٿيڻو آهي ته پوءِ توهان کي Compiler انسٽال ڪرڻ کان پهريان MPLAB IDE انسٽال ڪرڻ گهرجي.
ڪوڊ جي پيدائش
PA ميموري مختص ڪرڻ جي ناڪامي (XCS-2881) جڏهن طريقيڪار تجزيه اصلاح ڪندڙ استعمال ڪندي، لنڪر شايد ميموري مختص ڪرڻ جي غلطي جي رپورٽ ڪري سگهي ٿي جڏهن ڪوڊ سائيز ڊوائيس تي موجود پروگرام ميموري جي مقدار جي ويجهو آهي، جيتوڻيڪ پروگرام کي دستياب جڳهه کي پورو ڪرڻ جي قابل هوندو.
ايترو سمارٽ ناهي Smart-IO (XCS-2872) ڪمپائلر جي سمارٽ-io خصوصيت پيدا ڪندي صحيح پر ذيلي بهترين ڪوڊ اسپرنٽ فنڪشن لاءِ جيڪڏهن ڪوسٽ-ڊيٽا-ان-پروم فيچر کي غير فعال ڪيو ويو آهي يا جيڪڏهن ڊوائيس ان جي سڀني فليش کي ڊيٽا ميموري ۾ ميپ ڪيو آهي.
اڃا به گهٽ سمارٽ Smart-IO (XCS-2869) ڪمپيلر جي سمارٽ-io خصوصيت صحيح پر ذيلي اپٽيمل ڪوڊ پيدا ڪندي جڏھن -floe ۽ -fno-buil ٽين جا اختيار ٻئي استعمال ڪيا ويندا.
Suboptimal صرف پڙهڻ لاءِ ڊيٽا جي جڳهه (XCS-2849) لنڪر في الحال APPCODE ۽ APPDATA ميموري سيڪشن کان واقف ناهي، ۽ نه ئي ميموري نقشي ۾ [No-]Read-While-Write ڊويزنن جي. نتيجي طور، ھڪڙو ننڍڙو موقعو آھي ته لنڪر صرف پڙھڻ واري ڊيٽا کي ميموري جي غير مناسب علائقي ۾ مختص ڪري سگھي ٿو. غلط ڊيٽا جا موقعا وڌي ويندا آھن جيڪڏھن coast-data-in-pragma خصوصيت کي فعال ڪيو وڃي، خاص طور تي جيڪڏھن coast-data-in-config-mapped-proem خصوصيت پڻ فعال آھي. اهي خاصيتون بند ڪري سگهجن ٿيون جيڪڏهن گهربل هجي.
اعتراض file پروسيسنگ آرڊر (XCS-2863) ترتيب جنهن ۾ شيون files تي عمل ڪيو ويندو لنڪر طرفان مختلف ٿي سگھي ٿو طريقيڪار جي تجزيي جي اصلاحن جي استعمال جي بنياد تي (-mpa آپشن). اهو صرف ڪوڊ تي اثر انداز ڪندو جيڪو ڪيترن ئي ماڊلز ۾ ڪمزور افعال کي بيان ڪري ٿو.
ڳنڍڻ جي غلطي مطلق سان (XCS-2777) جڏهن هڪ اعتراض کي RAM جي شروعات ۾ هڪ پتي تي مطلق ڪيو ويو آهي ۽ اڻڄاتل شيون پڻ بيان ڪيون ويون آهن، هڪ لنڪر غلطي ٿي سگهي ٿي.
مختصر جاڳندڙ IDs (XCS-2775) ATA5700/2 ڊوائيسز لاءِ، PHID0/1 رجسٽر صرف 16 بِٽ ويڪر بجاءِ 32 بِٽ ويڪر جي طور تي بيان ڪيا ويا آهن.
لنڪر حادثو جڏهن سڏڻ جي علامت (XCS-2758) لنڪر خراب ٿي سگھي ٿو جيڪڏھن -merlad ڊرائيور اختيار استعمال ڪيو ويندو آھي جڏھن سورس ڪوڊ ھڪڙي علامت کي سڏيندو آھي جنھن کي -Wl، -defsym لنڪر اختيار استعمال ڪندي وضاحت ڪئي وئي آھي.
غلط شروعات (XCS-2679) وچ ۾ هڪ تفاوت آهي جتي ڪجهه عالمي / جامد بائيٽ-سائيز شين لاءِ ابتدائي قدر ڊيٽا ميموري ۾ رکيل آهن ۽ جتي متغيرن کي رن ٽائم تي پهچايو ويندو.
شروع ٿيل غلط سيٽ خالي (XCS-2652) مثالن ۾ جتي بيان ڪيل () ذريعي تبادلي لاءِ هڪ مضمون جي اسٽرنگ ۾ شامل آهي جيڪو ظاهر ٿئي ٿو هڪ فلوٽنگ پوائنٽ نمبر ايڪسپورنيشنل فارميٽ ۾ ۽ اتي هڪ غير متوقع اکر آهي هڪ اي اکر کان پوءِ، پوءِ خالي پتو، جيڪڏهن مهيا ڪيو وڃي، ته پوءِ ان ڪردار ڏانهن اشارو ڪندو e ۽ نه پاڻ e. مثال طورample: بيان ڪيل ("hooey"، خالي)؛ x اکر ڏانهن خالي اشارو ڪرڻ جي نتيجي ۾.
خراب اڻ سڌي طرح فنڪشن ڪال (XCS-2628) ڪجهه مثالن ۾، فنڪشنل ڪالز ذريعي ٺاهيل فنڪشن پوائنٽر ذريعي محفوظ ڪيل هڪ ساخت جي حصي طور ناڪام ٿي سگهي ٿي.
strtof hexadecimal floats لاءِ صفر ڏي ٿو (XCS-2626) لائبريري جا ڪم strtof () et al ۽ scanf () et al، هميشه هڪ هيڪساڊيڪل فلوٽنگ پوائنٽ نمبر کي تبديل ڪندا آهن جيڪو هڪ ايڪسپونٽ جي وضاحت نٿو ڪري.
ٻُڙي. مثال طورample: stator ("الو"، ۽ خالي)؛ قيمت 0 واپس ڪندو، نه 1.
غلط اسٽيڪ ايڊوائزر ميسيجنگ (XCS-2542, XCS-2541) ڪجهه مثالن ۾، اسٽيڪ ايڊوائزر وارننگ جي حوالي سان ورجائي يا غير مقرر ٿيل اسٽيڪ استعمال ٿيل آهي (ممڪن طور تي alloca()) جي استعمال ذريعي خارج ٿيل نه آهي.
نقلي مداخلت واري ڪوڊ سان ناڪامي (XCS-2421) جتي هڪ کان وڌيڪ مداخلت واري فنڪشن هڪ ئي جسم آهي، ڪمپلر کي هڪ مداخلت واري فنڪشن لاء ٻئي کي ڪال ڪري سگھي ٿو. ان جي نتيجي ۾ سڀ ڪال-ڪالبر ٿيل رجسٽرس غير ضروري طور تي محفوظ ٿي ويندا، ۽ انٽرپرٽس کي فعال ڪيو ويندو ان کان اڳ جو موجوده مداخلت واري هينڊلر جي ايپيلوگ کي هلايو وڃي، جيڪو ڪوڊ جي ناڪامي جو سبب بڻجي سگهي ٿو.
Const شيون پروگرام ميموري ۾ نه آهن (XCS-2408) avrxmega3 ۽ avertins پروجيڪٽس لاءِ اڻڄاتل ڪانسٽ شيون ڊيٽا ياداشت ۾ رکيل آهن، جيتوڻيڪ هڪ ڊيڄاريندڙ ڏيکاري ٿو ته انهن کي پروگرام ميموري ۾ رکيو ويو آهي. اهو انهن ڊوائيسز تي اثر انداز نه ڪندو جن وٽ پروگرام ميموري ميپ ٿيل نه آهي ڊيٽا ميموري اسپيس ۾، ۽ نه ئي اهو متاثر ڪندو ڪنهن به شئي کي جيڪو شروع ڪيو ويو آهي.
غلط ڊي ايف پي رستي سان خراب پيداوار (XCS-2376) جيڪڏهن مرتب ڪندڙ کي غلط DFP رستي ۽ هڪ 'spec' سان سڏيو وڃي ٿو file منتخب ٿيل ڊيوائس لاءِ موجود آهي، مرتب ڪندڙ گم ٿيل ڊوائيس فيملي پيڪ جي رپورٽ نه ڪري رهيو آهي ۽ ان جي بدران 'spec' چونڊيو file، جيڪو پوءِ ٿي سگھي ٿو غلط آئوٽ پٽ. 'خاص' files شايد ورهايل DFPs سان تازه ڪاري نه هجي ۽ صرف اندروني ڪمپيلر ٽيسٽ سان استعمال لاءِ ارادو ڪيو ويو.
ميموري اوورليپ اڻ ڄاتل (XCS-1966) ڪمپلر ڪنهن پتي تي مطلق ٺهيل شين جي ميموري اوورليپ کي نه ڳولي رهيو آهي (ذريعي تي ()) ۽ ٻيون شيون سيڪشن () وضاحت ڪندڙ استعمال ڪندي ۽ جيڪي ساڳئي ايڊريس سان ڳنڍيل آهن.
لائبريري جي ڪمن سان ناڪامي ۽ _meme (XCS-1763) _memo ايڊريس اسپيس ۾ هڪ دليل سان ليمبڪ فلوٽ فنڪشن کي سڏيو وڃي ٿو ناڪام ٿي سگھي ٿو. ياد رهي ته لائبريري جا معمول ڪجهه سي آپريٽرز کان سڏبا آهن، تنهن ڪري، مثال طورample، هيٺ ڏنل ڪوڊ متاثر ٿيو آهي: واپسي regFloatVar > memxFloatVar؛
محدود لمبڪ عملدرآمد (AVRTC-731) ATTiny4/5/9/10/20/40 پراڊڪٽس لاءِ، ليمبڪ ۾ معياري C/Math لائبريري تي عمل درآمد تمام محدود آهي يا موجود ناهي.
پروگرام ميموري جون حدون (AVRTC-732) پروگرام ميموري تصويرون 128 kb کان مٿي آهن ٽول چين جي مدد سان؛ تنهن هوندي به، اهڙا سڃاتل مثال موجود آهن لنڪر ابارٽس کان سواءِ آرام جي ۽ ڪنهن مددگار نقص جي پيغام جي بغير گهربل فنڪشن اسٽبس پيدا ڪرڻ بجاءِ جڏهن -relax آپشن استعمال ڪيو وڃي.
نالي جي جاءِ جون حدون (AVRTC-733) نالي ٿيل ايڊريس اسپيسز جي مدد ڪئي وئي آهي ٽول چين، صارف جي گائيڊ سيڪشن ۾ بيان ڪيل حدن جي تابع خاص قسم جي قابليت.
ٽائم زونز جي لائبريري جا ڪم GMT تي فرض ڪن ٿا ۽ مقامي ٽائم زونن کي سپورٽ نٿا ڪن، ان ڪري مقامي وقت () ساڳيو ئي وقت واپس ڪندو جيئن گومائيٽ ()، اڳ لاءِampلي.
ڪسٽمر سپورٽ
file:///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ A VR لاءِ. htm
دستاويز / وسيلا
![]() |
MICROCHIP MPLAB XC8 C ڪمپائلر سافٽ ويئر [pdf] مالڪ جو دستور MPLAB XC8 C، MPLAB XC8 C ڪمپائلر سافٽ ويئر، ڪمپلر سافٽ ويئر، سافٽ ويئر |