MPLAB XC8 C ڪمپلر ورزن 2.39 رليز نوٽس AVR MCU لاءِ
استعمال ڪندڙ ھدايت
هي دستاويز MPLAB XC8 C ڪمپائلر سان لاڳاپيل اهم معلومات تي مشتمل آهي جڏهن مائڪروچپ AVR ڊوائيسز کي نشانو بڻايو وڃي. مهرباني ڪري هن سافٽ ويئر کي هلائڻ کان اڳ پڙهو.
ڏسو MPLAB XC8 C ڪمپائلر رليز نوٽس PIC ڊاڪيومينٽ لاءِ جيڪڏھن توھان استعمال ڪري رھيا آھيو 8-bit PIC ڊوائيسز لاءِ ڪمپائلر.
مٿانview
1.1. تعارف
مائڪروچپ MPLAB® XC8 C ڪمپلر جو هي رليز هڪ فنڪشنل حفاظتي ڪمپلر آهي، جيڪو هن ڪمپلر جي v2.36 رليز تي ٻڌل آهي ۽ جيڪو هاڻي نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو.
1.2. ڇڏڻ جي تاريخ
هن مرتب ڪندڙ ورزن جي سرڪاري رليز جي تاريخ 27 جنوري 2022 آهي.
1.3. پويون نسخو
اڳوڻو MPLAB XC8 C گڏ ڪرڻ وارو نسخو 2.36 هو، 25 جنوري 2022 تي جاري ڪيو ويو.
1.4. فنڪشنل حفاظت دستي
MPLAB XC گڏ ڪرڻ وارن لاءِ هڪ فنڪشنل حفاظتي دستياب دستاويزي پيڪيج ۾ موجود آهي جڏهن توهان هڪ فنڪشنل حفاظتي لائسنس خريد ڪندا آهيو.
1.5. اجزاء لائسنس ۽ نسخو® هي MPLAB
AVR MCUs اوزارن لاءِ XC8 C Compiler GNU جنرل پبلڪ لائسنس (GPL) تحت لکيل ۽ ورهايو ويو آهي، جنهن جو مطلب آهي ته ان جو سورس ڪوڊ آزاديءَ سان ورهايو ويو آهي ۽ عوام لاءِ دستياب آهي.
GNU GPL تحت اوزارن لاءِ سورس ڪوڊ شايد ڊائون لوڊ ڪري سگھجي ٿو الڳ الڳ مائڪروچپ کان webسائيٽ. توھان پڙھي سگھوٿا GNU GPL نالي فائل ۾ جيڪو توھان جي install license.txt avr/doc ڊاريڪٽري جي ذيلي ڊائريڪٽري ۾ واقع آھي. GPL جي بنيادي اصولن جو هڪ عام بحث هتي ملي سگهي ٿو.
هيڊر فائلن لاءِ مهيا ڪيل سپورٽ ڪوڊ، لنڪر اسڪرپٽ، ۽ رن ٽائم لائبرريون ملڪيتي ڪوڊ آهن ۽ GPL جي هيٺان ڍڪيل نه آهن.
هي ڪمپلر GCC ورجن 5.4.0، binutils ورجن 2.26، ۽ avr-libc ورجن 2.0.0 استعمال ڪري ٿو.
1.6. سسٽم گهرجون
MPLAB XC8 C مرتب ڪندڙ ۽ لائسنسنگ سافٽ ويئر ان کي استعمال ڪري ٿو مختلف آپريٽنگ سسٽم لاءِ دستياب آهن، جن ۾ هيٺيان 64-bit ورجن شامل آهن: Microsoft Windows 10 جا پروفيشنل ايڊيشن؛ Ubuntu 18.04؛ ۽ macOS 10.15.5. ونڊوز لاءِ بائنري ڪوڊ سائن ڪيو ويو آهي. macOS لاءِ بائنري ڪوڊ سائن ڪيو ويو ۽ نوٽرائز ڪيو ويو.
جيڪڏھن توھان ھلائي رھيا آھيو ھڪ نيٽ ورڪ لائسنس سرور، صرف ڪمپيوٽرن سان گڏ آپريٽنگ سسٽم جيڪي ڪمپيلرز جي حمايت ڪن ٿا لائسنس سرور کي ميزباني ڪرڻ لاء استعمال ڪري سگھجن ٿيون. xclm ورزن 2.0 جي مطابق، نيٽ ورڪ لائسنس سرور Microsoft ونڊوز سرور پليٽ فارم تي نصب ٿي سگهي ٿو، پر لائسنس سرور کي آپريٽنگ سسٽم جي سرور ورزن تي هلائڻ جي ضرورت ناهي.
1.7. سپورٽ ڊوائيسز
هي مرتب ڪندڙ سڀني 8-bit AVR MCU ڊوائيسز کي سپورٽ ڪري ٿو جيڪا رليز جي وقت تي ڄاڻايل آهي. ڏسو (مرتب ۾ avr_chipinfo.html ڊاريڪٽري) سڀني سپورٽ ڊوائيسز جي فهرست لاء. اهي فائلون هر ڊيوائس لاءِ ڪنفيگريشن بٽ ڊاڪ سيٽنگ پڻ لسٽ ڪن ٿيون.
1.8. ايڊيشن ۽ لائسنس اپ گريڊ
MPLAB XC8 گڏ ڪرڻ وارو هڪ لائسنس يافته (PRO) يا غير لائسنس يافته (مفت) پيداوار جي طور تي چالو ٿي سگهي ٿو. توهان کي پنهنجي ڪمپيلر کي لائسنس ڏيڻ لاءِ هڪ ايڪٽيويشن چيڪ خريد ڪرڻ جي ضرورت آهي. لائسنس مفت پراڊڪٽ جي مقابلي ۾ اعليٰ سطح جي اصلاح جي اجازت ڏئي ٿو. هڪ غير لائسنس يافته ڪمپيلر بغير لائسنس جي اڻڄاتل طور تي هلائي سگهجي ٿو.
هڪ MPLAB XC8 فنڪشنل حفاظتي ڪمپلر لازمي طور تي فعال ٿيڻ گهرجي هڪ فنڪشنل حفاظت لائسنس سان خريد ڪيل مائڪروچپ. ڪمپيلر هن لائسنس کان سواءِ ڪم نه ڪندو. هڪ دفعو چالو ڪيو ويو، توهان ڪنهن به اصلاح جي سطح کي منتخب ڪري سگهو ٿا ۽ سڀني ڪمپيلر خاصيتون استعمال ڪري سگهو ٿا. MPLAB XC فنڪشنل حفاظت جو هي رليز
ڪمپلر نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو.
ڏسو انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB XC C Compilers (DS50002059) دستاويز لائسنس جي قسمن تي معلومات لاءِ ۽ هڪ لائسنس سان گڏ ڪمپلر جي انسٽاليشن.
1.9. تنصيب ۽ فعال ٿيڻ
پڻ ڏسو لڏپلاڻ جا مسئلا ۽ حدون سيڪشن هن ڪمپيلر سان شامل جديد لائسنس مينيجر بابت اهم معلومات لاءِ.
جيڪڏهن MPLAB IDE استعمال ڪري رهيا آهيو، هن اوزار کي انسٽال ڪرڻ کان پهريان تازو MPLAB X IDE ورجن 5.0 يا بعد ۾ انسٽال ڪرڻ جي پڪ ڪريو. ڪمپلر کي انسٽال ڪرڻ کان اڳ IDE کي ڇڏي ڏيو. (Windows)، (Linux) يا (macOS) .exe .run .app compiler انسٽالر ايپليڪيشن، مثال طور ۽ اسڪرين تي ڏنل هدايتن تي عمل ڪريو.
XC8-1.00.11403-windows.exe
ڊفالٽ انسٽاليشن ڊاريڪٽري جي سفارش ڪئي وئي آهي. جيڪڏهن توهان لينڪس استعمال ڪري رهيا آهيو، توهان کي لازمي طور تي انسٽال ڪرڻ گهرجي هڪ ٽرمينل استعمال ڪندي ۽ روٽ اڪائونٽ مان. انسٽال ڪريو MacOS اڪائونٽ استعمال ڪندي منتظم جي استحقاق سان.
چالو ھاڻي انسٽاليشن لاءِ الڳ الڳ ڪيو ويو آھي. ڏسو دستاويز لائسنس مئنيجر MPLAB® XC C Compilers (DS52059) لاءِ وڌيڪ معلومات لاءِ.
جيڪڏھن توھان چونڊيندا آھيو مرتب ڪندڙ کي هلائڻ لاءِ تشخيصي لائسنس تحت، توھان کي ھاڻي ملندو ھڪ انتباہ تاليف جي دوران جڏھن توھان ھوندؤ 14 ڏينهن اندر توھان جي تشخيص واري مدت جي ختم ٿيڻ کان. ساڳي ڊيڄاريندڙ جاري ڪئي وئي آهي جيڪڏهن توهان آهيو 14 ڏينهن اندر توهان جي HPA سبسڪرپشن ختم ٿيڻ جي.
XC نيٽورڪ لائسنس سرور هڪ الڳ انسٽالر آهي ۽ اڪيلو استعمال ڪندڙ ڪمپيلر انسٽالر ۾ شامل نه آهي.
XC لائسنس مئنيجر ھاڻي فلوٽنگ نيٽ ورڪ لائسنس جي رومنگ کي سپورٽ ڪري ٿو. موبائيل استعمال ڪندڙن لاءِ، هي فيچر هڪ فلوٽنگ لائسنس کي اجازت ڏئي ٿو ته نيٽ ورڪ کي ٿوري وقت لاءِ بند ڪري. ھن خصوصيت کي استعمال ڪندي، توھان نيٽ ورڪ کان ڌار ڪري سگھو ٿا ۽ اڃا تائين پنھنجي MPLAB XC مرتب ڪندڙ کي استعمال ڪري سگھو ٿا. هن فيچر تي وڌيڪ لاءِ XCLM انسٽال جو ڊاڪ فولڊر ڏسو.
MPLAB X IDE ۾ بصري طور تي رومنگ کي منظم ڪرڻ لاءِ لائسنس ونڊو (ٽولز> لائسنس) شامل آهن.
1.9.1. تنصيب جي مسئلن کي حل ڪرڻ
جيڪڏهن توهان ڪنهن به ونڊوز آپريٽنگ سسٽم تحت ڪمپلر کي انسٽال ڪرڻ ۾ مشڪلاتن جو تجربو ڪريو ٿا، هيٺ ڏنل تجويزون ڪوشش ڪريو.
- انسٽاليشن کي ايڊمنسٽريٽر طور ھلايو.
- انسٽالر ايپليڪيشن جي اجازتن کي سيٽ ڪريو 'مڪمل ڪنٽرول' تي. (فائل تي صحيح ڪلڪ ڪريو، پراپرٽيز چونڊيو، سيڪيورٽي ٽيب، استعمال ڪندڙ چونڊيو، ايڊٽ ڪريو.)
- عارضي فولڊر جي اجازتن کي سيٽ ڪريو "مڪمل ڪنٽرول!.
- عارضي فولڊر جي جڳھ کي طئي ڪرڻ لاء، ٽائپ ڪريو رن ڪمانڊ (ونڊوز لوگو ڪي + آر). %temp% هي هڪ فائيل ايڪسپلورر ڊائلاگ کوليندو جيڪو ڊاريڪٽري کي ڏيکاريندو ۽ توهان کي اجازت ڏيندو ته ان فولڊر جو رستو طئي ڪرڻ جي.
1.10. مرتب ڪندڙ دستاويز
ڪمپيلر جي استعمال ڪندڙ جي ھدايتن کي کوليو وڃي ٿو HTML پيج تان جيڪو توھان جي برائوزر ۾ کلي ٿو جڏھن MPLAB X IDE ڊيش بورڊ ۾ نيري مدد واري بٽڻ تي ڪلڪ ڪريو، جيئن اسڪرين شاٽ ۾ ڏيکاريل آھي.
جيڪڏهن توهان 8-bit AVR مقصدن لاءِ ٺاهي رهيا آهيو، MPLAB® XC8 C Compiler User's® Guide for AVR
MCU تي مشتمل آهي معلومات انهن مرتب ڪندڙ اختيارن ۽ خاصيتن تي جيڪي هن فن تعمير تي لاڳو ٿين ٿيون.
1.11. ڪسٽمر سپورٽ
مائڪروچپ هن ڪمپيلر ورزن جي حوالي سان بگ رپورٽن، تجويزن يا تبصرن کي ڀليڪار ڪري ٿو. مھرباني ڪري ڪنھن به بگ رپورٽ يا خصوصيت جي درخواستن کي سپورٽ سسٽم ذريعي سڌو ڪريو.
دستاويزن جا تازه ڪاريون
MPLAB XC8 دستاويزن جي آن لائين ۽ تازه ترين ورزن لاءِ، مھرباني ڪري دورو ڪريو Microchip جي آن لائن
ٽيڪنيڪل دستاويز webسائيٽ.
ھن رليز ۾ نئون يا اپڊيٽ ٿيل AVR دستاويز:
انسٽال ڪرڻ ۽ لائسنس ڏيڻ MPLAB® XC C Compilers (DS50002059) نظرثاني L
Microchip Unified Standard Library Reference Guide بيان ڪري ٿي ته ڪارڪردگيءَ جي رويي ۽ انٽرفيس جي وضاحت ڪئي وئي Microchip Unified Standard Library، گڏوگڏ لائبريري جي قسمن ۽ macros جو ارادو استعمال. ھن معلومات مان ڪجھ اڳ ۾ موجود ھئي MPLA® XC8 C Compiler User!s Guide® for AVR
MCU. ڊوائيس جي مخصوص لائبريري جي معلومات اڃا تائين هن ڪمپيلر گائيڊ ۾ شامل آهي.
Hexmate يوزر گائيڊ هن رليز ۾ ڊاريڪٽري ۾ شامل ڪيو ويو آهي. هي گائيڊ انهن دستاويزن لاءِ آهي جيڪي Hexmate هلائي رهيا آهن هڪ اسٽينڊ اڪيلو ايپليڪيشن جي طور تي.
هيٺيون سيڪشنون تصحيحون ۽ اضافي معلومات مهيا ڪن ٿيون جيڪي ڪمپيلر سان موڪليل صارف جي رهنمائي ۾ مليون آهن.
2.1. smart-io-format آپشن
The-msmart-io-format=fmt fmt آپشن، جتي هڪ اسٽرنگ آهي جنهن ۾ فارميٽ ٿيل IO تبادلي جي وضاحتن تي مشتمل آهي، مرتب ڪندڙ کي مطلع ڪري ٿو ته فهرست ڏنل وضاحتون سمارٽ IO افعال پاران استعمال ڪيون ويون آهن.
ڪوڊ جي سائيز کي گھٽائڻ لاءِ، مرتب ڪندڙ سمارٽ IO افعال جي پرنٽ ۽ اسڪين فيملي سان لاڳاپيل لائبريري ڪوڊ کي ڪسٽمائيز ڪري ٿو، انھن ڪمن جي سڀني ڪالن ۾ گڏ ڪيل فارميٽ اسٽرنگ ۾ موجود ڪنورشن جي وضاحتن جي بنياد تي. هي مضمون مڪمل طور تي خودڪار آهي ۽ غير فعال نه ٿو ڪري سگهجي.
ڪجهه حالتن ۾، مرتب ڪندڙ فارميٽ ٿيل IO فنڪشن ڪال مان استعمال جي معلومات کي طئي ڪرڻ جي قابل ناهي. جيڪڏهن اختيار استعمال ڪيو ويو آهي، انهن ڪمن لاءِ گهربل تبادلي جون وضاحتون اسٽرنگ مان حاصل ڪيون وينديون آهن؛ ٻي صورت ۾، گڏ ڪرڻ وارو ڪو به اندازو نٿو ڪري ته ڪيئن -msmart-io-format=fmt fmt افعال استعمال ڪيا وڃن ٿا ۽ يقيني بڻائي ٿو ته مڪمل طور تي فنڪشنل فارميٽ ٿيل IO افعال فائنل پروگرام تصوير سان ڳنڍيل آهن.
مثال طورample، سمارٽ IO افعال لاءِ هيٺين ڪالن تي غور ڪريو.
vscanf ("%d:%li"، va_list1)؛
vprintf ("%-s%d"، va_list2)؛
vprintf(fmt1، va_list3)؛// مبهم استعمال
vscanf(fmt2، va_list4)؛// مبهم استعمال
جڏهن آخري ٻن ڪالن کي پروسيس ڪري رهيو آهي، مرتب ڪندڙ ڪنهن به استعمال جي معلومات کي فارميٽ اسٽرنگ، ۽ نه ئي دليلن مان ڪڍي نه ٿو سگهي. انهن مثالن ۾، -msmart-io-فارميٽ آپشن استعمال ڪري سگھجي ٿو ۽ ممڪن طور تي وڌيڪ بهتر فارميٽ ٿيل I0 افعال کي پيدا ڪرڻ جي اجازت ڏيندو، اھڙي طرح پروگرام جي ڪوڊ سائيز کي گھٽائي. مثال طورampلي، جيڪڏهن فارميٽ اسٽرنگز جن ڏانهن اشارو ڪيو ويو آهي fmtl ۽ fmt2 مجموعي طور تي صرف "%d"، "%i" ۽ "% s" ڪنورشن اسپيفائرز استعمال ڪن ٿا، -msmart-io-format=fmt="%d%i%s ”اختيار جاري ڪيو وڃي.
رنگ واري اسٽرنگ ۾ ڪا به صحيح تبادلي جي وضاحت شامل ٿي سگھي ٿي، بشمول جھنڊو ۽ تبديل ڪندڙ (مثال طورample “%-13. 91s")، ۽ انهن کي ظاهر ڪرڻ گهرجي جيڪي انهن ڪمن پاران استعمال ڪيا ويا آهن جن جو استعمال مبهم آهي. ۾ هڪ وضاحت شامل ڪرڻ ۾ ناڪامي سا دليل جتي ان کي استعمال ڪيو ويو آهي فارميٽ ٿيل I0 افعال جي نتيجي ۾ ڪوڊ ناڪامي ٿي سگھي ٿي.
جيڪڏهن fmt هڪ خالي اسٽرنگ آهي يا ان ۾ ڪا به سمجھڻ واري تبادلي جي وضاحتن تي مشتمل ناهي، هڪ ڊيڄاريندڙ جاري ڪيو ويندو ۽ مڪمل طور تي فنڪشنل فارميٽ ٿيل I0 فنڪشن فائنل پروگرام تصوير سان ڳنڍيل آهي.
هي اختيار ڪيترن ئي ڀيرا ڪمانڊ لائن تي استعمال ڪري سگهجي ٿو. هر اختيار سان استعمال ٿيندڙ تبادلي جون خاصيتون جمع ٿيل آهن.
2.2. omit-frame-pointer آپشن
- f omit- فريم-پوائنٽر آپشن ڪمپلر کي هدايت ڪري ٿو ته سڌو سنئون اسٽيڪ پوائنٽر کي استعمال ڪرڻ لاءِ اسٽيڪ تي شيون تائين رسائي ۽، جيڪڏهن ممڪن هجي، ڪوڊ کي ڇڏي ڏيو جيڪو فريم رجسٽر کي محفوظ ڪري، شروع ڪري، ۽ بحال ڪري. اهو خودڪار طور تي سڀني غير صفر اصلاح جي سطحن تي فعال آهي.
آپشن کي رد ڪرڻ، استعمال ڪندي -fno-omit- فريم-پوائنٽر، ٿي سگھي ٿو ڊيبگ ڪرڻ ۾ مدد ڪري اصلاحي ڪوڊ؛ بهرحال، هي اختيار ضمانت نٿو ڏئي ته فريم پوائنٽر هميشه استعمال ڪيو ويندو.
2.3. unroll-loops جا اختيار
-فنول I-loops ۽ -(unroll-all-loops آپشنز ڪنٽرول اسپيڊ تي ٻڌل اصلاحن کي ڪن ٿيون جيڪي لوپس ۾ برانچنگ جي دير کي ختم ڪرڻ جي ڪوشش ڪن ٿيون. Unrolled loops عام طور تي ٺاهيل ڪوڊ جي عمل جي رفتار کي وڌائي ٿو، وڏي ڪوڊ سائيز جي خرچ تي.
- funrol I-loops آپشن لوپز کي انرول ڪري ٿو جتي ڪتب آڻڻ واري وقت يا ڪوڊ لوپ ۾ داخل ٿيڻ وقت تکرارن جو تعداد طئي ڪري سگھجي ٿو. -funroll-all-loops آپشن وڌيڪ جارحاڻي آھي، سڀني لوپس کي ختم ڪري ٿو، جيتوڻيڪ ان وقت تائين جو تعداد اڻڄاتل آھي. اهو عام طور تي گهٽ اثرائتو آهي عملدرآمد جي رفتار کي بهتر ڪرڻ جي ڀيٽ ۾ - funrol 1-loops آپشن.
2.4. ٿلهو-آتو- شيون اختيار
-f fat-1 to-obj ects آپشن درخواست ڪري ٿو ته ڪمپلر فٽ آبجیکٹ ٺاهي files، جنهن ۾ ٻنهي شامل آهن
اعتراض ڪوڊ ۽ GIMPLE (جي سي سي جي اندروني نمائندگي مان ھڪڙو)، منفرد ELF حصن ڏانھن لکيل آھي. اهڙيون شيون files لائبريري ڪوڊ لاءِ ڪارآمد آھن جيڪي انھن منصوبن سان ڳنڍجي سگھن ٿا جيڪي ڪندا آھن ۽ استعمال نٿا ڪن معياري لنڪ-ٽائم آپٽمائزر، -flto آپشن پاران ڪنٽرول ٿيل.
هن آپشن جو – fno-fat-lto-objects فارم، جيڪو ڊفالٽ آهي جيڪڏهن ڪو آپشن بيان نه ڪيو ويو آهي، اعتراض ڪوڊ کي اعتراض ۾ شامل ڪرڻ کي دٻائي ٿو. files، نتيجي ۾ تيزيءَ سان ٺھيل. بهرحال، اهڙي اعتراض files کي هميشه معياري لنڪ-ٽائم آپٽميزر استعمال ڪندي ڳنڍيو وڃي.
2.5. Ito-پارٽيشن آپشن
- flto-partiti تي = هڪ آءُ وڃان ٿو اختيار کي ڪنٽرول ڪري ٿو الگورٿم کي استعمال ڪرڻ لاءِ استعمال ٿيل اعتراض files جڏهن Link-time optimizer هلائي رهيو آهي. دليل ڪو به مڪمل طور تي ورهاڱي کي غير فعال نٿو ڪري ۽ مڪمل پروگرام جي تجزيي (WPA) مرحلي کان سڌو لنڪ-وقت اصلاح واري قدم کي عمل ڪري ٿو. آپريشن جو هي طريقو سڀ کان وڌيڪ بهتر نتيجا پيدا ڪندو، وڏي مرتبي واري ميموري جي ضرورتن ۽ گهڻي وقت جي تعمير جي خرچ تي، جيتوڻيڪ اهو ممڪن ناهي ته ننڍن پروگرامن سان ڪو مسئلو هجي. اعتراض کي ورجائڻ files تعمير جي ڪارڪردگي کي بهتر بڻائي سگھي ٿو. دليل هڪ بيان ڪري ٿو ته بلڪل هڪ ورهاڱي کي استعمال ڪيو وڃي، ۽ دليل lto1 ورهاڱي جي وضاحت ڪري ٿو ته آئيني جو اصل ذريعو طرفان ترتيب ڏنل آهي. fileايس. ڊفالٽ آرگيومينٽ متوازن آهي، جيڪا وضاحت ڪري ٿي ورهاڱي کي هڪ جيتري سائيز جي حصن ۾، جڏهن ممڪن هجي.
2.6. سيڪشن 3.6.11 ۾ اضافو Mapped Linker Options
-wl، - سيڪشن- شروع = سيڪنڊ tion = اضافو عام طور تي استعمال ٿيل لنڪر اختيارن جي جدول مان غائب آهي، -wl compiler ڊرائيور اختيار استعمال ڪندي رسائي لائق. هي اختيار مخصوص ايڊريس تي ڪسٽم نالن جي سيڪشن کي لڳائڻ جي اجازت ڏئي ٿو. اهو معياري حصن کي رکڻ لاء استعمال نٿو ڪري سگهجي، جهڙوڪ (. ڊيٽا، . بي ايس ايس، . متن)، جيڪو هڪ -wl، -'r اختيار استعمال ڪندي رکيل هجي.
2.7. سيڪشن 4.14.2 ۾ ترميم ۽ مختص ٿيل سيڪشن کي ڳنڍڻ
نوٽ ڪريو ته صارف جي ھدايت جي ھن حصي ۾ موجود معلومات جي برعڪس، ھن رليز ۾ مرتب ڪندڙ ۾ ڪيل تبديلين جو ھاڻي مطلب آھي ته ڪسٽم سيڪشن کي -w1 استعمال ڪندي ڳنڍجي سگھجي ٿو، - فرقو آئن- شروعات = سيڪشن = ايڪير اختيار ۽ بغير لنڪر اسڪرپٽ کي تبديل ڪرڻ جي.
نئون ڇا آهي
ھيٺ ڏنل آھيون نئون AVR- ھدف خاصيتون جيڪي گڏ ڪندڙ ھاڻي سپورٽ ڪن ٿا. ذيلي عنوانن ۾ ورزن نمبر اشارو ڪري ٿو پهريون ڪمپلر ورزن انهن خاصيتن کي سپورٽ ڪرڻ لاءِ جيڪي پٺيان اچن ٿيون.
3.1. نسخو 2.39 (فنڪشنل سيفٽي رليز)
نيٽورڪ سرور لائسنس MPLAB XC8 فنڪشنل سيفٽي ڪمپلر جو هي رليز نيٽ ورڪ سرور لائسنس کي سپورٽ ڪري ٿو.
3.2. نسخو 2.36
ڪو به.
3.3. نسخو 2.35
نئين ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاء دستياب آھي: ATTINY3224، ATTINY3226، ATTINY3227، AVR64DD14، AVR64DD20، AVR64DD28، ۽ AVR64DD32.
بهتر ڪيل حوالن جي سوئچنگ نئون -mcall-isr-prologues آپشن تبديل ڪري ٿو ته ڪيئن مداخلت وارا فنڪشن رجسٽرن کي داخلا تي محفوظ ڪن ٿا ۽ ڪيئن اهي رجسٽر بحال ٿين ٿا جڏهن مداخلت جو معمول ختم ٿئي ٿو. اهو ساڳيو طريقي سان ڪم ڪري ٿو -mcall-prologues آپشن، پر صرف مداخلت افعال (ISRs) کي متاثر ڪري ٿو.
اڃا به وڌيڪ سڌريل حوالن جي سوئچنگ نئون -mgas-isr-prologues اختيار ڪنٽرول ڪنٽيڪٽ سوئچ ڪوڊ ٺاهي ٿو جيڪا ننڍي مداخلت سروس جي روٽين لاءِ ٺاهي وئي آهي. جڏهن فعال ڪيو ويندو، هن خاصيت کي گڏ ڪرڻ وارو هوندو ISR کي رجسٽر استعمال لاءِ اسڪين ۽ صرف انهن استعمال ٿيل رجسٽرن کي محفوظ ڪري جيڪڏهن گهربل هجي.
ڪنفيگريبل فليش ميپنگ AVR DA ۽ AVR DB فيملي ۾ ڪجھ ڊوائيسن وٽ SFR (مثال طور FLMAP) آھي جيڪو بيان ڪري ٿو ته پروگرام ميموري جو ڪھڙو 32k سيڪشن ڊيٽا ميموري ۾ ميپ ڪيو ويندو. نئون - mconst-data-in-config-mapped-progmem آپشن استعمال ڪري سگھجي ٿو لنڪر کي رکڻ لاءِ سڀني قابليت واري ڊيٽا کي ھڪڙي 32k سيڪشن ۾ رکڻ لاءِ ۽ پاڻمرادو لاڳاپيل SFR رجسٽر کي شروع ڪرڻ کي يقيني بڻائڻ لاءِ ته ھن ڊيٽا کي ڊيٽا ۾ ميپ ڪيو ويو آھي. ميموري اسپيس، جتي ان کي وڌيڪ مؤثر طريقي سان پهچايو ويندو.
Microchip متحد معياري لائبريريون سڀ MPLAB XC گڏ ڪرڻ وارا هڪ مائڪروچپ يونيفائيڊ معياري لائبريري شيئر ڪندا، جيڪو هاڻي MPLAB XC8 جي هن رليز سان دستياب آهي. جي ايم ايل بي® XC8 C ڪمپيلر
AVR لاءِ استعمال ڪندڙ جي ھدايت® MCU هاڻي انهن معياري ڪمن لاءِ دستاويز شامل ناهي. اها معلومات هاڻي ڳولهي سگهجي ٿي Microchip متحد معياري لائبريري ريفرنس گائيڊ. نوٽ ڪريو ته avr-libc پاران بيان ڪيل ڪجھ ڪارڪردگي هاڻي موجود ناهي. (ڏسو لائبريري ڪارڪردگي.)
اسمارٽ I0 نئين متحد لائبريرين جي حصي جي طور تي، JO افعال printf ۽ scanf خاندانن ۾ ھاڻي ھر بلڊ تي حسب ضرورت ٺاھيا ويا آھن، ان بنياد تي ته اھي فنڪشن پروگرام ۾ ڪھڙي طرح استعمال ڪيا وڃن. اهو پروگرام پاران استعمال ڪيل وسيلن کي ڪافي حد تائين گھٽائي سگھي ٿو.
سمارٽ I0 امدادي آپشن جڏهن سمارٽ I0 ڪمن کي ڪالز جو تجزيو ڪري رهيو آهي (جهڙوڪ printf () يا scanf ())، ڪمپائلر هميشه فارميٽ جي اسٽرنگ مان اندازو نٿو لڳائي سگهي يا دليلن مان اندازو لڳائي سگهي ٿو اهي تبادلي جي وضاحت ڪندڙ ڪال لاءِ گهربل آهن. اڳي، گڏ ڪرڻ وارو هميشه ڪو به فرض نه ڪندو ۽ يقيني بڻائيندو ته مڪمل طور تي فنڪشنل 10 فنڪشنل فائنل پروگرام تصوير سان ڳنڍيل هئا. هڪ نئون – msma rt-io-format=fmt آپشن شامل ڪيو ويو آهي ته جيئن ڪمپيلر کي بدلي جي وضاحت ڪندڙن جي استعمال ڪندڙ کي آگاهي ڏني وڃي سمارٽ I0 افعال جن جو استعمال مبهم آهي، تمام گهڻي ڊگھي 10 روٽين کي ڳنڍجڻ کان روڪيندي. (ڏسو smart-io-format وڌيڪ تفصيل لاء اختيار.)
ڪسٽم سيڪشن کي رکڻ اڳي، -W1، -section-start آپشن صرف مخصوص سيڪشن کي درخواست ڪيل ايڊريس تي رکي ٿو جڏهن لنڪر اسڪرپٽ ساڳئي نالي سان هڪ آئوٽ سيڪشن جي وضاحت ڪري ٿي. جڏهن اهو معاملو نه هو، سيڪشن کي لنڪر طرفان چونڊيل ايڊريس تي رکيو ويو ۽ اختيار کي لازمي طور تي نظر انداز ڪيو ويو. ھاڻي اختيار کي ساراھيو ويندو سڀني ڪسٽم سيڪشن لاء، جيتوڻيڪ لنڪر اسڪرپٽ سيڪشن جي وضاحت نٿو ڪري. نوٽ، جيتوڻيڪ، معياري حصن لاء، جهڙوڪ . متن، . بي ايس ايس يا . ڊيٽا، بهترين فٽ مختص ڪندڙ اڃا تائين انهن جي جڳهه تي مڪمل ڪنٽرول هوندو، ۽ اختيار جو ڪو به اثر نه ٿيندو. -wl استعمال ڪريو، - حصو = اضافو اختيار، جيئن استعمال ڪندڙ جي گائيڊ ۾ بيان ڪيو ويو آهي.
3.4. نسخو 2.32
اسٽيڪ گائيڊنس هڪ PRO ڪمپيلر لائسنس سان دستياب آهي، ڪمپلر جي اسٽيڪ گائيڊنس فيچر استعمال ڪري سگهجي ٿي پروگرام جي استعمال ڪيل ڪنهن به اسٽيڪ جي وڌ ۾ وڌ کوٽائي جو اندازو لڳائڻ لاءِ. اهو هڪ پروگرام جي ڪال گراف کي تعمير ۽ تجزيو ڪري ٿو، هر فنڪشن جي اسٽيڪ استعمال کي طئي ڪري ٿو، ۽ هڪ رپورٽ ٺاهي ٿو، جنهن مان پروگرام پاران استعمال ڪيل اسٽيڪ جي کوٽائي جو اندازو لڳائي سگهجي ٿو.
ھي خصوصيت -mchp-stack-usage ڪمانڊ لائن آپشن ذريعي چالو ڪئي وئي آھي. اسٽيڪ استعمال جو خلاصو عمل کان پوء ڇپيل آهي. هڪ تفصيلي اسٽيڪ رپورٽ نقشي ۾ موجود آهي file، جنهن کي عام طريقي سان عرض ڪري سگهجي ٿو.
نئين ڊوائيس سپورٽ سپورٽ هيٺ ڏنل AVR حصن لاء دستياب آهي: ATTINY427، ATTINY424، ATTINY426، ATTINY827، ATTNY824، ATTINY826، AVR32DB32، AVR64DB48، AVR64DB64، AVR64DB28، AVR32، AVR28 ، ۽ AVR64DB32.
ريٽائرڊ ڊيوائس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ دستياب ناهي: AVR 16DA28، AVR16DA32 ۽، AVR16DA48.
3.5. نسخو 2.31 ڪوبه نه.
3.6. نسخو 2.30
ڊيٽا جي شروعات کي روڪڻ لاءِ نئون آپشن ھڪڙو نئون -mno-data-init ڊرائيور آپشن ڊيٽا جي شروعات ۽ بي ايس ايس سيڪشن کي صاف ڪرڻ کي روڪي ٿو. اهو اسيمبلي ۾ do_copy_data ۽ do_clear_bss علامتن جي آئوٽ کي دٻائڻ سان ڪم ڪري ٿو files، جيڪو موڙ ۾ لنڪر پاران انهن معمولن کي شامل ڪرڻ کان روڪيندو.
بهتر ڪيل اصلاحون ڪيتريون ئي اصلاحون ڪيون ويون آھن، جن ۾ بيڪار موٽڻ وارين ھدايتن کي ختم ڪرڻ، skip-if-bit-is جي ھدايتن جي پٺيان ڪجھ جمپز کي ختم ڪرڻ، ۽ بھتر طريقياتي تجريد ۽ ھن عمل کي ٻيهر ورجائڻ جي صلاحيت شامل آھي.
اضافي اختيارات ھاڻي موجود آھن انھن مان ڪجھ اصلاحن کي ڪنٽرول ڪرڻ لاءِ، خاص طور تي -fsection-anchors، جيڪو جامد شين جي رسائي کي ھڪڙي علامت جي نسبت سان انجام ڏيڻ جي اجازت ڏئي ٿو؛ - ايم پي اي-تڪرار = ن، جيڪا اجازت ڏئي ٿي ته طريقيڪار جي تجزين جي تعداد کي 2 جي ڊفالٽ مان تبديل ڪيو وڃي؛ ۽، -mpa-callcost-shortcal 1، جيڪو وڌيڪ جارحاڻي طريقي سان ڪم ڪندو آهي، ان اميد ۾ ته لنڪر ڊگهي ڪالن کي آرام ڪري سگهي ٿو. هي آخري آپشن ڪوڊ جي سائيز کي وڌائي سگھي ٿو جيڪڏھن ھيٺين مفروضن کي محسوس نه ڪيو وڃي.
نئون ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: AVR16DA28، AVR16DA32، AVR16DA48، AVR32DA28، AVR32DA32، AVR32DA48، AVR64DA28، AVR64DA32، AVR64DA48، AVR64DA64، AVR128AVR28 بي 128، AVR32DB128، ۽ AVR48DB128.
واپس ورتو ويو ڊوائيس سپورٽ سپورٽ ھاڻي ھيٺ ڏنل AVR حصن لاءِ دستياب نه آھي: ATA5272، ATA5790، ATA5790N، ATA5791، ATA5795، ATA6285، ATA6286، ATA6612C، ATA6613C، ATA6614Q، ATA6616C، ATA6617C، ATA664251C، ATAXNUMXQ.
3.7. نسخو 2.29 (فنڪشنل سيفٽي رليز)
مٿو file ڪمپيلر بنٽ ان لاءِ انهي کي يقيني بڻائڻ لاءِ ته مرتب ڪندڙ ٻولي جي وضاحتن سان مطابقت رکي سگهي ٿو جهڙوڪ MISRA، هيڊر file، جيڪو خودڪار طور تي شامل ڪيو ويو آهي ، اپڊيٽ ڪيو ويو آهي. هي هيڊر سڀني اندر تعمير ٿيل ڪمن لاءِ پروٽوٽائپس تي مشتمل آهي، جهڙوڪ بلٽ ان_avr_nop ( ) ۽ _builtin_avr_delay_cycles () . ڪجھ بلٽ ان MISRA مطابق نه ھجن. انهن کي ختم ڪري سگھجي ٿو وضاحت ڪندڙ XC_STRICT MISRA کي گڏ ڪرڻ واري ڪمانڊ لائن ۾. تعمير ٿيل ۽ انهن جي اعلانن کي اپڊيٽ ڪيو ويو آهي مقرر ٿيل چوٽي جي قسمن کي استعمال ڪرڻ لاء.
3.8. نسخو 2.20
نئون ڊوائيس سپورٽ سپورٽ ھيٺ ڏنل AVR حصن لاءِ دستياب آھي: ATTINY 1624، ATTINY1626، ۽ ATTINY 1 627.
بھتر بھترين فٽ مختص ڪمپيلر ۾ بهترين فٽ مختص ڪندڙ (BFA) کي بهتر ڪيو ويو آهي ته جيئن سيڪشن کي ترتيب ۾ مختص ڪيو وڃي ته بهتر اصلاح جي اجازت ڏئي. BFA ھاڻي نالي واري ايڊريس اسپيس کي سپورٽ ڪري ٿو ۽ ڊيٽا جي شروعات کي بھتر سنڀاليندو آھي.
بهتر طريقيڪار تجزيه طريقيڪار جي تجزيي جي اصلاحن کي ھاڻي وڌيڪ ڪوڊ جي ترتيبن تي ڪيو ويو آھي. اڳيون حالتون جتي هي اصلاح ٿي سگھي ٿي ڪوڊ جي سائيز ۾ اضافو ڪيو ويو آهي اصلاحي ڪوڊ کي لنڪر جي گندگي گڏ ڪرڻ جي عمل کان آگاهي ڪندي.
AVR جمع ڪندڙ جي غير موجودگي AVR اسمبلر هاڻي هن تقسيم سان شامل ناهي. 3.9. نسخو 2.19 (فنڪشنل سيفٽي ڇڏڻ)
ڪو به.
3.10. نسخو 2.10
ڪوڊ ڪوريج ھن رليز ۾ ھڪڙي ڪوڊ ڪوريج جي خصوصيت شامل آھي جيڪا تجزيي کي آسان بڻائي ٿي جنھن حد تائين ھڪڙي منصوبي جي سورس ڪوڊ تي عمل ڪيو ويو آھي. ان کي فعال ڪرڻ لاءِ اختيار استعمال ڪريو -mcodecov=ram. توهان جي هارڊويئر تي پروگرام جي عمل کان پوء، ڪوڊ ڪوريج جي معلومات کي ڊوائيس ۾ گڏ ڪيو ويندو، ۽ اهو منتقل ڪري سگهجي ٿو ۽ ايم پي ايل بي ايڪس IDE ذريعي ڏيکاريل ڪوڊ ڪوريج پلگ ان ذريعي. هن پلگ ان تي معلومات حاصل ڪري سگهجي ٿو لاء IDE دستاويز ڏسو.
#pragma nocodecov استعمال ٿي سگھي ٿو ايندڙ ڪمن کي ڪوريج تجزيي کان خارج ڪرڻ لاءِ. مثالي طور pragma جي شروعات ۾ شامل ڪيو وڃي file انهي سڄي کي خارج ڪرڻ لاء file ڪوريج جي تجزيي کان. متبادل طور تي، _attribute_ ( (nocodecov)) استعمال ٿي سگھي ٿو ھڪڙي خاص فنڪشن کي ڪوريج جي تجزيي مان خارج ڪرڻ لاء.
ڊوائيس جي وضاحت files نئين ڊوائيس file سڏيو ويندو آهي avr_chipinfo.html جي docs ڊاريڪٽري ۾ واقع آهي
ڪمپيلر جي تقسيم. هي file سڀني ڊوائيسن کي لسٽ ڪري ٿو جيڪو ڪمپلر جي مدد سان. هڪ ڊوائيس جي نالي تي ڪلڪ ڪريو، ۽ اهو هڪ صفحو کوليندو جيڪو ڏيکاريندو سڀني قابل اجازت ترتيب واري ترتيب واري بٽ سيٽنگ / قيمت جوڙو انهي ڊوائيس لاء، اڳوڻي سان.amples.
طريقيڪار خلاصو پروسيسرل تجزيه اصلاحون، جيڪي عام بلاڪ جي اسمبلي ڪوڊ کي تبديل ڪن ٿيون ڪالن سان گڏ انهي بلاڪ جي ڪڍيل ڪاپي کي، ڪمپلر ۾ شامل ڪيو ويو آهي. اهي هڪ الڳ ايپليڪيشن ذريعي ڪيا ويا آهن، جيڪو خودڪار طور تي مرتب ڪندڙ طرفان سڏيو ويندو آهي جڏهن سطح 2، 3 يا چونڊيو وڃي. s اصلاحون. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي، پر اهي شايد عمل جي رفتار ۽ ڪوڊ ڊيبگيبلٽي کي گھٽائي سگھن ٿيون.
طريقيڪار جي تجزيي کي -mno-pa اختيار استعمال ڪندي اعلي اصلاحي سطحن تي غير فعال ڪري سگھجي ٿو، يا -mpa استعمال ڪندي هيٺين اصلاح جي سطح (توهان جي لائسنس جي تابع) تي فعال ڪري سگھجي ٿو. اهو هڪ اعتراض لاء بند ڪري سگهجي ٿو file استعمال ڪندي -mno-pa-on-f ile=fileنالو، يا -mno-pa-onfunotion=f استعمال ڪندي فنڪشن لاءِ بند ڪيو ويو اتحاد
توهان جي ماخذ ڪوڊ جي اندر، طريقيڪار جي تجزيي کي فعل جي تعريف سان attribute_ ( (nopa) ) استعمال ڪندي، يا nopa استعمال ڪندي، فعل لاءِ غير فعال ٿي سگھي ٿو، جيڪو _attribute_ ( (nopa، noinline)) تائين وڌايو وڃي ٿو ۽ اھڙي طرح فنڪشن ان لائننگ کي ٿيڻ کان روڪي ٿو. ۽ اتي موجود ڪوڊ جو خلاصو.
پراگما ۾ لاڪ بٽ سپورٽ #pragma config ھاڻي استعمال ڪري سگھجن ٿيون AVR لاڪ بِٽس ۽ ٻين ڪنفيگريشن بِٽس کي بيان ڪرڻ لاءِ. چيڪ ڪريو avr_chipinfo.html file (مٿي ذڪر ڪيو ويو آهي) هن pragma سان استعمال ڪرڻ لاء سيٽنگ / قدر جوڙو لاء.
نئون ڊوائيس سپورٽ سپورٽ ھيٺين حصن لاءِ دستياب آھي: AVR28DAl28، AVR64DAl28، AVR32DAl28، ۽ AVR48DAl28.
3.11. نسخو 2.05
توهان جي رقم لاء وڌيڪ بٽ هن مرتب ڪندڙ ۽ لائسنس مينيجر جو macOS نسخو هاڻي هڪ 64-bit ايپليڪيشن آهي. اهو يقيني بڻائيندو ته گڏ ڪرڻ وارو انسٽال ڪندو ۽ هلائيندو بغير ڊيڄاريندڙ MacOS جي تازي ورزن تي.
پروگرام ميموري ۾ Const شيون ڪمپائلر ھاڻي پروگرام فليش ميموري ۾ ڪانسٽ لائق شيون رکي سگھي ٿو، بجاءِ انھن کي RAM ۾ رکڻ جي. ڪمپيلر کي تبديل ڪيو ويو آهي ته جيئن قابليت رکندڙ عالمي ڊيٽا پروگرام فليش ميموري ۾ محفوظ ٿي وڃي ۽ هن ڊيٽا کي سڌو ۽ اڻ سڌي طرح استعمال ڪري سگهجي ٿو مناسب پروگرام-ميموري هدايتون استعمال ڪندي. ھي نئون فيچر ڊفالٽ طور فعال ڪيو ويو آھي پر -mno-const-data-in-progmem آپشن کي استعمال ڪندي غير فعال ڪري سگھجي ٿو. avrxmega3 ۽ avrtiny architectures لاءِ، ھي خصوصيت گھربل نه آھي ۽ ھميشه غير فعال آھي، ڇو ته پروگرام ميموري انھن ڊوائيسز لاءِ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آھي.
معياري مفت لاء ھن ڪمپيلر جا غير لائسنس وارا (مفت) ورجن ھاڻي اجازت ڏين ٿا اصلاحن جي ۽ ان ۾ ليول 2 تائين. ھي اجازت ڏيندو ھڪ جھڙو، جيتوڻيڪ ھڪ جھڙو نه، پر اھو ٻاھر آھي جيڪو اڳي معياري لائسنس استعمال ڪندي ممڪن ھو.
ڀليڪار AVRASM2 AVRASM2 گڏ ڪرڻ وارو 8-bit ڊوائيسز لاءِ ھاڻي شامل ڪيو ويو آھي XC8 ڪمپلر انسٽالر ۾. هي اسمبلر XC8 ڪمپلر طرفان استعمال نه ڪيو ويو آهي، پر هٿ سان لکيل اسيمبلي ذريعن جي بنياد تي منصوبن لاءِ دستياب آهي.
نئون ڊوائيس سپورٽ سپورٽ ھيٺين حصن لاءِ موجود آھي: ATMEGA1608، ATMEGA 1609، ATMEGA808، ۽ ATMEGA809.
3.12. نسخو 2.00
اعليٰ درجي جو ڊرائيور ھڪڙو نئون ڊرائيور، جنھن کي xc8 -cc سڏيو ويندو آھي، ھاڻي اڳئين avr-gcc ڊرائيور ۽ xc8 ڊرائيور کان مٿي آھي، ۽ اھو ٽارگيٽ ڊيوائس جي چونڊ جي بنياد تي مناسب مرتب ڪندڙ کي سڏي سگھي ٿو. هي ڊرائيور GCC طرز جي اختيارن کي قبول ڪري ٿو، جيڪي يا ته ترجمو ڪيا ويا آهن يا مرتب ڪيل ڪمپيلر ڏانهن منتقل ڪيا ويا آهن. هي ڊرائيور اجازت ڏئي ٿو اختيارن جي هڪجهڙائي سيٽن سان هڪجهڙا سيمينٽڪس ڪنهن به AVR يا PIC ٽارگيٽ سان استعمال ڪرڻ لاءِ ۽ اهڙيءَ طرح ڪمپلر کي سڏڻ جو تجويز ڪيل طريقو آهي. جيڪڏهن گهربل هجي، پراڻي avr-gcc ڊرائيور کي سڌو سنئون استعمال ڪري سگهجي ٿو پراڻي طرز جي اختيارن کي استعمال ڪندي ان کي اڳوڻي ڪمپيلر ورزن ۾ قبول ڪيو ويو.
عام سي انٽرفيس هي گڏ ڪرڻ وارو هاڻي MPLAB عام سي انٽرفيس جي مطابق ڪري سگهي ٿو، سورس ڪوڊ کي وڌيڪ آساني سان سڀني MPLAB XC گڏ ڪرڻ وارن ۾ پورٽ ڪرڻ جي اجازت ڏئي ٿو. -mext=cci آپشن هن خصوصيت جي درخواست ڪري ٿو، ڪيترن ئي ٻولين جي واڌارن لاء متبادل نحو کي فعال ڪرڻ.
نيو لائبريرين ڊرائيور A نئون لائبرري ڊرائيور پوئين PIC لائبرري لائبريرين ۽ AVR avr-ar لائبريرين کان مٿي پوزيشن ۾ آهي. ھي ڊرائيور قبول ڪري ٿو GCC-archiver طرز جي اختيارن کي، جيڪو يا ته ترجمو ڪيو ويو آھي يا لائبريرين تائين پھچي ويو آھي. نون ڊرائيور کي اجازت ڏئي ٿو ته اختيارن جي ساڳي سيٽ سان ملندڙ اصطلاحن کي استعمال ڪرڻ لاءِ استعمال ڪيو وڃي ڪنهن به PIC يا AVR لائبريري کي ٺاهڻ يا ترتيب ڏيڻ لاءِ file ۽ اهڙيءَ طرح لائبريرين کي سڏڻ جو تجويز ڪيل طريقو آهي. جيڪڏهن گهربل پراجيڪٽس لاءِ گهربل هجي، ته پوئين لائبريرين کي سڌو سنئون سڏيو وڃي ٿو پراڻي طرز جا اختيار استعمال ڪندي جيڪي اڳئين مرتب ورزن ۾ قبول ڪيا ويا هئا.
لڏپلاڻ جا مسئلا
ھيٺ ڏنل خاصيتون آھن جيڪي ھاڻي مرتب ڪندڙ طرفان مختلف طور تي ھلائي رھيا آھن. اهي تبديليون شايد توهان جي ماخذ ڪوڊ ۾ ترميم جي ضرورت هجي جيڪڏهن ڪوڊنگ ڪوڊ هن ڪمپلر ورزن ڏانهن. ذيلي عنوانن ۾ ورزن جو نمبر اشارو ڪري ٿو پهريون مرتب ڪندڙ ورزن جي پٺيان تبديلين کي سپورٽ ڪرڻ لاءِ.
4.1. نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
4.2. نسخو 2.36 ڪو به.
4.3. نسخو 2.35
اسٽرنگ کان بيسز کي هٿي ڏيڻ (XC8-2420) ٻين XC گڏ ڪرڻ وارن سان مطابقت کي يقيني بڻائڻ لاءِ، XC8 اسٽرنگ کان فنڪشن، جهڙوڪ strtol () وغيره، هاڻي ان پٽ اسٽرنگ کي تبديل ڪرڻ جي ڪوشش نه ڪندا جيڪڏهن بيان ڪيل بنياد 36 کان وڏو آهي ۽ ان جي بدران errno کي EINVAL تي سيٽ ڪندو. سي معيار جي رويي کي بيان نٿو ڪري فنڪشن جڏهن هي بنيادي قيمت وڌي وڃي ٿي.
نامناسب رفتار جي اصلاح ليول 3 اصلاحن (-03) کي منتخب ڪرڻ وقت طريقيڪار تجزيي جي اصلاح کي فعال ڪيو پيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي ڪوڊ جي رفتار جي خرچ تي، تنهنڪري نه ڪيو وڃي ها. هن اصلاح جي سطح کي استعمال ڪندي پروجيڪٽ شايد ڪوڊ سائيز ۽ عمل جي رفتار ۾ فرق ڏسي سگھن ٿا جڏهن هن رليز سان ٺهيل آهي.
لائبريري ڪارڪردگي ڪيترن ئي معياري سي لائبريري جي ڪمن جو ڪوڊ هاڻي مائڪروچپ جي يونيفائيڊ معياري لائبريري مان اچي ٿو، جيڪو شايد اڳوڻي avr-libc لائبريري جي مهيا ڪيل مقابلي ۾ ڪجهه حالتن ۾ مختلف رويي کي ڏيکاري ٿو. مثال طورample، اهو هاڻي ضروري ناهي ته 1printf flt لائبريري (-1printf_flt آپشن) ۾ ڳنڍڻ لاءِ فارميٽ ٿيل I0 سپورٽ کي چالو ڪرڻ لاءِ float-format specifiers لاءِ. سمارٽ 10 خاصيتون مائڪروچپ يونيفائيڊ معياري لائبريري هن آپشن کي بيڪار بڻائي ٿي. اضافي طور تي، اسٽرنگ ۽ ميموري جي ڪمن لاءِ _P لاحق روٽين جو استعمال (مثال طور strcpy_P ( ) وغيره.) جيڪي فليش ۾ const strings تي هلن ٿا، هاڻي ضروري نه آهن. معياري سي روٽينس (مثال طور strcpy 0 ) اهڙي ڊيٽا سان صحيح ڪم ڪندي جڏهن const-data-in-program-memory فيچر فعال هوندو.
4.4. نسخو 2.32
ڪو به.
4.5. نسخو 2.31
ڪو به.
4.6. نسخو 2.30
ڪو به.
4.1. نسخو 2.29 (فنڪشنل سيفٽي رليز)
ڪو به.
4.2. نسخو 2.20
تبديل ٿيل ڊي ايف پي ترتيب ترتيب ڏيڻ وارو هاڻي ڊي ايف پيز (ڊيوائس فيملي پيڪ) پاران استعمال ڪيل مختلف ترتيب کي فرض ڪري ٿو. هن جو مطلب اهو ٿيندو ته هڪ پراڻو DFP شايد هن رليز سان ڪم نه ڪري سگهي، ۽ پراڻا مرتب ڪندڙ جديد ڊي ايف پي استعمال ڪرڻ جي قابل نه هوندا.
4.3. نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
4.4. نسخو 2.10 ڪو به نه
4.5. نسخو 2.05
پروگرام ميموري ۾ Const شيون نوٽ ڪريو ته ڊفالٽ طور، const-qualfiied شيون رکيا ويندا ۽ پروگرام ميموري ۾ پهچايا ويندا (جيئن بيان ڪيو ويو آھي). اهو توهان جي منصوبي جي سائيز ۽ عمل جي رفتار کي متاثر ڪندو، پر رام جي استعمال کي گهٽائڻ گهرجي. ھن خصوصيت کي غير فعال ڪري سگھجي ٿو، جيڪڏھن گھربل آھي، استعمال ڪندي -mnocons t-data-in-pr ogmem اختيار.
4.6. نسخو 2.00
ڪنفيگريشن فيوز ڊيوائس ڪنفيگريشن فيوز ھاڻي پروگرام ڪري سگھجن ٿا ڪنفيگريشن پراگما استعمال ڪندي ان کان پوءِ سيٽنگ-ويليو جوئر فيوز جي حالت کي بيان ڪرڻ لاءِ، مثال طور #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
مطلق شيون ۽ افعال شيون ۽ افعال ھاڻي ميموري ۾ مخصوص ايڊريس تي رکي سگھجن ٿا CCI _ استعمال ڪنديat (پتا) وضاحت ڪندڙ، مثال طورampاليزي:
جيڪڏھن شامل ڪريو
int foobar at (0)0300100)؛
char at(0x250) getID(int offset) ( هن وضاحت ڪندڙ لاءِ استدلال هڪ مستقل هجڻ گهرجي جيڪو پتي جي نمائندگي ڪري ٿو جنهن تي پهريون بائيٽ يا هدايتون رکيل هونديون. RAM ايڊريس Ox800000 جي آفسيٽ استعمال ڪندي ظاهر ڪيا ويا آهن. CCI کي فعال ڪرڻ لاءِ ھن خصوصيت کي استعمال ڪريو.
نئون مداخلت فنڪشن نحو ڪمپيلر ھاڻي قبول ڪري ٿو CCI _interrupt (نمبر) وضاحت ڪندڙ کي ظاهر ڪرڻ لاءِ ته سي افعال مداخلت وارا هينڊلر آهن. وضاحت ڪندڙ هڪ مداخلت نمبر وٺندو آهي، مثال طورampاليزي:
مقرر ٿيل مسئلا
هيٺيون تصحيحون ڪيون ويون آهن جيڪي ڪمپيلر ۾ ڪيون ويون آهن. اهي ٺاهيل ڪوڊ ۾ بگ کي درست ڪري سگھن ٿا يا ڪمپلر جي آپريشن کي تبديل ڪري سگھن ٿا جيڪو ارادو ڪيو ويو يا صارف جي گائيڊ طرفان بيان ڪيو ويو. ذيلي عنوانن ۾ ورزن نمبر اشارو ڪري ٿو پهريون مرتب ڪندڙ نسخو جنهن جي پٺيان مسئلن لاءِ فيڪس شامل آهن. عنوان ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهي مفيد ٿي سگهن ٿيون جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي.
نوٽ ڪريو ته ڪجھ ڊوائيس مخصوص مسئلا ڊيوائس فيملي پيڪ ۾ درست ڪيا ويا آھن (DR)) ڊوائيس سان لاڳاپيل. ڏسو MPLAB Pack Manager DFPs ۾ ڪيل تبديلين تي معلومات لاءِ ۽ جديد پيڪ ڊائون لوڊ ڪرڻ لاءِ.
5.1. نسخو 2.39 (فنڪشنل سيفٽي رليز)
ڪو به.
5.2. نسخو 2.36
دير ڪرڻ وقت غلطي (XCS-2774) ڊفالٽ مفت موڊ جي اصلاحن ۾ معمولي تبديليون اوپيرينڊ ايڪسپريسز جي مسلسل فولڊنگ کي تاخير ۾ بلٽ ان افعال کي روڪيو، نتيجي ۾ انھن کي غير مستقل سمجھيو پيو وڃي ۽ غلطي کي شروع ڪيو وڃي ٿو. تعمير ٿيل in_avr_delay_cycles هڪ مرتب وقت جي انٽيگر مستقل جي توقع رکي ٿو.
5.3. نسخو 2.35
لڳاتار مختص ڪرڻ استعمال ڪندي _at (XCS-2653) ساڳئي نالي سان هڪ حصي ۾ ڪيترن ئي شين جي جڳهن جي مسلسل مختص ڪرڻ ۽ استعمال ڪندي _at () صحيح ڪم نه ڪيو. مثال طورampاليزي:
const char arrl[ ] انتساب (section(“.mysec”) at (0x500) = (OxAB، OxCD)؛
const char arr2[ ] صفت (sectionr.mysec") = (OxEF، OxFE)؛
arri کان پوء فوري طور تي arr2 رکڻ گهرجي.
سيڪشن جي شروعاتي پتي جي وضاحت ڪرڻ (XCS-2650) جي -wl، -section-start آپشن خاموشيءَ سان سيڪشنز کي نامزد ٿيل شروعاتي ايڊريس تي رکڻ ۾ ناڪام ٿي ويو. هي مسئلو مقرر ڪيو ويو آهي ڪنهن به ڪسٽم نالي سيڪشن لاءِ؛ بهرحال، اهو ڪنهن به معياري حصن لاءِ ڪم نه ڪندو، جهڙوڪ. متن يا. bss، جنهن کي استعمال ڪندي رکيل هجي -wl - ٽي آپشن.
لنڪر حادثو ٿئي ٿو جڏهن آرام ڪيو وڃي (XCS-2647) جڏهن -mrelax اصلاح کي چالو ڪيو ويو ۽ اهي ڪوڊ يا ڊيٽا سيڪشن هئا جيڪي دستياب ياداشت ۾ مناسب نه هئا، لنڪر تباهه ٿي ويو. هاڻي، اهڙي صورتحال ۾، غلطي پيغام جاري ڪيا ويا آهن.
نه نه-گرڻ-واپس (XCS-2646) جي -nofallback آپشن صحيح طور تي لاڳو نه ڪيو ويو، ۽ نه ئي دستاويز ٿيل. اهو هاڻي چونڊيو وڃي ٿو انهي کي يقيني بڻائڻ لاءِ ته ڪمپلر واپس نه ٿيندو گهٽ اصلاحي سيٽنگ تي جيڪڏهن ڪمپلر غير لائسنس يافته آهي، ۽ ان جي بدران هڪ غلطي جاري ڪندو.
نامناسب رفتار جي اصلاح (XCS-2637) ليول 3 اصلاحن (-03) کي منتخب ڪرڻ وقت طريقيڪار تجزيي جي اصلاح کي فعال ڪيو پيو وڃي. اهي اصلاحون ڪوڊ جي سائيز کي گھٽائي ٿي ڪوڊ جي رفتار جي خرچ تي، تنهنڪري نه ڪيو وڃي ها.
خراب EEPROM رسائي (XCS-2629) eeprom_read_block روٽين Xmega ڊوائيسز تي صحيح ڪم نه ڪيو جڏهن -mconst-data-in-progmem آپشن کي فعال ڪيو ويو (جيڪا ڊفالٽ حالت آهي)، نتيجي ۾ EEPROM ميموري صحيح طريقي سان نه پڙهي وئي.
غلط ياداشت مختص (X03-2593, XC8-2651) جڏهن -Ttext يا -Tdata لنڪر آپشن (مثال طورample passed through a -wl ڊرائيور آپشن استعمال ڪندي) بيان ڪيو ويو آهي، لاڳاپيل متن/ڊيٽا علائقي جي اصليت کي اپڊيٽ ڪيو ويو؛ جڏهن ته، آخري ايڊريس مطابق ترتيب نه ڏني وئي هئي، جيڪا علائقي کي ٽارگيٽ ڊوائيس جي ميموري جي حد کان وڌيڪ ڪري سگهي ٿي.
وڌيڪ منسوب ٿيل فنڪشن سان حادثو (XC8-2580) ڪمپلر تباھ ٿي ويو جيڪڏھن ھڪڙي فنڪشن کي ھڪڙي کان وڌيڪ مداخلت، سگنل يا nmi خاصيتون استعمال ڪندي قرار ڏنو ويو آھي، مثال طور، _attribute_ ( ( signal , interrupt ) ).
غلط ATtiny مداخلت ڪوڊ (XC8-2465) جڏهن ATtiny ڊوائيسز جي تعمير ۽ اصلاحن کي غير فعال ڪيو ويو (-00)، مداخلت واري فنڪشن شايد رينج جمع ڪندڙ پيغامن کان ٻاهر آپرينڊ کي شروع ڪري ڇڏيو آهي.
اختيارن جي ذريعي نه ٿي گذريو (XC8-2452) جڏهن استعمال ڪندي -wl اختيارن سان گھڻن، ڪاما سان الڳ ٿيل لنڪر اختيارن، نه سڀئي لنڪر جا اختيار لنڪر ڏانھن منتقل ڪيا ويا آھن.
غلطي اڻ سڌي طرح پروگرام ميموري پڙهڻ (X03-2450) ڪجهه مثالن ۾، مرتب ڪندڙ هڪ اندروني غلطي (ناقابل شناخت insn) جڏهن هڪ ٻه بائيٽ جي قيمت هڪ پوائنٽر کان پروگرام ميموري ڏانهن پڙهي
5.4. نسخو 2.32
لائبريري جي ٻي رسائي ناڪام ٿي (X03-2381) xc8-ar.exe لائبريري آرڪائيور جي ونڊوز ورزن کي ٻي دفعي هڪ موجوده لائبريري آرڪائيو تائين رسائي حاصل ڪرڻ لاءِ ناڪام ٿي سگھي ٿو ناڪامي پيغام جو نالو تبديل ڪرڻ جي ناڪامي سان.
5.5. نسخو 2.31
اڻ ڄاتل گڏ ڪرڻ واري ناڪامي (XC8-2367) جڏهن هلندي ونڊوز پليٽ فارم جيڪي سسٽم عارضي ڊاريڪٽري کي هڪ رستي تي سيٽ ڪيو هو جنهن ۾ هڪ ڊٽ شامل آهي.' ڪردار، گڏ ڪرڻ وارو عمل ڪرڻ ۾ ناڪام ٿي سگھي ٿو.
5.6. نسخو 2.30
گلوبل ليبلز آئوٽ لائننگ کان پوءِ گم ٿي ويا (XC8-2299) هٿ سان لکيل اسيمبلي ڪوڊ جيڪو گلوبل رکي ٿو اسيمبليءَ جي ترتيبن جي اندر ليبل جيڪي عمل جي تجزيي جي ذريعي ٺاهيا ويا آهن شايد صحيح طور تي بحال نه ڪيا ويا هجن.
هڪ آرام واري حادثي (XC8-2287) استعمال ڪندي -ميرلڪس اختيار ٿي سگھي ٿو لنڪر کي حادثي جو سبب بڻائين جڏهن tail jump relaxation optimizations ret instruction کي هٽائڻ جي ڪوشش ڪئي وئي جيڪي آخر ۾ نه هيون سيڪشن.
حادثو جڏهن ليبلز کي قدر جي طور تي بهتر ڪرڻ (XC8-2282) ڪوڊ استعمال ڪندي “ليبلز ايز ويلز” GNU C ٻوليءَ جي توسيع سبب ٿي سگھي ٿي طريقيڪار جي تجزيي جي اصلاحن کي حادثو ڪرڻ لاءِ، هڪ Outlined VMA range spans fixup error سان.
ائين نه آهي const (XC8-2271) لاءِ پروٽوٽائپ strstr () ۽ ٻيا افعال کان جڏهن ته -mconst-data-inprogmem خصوصيت کي غير فعال ڪيو ويو آهي، واپسي واري اسٽرنگ پوائنٽرز تي غير معياري ڪانسٽ قابليت جي وضاحت نه ڪريو. نوٽ ڪريو ته avrxmega3 ۽ avrtiny ڊوائيسز سان، هي خصوصيت مستقل طور تي فعال آهي.
گم ٿيل شروعاتي (XC8-2269) جڏهن ترجمي ۾ هڪ کان وڌيڪ متغير يونٽ هڪ حصي ۾ رکيل هئي (استعمال ڪندي سيڪشن or وصف ( (سيڪشن) ))، ۽ پهريون اهڙو متغير صفر شروع ڪيو ويو يا ان ۾ شروعاتي نه هئي، ساڳئي ترجمي واري يونٽ ۾ ٻين متغيرن لاءِ شروعاتي ڪندڙ جيڪي ساڳي حصي ۾ رکيا ويا هئا، گم ٿي ويا.
5.1. نسخو 2.2 9 (فنڪشنل سيفٽي رليز) ڪو به نه.
5.2. نسخو 2.20
ڊگھي حڪمن سان غلطي (XC8-1983) جڏهن هڪ AVR ٽارگيٽ استعمال ڪندي، ڪمپلر شايد بند ٿي ويو هجي هڪ lilt نه مليو غلطي سان، جيڪڏهن ڪمانڊ لائن تمام وڏي هئي ۽ خاص اکر شامل هئا جهڙوڪ حوالا، پٺتي سليش وغيره.
غير تفويض ٿيل روڊاٽا سيڪشن (XC8-1920) AVR لنڪر ڪسٽم روڊاٽا سيڪشن لاءِ ميموري تفويض ڪرڻ ۾ ناڪام ٿيو جڏهن avrxmega3 ۽ avrtiny آرڪيٽيڪچرز لاءِ تعمير ڪيو ويو، ممڪن طور تي ميموري اوورليپ غلطيون پيدا ڪندي
5.3. نسخو 2.19 (فنڪشنل سيفٽي رليز)
ڪو به.
5.4. نسخو 2.10
بحالي جي ناڪامي (XC8-1891) بهترين فٽ مختص ڪندڙ ياداشت جي وچ ۾ 'سوراخ' کي ڇڏي رهيو هو لنڪر آرام کان پوء. ميموري کي ٽڪرائڻ کان علاوه، اهو امڪان وڌائي ٿو اتي لنڪر جي منتقلي جي ناڪامي جي پي سي سان لاڳاپيل جمپس يا ڪال جي حد کان ٻاهر ٿيڻ سان.
ھدايتون آرام سان تبديل نه ٿيون (XC8-1889) Linker Relaxation جمپ يا ڪال ھدايتن لاءِ نه ٿي سگھيا جن جي ھدف پھچڻ جي قابل ٿي وڃن جيڪڏھن آرام ڪيو وڃي.
غائب فنڪشنلٽي (XC8E-3 ) ڪيترن ئي وصفن مان ، جهڙوڪ clock_div_t ۽ clock_presc ale_s et ()، ڊوائيسز لاءِ وضاحت نه ڪئي وئي، بشمول ATmega324PB، ATmega328PB، ATtiny441، ۽ ATtiny841.
غائب ميڪرو اڳي پروسيسر ميڪروس _XC 8_MODE_، XC 8 VERS ION، XC، ۽ xc8 پاڻمرادو ترتيب ڏيندڙ طرفان وضاحت نه ڪئي وئي هئي. اهي هاڻي موجود آهن.
5.5. نسخو 2.05
اندروني گڏ ڪرڻ واري غلطي (XC8-1822) جڏهن ونڊوز جي هيٺان تعمير ڪندي، ڪوڊ کي بهتر ڪرڻ وقت هڪ اندروني ڪمپيلر غلطي پيدا ٿي سگهي ٿي.
RAM اوور فلو نه لڌو ويو (XC8-1800, XC8-1796) پروگرام جيڪي موجود ريم کان وڌيڪ آهن انهن کي ڪجهه حالتن ۾ مرتب ڪندڙ طرفان نه لڌو ويو، نتيجي ۾ رن ٽائم ڪوڊ ناڪامي ٿي.
فليش ميموري کي ختم ڪيو ويو (XC8-1792) avrxmega3 ۽ avrtiny ڊوائيسز لاءِ، فليش ميموري جا حصا MPLAB X IDE پاران غير پروگرام ٿيل ڇڏيا ويا هوندا.
مکيه عمل ڪرڻ ۾ ناڪامي (XC8-1788) ڪجهه حالتن ۾ جتي پروگرام ۾ ڪو عالمي متغير بيان نه ڪيو ويو هو، رن ٽائم شروعاتي ڪوڊ ٻاهر نه نڪتو ۽ مکيه () فنڪشن ڪڏهن به پهچي نه سگهيو.
غلط ياداشت جي معلومات (XC8-1787) avrxmega3 ۽ avrtiny ڊوائيسز لاءِ، avr-سائيز پروگرام رپورٽ ڪري رهيو هو ته صرف چريو ڊيٽا پروگرام ميموري جي بدران رام استعمال ڪري رهيو هو.
غلط پروگرام ميموري ريڊ (XC8-1783) پروجيڪٽس گڏ ڪيل ڊوائيسز لاءِ پروگرام ميموري سان گڏ ڊيٽا ايڊريس اسپيس ۾ ميپ ٿيل آهن ۽ جيڪي PROGMEM macro/attribute استعمال ڪندي شيون بيان ڪن ٿيون شايد اهي شيون غلط ايڊريس مان پڙهيا هجن.
اندروني نقص وصفن سان (XC8-1773) جيڪڏهن توهان پوائنٽر جي نالي جي وچ ۾ _at 0 يا attribute() ٽوڪن سان پوائنٽر آبجیکٹ جي وضاحت ڪئي ته هڪ اندروني غلطي ٿي وئي، مثال لاءِample, char * _at (0x800150) cp؛ هڪ ڊيڄاريندڙ هاڻي جاري ڪيو ويو آهي جيڪڏهن اهڙو ڪوڊ سامهون اچي ٿو.
مکيه عمل ڪرڻ ۾ ناڪامي (XC8-1780, XC8-1767, XC8-1754) EEPROM متغيرن کي استعمال ڪرڻ يا config pragma کي استعمال ڪندي فيوز جي وضاحت ڪرڻ شايد غلط ڊيٽا جي شروعات ۽/يا رن ٽائم جي شروعاتي ڪوڊ ۾ پروگرام جي عمل کي بند ڪري ڇڏيو هجي، مکيه 0 تائين پهچڻ کان اڳ.
ننڍڙن ڊوائيسز سان فيوز غلطي (XC8-1778، XC8-1742) attiny4/5/9/10120140 ڊوائيسز انهن جي هيڊر ۾ غلط فيوز جي ڊيگهه بيان ڪئي هئي files جيڪي لنڪر جي غلطين کي ڏسندا آهن جڏهن ڪوڊ ٺاهڻ جي ڪوشش ڪئي وئي جيڪا فيوز جي وضاحت ڪئي وئي آهي.
ورهاڱي جي غلطي (XC8-1777) هڪ وقفي وقفي جي غلطي کي درست ڪيو ويو آهي.
گڏ ڪرڻ وارو حادثو (XC8-1761) avr -as assembler شايد تباھ ٿي ويو آھي جڏھن compiler کي Ubuntu 18 تحت ھلايو ويو ھو.
شيون صاف نه ڪيون ويون (XC8-1752) غير شروع ٿيل جامد اسٽوريج جي مدت واريون شيون شايد رن ٽائم شروعاتي ڪوڊ ذريعي صاف نه ڪيون ويون آهن.
تڪراري ڊوائيس جي وضاحت کي نظرانداز ڪيو ويو (XC8-1749) The compiler هڪ غلطي پيدا نه ڪري رهيو هو جڏهن گھڻن ڊوائيس جي وضاحت جا اختيار استعمال ڪيا ويا ۽ مختلف ڊوائيسز کي اشارو ڪيو ويو.
هيپ جي ذريعي ميموري ڪرپشن (XC8-1748) The _heap_start جي نشاني غلط طور تي سيٽ ڪئي پئي وڃي، نتيجي ۾ عام متغيرن جي خراب ٿيڻ جو امڪان.
لنڪر جي منتقلي جي غلطي (XC8-1739) ھڪڙي لنڪر جي منتقلي جي غلطي ٿي سگھي ٿي جڏھن ڪوڊ ۾ ھڪڙو rjmn يا rcall ھدف سان بلڪل 4k بائيٽ پري آھي.
5.6. نسخو 2.00 ڪوبه نه.
ڄاڻايل مسئلا
مرتب ڪندڙ جي آپريشن ۾ ھيٺيون حدون آھن. اهي ٿي سگهن ٿيون عام ڪوڊنگ پابنديون، يا صارف جي دستياب ۾ موجود معلومات کان انحراف. ٽائيڊ ۾ بریکٹ ٿيل ليبل (س) آهن انهي مسئلي جي سڃاڻپ ٽريڪنگ ڊيٽابيس ۾. اهو فائدو ٿي سگهي ٿو جيڪڏهن توهان کي مدد سان رابطو ڪرڻ جي ضرورت آهي. اهي شيون جن ۾ ليبل نه هوندا آهن اهي حدون آهن جيڪي بيان ڪن ٿيون موڊي آپرينڊي ۽ جيڪي مستقل طور تي اثر ۾ رهڻ جو امڪان آهن.
6.1. MPLAB X IDE انضمام
ايم ايل بي IDE انضمام جيڪڏهن Compiler MPLAB IDE مان استعمال ٿيڻو آهي ته پوءِ توهان کي Compiler انسٽال ڪرڻ کان پهريان MPLAB IDE انسٽال ڪرڻ گهرجي.
6.2. ڪوڊ جي پيدائش
غلط شروعات (XC8-2679) وچ ۾ هڪ تفاوت آهي جتي ڪجهه عالمي / جامد بائيٽ-سائيز شين لاءِ ابتدائي قدر ڊيٽا ميموري ۾ رکيل آهن ۽ جتي متغيرن کي رن ٽائم تي پهچايو ويندو.
strtod غلط طريقي سان ترتيب ڏئي ٿو endptr (XC8-2652) مثالن ۾ جتي strtod () جي بدلي لاءِ موضوع واري اسٽرنگ ۾ شامل آهي جيڪو ظاهر ٿئي ٿو هڪ فلوٽنگ پوائنٽ نمبر ايڪسپورنشنل فارميٽ ۾ ۽ اتي هڪ غير متوقع اکر آهي اي اکر کان پوءِ، پوءِ endptr ايڊريس، جيڪڏهن مهيا ڪيو وڃي، ته پوءِ ان ڪردار ڏانهن اشارو ڪندو e ۽ نه پاڻ e. مثال طورample: strtod ("100exy"، endptr) ؛
نتيجو ٿيندو endptr x ڪردار ڏانهن اشارو ڪندي.
خراب اڻ سڌي طرح فنڪشن ڪال (X03-2628) ڪجهه مثالن ۾، فنڪشنل ڪالز ذريعي ٺاهيل فنڪشن پوائنٽر ذريعي محفوظ ڪيل هڪ ساخت جي حصي طور ناڪام ٿي سگهي ٿي.
strtof hexadecimal floats لاءِ صفر ڏي ٿو (XC8-2626) لائبريري افعال strtof () et al ۽ scanf () et al، هميشه هڪ هيڪساڊيڪل فلوٽنگ-پوائنٽ نمبر کي تبديل ڪندو، جيڪو صفر تائين ايڪسپونٽ جي وضاحت نٿو ڪري. مثال طورample: strtof ("Oxl"، &endptr) ؛ قيمت 0 واپس ڪندو، نه 1.
غلط اسٽيڪ ايڊوائزر ميسيجنگ (XC8-2542, XC8-2541) ڪجهه مثالن ۾، اسٽيڪ ايڊوائزر وارننگ جي حوالي سان ورجائي يا غير مقرر ٿيل اسٽيڪ استعمال ٿيل آهي (ممڪن طور تي alloca()) جي استعمال ذريعي خارج ٿيل نه آهي.
نقلي مداخلت واري ڪوڊ سان ناڪامي (XC8-2421) جتي هڪ کان وڌيڪ مداخلت واري فنڪشن هڪ ئي جسم آهي، ڪمپلر کي هڪ مداخلت واري فنڪشن لاء ٻئي کي ڪال ڪري سگھي ٿو. ان جي نتيجي ۾ سڀ ڪال-ڪالبر ٿيل رجسٽرس غير ضروري طور تي محفوظ ٿي ويندا، ۽ انٽرپرٽس کي فعال ڪيو ويندو ان کان اڳ جو موجوده مداخلت واري هينڊلر جي ايپيلوگ کي هلايو وڃي، جيڪو ڪوڊ جي ناڪامي جو سبب بڻجي سگهي ٿو.
مسلسل شيون جيڪي پروگرام ياداشت ۾ نه آهن (XC8-2408) avrxmega3 ۽ avrtiny پروجيڪٽس لاءِ يونٽيائيزڊ const شيون ڊيٽا ياداشت ۾ رکيل آهن، جيتوڻيڪ هڪ ڊيڄاريندڙ اهو ٻڌائي ٿو ته انهن کي پروگرام ميموري ۾ رکيو ويو آهي. اهو انهن ڊوائيسز تي اثر انداز نه ڪندو جن وٽ پروگرام ميموري ميپ ٿيل نه آهي ڊيٽا ميموري اسپيس ۾، ۽ نه ئي اهو متاثر ڪندو ڪنهن به شئي کي جيڪو شروع ڪيو ويو آهي.
غلط ڊي ايف پي رستي سان خراب پيداوار (XCS-2376) جيڪڏهن مرتب ڪندڙ کي غلط DFP رستي ۽ هڪ 'spec' سان سڏيو وڃي ٿو file منتخب ٿيل ڊيوائس لاءِ موجود آهي، مرتب ڪندڙ گم ٿيل ڊوائيس فيملي پيڪ جي رپورٽ نه ڪري رهيو آهي ۽ ان جي بدران 'spec' چونڊيو file، جيڪو پوءِ ٿي سگھي ٿو غلط آئوٽ پٽ. 'خاص' files شايد ورهايل DFPs سان تازه ڪاري نه هجي ۽ صرف اندروني ڪمپيلر ٽيسٽ سان استعمال لاءِ ارادو ڪيو ويو.
ميموري اوورليپ اڻ ڄاتل (XC8-1966) ڪمپلر پتي تي مطلق ٺهيل شين جي ميموري اوورليپ کي نه ڳولي رهيو آهي (ذريعي _at 0) ۽ ٻيون شيون استعمال ڪندي _فرقوion () specifier ۽ جيڪي ساڳي ايڊريس سان ڳنڍيل آهن.
لائبريري افعال سان ناڪامي ۽ _memx (XC8-1763) _memx ايڊريس اسپيس ۾ هڪ دليل سان libgcc فلوٽ فنڪشن کي ناڪام ٿي سگھي ٿو. ياد رهي ته لائبريري جا معمول ڪجهه سي آپريٽرز کان سڏبا آهن، تنهن ڪري، مثال طورample، هيٺ ڏنل ڪوڊ متاثر ٿيو آهي: واپسي regFloatVar > memxFloatVar؛
محدود libgcc عملدرآمد (AVRTC-731) لاء ATTiny4/5/9/10/20/40 پراڊڪٽس، libgcc ۾ معياري C / Math لائبريري تي عمل درآمد تمام محدود يا موجود ناهي.
پروگرام ميموري جون حدون (AVRTC-732) پروگرام ميموري تصويرون 128 kb کان مٿي آهن ٽول چين جي مدد سان؛ تنهن هوندي به، اهڙا سڃاتل مثال موجود آهن لنڪر ختم ٿيڻ جي بغير آرام جي ۽ هڪ مددگار غلطي پيغام جي بغير گهربل فنڪشن اسٽبس پيدا ڪرڻ بجاءِ جڏهن -mrelax آپشن استعمال ڪيو وڃي.
نالي جي جاءِ جون حدون (AVRTC-733) نالي ٿيل ايڊريس اسپيسز جي مدد ڪئي وئي آهي ٽول چين، صارف جي گائيڊ سيڪشن ۾ بيان ڪيل حدن جي تابع خاص قسم جي قابليت.
ٽائم زونز The لائبريري جا ڪم GMT کي فرض ڪن ٿا ۽ مقامي ٽائم زونن کي سپورٽ نٿا ڪن، ان ڪري loca It ime 0 ساڳيو ئي وقت واپس ڪندو جيئن gmtime ( ) , ex.ampلي.
دستاويز / وسيلا
![]() |
MICROCHIP MPLAB XC8 C ڪمپلر ورزن 2.39 رليز نوٽس AVR MCU لاءِ [pdf] استعمال ڪندڙ ھدايت MPLAB XC8 C Compiler Version 2.39 رليز نوٽس لاءِ AVR MCU، MPLAB XC8 C، ڪمپلر ورزن 2.39 رليز نوٽس AVR MCU لاءِ، AVR MCU لاءِ رليز نوٽس |
![]() |
MICROCHIP MPLAB XC8 C ڪمپلر ورزن 2.39 رليز نوٽس AVR MCU لاءِ [pdf] استعمال ڪندڙ ھدايت MPLAB XC8 C Compiler Version 2.39 رليز نوٽس لاءِ AVR MCU، MPLAB XC8 C، ڪمپلر ورزن 2.39 رليز نوٽس AVR MCU لاءِ، نوٽس AVR MCU لاءِ |
![]() |
مائڪروچپ MPLAB XC8 C ڪمپلر [pdf] استعمال ڪندڙ ھدايت MPLAB XC8 C ڪمپائلر، MPLAB XC8 C، ڪمپلر |






