MICROCHIP XC8 C ڪمپلر ورزن 2.45 رليز نوٽس AVR MCU لاءِ

پيداوار جي ڄاڻ
MPLAB XC8 C Compiler ھڪڙو سافٽ ويئر ٽول آھي جيڪو ھدف ڪرڻ لاءِ استعمال ڪيو ويو مائڪروچپ AVR ڊوائيسز. اهو سي ڪوڊ گڏ ڪرڻ ۽ قابل عمل پيدا ڪرڻ لاء ٺهيل آهي files انهن ڊوائيسز لاء. هن يوزر مينوئل ۾ ڪمپيلر ورجن جو حوالو ڏنو پيو وڃي 2.45 آهي، جنهن جي باضابطه تعمير جي تاريخ 18 آگسٽ 2023 آهي. اڳوڻو ورجن 2.41 هو، جيڪو 8 فيبروري 2023 تي ٺهيل هو. ڪمپيلر هڪ فنڪشنل سيفٽي مينوئل سان گڏ اچي ٿو، جيڪو اضافي معلومات مهيا ڪري ٿو. ۽ ھدايتون جڏھن استعمال ڪندي MPLAB XC compilers سان فنڪشنل حفاظتي ايپليڪيشنون. هي دستياب دستاويزي پيڪيج ۾ شامل آهي جڏهن توهان هڪ فنڪشنل حفاظتي لائسنس خريد ڪندا آهيو. MPLAB XC8 C Compiler رليز جي وقت تي سڀني موجود 8-bit AVR MCU ڊوائيسز کي سپورٽ ڪري ٿو. توهان avr_chipinfo.html ڏانهن رجوع ڪري سگهو ٿا file سڀني سپورٽ ڊوائيسز جي فهرست ۽ انهن جي ترتيب واري بٽ سيٽنگن لاءِ ڪمپلر جي ڊڪ ڊاريڪٽري ۾. MPLAB XC8 ڪمپلر جا مختلف ايڊيشن موجود آھن. لائسنس يافته (PRO) ايڊيشن مفت ايڊيشن جي مقابلي ۾ اعليٰ سطح جي اصلاح فراهم ڪري ٿو. ڪمپيلر کي لائسنس يافته پراڊڪٽ جي طور تي چالو ڪرڻ لاءِ، توهان کي هڪ ايڪٽيويشن چيڪ خريد ڪرڻو پوندو. بهرحال، غير لائسنس وارو نسخو بغير ڪنهن لائسنس جي اڻڄاتل طور تي استعمال ڪري سگهجي ٿو. فنڪشنل حفاظت جي ايپليڪيشنن لاء، هڪ MPLAB XC8 فنڪشنل حفاظتي ڪمپلر موجود آهي. ان کي چالو ڪرڻ لاءِ مائڪروچپ کان خريد ڪيل فنڪشنل حفاظتي لائسنس جي ضرورت آهي. هڪ دفعو چالو ڪيو ويو، سڀني اصلاحن جي سطحن ۽ گڏ ڪندڙ خاصيتون استعمال ڪري سگھجن ٿيون. MPLAB XC فنڪشنل سيفٽي ڪمپلر پڻ سپورٽ ڪري ٿو نيٽورڪ سرور لائسنس. تنصيب، چالو ڪرڻ، لائسنس جي قسمن، ۽ لڏپلاڻ جي مسئلن بابت تفصيلي معلومات انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB XC C Compilers (DS50002059) دستاويزن ۾ ملي سگهي ٿي.
پيداوار جي استعمال جون هدايتون
- MPLAB XC8 C ڪمپائلر سافٽ ويئر کي هلائڻ کان اڳ، استعمال ڪندڙ مينوئل پڙھو اھم معلومات ۽ ھدف ڪرڻ لاءِ مخصوص ھدايتن لاءِ Microchip AVR ڊوائيسز.
- جيڪڏهن توهان 8-bit PIC ڊوائيسز لاءِ ڪمپلر استعمال ڪري رهيا آهيو، PIC دستاويزن لاءِ MPLAB XC8 C ڪمپائلر رليز نوٽس جو حوالو ڏيو.
- پڪ ڪريو ته توهان جو آپريٽنگ سسٽم ڪمپيلر هلائڻ لاءِ سسٽم گهرجن کي پورو ڪري ٿو. macOS لاءِ بائنري ڪوڊ سائن ڪيو ويو ۽ نوٽرائز ڪيو ويو. MPLAB XC نيٽورڪ لائسنس سرور Microsoft Windows 10 ۽ مٿي، Ubuntu 18.04 ۽ مٿي، ۽ macOS 10.15 ۽ مٿي لاءِ دستياب آهي. نوٽ ڪريو ته MPLAB XC نيٽورڪ لائسنس سرور انهن آپريٽنگ سسٽم تي آزمائشي نه آهي.
- MPLAB XC نيٽورڪ لائسنس سرور هلائي سگھجي ٿو ورچوئل مشينن تي سپورٽ ٿيل OS جي ورچوئل مشين جو لائسنس استعمال ڪندي نيٽ ورڪ لائسنس لاءِ (SW006021-VM). MPLAB XC نيٽورڪ سرور جا سڀ 32-bit ورجن بند ڪيا ويا آھن ورجن 3.00 کان شروع ٿي.
- چالو ڪرڻ لاءِ MPLAB XC8 C Compiler هڪ لائسنس يافته (PRO) پراڊڪٽ جي طور تي، هڪ ايڪٽيويشن چيڪ خريد ڪريو. هي مفت ورزن جي مقابلي ۾ اعليٰ سطح جي اصلاح فراهم ڪندو. بهرحال، بغير لائسنس جي ڪمپيلر کي بغير ڪنهن لائسنس جي غير معين طور تي هلائي سگهجي ٿو.
- جيڪڏھن توھان استعمال ڪري رھيا آھيو MPLAB XC8 فنڪشنل سيفٽي ڪمپلر فنڪشنل سيفٽي ايپليڪيشنن لاءِ، ان کي چالو ڪيو وڃي ھڪ فنڪشنل حفاظتي لائسنس سان جيڪو مائڪروچپ مان خريد ڪيو ويو آھي. ڪمپيلر هن لائسنس کان سواءِ ڪم نه ڪندو. هڪ دفعو چالو ڪيو ويو، توهان ڪنهن به اصلاح جي سطح کي منتخب ڪري سگهو ٿا ۽ سڀني ڪمپيلر خاصيتون استعمال ڪري سگهو ٿا. نيٽ ورڪ سرور لائسنس جي حمايت ڪئي وئي آهي MPLAB XC فنڪشنل سيفٽي ڪمپلر جي هن رليز سان.
- MPLAB XC8 C Compiler جي تنصيب، چالو ڪرڻ، ۽ لائسنس ڏيڻ بابت تفصيلي هدايتن لاءِ، MPLAB XC C Compilers (DS50002059) جي انسٽاليشن ۽ لائسنسنگ دستاويز کي ڏسو.
- جيڪڏھن توھان ھلائي رھيا آھيو مرتب ڪندڙ کي تشخيصي لائسنس جي تحت، توھان کي ھڪ انتباہ ملندو تاليف جي دوران جڏھن توھان 14 ڏينھن اندر آھيو توھان جي تشخيص جي مدت جي ختم ٿيڻ کان. ساڳي ڊيڄاريندڙ جاري ڪئي وئي آهي جيڪڏهن توهان آهيو 14 ڏينهن اندر توهان جي HPA سبسڪرپشن جي ختم ٿيڻ جي.
مٿانview
تعارف
Microchip MPLAB® XC8 C ڪمپلر جو هي رليز ڪيترن ئي نيون خاصيتون، بگ فڪسس، ۽ نئين ڊوائيسز لاءِ سپورٽ تي مشتمل آهي.
تعمير جي تاريخ
هن ڪمپيلر ورزن جي سرڪاري تعمير جي تاريخ 18 آگسٽ 2023 آهي.
پويون نسخو
اڳوڻو MPLAB XC8 C گڏ ڪرڻ وارو نسخو 2.41 هو، 8 فيبروري 2023 تي ٺهيل هو.
فنڪشنل حفاظت دستي
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® 13.2 (Ventura)، ۽ فيڊورا 34. ونڊوز لاءِ بائنري ڪوڊ سائن ڪيو ويو آهي. macOS لاءِ بائنري ڪوڊ سائن ڪيو ويو ۽ نوٽرائز ڪيو ويو. MPLAB XC نيٽورڪ لائسنس سرور مختلف قسم جي 64-bit آپريٽنگ سسٽم لاءِ موجود آهي، بشمول Microsoft Windows 10 ۽ مٿي؛ Ubuntu 18.04 ۽ مٿي؛ يا macOS 10.15 ۽ مٿي. سرور شايد ونڊوز سرور، لينڪس ڊسٽريبيوشنز، جهڙوڪ Oracle® Enterprise Linux® ۽ Red Hat® Enterprise Linux سان گڏوگڏ سپورٽ ٿيل آپريٽنگ سسٽم جا پراڻا ورجن سميت مختلف آپريٽنگ سسٽمن تي پڻ هلائي سگھن ٿا. بهرحال، MPLAB XC نيٽورڪ لائسنس سرور انهن آپريٽنگ سسٽم تي آزمائشي نه آهي. MPLAB XC نيٽورڪ لائسنس سرور هلائي سگھجي ٿو ورچوئل مشينن تي سپورٽ ٿيل OS جي ورچوئل مشين جو لائسنس استعمال ڪندي نيٽ ورڪ لائسنس لاءِ (SW006021-VM). MPLAB XC نيٽورڪ سرور جا سڀ 32-bit ورجن بند ڪيا ويا آھن ورجن 3.00 کان شروع ٿي.
آلات سپورٽ ڪيو
هي مرتب ڪندڙ سڀني موجود 8-bit AVR MCU ڊوائيسز کي رليز ڪرڻ وقت سپورٽ ڪري ٿو. ڏسو avr_chipinfo.html (ڪمپائلر جي ڊاڪ ڊاريڪٽري ۾) سڀني سپورٽ ڊوائيسز جي فهرست لاءِ. اهي فائلون پڻ لسٽ ڪن ٿيون ترتيب واري بٽ سيٽنگون هر ڊوائيس لاءِ.
ايڊيشن ۽ لائسنس اپ گريڊ
MPLAB XC8 گڏ ڪرڻ وارو هڪ لائسنس يافته (PRO) يا غير لائسنس يافته (مفت) پيداوار جي طور تي چالو ٿي سگهي ٿو. توهان کي پنهنجي ڪمپيلر کي لائسنس ڏيڻ لاءِ هڪ ايڪٽيويشن چيڪ خريد ڪرڻ جي ضرورت آهي. لائسنس مفت پراڊڪٽ جي مقابلي ۾ اعليٰ سطح جي اصلاح جي اجازت ڏئي ٿو. هڪ غير لائسنس يافته ڪمپيلر بغير لائسنس جي اڻڄاتل طور تي هلائي سگهجي ٿو. هڪ MPLAB XC8 فنڪشنل حفاظتي ڪمپلر لازمي طور تي فعال ٿيڻ گهرجي هڪ فنڪشنل حفاظت لائسنس سان خريد ڪيل مائڪروچپ. ڪمپيلر هن لائسنس کان سواءِ ڪم نه ڪندو. هڪ دفعو چالو ڪيو ويو، توهان ڪنهن به اصلاح جي سطح کي منتخب ڪري سگهو ٿا ۽ سڀني ڪمپيلر خاصيتون استعمال ڪري سگهو ٿا. MPLAB XC فنڪشنل سيفٽي ڪمپلر جو هي رليز نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو. ڏسو انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB XC C Compilers (DS50002059) دستاويز لائسنس جي قسمن تي معلومات لاءِ ۽ هڪ لائسنس سان گڏ ڪمپلر جي انسٽاليشن.
لڳائڻ ۽ فعال ٿيڻ
پڻ ڏسو لڏپلاڻ جا مسئلا ۽ حدون سيڪشن هن ڪمپيلر سان شامل جديد لائسنس مينيجر بابت اهم معلومات لاءِ. جيڪڏهن MPLAB IDE استعمال ڪري رهيا آهيو، هن اوزار کي انسٽال ڪرڻ کان پهريان تازو MPLAB X IDE ورجن 5.0 يا بعد ۾ انسٽال ڪرڻ جي پڪ ڪريو. ڪمپلر کي انسٽال ڪرڻ کان اڳ IDE کي ڇڏي ڏيو. .run (Linux) يا .app (macOS) ڪمپائلر انسٽالر ايپليڪيشن کي هلايو، مثال طور XC8-1.00.11403-windows.exe ۽ اسڪرين تي ڏنل هدايتن تي عمل ڪريو. ڊفالٽ انسٽاليشن ڊاريڪٽري جي سفارش ڪئي وئي آهي. جيڪڏهن توهان لينڪس استعمال ڪري رهيا آهيو، توهان کي لازمي طور تي انسٽال ڪرڻ گهرجي هڪ ٽرمينل استعمال ڪندي ۽ روٽ اڪائونٽ مان. انسٽال ڪريو MacOS اڪائونٽ استعمال ڪندي منتظم جي استحقاق سان. چالو ھاڻي انسٽاليشن لاءِ الڳ الڳ ڪيو ويو آھي. ڏسو دستاويز لائسنس مئنيجر MPLAB® XC C Compilers (DS52059) لاءِ وڌيڪ معلومات لاءِ. جيڪڏھن توھان چونڊيندا آھيو ڪمپليٽر کي evaluation لائسنس تحت هلائڻ لاءِ، توھان کي ھاڻي تاليف دوران ھڪ ڊيڄاريندڙ ملندي جڏھن توھان پنھنجي تشخيصي مدت جي پڄاڻيءَ جي 14 ڏينھن اندر ھوندا. ساڳي ڊيڄاريندڙ جاري ڪئي وئي آهي جيڪڏهن توهان آهيو 14 ڏينهن اندر توهان جي HPA سبسڪرپشن جي ختم ٿيڻ جي. XC نيٽورڪ لائسنس سرور هڪ الڳ انسٽالر آهي ۽ اڪيلو استعمال ڪندڙ ڪمپيلر انسٽالر ۾ شامل نه آهي. XC لائسنس مئنيجر ھاڻي فلوٽنگ نيٽ ورڪ لائسنس جي رومنگ کي سپورٽ ڪري ٿو. موبائيل استعمال ڪندڙن لاءِ، هي فيچر هڪ فلوٽنگ لائسنس کي اجازت ڏئي ٿو ته نيٽ ورڪ کي ٿوري وقت لاءِ بند ڪري. ھن خصوصيت کي استعمال ڪندي، توھان نيٽ ورڪ کان ڌار ڪري سگھو ٿا ۽ اڃا تائين پنھنجي MPLAB XC مرتب ڪندڙ کي استعمال ڪري سگھو ٿا. هن فيچر تي وڌيڪ لاءِ XCLM انسٽال جو ڊاڪ فولڊر ڏسو. MPLAB X IDE ۾ بصري طور تي رومنگ کي منظم ڪرڻ لاءِ لائسنس ونڊو (ٽولز> لائسنس) شامل آهن.
تنصيب جي مسئلن کي حل ڪرڻ
جيڪڏهن توهان ڪنهن به ونڊوز آپريٽنگ سسٽم تحت ڪمپلر کي انسٽال ڪرڻ ۾ مشڪلاتن جو تجربو ڪريو ٿا، هيٺ ڏنل تجويزون ڪوشش ڪريو.
- انسٽاليشن کي ايڊمنسٽريٽر طور ھلايو.
- انسٽالر ايپليڪيشن جي اجازتن کي سيٽ ڪريو 'مڪمل ڪنٽرول' تي. (فائل تي صحيح ڪلڪ ڪريو، پراپرٽيز چونڊيو، سيڪيورٽي ٽيب، استعمال ڪندڙ چونڊيو، ايڊٽ ڪريو.)
- عارضي فولڊر جي اجازتن کي سيٽ ڪريو 'مڪمل ڪنٽرول'.
temp فولڊر جي جڳھ کي طئي ڪرڻ لاء، ٽائپ ڪريو %temp% کي رن ڪمانڊ ۾ (ونڊوز لوگو ڪي + آر). اهو هڪ فائيل ايڪسپلورر ڊائلاگ کوليندو جيڪو ڊاريڪٽري کي ڏيکاريندو ۽ توهان کي ان فولڊر جو رستو طئي ڪرڻ جي اجازت ڏيندو.
مرتب ڪندڙ دستاويز
ڪمپيلر جي استعمال ڪندڙ جي ھدايتن کي کوليو وڃي ٿو HTML پيج تان جيڪو توھان جي برائوزر ۾ کلي ٿو جڏھن MPLAB X IDE ڊيش بورڊ ۾ نيري مدد واري بٽڻ تي ڪلڪ ڪريو، جيئن اسڪرين شاٽ ۾ ڏيکاريل آھي.
جيڪڏھن توھان ٺاھي رھيا آھيو 8-bit AVR ھدف لاءِ، MPLAB® XC8 C Compiler User's Guide for AVR® MCU انھن ڪمپلر جي اختيارن ۽ خاصيتن تي مشتمل آھي جيڪي ھن فن تعمير تي لاڳو آھن.
ڪسٽمر سپورٽ
توهان XC8 فورم ۾ هن پراڊڪٽ جي ٻين استعمال ڪندڙن کان سوال پڇي سگهو ٿا. مائڪروچپ هن ڪمپيلر ورزن جي حوالي سان بگ رپورٽن، تجويزن يا تبصرن کي ڀليڪار ڪري ٿو. مھرباني ڪري ڪنھن به بگ رپورٽ يا خصوصيت جي درخواستن کي سپورٽ سسٽم ذريعي سڌو ڪريو.
دستاويزن جا تازه ڪاريون
MPLAB XC8 دستاويزن جي آن لائين ۽ تازه ترين ورزن لاءِ، مھرباني ڪري دورو ڪريو Microchip جي آن لائين ٽيڪنيڪل دستاويزن webسائيٽ.
ھن رليز ۾ نئون يا اپڊيٽ ٿيل AVR دستاويز:
ڪو به
- AVR® GNU Toolchain to MPLAB® XC8 لڏپلاڻ گائيڊ وضاحت ڪري ٿو سورس ڪوڊ ۾ تبديليون ۽ اختيارن کي ٺاھيو جيڪي گھربل ٿي سگھن ٿا جيڪڏھن توھان فيصلو ڪريو سي-بنياد پروجيڪٽ کي AVR 8-bit GNU Toolchain کان Microchip MPLAB XC8 C ڪمپائلر ڏانھن.
- Microchip Unified Standard Library Reference Guide بيان ڪري ٿي ته ڪارڪردگيءَ جي رويي ۽ انٽرفيس جي وضاحت ڪئي وئي Microchip Unified Standard Library، گڏوگڏ لائبريري جي قسمن ۽ macros جو ارادو استعمال. ھن معلومات مان ڪجھ اڳ ۾ موجود ھئي MPLAB® XC8 C Compiler User's Guide for AVR® MCU. ڊوائيس جي مخصوص لائبريري جي معلومات اڃا تائين هن ڪمپيلر گائيڊ ۾ شامل آهي.
- جيڪڏهن توهان صرف 8-bit ڊوائيسز سان شروع ڪري رهيا آهيو ۽ MPLAB XC8 C Compiler، MPLAB® XC8 استعمال ڪندڙ
- ايمبيڊڊ انجنيئرز لاءِ ھدايت - AVR® MCUs (DS50003108) وٽ MPLAB X IDE ۾ پروجيڪٽ قائم ڪرڻ ۽ توھان جي پھرين MPLAB XC8 C پروجيڪٽ لاءِ ڪوڊ لکڻ بابت معلومات آھي. ھي ھدايت ھاڻي مرتب ڪندڙ سان ورهايو ويو آھي.
- Hexmate يوزر گائيڊ انهن لاءِ آهي جيڪي Hexmate هلائي رهيا آهن هڪ اسٽينڊ اڪيلو ايپليڪيشن جي طور تي.
نئون ڇا آهي
ھيٺيون آھن نيون AVR- ھدف جون خاصيتون جيڪي ھاڻي گڏ ڪندڙ کي سپورٽ ڪري ٿو. ذيلي عنوانن ۾ ورجن نمبر ڏيکاري ٿو پھرين ڪمپيلر ورزن کي سپورٽ ڪرڻ لاءِ جيڪي ھيٺيون خاصيتون آھن.
نسخو 2.45
يونيورسل لائسنس مئنيجر (XC8-3175, XCLM-224) لائسنس مئنيجر جو macOS ورزن جيڪو ڪمپلر سان استعمال ڪيو ويو آهي هاڻي آفاقي آهي، ٻنهي Intel- ۽ M1-based مشينن لاءِ ڏيهي مدد فراهم ڪري ٿو. لائسنس مئنيجر جي لينڪس ورزن کي ھاڻي گھٽ ۾ گھٽ ورزن 2.25 جي ضرورت آھي glibc. Mac universal binaries (XC8-3168, XC8-2951) MacOS لاءِ گڏ ڪندڙ بائنري فائلون ھاڻي آفاقي آھن، ٻئي Intel- ۽ M1-based مشينن لاءِ اصلي سپورٽ پيش ڪن ٿيون. گھٽيل فلوٽنگ پوائنٽ لائبريري سائيز (XC8-3112, XC8-3071) فلوٽنگ پوائنٽ لائبريري جي ڪمن ۾ سڌارا ڪيا ويا آهن، بشمول sinf() pow()، sqrt()، expf()، log1fp()، ۽ nextafterf() ، جيڪي انهن معمولن لاءِ ڪوڊ سائيز ۾ گهٽتائي ڏسندا آهن. نئين ڊيوائس سپورٽ سپورٽ ھاڻي ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: AVR16EA28، AVR16EA32، AVR16EA48، AVR32EA28، AVR32EA32، AVR32EA48، AVR16EB14، AVR16EB20، AVR16EB28، AVR16EA32، AVRXNUMXEAXNUMX، AVRXNUMXEAXNUMX.
نسخو 2.41
- بوٽرو سپورٽ (XC8-3053) ڪمپيلر ڪنهن به سيڪشن جي مواد کي HEX فائل ۾ ايڊريس 0x860000 تي .bootrow پريفڪس سان رکي ٿو. اهي حصا BOOTROW ميموري لاءِ استعمال ڪيا ويا آهن، جيڪي چاٻين ۽ ٻين محفوظ معلومات جي اسٽوريج لاءِ ٺهيل آهن جيڪي صرف بوٽ لوڊر تائين پهچن ٿيون.
- ريڊنڊنٽ ريٽرن ايليمينيشن (XC8-3048) ڪمپائلر ھاڻي ختم ڪندو بيڪار ريٽ ھدايتن کي فنن ۾ ٽيل جمپ سان جڏھن ڪسٽم لنڪر اسڪرپٽ استعمال ڪيا ويندا آھن. اهو ساڳيو اصلاح آهي جيڪو اڳ ۾ ڪيو ويو آهي، پر اهو هاڻي سڀني يتيم حصن تي ڪيو ويو آهي، جيتوڻيڪ هڪ ڪسٽم لنڪر اسڪرپٽ استعمال ڪيو ويو آهي ۽ بهترين فٽ مختص اسڪيم راند ۾ نه آهي.
- وقت جي قسم جي تبديلي (XC8-2982, 2932) C99 معياري لائبريري جو قسم، time_t کي ڊگھي ڊگھي مان تبديل ڪيو ويو آھي ھڪڙي غير دستخط ٿيل ڊگھي قسم ۾، جيڪو ڪجھ وقت سان لاڳاپيل ڪمن ۾ ڪوڊ-سائيز بهتري ڏئي ٿو، جھڙوڪ mktime().
- نئون nop (XC8-2946, 2945) macro NOP() ۾ شامل ڪيو ويو آھي . هي ميڪرو آئوٽ پٽ ۾ ڪو نه آپريشن جي هدايت داخل ڪري ٿو.
- XCLM (XC8-2944) تي تازه ڪاري ڪريو لائيسنس مئنيجر جيڪو ڪمپلر سان استعمال ڪيو ويو آھي اپڊيٽ ڪيو ويو آھي ۽ ھاڻي وڌيڪ جوابدار آھي جڏھن گڏ ڪرڻ واري جي لائسنس جي تفصيلن کي جانچيندي.
- Trampاوائلڊ ڪالز (XC8-2760) ڪمپيلر هاڻي ڊگھي فارم واري ڪال جي هدايتن کي مٽائي سگھي ٿو ننڍين لاڳاپي واري ڪالن سان، جڏهن ته هدايتن جا لاڳاپا فارم عام طور تي پنهنجي منزل جي حد کان ٻاهر هوندا. هن صورتحال ۾، گڏ ڪرڻ وارو ڪوشش ڪندو rcal جي هدايتن سان jmp ڪال جي هدايتن سان تبديل ڪرڻ جي جيڪا 'tr.ampoline' گهربل ايڊريس تي عمل ڪرڻ، مثال طورampاليزي:
نسخو 2.40
- نئين ڊيوائس سپورٽ سپورٽ ھاڻي ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: AT90PWM3، AVR16DD14، AVR16DD20، AVR16DD28، AVR16DD32، AVR32DD14، AVR32DD20، AVR32DD28،AVR32DD32،AVR64DD28،AVR64AVR32 64، ۽ AVR48EAXNUMX.
- بهتر ڪيل پروسيجرل ايبسٽرڪشن (PA) آپٽمائيزيشن ٽول کي بهتر ڪيو ويو آهي ته جيئن ڪوڊ جنهن ۾ فنڪشن ڪال انسٽرڪشن (ڪال/آرڪال) شامل هجي ان کي بيان ڪري سگهجي ٿو. اهو صرف تڏهن ٿيندو جڏهن اسٽيڪ استعمال نه ڪيو ويو آهي دليلن کي پاس ڪرڻ ۽ نه ئي فنڪشن مان واپسي جي قيمت حاصل ڪرڻ لاءِ. اسٽيڪ استعمال ڪيو ويندو آھي جڏھن ھڪڙي فنڪشن کي ڪال ڪري رھيا آھن متغير دليلن جي فهرست سان يا جڏھن ھڪڙي فنڪشن کي سڏيندو آھي جيڪو ھن مقصد لاء نامزد ٿيل رجسٽرن کان وڌيڪ دليلن کي وٺندو آھي. ھن خصوصيت کي -mno-pa-outline-calls جي اختيار کي استعمال ڪندي غير فعال ڪري سگھجي ٿو، يا -mno-pa-on- کي استعمال ڪندي ھڪڙي اعتراض فائل ۽ يا فنڪشن لاءِ طريقيڪار خلاصو مڪمل طور تي غير فعال ڪري سگھجي ٿو.file -mno-pa-on-function، ترتيب سان، يا nopa انتساب (__nopa specifier) استعمال ڪندي فنڪشن سان چونڊيو.
- ڪوڊ ڪوريج ميڪرو ڪمپلر هاڻي ميڪرو __CODECOV جي وضاحت ڪري ٿو جيڪڏهن هڪ صحيح -mcodecov اختيار بيان ڪيو ويو آهي.
- ميموري رزرويشن آپشن xc8-cc ڊرائيور ھاڻي قبول ڪندو -mreserve=space@start:end آپشن جڏھن AVR ھدف لاءِ تعمير ڪيو وڃي. هي اختيار مخصوص ميموري رينج کي يا ته ڊيٽا يا پروگرام جي ميموري اسپيس ۾ محفوظ ڪري ٿو، لنڪر کي هن علائقي ۾ ڪوڊ يا شيون آباد ڪرڻ کان روڪي ٿو.
- وڌيڪ سمارٽ سمارٽ IO سمارٽ IO ڪمن ۾ ڪيتريون ئي واڌايون ڪيون ويون آهن، جن ۾ پرنٽ ايف ڪور ڪوڊ ۾ عام ٽوڪس، %n ڪنورشن اسپيفيفائر کي هڪ آزاد قسم جي طور تي علاج ڪرڻ، مطالبن تي ورارگ پاپ روٽينز ۾ ڳنڍڻ، استعمال ڪرڻ لاءِ ننڍا ڊيٽا جا قسم استعمال ڪرڻ جتي ممڪن هجي. IO فنڪشن دلائل، ۽ فئڪٽرنگ عام ڪوڊ فيلڊ جي چوٽي ۽ درست سنڀالڻ ۾. اهو نتيجو ٿي سگهي ٿو اهم ڪوڊ ۽ ڊيٽا جي بچت، انهي سان گڏ IO جي عمل جي رفتار کي وڌايو.
نسخو 2.39 (فنڪشنل سيفٽي رليز)
نيٽورڪ سرور لائسنس MPLAB XC8 فنڪشنل سيفٽي ڪمپلر جو هي رليز نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو.
نسخو 2.36
ڪو به.
نسخو 2.35
- نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاء دستياب آھي: ATTINY3224، ATTINY3226، ATTINY3227، AVR64DD14، AVR64DD20، AVR64DD28، ۽ AVR64DD32.
- بهتر ڪيل حوالي سان مٽائڻ نئون -mcall-isr-prologues آپشن تبديل ڪري ٿو ته ڪيئن مداخلت وارا فنڪشن رجسٽرن کي داخلا تي محفوظ ڪن ٿا ۽ ڪيئن اهي رجسٽر بحال ٿين ٿا جڏهن مداخلت واري روٽين ختم ٿئي ٿي. اهو ساڳيو طريقي سان ڪم ڪري ٿو -mcall-prologues آپشن، پر صرف مداخلت افعال (ISRs) کي متاثر ڪري ٿو.
- اڃا به وڌيڪ سڌريل ڪنيڪٽيٽ سوئچنگ نئون -mgas-isr-prologues آپشن ڪنٽرول ڪري ٿو ڪنٽيڪٽ سوئچ ڪوڊ کي ڪنٽرول ڪري ٿو جيڪو ننڍي وقفي جي سروس روٽين لاءِ ٺاهيل آهي. جڏهن فعال ڪيو ويندو، هن خاصيت کي گڏ ڪرڻ وارو هوندو ISR کي رجسٽر استعمال لاءِ اسڪين ۽ صرف انهن استعمال ٿيل رجسٽرن کي محفوظ ڪري جيڪڏهن گهربل هجي.
- ڪنفيگريبل فليش ميپنگ AVR DA ۽ AVR DB فيملي ۾ ڪجھ ڊوائيسن وٽ SFR (مثال طور FLMAP) آھي جيڪو بيان ڪري ٿو ته ڪھڙي پروگرام ميموري جي 32k سيڪشن کي ڊيٽا ميموري ۾ ميپ ڪيو ويندو. نئون - mconst-data-in-config-mapped-progmem آپشن استعمال ڪري سگھجي ٿو لنڪر کي ھڪڙي 32k سيڪشن ۾ سڀني-قابل ڊيٽا کي رکڻ لاءِ ۽ پاڻمرادو لاڳاپيل SFR رجسٽر کي شروع ڪرڻ کي يقيني بڻائڻ لاءِ ته ھن ڊيٽا کي ڊيٽا ميموري اسپيس ۾ ميپ ڪيو ويو آھي. ، جتي ان کي وڌيڪ موثر طريقي سان پهچايو ويندو.
- Microchip Unified Standard Librarys سڀ MPLAB XC مرتب ڪندڙ ھڪڙي Microchip Unified Standard Library کي شيئر ڪندا، جيڪو ھاڻي MPLAB XC8 جي ھن رليز سان دستياب آھي. MPLAB® XC8 C Compiler User's Guide for AVR® MCU ۾ ھاڻي انھن معياري ڪمن لاءِ دستاويز شامل نه آھن. ھي معلومات ھاڻي ملي سگھي ٿي Microchip Unified Standard Library Reference Guide ۾. نوٽ ڪريو ته ڪجھ ڪارڪردگي اڳ ۾ بيان ڪيل avr-libc هاڻي موجود ناهي. (ڏسو لئبرري جي ڪارڪردگي.)
- سمارٽ IO نئين متحد لائبريرين جي حصي جي طور تي، IO افعال printf ۽ scanf خاندانن ۾ ھاڻي ھر ھڪڙي تعمير تي ترتيب ڏنل آھن، ان جي بنياد تي ته اھي فنڪشن پروگرام ۾ ڪيئن استعمال ڪيا وڃن. اهو پروگرام پاران استعمال ڪيل وسيلن کي ڪافي حد تائين گھٽائي سگھي ٿو.
- سمارٽ IO مدد آپشن جڏهن سمارٽ IO فنڪشنز (جهڙوڪ printf() يا scanf() تي ڪالن جو تجزيو ڪرڻ وقت ڪمپلر هميشه فارميٽ جي اسٽرنگ مان اندازو لڳائي نه ٿو سگهي يا دليلن مان اندازو لڳائي سگهي ٿو اهي تبادلي جي وضاحت ڪندڙ ڪال لاءِ گهربل آهن. اڳي، مرتب ڪندڙ هميشه ٺاهيندو هو. ڪو به مفروضو نه آهي ۽ پڪ ڪريو ته مڪمل طور تي فنڪشنل IO فنڪشن فائنل پروگرام جي تصوير سان ڳنڍيل هئا. هڪ نئون -msmart-io-format=fmt آپشن شامل ڪيو ويو آهي ته جيئن مرتب ڪندڙ کي ان جي بدران سمارٽ IO پاران استعمال ڪيل تبادلي جي وضاحتن جي استعمال ڪندڙ کي ڄاڻ ڏئي سگهجي. فنڪشن جن جو استعمال ابهام وارو آهي، تمام گهڻي ڊگھي IO روٽين کي ڳنڍجڻ کان روڪي ٿو. (وڌيڪ تفصيل لاءِ smart-io-format آپشن ڏسو.)
- ڪسٽم سيڪشن کي رکڻ اڳي، -Wl،-section-start آپشن صرف مخصوص سيڪشن کي درخواست ڪيل ايڊريس تي رکي ٿو جڏهن لنڪر اسڪرپٽ ساڳئي نالي سان هڪ آئوٽ سيڪشن جي وضاحت ڪئي آهي. جڏهن اهو معاملو نه هو، سيڪشن کي لنڪر طرفان چونڊيل ايڊريس تي رکيو ويو ۽ اختيار کي لازمي طور تي نظر انداز ڪيو ويو. ھاڻي اختيار کي ساراھيو ويندو سڀني ڪسٽم سيڪشن لاءِ، جيتوڻيڪ لنڪر اسڪرپٽ سيڪشن جي وضاحت نٿو ڪري. نوٽ، بهرحال، معياري حصن لاءِ، جهڙوڪ .text، .bss يا .data، بهترين فٽ مختص ڪندڙ اڃا تائين انهن جي جاءِ تي مڪمل ڪنٽرول هوندو، ۽ اختيار جو ڪو اثر نه ٿيندو. استعمال ڪريو -Wl,-Tsection=addr آپشن، جيئن استعمال ڪندڙ جي گائيڊ ۾ بيان ڪيو ويو آهي.
نسخو 2.32
- اسٽيڪ گائيڊنس هڪ PRO ڪمپيلر لائسنس سان دستياب آهي، ڪمپلر جي اسٽيڪ گائيڊنس فيچر استعمال ڪري سگهجي ٿي پروگرام جي استعمال ڪيل ڪنهن به اسٽيڪ جي وڌ ۾ وڌ کوٽائي جو اندازو لڳائڻ لاءِ. اهو هڪ پروگرام جي ڪال گراف کي تعمير ۽ تجزيو ڪري ٿو، هر فنڪشن جي اسٽيڪ استعمال کي طئي ڪري ٿو، ۽ هڪ رپورٽ ٺاهي ٿو، جنهن مان پروگرام پاران استعمال ڪيل اسٽيڪ جي کوٽائي جو اندازو لڳائي سگهجي ٿو. ھي مضمون فعال ڪيو ويو آھي -mchp-stack-usage ڪمانڊ لائن آپشن ذريعي. اسٽيڪ استعمال جو خلاصو عمل کان پوء ڇپيل آهي. هڪ تفصيلي اسٽيڪ رپورٽ نقشي جي فائل ۾ موجود آهي، جيڪا عام طريقي سان درخواست ڪري سگهجي ٿي.
- نئين ڊيوائس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ موجود آھي: ATTINY427، ATTINY424، ATTINY426، ATTINY827، ATTINY824، ATTINY826، AVR32DB32، AVR64DB48، AVR64DB64، AVR64DB28، AVR32BAVR28، AVR64DB32 32، ۽ AVR48DBXNUMX.
- واپس ڪيل ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاء دستياب نه آھي: AVR16DA28، AVR16DA32 ۽، AVR16DA48.
نسخو 2.31
ڪو به.
نسخو 2.30
- ڊيٽا جي شروعات کي روڪڻ لاءِ نئون آپشن ھڪڙو نئون -mno-data-init ڊرائيور آپشن ڊيٽا جي شروعات ۽ بي ايس ايس سيڪشن کي صاف ڪرڻ کي روڪي ٿو. اهو ڪم ڪري ٿو do_clear_bss علامتن جي آئوٽ پٽ کي دٻائيندي اسيمبلي فائلن ۾، جنهن جي نتيجي ۾ لنڪر طرفان انهن معمولن کي شامل ڪرڻ کان روڪيو ويندو.
- بهتر ڪيل اصلاحون ڪيتريون ئي اصلاحون ڪيون ويون آھن، جن ۾ بيڪار موٽڻ وارين ھدايتن کي ختم ڪرڻ، skip-if-bit-is جي ھدايتن جي پٺيان ڪجھ جمپز کي ختم ڪرڻ، ۽ بھتر طريقياتي تجريد ۽ ھن عمل کي ٻيهر ورجائڻ جي صلاحيت شامل آھي.
اضافي اختيارات ھاڻي موجود آھن انھن مان ڪجھ اصلاحن کي ڪنٽرول ڪرڻ لاءِ، خاص طور تي -fsection- anchors، جيڪي جامد شين جي رسائي کي ھڪڙي علامت جي نسبت سان انجام ڏيڻ جي اجازت ڏين ٿا؛ -mpa- iterations=n، جيڪا اجازت ڏئي ٿي ته طريقيڪار جي تجريد جي تعداد کي 2 جي ڊفالٽ مان تبديل ڪيو وڃي؛ ۽، -mpa-callcost-shortcall، جيڪو وڌيڪ جارحاڻي طريقي وارو خلاصو انجام ڏئي ٿو، انهي اميد ۾ ته لنڪر ڊگهي ڪالن کي آرام ڪري سگهي ٿو. هي آخري آپشن ڪوڊ جي سائيز کي وڌائي سگھي ٿو جيڪڏھن ھيٺين مفروضن کي محسوس نه ڪيو وڃي. - نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاء دستياب آھي: AVR16DA28، AVR16DA32، AVR16DA48، AVR32DA28، AVR32DA32، AVR32DA48، AVR64DA28، AVR64DA32، AVR64DA48، AVR64DA64، AVR128DA28، AVR128DA32، 128DB48، AVR128DB64، ۽ AVRXNUMXDBXNUMX.
- منتٽ Pact 5272. اي-P.5790، OB5790 -5791 '، ايبو "5795'، ايٽو 6285 '6286'، Oct 6612C '، Out6613C'A، ANAC'A'A، ANAC'ALT'A، ANAC'ALT'A، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، ANATALEA، Act 6614'A، ANATALEA، AtA6616 6617، ANATEA664251-XNUMX
نسخو 2.29 (فنڪشنل سيفٽي رليز)
- ڪمپيلر بلٽ-ان لاءِ هيڊر فائل انهي ڳالهه کي يقيني بڻائڻ لاءِ ته ڪمپلر ٻوليءَ جي وضاحتن سان مطابقت رکي ٿو جهڙوڪ MISRA، ، اپڊيٽ ڪيو ويو آهي. هي هيڊر سڀني اندر تعمير ٿيل ڪمن لاءِ پروٽوٽائپس تي مشتمل آهي، جهڙوڪ __builtin_avr_nop() ۽ __builtin_avr_delay_cycles() . ڪجھ بلٽ ان MISRA مطابق نه ھجن. انهن کي ختم ڪري سگھجي ٿو define __XC_STRICT_MISRA کي گڏ ڪرڻ واري ڪمانڊر لائن ۾. بلٽ انز ۽ انهن جي اعلانن کي اپڊيٽ ڪيو ويو آهي مقرر ٿيل چوٽي جي قسمن کي استعمال ڪرڻ لاءِ.
نسخو 2.20
- نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاء دستياب آھي: ATTINY1624، ATTINY1626، ۽ ATTINY1627.
- بهتر بھترين فِٽ مختص ڪَپائيلر ۾ بھترين فِٽ مختص ڪندڙ (BFA) کي بھتر ڪيو ويو آھي ته جيئن سيڪشنز کي ترتيب ۾ مختص ڪيو وڃي ته جيئن بھتر اصلاح جي اجازت ملي. BFA ھاڻي نالي واري ايڊريس اسپيس کي سپورٽ ڪري ٿو ۽ ڊيٽا جي شروعات کي بھتر سنڀاليندو آھي.
- بهتر ڪيل طريقيڪار تجزيه: طريقيڪار تجزيه جي اصلاح هاڻي وڌيڪ ڪوڊ جي ترتيبن تي ڪئي وئي آهي. اڳيون حالتون جتي هي اصلاح ٿي سگھي ٿي ڪوڊ جي سائيز ۾ اضافو ڪيو ويو آهي اصلاحي ڪوڊ کي لنڪر جي گندگي گڏ ڪرڻ جي عمل کان آگاهي ڪندي.
- AVR اسمبلر جي غير موجودگي AVR اسمبلر ھاڻي ھن تقسيم ۾ شامل نه آھي.
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
- ڪوڊ ڪوريج ھن رليز ۾ ھڪڙي ڪوڊ ڪوريج جي خصوصيت شامل آھي جيڪا ان حد تائين تجزيو ڪرڻ ۾ مدد ڪري ٿي جنھن تي پروجيڪٽ جي سورس ڪوڊ تي عمل ڪيو ويو آھي. ان کي فعال ڪرڻ لاءِ اختيار استعمال ڪريو -mcodecov=ram. توهان جي هارڊويئر تي پروگرام جي عمل کان پوء، ڪوڊ ڪوريج جي معلومات کي ڊوائيس ۾ گڏ ڪيو ويندو، ۽ اهو منتقل ڪري سگهجي ٿو ۽ ايم پي ايل بي ايڪس IDE ذريعي ڏيکاريل ڪوڊ ڪوريج پلگ ان ذريعي. هن پلگ ان تي معلومات حاصل ڪري سگهجي ٿو لاء IDE دستاويز ڏسو.
#pragma nocodecov استعمال ٿي سگھي ٿو ايندڙ ڪمن کي ڪوريج تجزيي کان خارج ڪرڻ لاءِ. مثالي طور pragma کي فائل جي شروعات ۾ شامل ڪيو وڃي ته جيئن پوري فائل کي ڪوريج جي تجزيي مان خارج ڪيو وڃي. متبادل طور تي، __attribute__((nocodecov)) استعمال ٿي سگھي ٿو ھڪڙي خاص فنڪشن کي ڪوريج جي تجزيي مان خارج ڪرڻ لاءِ. - ڊيوائس جي تفصيل فائلون هڪ نئين ڊيوائس فائل جنهن کي avr_chipinfo.html سڏيو ويندو آهي ڊاڪيومينٽري ڊاريڪٽري ۾ ڪمپيلر ڊسٽرڪٽ. هي فائل سڀني ڊوائيسن کي لسٽ ڪري ٿو جيڪو ڪمپيلر جي مدد سان. هڪ ڊوائيس جي نالي تي ڪلڪ ڪريو، ۽ اهو هڪ صفحو کوليندو جيڪو ڏيکاريندو سڀني قابل اجازت ترتيب واري ترتيب واري بٽ سيٽنگ / قيمت جوڙو انهي ڊوائيس لاء، اڳوڻي سان.amples.
- پروسيجرل تجزيه پروسيسر تجزيه اصلاح، جيڪي اسمبلي ڪوڊ جي عام بلاڪ کي ان بلاڪ جي ڪڍيل ڪاپي جي ڪالن سان تبديل ڪن ٿيون، مرتب ڪندڙ ۾ شامل ڪيون ويون آهن. اهي هڪ الڳ ايپليڪيشن ذريعي ڪيا ويا آهن، جيڪو خودڪار طور تي مرتب ڪندڙ طرفان سڏيو ويندو آهي جڏهن سطح 2، 3 يا s اصلاحن کي چونڊيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي، پر اهي شايد عمل جي رفتار ۽ ڪوڊ ڊيبگيبلٽي کي گھٽائي سگھن ٿيون. طريقيڪار جي تجزيي کي -mno-pa اختيار استعمال ڪندي اعلي اصلاحي سطحن تي غير فعال ڪري سگھجي ٿو، يا -mpa استعمال ڪندي هيٺين اصلاح جي سطح (توهان جي لائسنس جي تابع) تي فعال ڪري سگھجي ٿو. اهو -mno-pa-on- استعمال ڪندي هڪ اعتراض فائل لاءِ غير فعال ٿي سگهي ٿو.file=fileنالو، يا -mno-pa-on- function=function استعمال ڪندي فنڪشن لاءِ غير فعال ڪيو ويو. توهان جي ماخذ ڪوڊ جي اندر، طريقياتي تجزيي کي __attribute__((nopa)) استعمال ڪندي فنڪشن جي تعريف سان، يا __nopa استعمال ڪندي، جيڪو __attribute__((nopa،noinline)) تائين وڌايو ويندو آهي ۽ اهڙي طرح فنڪشن ان لائننگ کي ٿيڻ کان روڪي ٿو. ۽ اتي موجود ڪوڊ جو خلاصو.
- pragma ۾ لاڪ بٽ سپورٽ #pragma config ھاڻي استعمال ڪري سگھجي ٿو AVR لاڪ بِٽس ۽ ٻين ڪنفيگريشن بِٽس کي بيان ڪرڻ لاءِ. چيڪ ڪريو avr_chipinfo.html فائل (مٿي ڄاڻايل) هن pragma سان استعمال ڪرڻ لاءِ سيٽنگ/قدر جوڙن لاءِ.
- نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل حصن لاء دستياب آھي: AVR28DA128، AVR64DA128، AVR32DA128، ۽ AVR48DA128.
نسخو 2.05
- توهان جي بڪ لاءِ وڌيڪ بِٽ هن ڪمپلر ۽ لائسنس مئنيجر جو macOS ورزن هاڻي 64-bit ايپليڪيشن آهي. اهو يقيني بڻائيندو ته گڏ ڪرڻ وارو انسٽال ڪندو ۽ هلائيندو بغير ڊيڄاريندڙ MacOS جي تازي ورزن تي.
- پروگرام ميموري ۾ ڪانسٽ آبجیکٹس ڪمپائلر ھاڻي پروگرام فليش ميموري ۾ ڪانسٽ-ڪاليفائيڊ شيون رکي سگھي ٿو، بجاءِ انھن کي RAM ۾ رکڻ جي. ڪمپيلر کي تبديل ڪيو ويو آهي ته جيئن مسلسل معيار جي عالمي ڊيٽا کي پروگرام فليش ميموري ۾ محفوظ ڪيو وڃي ۽ هن ڊيٽا کي سڌو ۽ اڻ سڌي طرح استعمال ڪري سگهجي ٿو مناسب پروگرام-ميموري هدايتون استعمال ڪندي. ھي نئون فيچر ڊفالٽ طور فعال ڪيو ويو آھي پر -mno-const-data-in-progmem آپشن کي استعمال ڪندي غير فعال ڪري سگھجي ٿو. avrxmega3 ۽ avrtiny architectures لاءِ، ھي خصوصيت گھربل نه آھي ۽ ھميشه غير فعال آھي، ڇو ته پروگرام ميموري انھن ڊوائيسز لاءِ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آھي.
- معياري لاءِ مفت غير لائسنس يافته (مفت) ورجن هن ڪمپيلر جا هاڻي بهتر ڪرڻ جي اجازت ڏين ٿا ۽ ان ۾ ليول 2 تائين شامل آهن. هي اجازت ڏئي ٿو هڪ جهڙو، جيتوڻيڪ هڪجهڙو نه، ان جي پيداوار جيڪا اڳي معياري لائسنس استعمال ڪندي ممڪن هئي.
- ڀليڪار AVRASM2 2-bit ڊوائيسز لاءِ AVRASM8 اسمبلر هاڻي 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 لائبريري فائل کي ٺاهڻ يا تبديل ڪرڻ لاءِ ۽ اهڙي طرح لائبريرين کي سڏڻ جو تجويز ڪيل طريقو آهي. جيڪڏهن گهربل پراجيڪٽس لاءِ گهربل هجي، ته پوئين لائبريرين کي سڌو سنئون سڏيو وڃي ٿو پراڻي طرز جا اختيار استعمال ڪندي جيڪي اڳئين مرتب ورزن ۾ قبول ڪيا ويا هئا.
لڏپلاڻ جا مسئلا
ھيٺيون خاصيتون آھن جيڪي ھاڻي مختلف طريقي سان گڏ ڪن ٿيون. انهن تبديلين کي شايد توهان جي سورس ڪوڊ ۾ ترميم جي ضرورت هجي جيڪڏهن ڪوڊ هن ڪمپلر ورزن ڏانهن پورٽ ڪيو وڃي. ذيلي عنوانن ۾ ورجن نمبر اشارو ڪري ٿو پھرين مرتب ڪندڙ ورزن کي سپورٽ ڪرڻ لاءِ تبديلين جي پٺيان.
نسخو 2.45
ڪو به.
نسخو 2.41
غلط fma افعال هٽايو ويو (XC8-2913) C99 معياري لائبريري ( ) هڪ واحد گولنگ کي لامحدود درستگي سان ضرب-اضافو نه ڪيو، پر ان جي بدران هر آپريشن سان گڏ گولن جي غلطين کي گڏ ڪيو. انهن فنڪشن کي فراهم ڪيل لائبريري مان هٽايو ويو آهي.
نسخو 2.40
ڪو به.
نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.36
ڪو به.
نسخو 2.35
- اسٽرنگ ٽو بيسز کي سنڀالڻ (XC8-2420) ٻين XC ڪمپيلرز سان مطابقت کي يقيني بڻائڻ لاءِ، XC8 اسٽرنگ کان افعال، جهڙوڪ strtol() وغيره، هاڻي ان پٽ اسٽرنگ کي تبديل ڪرڻ جي ڪوشش نه ڪندا جيڪڏهن بنيادي بيان ڪيل 36 کان وڏو آهي ۽ بدران مقرر ڪندو. سي معيار جي ڪارڪردگي جي رويي کي بيان نه ڪندو آهي جڏهن هي بنيادي قيمت وڌي وڃي ٿي.
- نامناسب اسپيڊ آپٽمائيزيشنز پروسيجرل ايبسٽرڪشن آپٽمائيزيشنز کي فعال ڪيو پيو وڃي جڏهن ليول 3 آپٽمائيزيشن (-O3) کي چونڊيو وڃي ٿو. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي ڪوڊ جي رفتار جي خرچ تي، تنهنڪري نه ڪيو وڃي ها. هن اصلاح جي سطح کي استعمال ڪندي پروجيڪٽ شايد ڪوڊ سائيز ۽ عمل جي رفتار ۾ فرق ڏسي سگھن ٿا جڏهن هن رليز سان ٺهيل آهي.
- لائبريري فنڪشنلٽي ڪيترن ئي معياري سي لائبريري جي ڪمن جو ڪوڊ هاڻي مائڪروچپ جي يونيفائيڊ معياري لائبريري مان اچي ٿو، جيڪو ڪجهه حالتن ۾ اڳوڻي avr-libc لائبريري پاران مهيا ڪيل مقابلي ۾ مختلف رويي جي نمائش ڪري سگهي ٿو. مثال طورample، ان کي هاڻي lprintf_flat لائبريري (-lprintf_flt آپشن) ۾ ڳنڍڻ جي ضرورت ناهي ته فلوٽ فارميٽ جي وضاحت ڪندڙن لاءِ فارميٽ ٿيل IO سپورٽ کي چالو ڪرڻ لاءِ. Microchip Unified Standard Library جي سمارٽ IO خاصيتون ھن آپشن کي بيڪار بڻائي ٿي. اضافي طور تي، اسٽرنگ ۽ ياداشت جي ڪمن (مثال طور strcpy_P() وغيره..) لاءِ _P suffixed routines جو استعمال جيڪي فليش ۾ const strings تي هلن ٿا، هاڻي ضروري نه آهن. معياري سي روٽين (مثال طور strcpy() اهڙي ڊيٽا سان صحيح ڪم ڪندو جڏهن const-data-in-program-memory فيچر فعال هوندو.
نسخو 2.32
ڪو به.
نسخو 2.31
ڪو به.
نسخو 2.30
ڪو به.
نسخو 2.29 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.2
تبديل ٿيل ڊي ايف پي ترتيب ترتيب ڏيڻ وارو هاڻي ڊي ايف پيز (ڊيوائس فيملي پيڪ) پاران استعمال ڪيل مختلف ترتيب کي فرض ڪري ٿو. هن جو مطلب اهو ٿيندو ته هڪ پراڻو DFP شايد هن رليز سان ڪم نه ڪري سگهي، ۽ پراڻا مرتب ڪندڙ جديد ڊي ايف پي استعمال ڪرڻ جي قابل نه هوندا.
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
ڪو به
نسخو 2.05
پروگرام ميموري ۾ Const شيون نوٽ ڪريو ته ڊفالٽ طور، const-qualified objects رکيا ويندا ۽ پروگرام ميموري ۾ پهچايا ويندا (جيئن هتي بيان ڪيو ويو آهي). اهو توهان جي منصوبي جي سائيز ۽ عمل جي رفتار کي متاثر ڪندو، پر رام جي استعمال کي گهٽائڻ گهرجي. هن مضمون کي غير فعال ڪري سگهجي ٿو، جيڪڏهن گهربل هجي، استعمال ڪندي -mno-const-data-in-progmem اختيار.
نسخو 2.00
- ڪنفيگريشن فيوز ڊيوائس ڪنفيگريشن فيوز ھاڻي پروگرام ڪري سگھجن ٿا config pragma استعمال ڪندي پوءِ فيوز جي حالت کي بيان ڪرڻ لاءِ سيٽنگ-ويليو جوئر، مثال طور #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- Absolute Objects and functions Objects and functions ھاڻي ميموري ۾ مخصوص ايڊريس تي رکي سگھجن ٿا CCI __at(address) specifier، مثال لاءِampاليزي:
- #شامل
int foobar __at(0x800100)؛
char __at(0x250) getID (int offset) { … }
هن وضاحت ڪندڙ لاء دليل لازمي طور تي هڪ مستقل هجڻ گهرجي جيڪو پتي جي نمائندگي ڪري ٿو جنهن تي پهريون بائيٽ يا هدايت رکيل هوندي. RAM پتا 0x800000 جي آفسيٽ استعمال ڪندي ظاهر ڪيا ويا آھن. CCI کي فعال ڪريو ھن خصوصيت کي استعمال ڪرڻ لاءِ.
- #شامل
- نئون interrupt فنڪشن نحو ڪمپائلر هاڻي CCI __interrupt(num) specifier قبول ڪري ٿو اهو ظاهر ڪرڻ لاءِ ته C functions interrupt handlers آهن. وضاحت ڪندڙ هڪ مداخلت نمبر وٺندو آهي، مثال طورample: #شامل void __interrupt(SPI_STC_vect_num) spi_Isr(void) { … }
مقرر ٿيل مسئلا
هيٺيون تصحيحون ڪيون ويون آھن جيڪي ڪمپيلر ۾ ڪيون ويون آھن. اهي ٺاهيل ڪوڊ ۾ بگ کي درست ڪري سگھن ٿا يا ڪمپيلر جي آپريشن کي تبديل ڪري سگھن ٿا جيڪو ارادو ڪيو ويو يا صارف جي گائيڊ طرفان بيان ڪيو ويو. ذيلي عنوانن ۾ ورجن نمبر اشارو ڪري ٿو پهريون ڪمپلر ورزن جنهن جي پٺيان مسئلن لاءِ فيڪس شامل آهن. عنوان ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهي مفيد ٿي سگهن ٿيون جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي.
نوٽ ڪريو ته ڊوائيس سان لاڳاپيل ڊيوائس فيملي پيڪ (DFP) ۾ ڪجهه ڊوائيس مخصوص مسئلا درست ڪيا ويا آهن. ڏسو MPLAB پيڪ مئنيجر DFPs ۾ ڪيل تبديلين بابت معلومات لاءِ ۽ جديد پيڪ ڊائون لوڊ ڪرڻ لاءِ.
نسخو 2.45
- رومنگ لائسنس جي ناڪامي (XCLM-235) رومنگ لائسنس لينڪس پليٽ فارمن تي 2.28 کان پوءِ glibc ورزن استعمال ڪندي صحيح طريقي سان ڪم ڪرڻ ۾ ناڪام ٿيا.
- ساختن جي صفن سان اندروني نقص (XC8-3069) جڏھن ھڪڙي جوڙجڪ جي گھڻن-dimensional array ميمبرن تي عمل ڪيو ويو، ايڊريس اسپيس qualifier کي صحيح طور تي صف ۾ پروپيگنڊا نه ڪيو ويو. انهي جي نتيجي ۾ ايڊريس اسپيس جي قابليت واري معلومات ۾ بي ميل ۽ هڪ اندروني ڪمپيلر غلطي. هن صورتحال کي درست ڪيو ويو آهي.
- اڻ شروع ٿيل اسٽريمز ڏانهن خراب لکندو آهي (ML-353, XC8-3100) جيڪڏهن معياري ٻاڦ/غلطي اسٽريمز واضح طور تي FDEV_SETUP_STREAM يا _init_stdout/_init_stderr استعمال ڪندي سيٽ اپ نه ڪئي وئي هئي، انهن کي لکڻ جي ڪوشش جي نتيجي ۾ اڻڄاتل رويي جي نتيجي ۾. اهو پڻ متاثر ڪري ٿو لکن کان stdlib افعال، جهڙوڪ perror(). انهن اسٽريمز تي جيڪي به لکندا آهن انهن جي شروعات کان اڳ انهن کي نظرانداز ڪيو ويندو.
- Unsupported modifier (XC8-2505) avr-libc لائبريري * modifier کي printf طرز جي تبديليءَ جي وضاحتن ۾ مدد نه ڪئي، مثال لاءِample “%.*f”. اهو هاڻي مائڪروچپ يونيفائيڊ معياري لائبريري جي تعارف سان سهڪار ڪيو ويو آهي.
- گھڻا غير شروع ٿيل ڊيڄاريندڙ (XC8-2409) مرتب ڪندڙ گھڻا ھڪجھڙا وارننگ پيغام جاري ڪري رھيا ھئا جڏھن ھڪڙي ڪانسٽ ايري کي سامھون ڪري رھيا ھئا جنھن جي شروعات نه ڪئي وئي ھئي. پيغام صرف هڪ ڀيرو جاري ٿيڻ گهرجي ها، جيڪو هاڻي معاملو آهي جڏهن اها صورتحال ٿئي ٿي.
نسخو 2.41
- وينٽورا (XC8-3088) تي ڊونگل جا مسئلا ڪمپلر کي لائسنس ڏيڻ لاءِ استعمال ٿيل ڊونگلز شايد MacOS Ventura ميزبانن تي صحيح طريقي سان نه پڙهيا ويا آهن، نتيجي ۾ لائسنسنگ ناڪامي ٿي. XCLM لائسنس مينيجر ۾ تبديليون هن مسئلي کي درست ڪن ٿيون.
- ميموري مختص ڪرڻ جو غلط اشارو (XC8-2925) ميموري جي SIZE_MAX بائيٽ (يا ان جي ويجهو هڪ قدر) مختص ڪرڻ جي ڪوشش ڪئي وئي معياري لائبريري ميموري مئنيجمينٽ فنڪشن استعمال ڪندي (malloc() et al) درخواست ڪئي وئي جڏهن سادي متحرڪ ميموري مختص عمل کي استعمال ڪندي. ھڪڙو NULL پوائنٽر ھاڻي واپس ڪيو ويندو ۽ اھڙين حالتن ۾ ENOMEM تي غلطي مقرر ڪئي ويندي.
- غلط fma افعال هٽايو ويو (XC8-2913) C99 معياري لائبريري fma()-خانداني افعال ( ) هڪ واحد گولنگ کي لامحدود درستگي سان ضرب-اضافو نه ڪيو، پر ان جي بدران هر آپريشن سان گڏ گولن جي غلطين کي گڏ ڪيو. انهن فنڪشن کي فراهم ڪيل لائبريري مان هٽايو ويو آهي.
- اسٽرنگ ڪنورشن جي خراب هينڊلنگ (XC8-2921, XC8-2652) جڏهن strtod() جي تبادلي لاءِ ’موضوع جي ترتيب‘ ۾ شامل هوندو هو جيڪو ظاهري شڪل ۾ فلوٽنگ پوائنٽ نمبر هوندو هو ۽ e/E کان پوءِ هڪ اڻڄاتل ڪردار هو ڪردار، پوءِ جتي endptr مهيا ڪيو ويو هو، ان کي هڪ ايڊريس لڳايو ويو هو، جنهن ۾ اهو اشارو ڪيو ويو هو ته ڪردار ڏانهن اشارو ڪيو کان پوء، جڏهن ته ان کي اشارو ڪيو وڃي ها ته e//E ڪردار پاڻ ڏانهن اشارو ڪيو ويو آهي، ڇاڪاڻ ته اهو تبديل نه ڪيو ويو هو. مثال طورample، strtod(“100exx”، &ep) کي 100.00 موٽڻ گھرجي ۽ ep کي اسٽرنگ جي ”exx“ حصي ڏانھن اشارو ڪرڻ لاءِ سيٽ ڪرڻ گھرجي، جڏھن ته فنڪشن صحيح قدر واپس ڪري رھيو ھو پر سٽنگ جو حصو ”xx“ سيٽ ڪري رھيو ھو.
نسخو 2.40
- تمام آرام سان (XC8-2876) جڏهن -mrelax آپشن استعمال ڪيو، گڏ ڪرڻ وارو ڪجهه حصن کي گڏ نه ڪري رهيو هو، نتيجي ۾ گهٽ بهتر ڪوڊ سائيز. اهو ٿي سگهي ٿو ڪوڊ سان جيڪو نئين MUSL لائبريري استعمال ڪيو يا ڪمزور علامتن سان.
- ميپنگ فيچر غير فعال نه ڪيو ويو آهي جيئن خبردار ڪيو ويو آهي (XC8-2875) Const-data-in-config-mapped-progmem خصوصيت تي انحصار آهي ته const-data-in-progmem فيچر فعال ٿيڻ تي. جيڪڏهن const-data-in-config-mapped-progmem خصوصيت واضح طور تي اختيار کي استعمال ڪندي فعال ڪئي وئي هئي ۽ const-data-in-progmem خصوصيت کي غير فعال ڪيو ويو هو، هڪ خبرداري پيغام جي باوجود، لنڪ قدم ناڪام ٿي ويو، جنهن ۾ چيو ويو آهي ته const-data-in -config-mapped-progmem خصوصيت خود بخود غير فعال ٿي چڪي هئي، جيڪا مڪمل طور تي درست نه هئي. هن صورتحال ۾ const-data-in-config-mapped-progmem فيچر هاڻي مڪمل طور تي غير فعال آهي.
- NVMCTRL (XC8-2848) کي صحيح طور تي رسائي حاصل ڪرڻ لاءِ DFP تبديليون AVR64EA ڊوائيسز پاران استعمال ڪيل رن ٽائم شروعاتي ڪوڊ ان ڳالهه ۾ نه رکيو ويو ته NVMCTRL رجسٽرڊ ڪنفيگريشن چينج پروٽيڪشن (سي سي پي) تحت هو ۽ استعمال ٿيل صفحي تي IO SFR سيٽ ڪرڻ جي قابل نه هو. const-data-in-config-mapped-progmem compiler خصوصيت جي ذريعي. AVR-Ex_DFP ورزن 2.2.55 ۾ ڪيل تبديليون رن ٽائم شروع ڪرڻ واري ڪوڊ کي صحيح طور تي ھن رجسٽر ۾ لکڻ جي اجازت ڏين ٿيون.
- فليش ميپنگ کان بچڻ لاءِ DFP تبديليون (XC8-2847) AVR128DA28/32/48/64 Silicon Errata (DS80000882) ۾ رپورٽ ٿيل فليش ميپنگ ڊيوائس فيچر جي مسئلي لاءِ ڪم جي حوالي سان عمل ڪيو ويو آهي. Const-data-in-config-mapped-progmem compiler خاصيت متاثر ٿيل ڊوائيسز لاءِ ڊفالٽ طور لاڳو نه ٿيندي، ۽ اها تبديلي AVR-Dx_DFP ورزن 2.2.160 ۾ ظاهر ٿيندي.
- sinhf يا coshf (XC8-2834) سان غلطي ٺاھيو sinhf() يا coshf() لائبريري جي ڪمن کي استعمال ڪرڻ جي ڪوشش جي نتيجي ۾ ھڪڙي لنڪ جي غلطي ٿي، ھڪڙي اڻ ڄاڻايل حوالن کي بيان ڪندي. غائب ٿيل فنڪشن جو حوالو ھاڻي شامل ڪيو ويو آھي مرتب ڪندڙ تقسيم ۾.
- nopa سان غلطيون ٺاھيو (XC8-2833) nopa خصوصيت کي ھڪڙي فنڪشن سان استعمال ڪندي جنھن ۾ ان جي اسمبلر جو نالو __asm__() استعمال ڪندي بيان ڪيو ويو آھي اسمبلر کان غلطي جا پيغام. هي ميلاپ ممڪن ناهي.
- پوائنٽر دليلن سان متغير فنڪشن ناڪامي (XC8-2755, XC8-2731) هڪ متغير دليلن سان فنڪشن 24-bit (__memx قسم) پوائنٽر کي متغير دليلن جي لسٽ ۾ پاس ڪرڻ جي اميد رکي ٿو جڏهن const-data-in-progmem خصوصيت آهي فعال. دليل جيڪي ڊيٽا ميموري ڏانهن اشارو ڪري رهيا هئا 16-bit شين جي طور تي گذري رهيا هئا، ڪوڊ ناڪامي سبب جڏهن اهي آخرڪار پڙهيا ويا. جڏهن const-data-in-progmem خصوصيت کي فعال ڪيو ويندو آهي، سڀ 16-bit پوائنٽر دليل هاڻي 24-bit پوائنٽرز ۾ تبديل ڪيا ويا آهن.
- strtoxxx لائبريري فنڪشن ناڪام ٿي رهيو آهي (XC8-2620) جڏهن const-data-in-progmem فيچر کي فعال ڪيو ويو، strtoxxx لائبريري جي فنڪشن ۾ endptr پيٽرولر صحيح طريقي سان اپڊيٽ نه ڪيو ويو ماخذ اسٽرنگ دليلن لاءِ پروگرام ميموري ۾ نه.
- غلط ڪاسٽن لاءِ الرٽ (XC8-2612) ڪمپائلر ھاڻي ھڪ نقص جاري ڪندو جيڪڏھن ڪاسٽ-ان-پروگرام فيچر کي فعال ڪيو ويو آھي ۽ اسٽرنگ لٽريريل جو پتو واضح طور تي ڊيٽا ايڊريس اسپيس ڏانھن ڪاسٽ ڪيو ويو آھي (ڪانسٽ قابليت کي ختم ڪرڻ)، مثال طورample، (uint8_t *) "هيلو ورلڊ!" . هڪ ڊيڄاريندڙ مسئلو آهي جيڪڏهن ايڊريس غلط ٿي سگهي ٿي جڏهن ڪاسٽ ڊيٽا پوائنٽر واضح طور تي ڊيٽا ايڊريس اسپيس ڏانهن اڇلائي وئي آهي.
- غير شروع ٿيل ڪانسٽ آبجڪس جي جاءِ (XC8-2408) اڻ شروع ٿيل ۽ مستقل طور تي مستحڪم شيون
انهن ڊوائيسز تي پروگرام ميموري ۾ نه رکيا ويا آهن جيڪي انهن جي پروگرام ميموري جو سڄو يا حصو ڊيٽا ايڊريس اسپيس ۾ نقشي ۾ رکن ٿيون. انهن ڊوائيسز لاء، اهڙيون شيون هاڻي پروگرام ميموري ۾ رکيل آهن، انهن جي آپريشن کي ٻين ڊوائيسز سان گڏ ٺاهيندي.
نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.36
دير ڪرڻ ۾ غلطي (XC8-2774) ڊفالٽ مفت موڊ جي اصلاحن ۾ معمولي تبديليون اوپيرينڊ ايڪسپريسز جي مسلسل فولڊنگ کي تاخير ۾ بلٽ ان افعال کي روڪيو، نتيجي ۾ انھن کي غير مستقل سمجھيو پيو وڃي ۽ غلطي کي شروع ڪيو وڃي ٿو: __builtin_avr_delay_cycles توقع رکي ٿو ھڪڙي مرتب وقت ۾ مسلسل
نسخو 2.35
- __at (XC8-2653) استعمال ڪندي لڳاتار مختص ڪيترن ئي شين جي جڳهن جي هڪ حصي ۾ ساڳئي نالي سان ۽ استعمال ڪندي __at() صحيح ڪم نه ڪيو. مثال طورampاليزي:
const char arr1[] __attribute__((section(“.mysec”))) __at (0x500) = {0xAB، 0xCD}؛ const char arr2[] __attribute__((section(“.mysec”))) = {0xEF، 0xFE}؛ arr2 کي arr1 کان پوءِ فوري طور تي رکڻ گھرجي - سيڪشن جي شروعاتي ايڊريس جي وضاحت ڪرڻ (XC8-2650) -Wl،-سيڪشن-شروع آپشن خاموشيءَ سان سيڪشنز کي نامزد ٿيل شروعاتي ايڊريس تي رکڻ ۾ ناڪام رهيو. هي مسئلو مقرر ڪيو ويو آهي ڪنهن به ڪسٽم نالي سيڪشن لاءِ؛ بهرحال، اهو ڪنهن به معياري سيڪشن، جهڙوڪ .text يا .bss لاءِ ڪم نه ڪندو، جنهن کي هڪ -Wl،-T آپشن استعمال ڪرڻ گهرجي. لنڪر تباھ ٿي ويو جڏھن آرام ڪيو ويو (XC8-2647) جڏھن -mrelax اصلاح کي چالو ڪيو ويو ۽ اتي ڪوڊ يا ڊيٽا سيڪشن آھن جيڪي دستياب ميموري ۾ مناسب نه آھن، لنڪر خراب ٿي ويو. هاڻي، اهڙي صورتحال ۾، غلطي پيغام جاري ڪيا ويا آهن.
- No-no-fallback-back (XC8-2646) -nofallback آپشن صحيح طور تي لاڳو نه ڪيو ويو، ۽ نه ئي دستاويز ٿيل. اهو هاڻي چونڊيو وڃي ٿو انهي کي يقيني بڻائڻ لاءِ ته ڪمپلر واپس نه ٿيندو گهٽ اصلاحي سيٽنگ تي جيڪڏهن ڪمپلر غير لائسنس يافته آهي، ۽ ان جي بدران هڪ غلطي جاري ڪندو.
- نامناسب اسپيڊ آپٽمائيزيشن (XC8-2637) ليول 3 اصلاحن (-O3) کي منتخب ڪرڻ وقت پروسيجرل تجريدي اصلاحن کي فعال ڪيو پيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي ڪوڊ جي رفتار جي خرچ تي، تنهنڪري نه ڪيو وڃي ها.
- خراب EEPROM رسائي (XC8-2629) eeprom_read_block روٽين Xmega ڊوائيسز تي صحيح طريقي سان ڪم نه ڪيو جڏهن - mconst-data-in-progmem آپشن کي فعال ڪيو ويو (جيڪا ڊفالٽ حالت آهي)، نتيجي ۾ EEPROM ميموري صحيح طريقي سان نه پڙهي وئي.
- غلط ميموري مختص (XC8-2593, XC8-2651) جڏهن -Ttext يا -Tdata لنڪر آپشن (مثال طورampهڪ -Wl ڊرائيور اختيار استعمال ڪندي ذريعي گذري ويو) بيان ڪيو ويو آهي، لاڳاپيل متن/ڊيٽا علائقي جي اصليت کي اپڊيٽ ڪيو ويو؛ جڏهن ته، آخري ايڊريس مطابق ترتيب نه ڏني وئي هئي، جيڪا علائقي کي ٽارگيٽ ڊوائيس جي ميموري جي حد کان وڌيڪ ڪري سگهي ٿي.
- اوور-انتساب ٿيل فنڪشن سان حادثو (XC8-2580) ڪمپلر تباھ ٿي ويو جيڪڏھن ھڪڙي فنڪشن کي ھڪڙي کان وڌيڪ مداخلت، سگنل يا nmi خاصيتون استعمال ڪندي قرار ڏنو ويو، مثال طور، __attribute__((__signal__, __interrupt__))).
- غلط ATtiny interrupt code (XC8-2465) جڏهن ATtiny ڊوائيسز لاءِ تعمير ۽ اصلاحن کي غير فعال ڪيو ويو (-O0)، مداخلت وارا ڪم شايد حد کان ٻاهر آپرينڊ کي متحرڪ ڪري سگھن ٿا
- اختيارن جي ذريعي نه ٿي گذريو (XC8-2452) جڏهن -Wl آپشن کي استعمال ڪندي گھڻن، ڪاما سان الڳ ٿيل لنڪر اختيارن سان، نه ته سڀئي لنڪر آپشنز لنڪر ڏانهن منتقل ڪيا پيا وڃن.
- غلطي اڻ سڌي طرح پروگرام ميموري پڙهڻ (XC8-2450) ڪجهه مثالن ۾، ڪمپلر هڪ اندروني غلطي (ناقابل شناخت insn) پيدا ڪئي جڏهن هڪ پوائنٽر کان پروگرام ميموري ڏانهن ٻه بائيٽ ويل پڙهڻ.
نسخو 2.32
لائبريريءَ جي ٻي رسائي ناڪامي ٿي (XC8-2381) ونڊوز ورزن کي سڏڻ xc8-ar.exe لائبريري آرڪائيور ٻيو ڀيرو موجوده لائبريري آرڪائيو تائين رسائي حاصل ڪرڻ لاءِ ناڪام ٿي سگھي ٿو غلطي پيغام جو نالو تبديل ڪرڻ جي ناڪامي سان.
نسخو 2.31
Unexplained compiler ناڪامي (XC8-2367) جڏهن ونڊوز پليٽ فارمن تي هلندي هئي جنهن ۾ سسٽم عارضي ڊاريڪٽري هڪ رستي تي سيٽ ڪئي هئي جنهن ۾ هڪ ڊٽ شامل هوندو هو. ڪردار، گڏ ڪرڻ وارو عمل ڪرڻ ۾ ناڪام ٿي سگھي ٿو.
نسخو 2.30
- گلوبل ليبلز آئوٽ لائننگ کان پوءِ گم ٿيل (XC8-2299) هٿ سان لکيل اسمبلي ڪوڊ جيڪو گلوبل ليبلز کي اسيمبلي جي ترتيبن ۾ رکي ٿو جيڪي طريقيڪار جي تجزيي جي ذريعي فيڪٽر ٿيل آهن شايد صحيح طور تي تبديل نه ڪيا ويا هجن.
- آرام ڪرڻ وارو حادثو (XC8-2287) -mrelax آپشن کي استعمال ڪرڻ سان شايد لنڪر حادثي جو سبب بڻجي سگھي ٿو جڏهن tail jump relaxation optimizations ret instruction کي هٽائڻ جي ڪوشش ڪئي جيڪا سيڪشن جي آخر ۾ نه هئي.
- حادثو جڏهن ليبلز کي قدر جي طور تي بهتر ڪرڻ (XC8-2282) ڪوڊ استعمال ڪندي “ليبلز ايز ويلز” GNU C ٻولي جي واڌ جي ڪري ٿي سگھي ٿي طريقيڪار جي تجزيي جي اصلاحن کي حادثي جو سبب بڻائين، رينج اسپن فڪس اپ غلطي سان.
- ائين نه آهي const (XC8-2271) strstr() ۽ ٻين ڪمن لاءِ پروٽوٽائپس جڏهن ته const -mconst-data-in-progmem خصوصيت کي غير فعال ڪيو ويو آهي، واپسي واري اسٽرنگ پوائنٽرز تي غير معياري قابليت جي وضاحت نه ڪريو. نوٽ ڪريو ته avrxmega3 ۽ avrtiny ڊوائيسز سان، هي خصوصيت مستقل طور تي فعال آهي.
- گم ٿيل شروعاتي (XC8-2269) جڏهن ترجمي جي يونٽ ۾ هڪ کان وڌيڪ متغير هڪ سيڪشن ۾ رکيا ويا هئا (استعمال ڪندي __section يا __attribute__((section))) )، ۽ پهريون اهڙو متغير صفر شروع ڪيو ويو هو يا ان ۾ شروعاتي نه هئي، شروعاتي لاءِ ساڳئي ترجمي واري يونٽ ۾ ٻيا متغير جيڪي ساڳئي حصي ۾ رکيا ويا هئا، گم ٿي ويا.
نسخو 2.29 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.20
- ڊگھي حڪمن سان غلطي (XC8-1983) جڏهن هڪ AVR ٽارگيٽ استعمال ڪندي، ڪمپائلر بند ٿي چڪو هجي فائل سان نه مليو غلطي سان، جيڪڏهن ڪمانڊ لائن تمام وڏي هئي ۽ خاص اکر شامل آهن جهڙوڪ ڪوٽا، پٺتي سليش وغيره.
- غير تفويض ٿيل روڊاٽا سيڪشن (XC8-1920) AVR لنڪر ڪسٽم روڊاٽا سيڪشن لاءِ ميموري تفويض ڪرڻ ۾ ناڪام ٿيو جڏهن avrxmega3 ۽ avrtiny آرڪيٽيڪچرز لاءِ تعمير ڪيو ويو، ممڪن طور تي ميموري اوورليپ غلطيون پيدا ڪندي
نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
نسخو 2.10
- بحالي جي ناڪامي (XC8-1891) بهترين فٽ مختص ڪندڙ ميموري 'سوراخ' جي وچ ۾ حصن جي وچ ۾ لنڪر آرام کان پوء ڇڏي ويو. ميموري کي ٽڪرائڻ کان علاوه، اهو امڪان وڌائي ٿو اتي لنڪر جي منتقلي جي ناڪامي جي پي سي سان لاڳاپيل جمپس يا ڪال جي حد کان ٻاهر ٿيڻ سان.
- ھدايتون آرام سان تبديل نه ٿيون (XC8-1889) Linker Relaxation جمپ يا ڪال ھدايتن لاءِ نه ٿي سگھيا جن جي ھدف پھچڻ جي قابل ٿي وڃن جيڪڏھن آرام ڪيو وڃي.
- غائب فنڪشنلٽي (XC8E-388) کان ڪيتريون ئي تعريفون ، جهڙوڪ clock_div_t ۽ clock_prescale_set()، ڊوائيسز لاءِ وضاحت نه ڪئي وئي، بشمول ATmega324PB، ATmega328PB، ATtiny441، ۽ ATtiny841.
- غائب ميڪرو اڳي پروسيسر ميڪروز _XC8_MODE_، __XC8_VERSION، __XC، ۽ __XC8 پاڻمرادو ترتيب ڏيڻ واري طرفان وضاحت ڪئي وئي آهي. اهي هاڻي موجود آهن.
نسخو 2.05
- اندروني گڏ ڪرڻ واري غلطي (XC8-1822) جڏهن ونڊوز جي هيٺان تعمير ڪندي، ڪوڊ کي بهتر ڪرڻ وقت هڪ اندروني ڪمپيلر غلطي پيدا ٿي سگهي ٿي.
- RAM اوور فلو نه لڌو ويو (XC8-1800, XC8-1796) پروگرام جيڪي دستياب ريم کان وڌي ويا ڪجھ حالتن ۾ مرتب ڪندڙ طرفان نه ڳوليا ويا، نتيجي ۾ رن ٽائم ڪوڊ ناڪامي ٿي.
- ختم ٿيل فليش ميموري (XC8-1792) avrxmega3 ۽ avrtiny ڊوائيسز لاءِ، فليش ميموري جا حصا شايد MPLAB X IDE پاران غير پروگرام ٿيل ڇڏيا ويا هجن.
- مکيه عمل ڪرڻ ۾ ناڪامي (XC8-1788) ڪجهه حالتن ۾ جتي پروگرام ۾ ڪو به عالمي متغير بيان نه ڪيو ويو هو، رن ٽائم شروعاتي ڪوڊ ٻاهر نه نڪتو ۽ main() فنڪشن ڪڏهن به پهچي نه سگهيو.
- غلط ياداشت جي معلومات (XC8-1787) avrxmega3 ۽ avrtiny ڊوائيسز لاء، avr-سائيز پروگرام رپورٽ ڪري رهيو هو ته صرف پڙهڻ واري ڊيٽا پروگرام ميموري جي بدران رام استعمال ڪري رهيو هو.
- غلط پروگرام ميموري ريڊ (XC8-1783) پروجيڪٽس گڏ ڪيل ڊيوائسز لاءِ پروگرام ميموري سان گڏ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آهن ۽ جيڪي شيون PROGMEM macro/attribute استعمال ڪندي وضاحت ڪن ٿيون شايد اهي شيون غلط ايڊريس مان پڙهيا هجن.
- اندروني نقص وصفن سان (XC8-1773) جيڪڏهن توهان پوائنٽر آبجیکٹ جي وضاحت ڪئي آهي __at() يا attribute() ٽوڪن سان پوائنٽر جي نالي ۽ dereferenced قسم جي وچ ۾، مثال لاءِample, char * __at(0x800150) cp؛ هڪ ڊيڄاريندڙ هاڻي جاري ڪيو ويو آهي جيڪڏهن اهڙو ڪوڊ سامهون اچي ٿو.
- مکيه تي عمل ڪرڻ ۾ ناڪامي (XC8-1780, XC8-1767, XC8-1754) EEPROM متغيرن کي استعمال ڪرڻ يا فيوز کي ترتيب ڏيڻ واري ترتيب کي استعمال ڪندي ٿي سگھي ٿو غلط ڊيٽا جي شروعات ۽/يا پروگرام جي عمل کي بند ڪرڻ جو سبب رن ٽائم شروع ٿيڻ واري مکيه ڪوڊ کان اڳ (، ).
- ننڍڙن ڊوائيسز سان فيوز جي غلطي (XC8-1778, XC8-1742) attiny4/5/9/10/20/40 ڊوائيسز انهن جي هيڊر فائلن ۾ هڪ غلط فيوز جي ڊيگهه بيان ڪئي وئي هئي جيڪا لنڪر جي غلطين جي ڪري ٿي جڏهن ڪوڊ ٺاهڻ جي ڪوشش ڪئي وئي جيڪا فيوز جي وضاحت ڪئي وئي آهي. .
- سيگمينٽيشن فالٽ (XC8-1777) هڪ وقفي وقفي واري غلطي کي درست ڪيو ويو آهي.
- اسمبلر حادثو (XC8-1761) avr-as assembler شايد تباھ ٿي ويو ھو جڏھن مرتب ڪندڙ Ubuntu 18 تحت ھلايو ويو ھو.
- شيون صاف نه ڪيون ويون آهن (XC8-1752) غير شروع ٿيل جامد اسٽوريج جي مدت واريون شيون شايد رن ٽائم شروعاتي ڪوڊ ذريعي صاف نه ڪيون ويون آهن.
- متضاد ڊوائيس جي وضاحت کي نظر انداز ڪيو ويو (XC8-1749) گڏ ڪندڙ هڪ غلطي پيدا نه ڪري رهيو هو جڏهن ڪيترن ئي ڊوائيس جي وضاحت جا اختيار استعمال ڪيا ويا ۽ مختلف ڊوائيسز کي اشارو ڪيو ويو.
- ميموري بگاڙ بذريعہ هيپ (XC8-1748) __heap_start جي نشاني غلط طور تي سيٽ ڪئي پئي وڃي، نتيجي ۾ عام متغيرن جي هيپ جي خراب ٿيڻ جو امڪان آهي.
- Linker relocation error (XC8-1739) لنڪر جي منتقلي جي غلطي ٿي سگھي ٿي جڏھن ڪوڊ ۾ rjmp يا rcall ھدف سان بلڪل 4k بائيٽ پري ھجي.
نسخو 2.00
ڪو به.
ڄاڻايل مسئلا
مرتب ڪندڙ جي آپريشن ۾ ھيٺيون حدون آھن. اهي ٿي سگهن ٿيون عام ڪوڊنگ پابنديون، يا صارف جي دستياب ۾ موجود معلومات کان انحراف. عنوان ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهو فائدو ٿي سگهي ٿو جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي. اهي شيون جن ۾ ليبل نه هوندا آهن اهي حدون آهن جيڪي بيان ڪن ٿيون موڊي آپرينڊي ۽ جيڪي مستقل طور تي اثر ۾ رهڻ جو امڪان آهن.
MPLAB X IDE انضمام
- MPLAB IDE انٽيگريشن جيڪڏهن Compiler کي MPLAB IDE مان استعمال ڪرڻو آهي ته پوءِ توهان کي لازمي طور تي MPLAB IDE انسٽال ڪرڻ گهرجي Compiler انسٽال ڪرڻ کان اڳ.
- آري ڊيبگ انفارميشن (XC8-3157) ڊيبگ انفارميشن تيار ڪري ٿي جيڪا ڪمپلر طرفان تيار ڪئي وئي آهي __memx ايڊريس اسپيس ۾ arrays لاءِ اعتراض جي قسم کي صحيح طور تي بيان نٿو ڪري. هي هڪ IDE ۾ اعتراض جي مشاهدي کي روڪيندو.
ڪوڊ جي پيدائش
- سيگفالٽ سان سيڪشن-اينڪرز آپشن (XC8-3045) پروگرام جيڪو متغير دليلن جي فهرستن سان ڪمن جي وضاحت ڪري ٿو ۽ جيڪو استعمال ڪري ٿو -fsection-anchors آپشن شايد اندروني ڪمپيلر جي غلطي کي جنم ڏئي سگھي ٿو: سيگمينٽيشن غلطي
- ڊيبگ معلومات هم وقت سازي کان ٻاهر (XC8-2948) جڏهن لنڪر آرام جي اصلاح جي هدايتن کي ڇڪيندي آهي (مثال طورample call to rcal هدايتون)، ميپنگ کي ايڊريس ڪرڻ لاءِ سورس لائن شايد هم وقت نه رهي جڏهن هڪ سيڪشن ۾ هڪ کان وڌيڪ ڇڪڻ وارو عمل ٿئي ٿو. هيٺ ڏنل مثال ۾ample, foo لاءِ ٻه ڪالون آهن جيڪي مائٽي واري ڪالن کي آرام سان ختم ڪن ٿيون.
- PA ميموري مختص ڪرڻ جي ناڪامي (XC8-2881) جڏهن طريقيڪار تجزياتي اصلاحن کي استعمال ڪندي، لنڪر شايد ميموري مختص ڪرڻ جي غلطين جي رپورٽ ڪري سگهي ٿي جڏهن ڪوڊ سائيز ڊوائيس تي موجود پروگرام ميموري جي مقدار جي ويجهو آهي، جيتوڻيڪ پروگرام کي دستياب ڪرڻ جي قابل هوندو. خلا.
- ايترو سمارٽ ناهي Smart-IO (XC8-2872) ڪمپيلر جو سمارٽ-io فيچر snprintf فنڪشن لاءِ صحيح پر ذيلي-بهترين ڪوڊ ٺاهيندو جيڪڏهن const-data-in-progmem جي خصوصيت کي غير فعال ڪيو ويو آهي يا جيڪڏهن ڊوائيس ان جا سڀ فليش ميپ ٿيل ڊيٽا ميموري ۾.
- اڃا به گهٽ سمارٽ سمارٽ-IO (XC8-2869) گڏ ڪرڻ وارو سمارٽ-io خاصيت صحيح پر ذيلي-بهترين ڪوڊ ٺاهيندو جڏهن -flto ۽ -fno-builtin آپشن ٻئي استعمال ڪيا ويندا.
- Suboptimal read-only data placement (XC8-2849) لنڪر في الحال APPCODE ۽ APPDATA ميموري سيڪشن کان واقف ناهي، ۽ نه ئي [No-]Read-While-Write Divisions in the Memory map. نتيجي طور، ھڪڙو ننڍڙو موقعو آھي ته لنڪر صرف پڙھڻ واري ڊيٽا کي ميموري جي غير مناسب علائقي ۾ مختص ڪري سگھي ٿو. غلط ڊيٽا جا موقعا وڌي ويندا آهن جيڪڏهن const-data-in-progmem فيچر فعال هجي، خاص طور تي جيڪڏهن const-data-in-config-mapped-progmem فيچر پڻ فعال هجي. اهي خاصيتون بند ڪري سگهجن ٿيون جيڪڏهن گهربل هجي.
- آبجیکٹ فائل پروسيسنگ آرڊر (XC8-2863) آرڊر جنهن ۾ شيون فائلون پروسيس ڪيون وينديون لنڪر طرفان مختلف ٿي سگهي ٿي پروسيجرل تجزيه اصلاح جي استعمال جي بنياد تي (-mpa آپشن). اهو صرف ڪوڊ تي اثر انداز ڪندو جيڪو ڪيترن ئي ماڊلز ۾ ڪمزور افعال کي بيان ڪري ٿو.
- ڳنڍيندڙ غلطي مطلق سان (XC8-2777) جڏهن ڪو اعتراض RAM جي شروعات ۾ پتي تي مطلق ڪيو ويو آهي ۽ غير شروع ٿيل شيون پڻ بيان ڪيون ويون آهن، هڪ لنڪر غلطي ٿي سگهي ٿي.
- مختصر جاڳڻ واري IDs (XC8-2775) ATA5700/2 ڊوائيسز لاءِ، PHID0/1 رجسٽر صرف 16 بِٽ ويڪر بجاءِ 32 بِٽ ويڪر طور بيان ڪيا ويا آهن.
- لنڪر حادثو جڏهن ڪالنگ سمبل (XC8-2758) لنڪر خراب ٿي سگهي ٿو جيڪڏهن -mrelax ڊرائيور آپشن استعمال ڪيو ويندو آهي جڏهن سورس ڪوڊ هڪ علامت کي ڪال ڪري ٿو جنهن جي وضاحت ڪئي وئي آهي - Wl, -defsym لنڪر آپشن استعمال ڪندي.
- غلط شروعات (XC8-2679) وچ ۾ هڪ تفاوت آهي جتي ڪجهه عالمي / جامد بائيٽ-سائيز شين لاءِ شروعاتي قيمتون ڊيٽا ميموري ۾ رکيل آهن ۽ جتي متغيرن کي رن ٽائم تي پهچايو ويندو.
- خراب اڻ سڌي طرح فنڪشن ڪالز (XC8-2628) ڪجهه مثالن ۾، فنڪشنل ڪالز ذريعي ٺاهيل فنڪشن پوائنٽر جي ذريعي محفوظ ڪيل هڪ ساخت جي حصي طور ناڪام ٿي سگهي ٿي.
- strtof hexadecimal floats (XC8-2626) لاءِ صفر ڏي ٿو. مثال طورample: strtof("0x1"، &endptr)؛ قيمت 0 واپس ڪندو، نه 1.
- غلط اسٽيڪ ايڊوائزر ميسيجنگ (XC8-2542, XC8-2541) ڪجهه مثالن ۾، اسٽيڪ ايڊوائزر وارننگ جي حوالي سان ورجائي يا غير مقرر ٿيل اسٽيڪ استعمال ٿيل آهي (ممڪن طور تي alloca()) جي استعمال ذريعي.
- ڊپليڪيٽ انٽرپٹ ڪوڊ سان ناڪامي (XC8-2421) جتي هڪ کان وڌيڪ مداخلت واري فنڪشن هڪ ئي جسم آهي، ڪمپلر کي هڪ مداخلت واري فنڪشن لاء ٻئي کي ڪال ڪري سگھي ٿو. ان جي نتيجي ۾ سڀ ڪال-ڪالبر ٿيل رجسٽرس غير ضروري طور تي محفوظ ٿي ويندا، ۽ انٽرپرٽس کي فعال ڪيو ويندو ان کان اڳ جو موجوده مداخلت واري هينڊلر جي ايپيلوگ کي هلايو وڃي، جيڪو ڪوڊ جي ناڪامي جو سبب بڻجي سگهي ٿو.
- غلط ڊي ايف پي رستي سان خراب آئوٽ (XC8-2376) جيڪڏهن ڪمپلر کي غلط DFP رستي سان سڏيو وڃي ٿو ۽ چونڊيل ڊيوائس لاءِ هڪ 'spec' فائل موجود آهي، ڪمپلر غائب ڊيوائس فيملي پيڪ جي رپورٽ نه ڪري رهيو آهي ۽ ان جي بدران 'spec' کي منتخب ڪري رهيو آهي. فائل، جيڪو پوءِ ٿي سگھي ٿو غلط ٻاھر نڪري. 'اسپيڪ' فائلون شايد ورهايل DFPs سان تازه ڪاري نه ٿيون هجن ۽ انهن جو مقصد صرف اندروني ڪمپيلر ٽيسٽنگ سان استعمال ڪيو ويو آهي.
- ميموري اوورليپ اڻڄاتل (XC8-1966) ڪمپيلر هڪ پتي تي مطلق ٺهيل شين جي ميموري اوورليپ کي نه ڳولي رهيو آهي (ذريعي __at()) ۽ ٻيون شيون __section() specifier استعمال ڪندي ۽ جيڪي ساڳئي ايڊريس سان ڳنڍيل آهن.
- لائبريري جي ڪمن ۾ ناڪامي ۽ __memx (XC8-1763) سڏجي ٿو libgcc فلوٽ فنڪشن __memx ايڊريس اسپيس ۾ دليل سان ناڪام ٿي سگھي ٿو. ياد رهي ته لائبريري جا معمول ڪجهه سي آپريٽرز کان سڏبا آهن، تنهن ڪري، مثال طورample، هيٺ ڏنل ڪوڊ متاثر ٿيو آهي: واپسي regFloatVar > memxFloatVar؛
- محدود libgcc عملدرآمد (AVRTC-731) ATTiny4/5/9/10/20/40 پراڊڪٽس لاءِ، libgcc ۾ معياري C/Math لائبريري عمل درآمد تمام محدود يا موجود نه آهي.
- پروگرام ميموري جون حدون (AVRTC-732) پروگرام ميموري جون تصويرون 128 kb کان مٿي آهن ٽول چين جي مدد سان؛ تنهن هوندي به، هتي ڄاڻايل مثال موجود آهن لنڪر ختم ٿيڻ کان سواءِ آرام جي ۽ ڪنهن مددگار نقص پيغام جي بغير گهربل فنڪشن اسٽبس پيدا ڪرڻ بجاءِ جڏهن -mrelax آپشن استعمال ڪيو وڃي.
- نالي جي اسپيس جون حدون (AVRTC-733) نالي واري ايڊريس اسپيسز کي سپورٽ ڪئي وئي آهي ٽول چين، استعمال ڪندڙ جي گائيڊ سيڪشن ۾ بيان ڪيل حدن جي تابع خاص قسم جي قابليت.
- ٽائم زونز The لائبريري جا ڪم GMT فرض ڪن ٿا ۽ مقامي ٽائم زونز کي سپورٽ نٿا ڪن، ان ڪري localtime() ساڳيو ئي وقت واپس ڪندو gmtime()، مثال لاءِampلي.
دستاويز / وسيلا
![]() |
MICROCHIP XC8 C ڪمپلر ورزن 2.45 رليز نوٽس AVR MCU لاءِ [pdf] هدايتون AVR MCU، XC8 C، XC8 C ڪمپيلر ورزن 2.45 رليز نوٽس AVR MCU لاءِ، ڪمپلر ورجن 2.45 رليز نوٽس AVR MCU لاءِ، ورجن 2.45 رليز نوٽس AVR MCU لاءِ، رليز نوٽس AVR MCU لاءِ، AVR MCU لاءِ رليز نوٽس، AVRAV MCU لاءِ نوٽس |

