د مایکروچپ XC8 C کمپیلر نسخه 2.45 د AVR MCU لپاره د ریلیز یادښتونه
د محصول معلومات
د MPLAB XC8 C کمپیلر د سافټویر وسیله ده چې د مایکروچپ AVR وسیلو په نښه کولو لپاره کارول کیږي. دا د C کوډ تالیف کولو او د اجرا وړ تولید لپاره ډیزاین شوی fileد دې وسایلو لپاره. د دې کارن لارښود کې د تالیف کونکي نسخه 2.45 ده چې د رسمي جوړیدو نیټه د اګست 18، 2023 ده. پخوانۍ نسخه 2.41 وه، چې د فبروري په 8، 2023 کې جوړه شوې وه. کمپیلر د فعال خوندیتوب لارښود سره راځي، کوم چې اضافي معلومات وړاندې کوي. او لارښوونې کله چې د MPLAB XC تالیف کونکي د فعال خوندیتوب غوښتنلیکونو سره کاروي. دا لارښود د اسنادو په کڅوړه کې شامل دی کله چې تاسو د فعال خوندیتوب جواز اخلئ. د MPLAB XC8 C کمپیلر د خوشې کیدو په وخت کې د ټولو موجود 8-bit AVR MCU وسیلو ملاتړ کوي. تاسو کولی شئ avr_chipinfo.html ته مراجعه وکړئ file د کمپیلر ډاک ډایرکټر کې د ټولو ملاتړ شوي وسیلو لیست او د دوی د ترتیب بټ ترتیباتو لپاره. د MPLAB XC8 کمپیلر مختلف نسخې شتون لري. جواز لرونکی (PRO) نسخه د وړیا نسخې په پرتله د لوړې کچې اصلاح چمتو کوي. د جواز لرونکي محصول په توګه د کمپیلر فعالولو لپاره ، تاسو اړتیا لرئ د فعالولو کیلي واخلئ. په هرصورت، بې جوازه نسخه د جواز پرته په غیر مستقیم ډول کارول کیدی شي. د فعال خوندیتوب غوښتنلیکونو لپاره، د MPLAB XC8 فعال خوندیتوب کمپیلر شتون لري. دا د فعالولو لپاره د مایکروچپ څخه پیرود شوي فعال خوندیتوب جواز ته اړتیا لري. یوځل چې فعال شي ، د اصلاح کولو ټولې کچې او د کمپیلر ځانګړتیاوې کارول کیدی شي. د MPLAB XC فنکشنل سیفټي کمپیلر هم د شبکې سرور جواز ملاتړ کوي. د نصبولو، فعالولو، د جواز ډولونو، او د مهاجرت مسلو په اړه مفصل معلومات د MPLAB XC C کمپیلر (DS50002059) په سند کې موندل کیدی شي.
د محصول کارولو لارښوونې
- د MPLAB XC8 C کمپیلر سافټویر چلولو دمخه ، د مایکروچپ AVR وسیلو په نښه کولو لپاره ځانګړي مهم معلوماتو او لارښوونو لپاره د کارونکي لارښود ولولئ.
- که تاسو د 8-bit PIC وسیلو لپاره کمپیلر کاروئ، د PIC سند لپاره د MPLAB XC8 C کمپیلر ریلیز نوټونو ته مراجعه وکړئ.
- ډاډ ترلاسه کړئ چې ستاسو عملیاتي سیسټم د کمپیلر چلولو لپاره د سیسټم اړتیاوې پوره کوي. د macOS لپاره بائنریز د کوډ لاسلیک شوي او نوټریز شوي دي. د MPLAB XC شبکې لایسنس سرور د مایکروسافټ وینډوز 10 او پورته ، اوبنټو 18.04 او پورته ، او macOS 10.15 او پورته لپاره شتون لري. په یاد ولرئ چې د MPLAB XC شبکې جواز سرور پدې عملیاتي سیسټمونو کې نه ازمول شوی.
- د MPLAB XC شبکې لایسنس سرور د شبکې جوازونو (SW006021-VM) لپاره د مجازی ماشین جواز په کارولو سره د ملاتړ شوي OS په مجازی ماشینونو کې پرمخ وړل کیدی شي. د MPLAB XC شبکې سرور ټولې 32-bit نسخې له 3.00 نسخې څخه پیل کیږي.
- د جواز لرونکي (PRO) محصول په توګه د MPLAB XC8 C کمپیلر فعالولو لپاره، د فعالولو کیلي واخلئ. دا به د وړیا نسخې په پرتله د اصلاح کولو لوړه کچه چمتو کړي. په هرصورت، غیر جواز لرونکی کمپیلر د جواز پرته په نامعلوم وخت کې چلیدلی شي.
- که تاسو د فعال خوندیتوب غوښتنلیکونو لپاره د MPLAB XC8 فنکشنل سیفټي کمپیلر کاروئ ، نو دا باید د مایکروچپ څخه پیرود شوي فعال خوندیتوب جواز سره فعال شي. کمپیلر به د دې جواز پرته کار ونکړي. یوځل چې فعال شو، تاسو کولی شئ د اصلاح کولو کچه وټاکئ او ټول تالیف کونکي ځانګړتیاوې وکاروئ. د شبکې سرور لایسنس د MPLAB XC فنکشنل سیفټي کمپیلر د دې خوشې کیدو لخوا ملاتړ کیږي.
- د MPLAB XC8 C کمپیلر نصبولو، فعالولو، او جواز ورکولو په اړه د تفصيلي لارښوونو لپاره، د MPLAB XC C کمپیلر نصب او جواز ورکولو (DS50002059) سند ته مراجعه وکړئ.
- که تاسو د ارزونې جواز لاندې تالیف کوونکی پرمخ وړئ، تاسو به د تالیف پرمهال یو خبرداری ترلاسه کړئ کله چې تاسو د خپلې ارزونې دورې پای ته رسیدو په 14 ورځو کې یاست. ورته خبرداری ورکول کیږي که تاسو د خپل HPA ګډون پای ته رسیدو 14 ورځو کې یاست.
اوورview
پیژندنه
د مایکروچپ MPLAB® XC8 C کمپیلر دا خوشې کول ډیری نوي ب featuresې ، بګ فکسونه ، او د نویو وسیلو ملاتړ لري.
د جوړولو نیټه
د دې کمپیلر نسخې رسمي جوړیدو نیټه د اګست 18 2023 ده.
مخکنی نسخه
پخوانی MPLAB XC8 C کمپیلر نسخه 2.41 وه، چې د فبروري په 8، 2023 کې جوړه شوې وه.
کاري خوندیتوب لارښود
د MPLAB XC تالیف کونکو لپاره د فعالیت خوندیتوب لارښود د اسنادو کڅوړه کې شتون لري کله چې تاسو د فعال خوندیتوب جواز پیرود کوئ.
د اجزاو جوازونه او نسخې
د AVR MCUs وسیلو لپاره MPLAB XC8 C کمپیلر د 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 (وینټورا) مسلکي نسخې، او فیډورا 34. د وینډوز لپاره بائنریز کوډ لاسلیک شوی. د macOS لپاره بائنریز د کوډ لاسلیک شوي او نوټریز شوي دي. د MPLAB XC شبکې لایسنس سرور د مختلفو 64-bit عملیاتي سیسټمونو لپاره شتون لري، په شمول د مایکروسافټ وینډوز 10 او پورته؛ اوبنټو 18.04 او پورته؛ یا macOS 10.15 او پورته. سرور ممکن په نورو مختلف عملیاتي سیسټمونو کې هم وګرځي پشمول د وینډوز سرور ، لینکس توزیع ، لکه اوریکل® انټرپریس لینکس® او ریډ هټ® انټرپریس لینکس او همدارنګه د ملاتړ شوي عملیاتي سیسټمونو زاړه نسخې. په هرصورت، د MPLAB XC شبکې جواز سرور په دې عملیاتي سیسټمونو کې نه ازمول شوی. د MPLAB XC شبکې لایسنس سرور د شبکې جوازونو (SW006021-VM) لپاره د مجازی ماشین جواز په کارولو سره د ملاتړ شوي OS په مجازی ماشینونو کې پرمخ وړل کیدی شي. د 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) لپاره د جواز مدیر سند وګورئ. که تاسو د ارزونې جواز لاندې تالیف کونکي چلول غوره کړئ ، نو تاسو به اوس د تالیف پرمهال خبرداری ترلاسه کړئ کله چې تاسو د خپلې ارزونې دورې پای ته رسیدو په 14 ورځو کې یاست. ورته خبرداری ورکول کیږي که تاسو د خپل HPA ګډون پای ته رسیدو 14 ورځو کې یاست. د XC شبکې لایسنس سرور یو جلا انسټالر دی او د واحد کارونکي کمپیلر انسټالر کې شامل نه دی. د XC جواز مدیر اوس د فلوټینګ شبکې جوازونو رومینګ ملاتړ کوي. د ګرځنده کاروونکو په هدف، دا خصوصیت د فلوټینګ جواز ته اجازه ورکوي چې د لنډې مودې لپاره له شبکې څخه لاړ شي. د دې خصوصیت په کارولو سره ، تاسو کولی شئ له شبکې څخه وصل شئ او لاهم خپل MPLAB XC کمپیلر وکاروئ. د دې خصوصیت په اړه د نورو لپاره د XCLM انسټالولو سند فولډر وګورئ. MPLAB X IDE کې د لایسنس کړکۍ (وسیلې> جوازونه) شامل دي ترڅو په لید کې رومینګ اداره کړي.
د نصب کولو مسلو حل کول
که تاسو د وینډوز عملیاتي سیسټمونو لاندې د کمپیلر نصبولو کې ستونزې تجربه کوئ، لاندې وړاندیزونه هڅه وکړئ.
- انسټالول د مدیر په توګه پرمخ وړئ.
- د نصب کونکي غوښتنلیک اجازې 'بشپړ کنټرول' ته تنظیم کړئ. (په فایل کې ښي کلیک وکړئ، ملکیتونه غوره کړئ، امنیت ټب، کاروونکي غوره کړئ، سمون.)
- د temp فولډر اجازه 'بشپړ کنټرول' ته تنظیم کړئ.
د temp فولډر موقعیت ټاکلو لپاره، د چلولو کمانډ کې %temp٪ ټایپ کړئ (د وینډوز لوګو کیلي + R). دا به د فایل اکسپلورر ډیالوګ پرانیزي چې دا لارښود ښیې او تاسو ته به اجازه درکړي چې د دې فولډر لاره وټاکئ.
د کمپیلر اسناد
د تالیف کونکي کارونکي لارښودونه د HTML پاڼې څخه خلاص کیدی شي چې ستاسو په براوزر کې خلاصیږي کله چې په MPLAB X IDE ډشبورډ کې د نیلي مرستې تڼۍ کلیک وکړئ ، لکه څنګه چې په سکرین شاټ کې اشاره شوې.
که تاسو د 8-bit AVR اهدافو لپاره جوړوئ، د AVR® MCU لپاره د MPLAB® XC8 C کمپیلر کارونکي لارښود د هغه کمپیلر اختیارونو او ځانګړتیاو په اړه معلومات لري چې پدې جوړښت کې پلي کیږي.
د پیرودونکي ملاتړ
تاسو کولی شئ د XC8 فورم کې د دې محصول د نورو کاروونکو پوښتنې وپوښتئ. مایکروچپ د دې کمپیلر نسخې په اړه د بګ راپورونو ، وړاندیزونو یا نظرونو هرکلی کوي. مهرباني وکړئ د ملاتړ سیسټم له لارې د بګ راپورونه یا فیچر غوښتنې مستقیم کړئ.
د اسنادو تازه معلومات
د MPLAB XC8 اسنادو آنلاین او تازه نسخو لپاره، مهرباني وکړئ د مایکروچپ آنلاین تخنیکي اسنادو څخه لیدنه وکړئ webسایټ
په دې خپرونه کې نوي یا تازه شوي AVR اسناد:
هیڅ نه
- د AVR® GNU Toolchain to MPLAB® XC8 مهاجرت لارښود د سرچینې کوډ کې بدلونونه تشریح کوي او هغه اختیارونه رامینځته کوي چې ممکن ورته اړتیا وي که تاسو پریکړه وکړئ چې د C-based پروژه د AVR 8-bit GNU Toolchain څخه Microchip MPLAB XC8 C کمپیلر ته واستوئ.
- د مایکروچپ متحد معیاري کتابتون د حوالې لارښود د مایکروچپ متحد معیاري کتابتون لخوا ټاکل شوي دندو چلند او انٹرفیس تشریح کوي، او همدارنګه د کتابتون ډولونو او میکرو کارول. د دې ځینې معلومات پخوا د AVR® MCU لپاره د MPLAB® XC8 C کمپیلر کارونکي لارښود کې شامل وو. د وسیلې ځانګړي کتابتون معلومات لاهم پدې کمپیلر لارښود کې شتون لري.
- که تاسو یوازې د 8-bit وسیلو او MPLAB XC8 C کمپیلر سره پیل کوئ، د MPLAB® XC8 کاروونکي
- د ایمبیډ شوي انجینرانو لپاره لارښود - AVR® MCUs (DS50003108) په MPLAB X IDE کې د پروژو تنظیم کولو او ستاسو د لومړۍ MPLAB XC8 C پروژې لپاره کوډ لیکلو په اړه معلومات لري. دا لارښود اوس د کمپیلر سره توزیع شوی.
- د Hexmate کارن لارښود د هغو کسانو لپاره دی چې Hexmate د یو واحد غوښتنلیک په توګه چلوي.
څه نوي دي
لاندې د AVR هدف نوي ځانګړتیاوې دي چې کمپیلر یې اوس ملاتړ کوي. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه ته اشاره کوي ترڅو د تعقیبي ځانګړتیاو ملاتړ وکړي.
نسخه 2.45
د یونیورسل لایسنس مدیر (XC8-3175, XCLM-224) د کمپیلر سره کارول شوي د جواز مدیر macOS نسخه اوس نړیواله ده، د Intel- او M1-based ماشینونو لپاره اصلي ملاتړ وړاندیز کوي. د جواز مدیر لینکس نسخه اوس لږترلږه د glibc 2.25 نسخه ته اړتیا لري. د میک یونیورسل بائنری (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) تالیف کونکی به اوس د ټیل جمپ سره په فنکشنونو کې بې ځایه ret لارښوونې له مینځه ویسي کله چې دودیز لینکر سکریپټونه کارول کیږي. دا هغه ته ورته اصلاح دی چې مخکې ترسره شوی و، مګر دا اوس په ټولو یتیم برخو کې ترسره کیږي، حتی که د دودیز لینکر سکریپټ کارول کیږي او د غوره تخصیص سکیم په لوبه کې نه وي.
- د وخت ډول بدلون (XC8-2982, 2932) د C99 معیاري کتابتون ډول، time_t له اوږده اوږد څخه غیر لاسلیک شوي اوږد ډول ته بدل شوی، کوم چې د ځینې وخت پورې اړوند کارونو کې د کوډ اندازې ښه والی ورکوي، لکه mktime().
- نوی nop (XC8-2946, 2945) macro NOP() اضافه شوی . دا میکرو په محصول کې د نه عملیاتي لارښوونې داخلوي.
- XCLM (XC8-2944) ته تازه کول د تالیف کونکي سره کارول شوي جواز مدیر تازه شوی او اوس ډیر ځواب ویونکی دی کله چې د کمپیلر جواز توضیحات چیک کوي.
- Trampاولین شوي زنګونه (XC8-2760) تالیف کونکی اوس کولی شي د اوږد فارم زنګ لارښوونو ځای په ځای کولو سره د لنډ نسبي تلیفونونو سره ترسره کړي کله چې د لارښوونو اړونده ډولونه معمولا د دوی د منزل حد څخه بهر وي. په دې حالت کې، کمپیلر به هڅه وکړي چې د rcal لارښوونو سره د jmp کال لارښوونې ته ځای ورکړي چې 'tr.ampد اړتیا وړ پته ته د oline اجرا کول، د مثال لپارهampLe:
نسخه 2.40
- د نوي وسیلې ملاتړ ملاتړ اوس د لاندې AVR برخو لپاره شتون لري: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28,AVR32DD32,AVR64,AVR28,AVR64, 32، او AVR64EA48.
- د طرزالعمل تجزیه ښه شوی د طرزالعمل خلاصون (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 راجستر پیل کړي ترڅو ډاډ ترلاسه شي چې دا ډاټا د ډیټا حافظې ځای کې نقشه شوې. , چیرې چې دا به په اغیزمنه توګه لاسرسی ومومي.
- د مایکروچپ متحد معیاري کتابتونونه ټول MPLAB XC تالیف کونکي به د مایکروچپ متحد معیاري کتابتون شریک کړي، کوم چې اوس د MPLAB XC8 د دې خوشې کیدو سره شتون لري. د AVR® MCU لپاره د MPLAB® XC8 C کمپیلر کارونکي لارښود نور د دې معیاري دندو لپاره اسناد نه لري. دا معلومات اوس د مایکروچپ متحد معیاري کتابتون لارښود لارښود کې موندل کیدی شي. په یاد ولرئ چې ځینې فعالیت چې مخکې د avr-libc لخوا تعریف شوي نور شتون نلري. (د کتابتون فعالیت وګورئ.)
- سمارټ IO د نوي متحد کتابتونونو د یوې برخې په توګه، د چاپ او سکینف کورنۍ کې د IO افعال اوس په هر جوړښت کې دودیز شوي، د دې پر بنسټ چې دا فعالیتونه څنګه په پروګرام کې کارول کیږي. دا کولی شي د برنامې لخوا کارول شوي سرچینې د پام وړ کم کړي.
- د سمارټ IO مرستې اختیار کله چې د سمارټ IO افعال (لکه printf() یا scanf() ته د زنګونو تحلیل کول تل نشي کولی د فارمیټ سټرینګ څخه وټاکي یا د هغه دلیلونو څخه اټکل وکړي چې د تبادلې مشخص کونکي د کال لخوا اړین دي. هیڅ انګیرنه نشته او ډاډ ترلاسه کړئ چې په بشپړ ډول فعال IO افعال د وروستي برنامه عکس سره وصل شوي. یو نوی -msmart-io-format=fmt اختیار اضافه شوی ترڅو کمپیلر د دې پرځای چې د سمارټ IO لخوا کارول شوي د تبادلې مشخصاتو کارونکي لخوا خبر شي. هغه افعال چې کارول یې مبهم دي، د ډیر اوږد IO روټینونو د تړل کیدو مخه نیسي.
- د ګمرکي برخو ځای په ځای کول مخکې، د -Wl، - برخې - پیل اختیار یوازې ټاکل شوې برخه په غوښتل شوي پته کې ځای پرځای کول کله چې لینکر سکریپټ د ورته نوم سره د محصول برخه تعریف کړې. کله چې دا قضیه نه وه، برخه په هغه پته کې کیښودل شوه چې د لینکر لخوا غوره شوی و او اختیار په اصل کې له پامه غورځول شوی و. اوس اختیار به د ټولو دودیزو برخو لپاره درناوی وشي، حتی که د لینکر سکریپټ برخه نه تعریفوي. په هرصورت، یادونه وکړئ چې د معیاري برخو لپاره، لکه متن، .bss یا .data، غوره فټ تخصیص کونکی به لاهم د دوی ځای پرځای کولو بشپړ کنټرول ولري، او اختیار به هیڅ اغیزه ونلري. د -Wl,-Tsection=addr اختیار وکاروئ، لکه څنګه چې د کارونکي لارښود کې تشریح شوي.
نسخه 2.32
- د سټیک لارښود د PRO کمپیلر لایسنس سره شتون لري ، د تالیف کونکي سټیک لارښود ب featureه د برنامې لخوا کارول شوي هر سټیک اعظمي ژوروالي اټکل کولو لپاره کارول کیدی شي. دا د برنامه کال ګراف رامینځته کوي او تحلیل کوي ، د هر فنکشن سټیک کارول ټاکي ، او یو راپور رامینځته کوي ، له کوم څخه چې د برنامې لخوا کارول شوي سټیک ژورتیا اټکل کیدی شي. دا فیچر د -mchp-stack-usage کمانډ لاین اختیار له لارې فعال شوی. د سټیک کارولو لنډیز د اجرا کولو وروسته چاپ کیږي. یو مفصل سټیک راپور د نقشې فایل کې شتون لري، کوم چې په معمول ډول غوښتنه کیدی شي.
- د نوي وسیلې ملاتړ د لاندې AVR برخو لپاره شتون لري: ATTINY427, ATTINY424, ATTINY426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DBDB64, AVR64DBDB, AVR28DB32, AVR28DB64, AVR32B32, AVR48, AVRXNUMX, AVR.
- د بیرته اخیستل شوي وسیلې ملاتړ ملاتړ نور د لاندې AVR برخو لپاره شتون نلري: AVR16DA28، AVR16DA32 او، AVR16DA48.
نسخه 2.31
هیڅ نه.
نسخه 2.30
- د ډیټا پیل کولو مخنیوي لپاره نوی اختیار د -mno-data-init ډرایور نوی اختیار د ډیټا پیل کولو او د bss برخو پاکولو مخه نیسي. دا د اسمبلۍ فایلونو کې د do_clear_bss سمبولونو محصول فشارولو سره کار کوي ، کوم چې به په پایله کې د لینکر لخوا د دې معمولونو شاملولو مخه ونیسي.
- پرمختللي اصلاحونه د اصلاح کولو یو شمیر پرمختګونه رامینځته شوي ، پشمول د بې ځایه راستنیدو لارښوونو لرې کول ، د skip-if-bit-is لارښوونې وروسته د ځینې کودونو لرې کول ، او د طرزالعمل خلاصول او د دې پروسې تکرار کولو وړتیا.
اضافي اختیارونه اوس د دې ځینې اصلاح کولو کنټرول لپاره شتون لري، په ځانګړې توګه -fsection- anchors، کوم چې د جامد شیانو لاسرسي ته اجازه ورکوي چې د یو سمبول په پرتله ترسره شي؛ -mpa- تکرار = n، کوم چې د پروسیجري خلاصون تکرارونو شمیر ته اجازه ورکوي چې د 2 ډیفالټ څخه بدل شي؛ او، -mpa-callcost-shortcall، کوم چې ډیر تیریدونکي طرزالعمل خلاصول ترسره کوي، په دې هیله چې لینکر کولی شي اوږد تلیفونونه آرام کړي. دا وروستی اختیار کولی شي د کوډ اندازه زیاته کړي که چیرې اصلي انګیرنې درک نه شي. - د نوي وسیلې ملاتړ د لاندې AVR برخو لپاره شتون لري: AVR16DA28, AVR16DA32, AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DA28, AVR128DA32, 128DB48، AVR128DB64، او AVRXNUMXDBXNUMX.
- د بیرته راګرځیدونکي وسیلې ملاتړ ملاتړ نور د لاندې AVR برخو لپاره شتون نلري: ATA5272، ATA5790، ATA5790N، ATA5791، ATA5795، ATA6285، ATA6286، ATA6612C، ATA6613C، ATA6614Q، ATA6616Q، ATA6617C، ATA664251C، ATAXNUMXC، ATAXNUMXC، ATAXNUMXN.
نسخه 2.29 (فعال خوندیتوب خوشې کول)
- د تالیف جوړونکي لپاره د سرلیک فایل د دې لپاره چې ډاډ ترلاسه شي چې کمپیلر کولی شي د ژبې مشخصاتو سره مطابقت ولري لکه MISRA، ، تازه شوی دی. دا سرلیک د ټولو دننه جوړ شوي دندو لپاره پروټوټایپونه لري، لکه __builtin_avr_nop() او __builtin_avr_delay_cycles(). ځینې جوړونه ممکن د MISRA مطابق نه وي؛ دا د کمپیلر کمانډ لاین ته د تعریف __XC_STRICT_MISRA په اضافه کولو سره پریښودل کیدی شي. جوړ شوي او د دوی اعالنونه د ثابت پلنوالی ډولونو کارولو لپاره نوي شوي.
نسخه 2.20
- د نوي وسیلې ملاتړ ملاتړ د لاندې AVR برخو لپاره شتون لري: ATTINY1624، ATTINY1626، او ATTINY1627.
- غوره غوره فټ تخصیص په کمپیلر کې غوره فټ تخصیص (BFA) ښه شوی ترڅو برخې په ترتیب سره تخصیص شي چې د غوره اصلاح کولو اجازه ورکوي. BFA اوس د نوم شوي پتې ځایونو ملاتړ کوي او د ډیټا پیل کولو غوره اداره کوي.
- د طرزالعمل تجرید ښه شوی د طرزالعمل خلاصون اصلاح اوس په نورو کوډ ترتیبونو کې ترسره کیږي. مخکیني حالتونه چیرې چې دا اصلاح ممکن د کوډ اندازه زیاته کړې وي د اصلاح کولو کوډ د لینکر د کثافاتو راټولولو پروسې څخه خبرتیا په واسطه حل شوي.
- د AVR اسسمبلر نشتوالی د AVR جمع کونکی نور په دې توزیع کې شامل نه دی.
نسخه 2.19 (فعال خوندیتوب خوشې کول)
هیڅ نه.
نسخه 2.10
- د کوډ پوښښ پدې خپرونه کې د کوډ پوښښ ځانګړتیا شامله ده چې د پروژې د سرچینې کوډ تر کومې اندازې پورې د تحلیل لپاره اسانه کوي. د فعالولو لپاره -mcodecov=ram اختیار وکاروئ. ستاسو په هارډویر کې د برنامه اجرا کولو وروسته ، د کوډ پوښښ معلومات به په وسیله کې راټول شي ، او دا د MPLAB X IDE لخوا د کوډ پوښښ پلگ ان له لارې لیږدول کیدی شي او ښودل کیدی شي. د دې پلگ ان په اړه د معلوماتو ترلاسه کولو لپاره د IDE اسناد وګورئ.
د #pragma nocodecov د پوښښ تحلیلونو څخه د راتلونکو دندو د ایستلو لپاره کارول کیدی شي. په مثالي توګه پراګما باید د فایل په پیل کې اضافه شي ترڅو دا ټول فایل د پوښښ تحلیل څخه خارج کړي. په بدیل سره، __attribute__((nocodecov)) کیدای شي د پوښښ تحلیل څخه د ځانګړي فعالیت د ایستلو لپاره وکارول شي. - د وسیلې توضیحات فایلونه د avr_chipinfo.html په نوم د نوي وسیلې فایل د کمپیلر توزیع د اسنادو لارښود کې موقعیت لري. دا فایل ټول هغه وسایل لیست کوي چې د کمپیلر لخوا ملاتړ کیږي. د وسیلې په نوم کلیک وکړئ ، او دا به یوه پا pageه پرانیزي چې د دې وسیلې لپاره ټول د منلو وړ ترتیب بټ ترتیب / ارزښت جوړه ښیې ، د پخواني سرهamples.
- د طرزالعمل خلاصون د طرزالعمل خلاصون اصلاحونه، کوم چې د اسمبلۍ کوډ عام بلاکونه د دې بلاک استخراج شوي کاپي ته د زنګونو سره بدلوي، په کمپیلر کې اضافه شوي. دا د یو جلا غوښتنلیک لخوا ترسره کیږي، کوم چې په اتوماتيک ډول د تالیف کونکي لخوا غوښتنه کیږي کله چې د کچې 2، 3 یا s اصلاح کول غوره کوي. دا اصلاح کول د کوډ اندازه کموي، مګر دوی ممکن د اجرا سرعت او د کوډ ډیبګیت کم کړي. د پروسیجر خلاصول د -mno-pa اختیار په کارولو سره د اصلاح کولو لوړې کچې کې غیر فعال کیدی شي ، یا د -mpa په کارولو سره په ټیټ اصلاح کچه (ستاسو د جواز تابع) کې فعال کیدی شي. دا د -mno-pa-on- په کارولو سره د اعتراض فایل لپاره غیر فعال کیدی شي.file=fileنوم، یا د -mno-pa-on- function=function په کارولو سره د فعالیت لپاره غیر فعال شوی. ستاسو د سرچینې کوډ دننه، طرزالعمل خلاصول د فنکشن د تعریف سره د __attribute__((nopa)) په کارولو سره، یا د __nopa په کارولو سره غیر فعال کیدی شي، کوم چې __attribute__((nopa، noinline)) ته پراخیږي او په دې توګه د فعالیت انلاین کولو مخه نیسي. او د انلاین کوډ خلاصول شتون لري.
- په پراګما کې د لاک بټ ملاتړ د #pragma ترتیب اوس د AVR لاک بټونو او همدارنګه د نورو ترتیب کولو بټونو مشخص کولو لپاره کارول کیدی شي. د avr_chipinfo.html فایل وګورئ (پورته ذکر شوی) د دې پراګما سره د کارولو لپاره ترتیب / ارزښت جوړه لپاره.
- د نوي وسیلې ملاتړ ملاتړ د لاندې برخو لپاره شتون لري: AVR28DA128، AVR64DA128، AVR32DA128، او AVR48DA128.
نسخه 2.05
- ستاسو د بکس لپاره نور بټونه د دې کمپیلر او جواز مدیر macOS نسخه اوس د 64-bit غوښتنلیک دی. دا به ډاډ ترلاسه کړي چې کمپیلر به د macOS وروستي نسخو کې د خبرتیا پرته نصب او پرمخ وړي.
- د پروګرام په حافظه کې Const څیزونه تالیف کوونکی اوس کولی شي د پروګرام په فلش حافظه کې د کانسټ وړتیا لرونکي شیان ځای په ځای کړي، د دې پرځای چې دا په RAM کې موقعیت ولري. تالیف کونکی بدل شوی ترڅو د ثابت وړ نړیوال ډیټا په برنامه فلش حافظه کې زیرمه شي او دا ډیټا په مستقیم او غیر مستقیم ډول د مناسب برنامې - حافظې لارښوونو په کارولو سره لاسرسی کیدی شي. دا نوی فیچر په ډیفالټ فعال شوی مګر د -mno-const-data-in-progmem اختیار په کارولو سره غیر فعال کیدی شي. د avrxmega3 او avrtiny جوړښتونو لپاره، دا فیچر ته اړتیا نشته او تل غیر فعال وي، ځکه چې د پروګرام حافظه د دې وسیلو لپاره د معلوماتو پته ځای کې نقشه شوې ده.
- د دې کمپیلر د وړیا غیر جواز لرونکي (وړیا) نسخې لپاره معیاري اوس د 2 درجې پورې او په شمول د اصلاح کولو اجازه ورکوي. دا به ورته ورته اجازه ورکړي، که څه هم ورته نه وي، هغه څه ته چې پخوا د معیاري جواز په کارولو سره ممکنه وه.
- ښه راغلاست AVRASM2 د 2-bit وسیلو لپاره AVRASM8 جمع کونکی اوس د XC8 کمپیلر انسټالر کې شامل شوی. دا جمع کونکی د XC8 تالیف کونکي لخوا نه کارول کیږي ، مګر د لاسي لیکل شوي مجلس سرچینې پراساس د پروژو لپاره شتون لري.
- د نوي وسیلې ملاتړ ملاتړ د لاندې برخو لپاره شتون لري: ATMEGA1608، ATMEGA1609، ATMEGA808، او ATMEGA809.
نسخه 2.00
- د لوړې کچې ډرایور یو نوی ډرایور چې د xc8-cc په نوم یادیږي، اوس د پخواني avr-gcc ډرایور او xc8 ډرایور څخه پورته ناست دی، او دا کولی شي د هدف وسیلې د انتخاب پراساس مناسب کمپیلر ته زنګ ووهي. دا ډرایور د GCC سټایل اختیارونه مني، کوم چې یا هم ژباړل شوي یا د اجرا شوي کمپیلر ته لیږدول کیږي. دا ډرایور د ورته سیمانټیکونو سره ورته ورته انتخابونو ته اجازه ورکوي چې د هر AVR یا PIC هدف سره وکارول شي او پدې توګه د کمپیلر غوښتنه کولو وړاندیز شوې لار ده. که اړتیا وي، زاړه avr-gcc ډرایور په مستقیم ډول د زاړه سټایل اختیارونو په کارولو سره ویل کیدی شي چې دا په پخوانیو کمپیلر نسخو کې منل شوي.
- عام C انٹرفیس دا کمپیلر اوس کولی شي د MPLAB کامن C انٹرفیس سره مطابقت ولري ، د سرچینې کوډ ته اجازه ورکوي چې په ټولو MPLAB XC کمپیلرونو کې په اسانۍ سره پورټ شي. د -mext=cci اختیار د دې ځانګړتیا غوښتنه کوي، د ډیرو ژبو توسیعونو لپاره بدیل ترکیب فعالوي.
- نوی کتابتون چلوونکی د کتابتون نوی چلوونکی د پخواني PIC کتابتون او د AVR avr-ar کتابتون څخه پورته موقعیت لري. دا ډرایور د GCC-archiver-style اختیارونه مني، کوم چې یا یې ژباړل شوي یا کتابتون ته لیږدول کیږي چې اجرا کیږي. نوی ډرایور د ورته سیمانټیکونو سره ورته ورته انتخابونو ته اجازه ورکوي چې د PIC یا AVR کتابتون فایل رامینځته کولو یا سمبالولو لپاره وکارول شي او پدې توګه د کتابتون غوښتنه کولو وړاندیز شوې لار ده. که د میراثي پروژو لپاره اړتیا وي، پخوانی کتابتون مستقیم د زاړه طرز انتخابونو په کارولو سره بلل کیدی شي چې دا په پخوانیو کمپیلر نسخو کې منل شوی.
د مهاجرت مسلې
لاندې هغه ځانګړتیاوې دي چې اوس د کمپیلر لخوا په مختلف ډول اداره کیږي. دا بدلونونه ممکن ستاسو د سرچینې کوډ کې تعدیل ته اړتیا ولري که چیرې دې کمپیلر نسخې ته کوډ پورټ کړئ. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه په ګوته کوي ترڅو د تعقیب شوي بدلونونو ملاتړ وکړي.
نسخه 2.45
هیڅ نه.
نسخه 2.41
ناسم fma افعال لرې کړل (XC8-2913) د C99 معیاري کتابتون ( ) په یو واحد ګردي کولو کې د لامحدود دقیقیت سره ضرب-اضافه محاسبه نه کړه، بلکه د هر عملیات سره د ګردي غلطۍ راټولول. دا دندې د چمتو شوي کتابتون څخه لرې شوي دي.
نسخه 2.40
هیڅ نه.
نسخه 2.39 (فعال خوندیتوب خوشې کول)
هیڅ نه.
نسخه 2.36
هیڅ نه.
نسخه 2.35
- د سټینګ څخه د اډو اداره کول (XC8-2420) د نورو XC کمپیلرونو سره د یووالي ډاډ ترلاسه کولو لپاره، د XC8 سټینګ-ټو افعال لکه strtol() وغيره، به نور هڅه ونکړي چې د ان پټ سټینګ بدل کړي که چیرې ټاکل شوی اساس له 36 څخه لوی وي او پرځای به یې تنظیم کړي. د C معیار د دندو چلند نه مشخص کوي کله چې دا اساس ارزښت ډیر شي.
- د نامناسب سرعت اصلاح کول د طرزالعمل خلاصون اصلاح کول فعال شوي و کله چې د 3 کچه غوره کول (-O3). دا اصلاح کول د کوډ سرعت په لګښت د کوډ اندازه کموي، نو باید ترسره شوي نه وي. هغه پروژې چې د دې اصلاح کولو کچه کاروي ممکن د کوډ اندازې او اجرا کولو سرعت کې توپیرونه وګوري کله چې د دې خوشې کیدو سره جوړ شي.
- د کتابتون فعالیت د ډیری معیاري C کتابتون دندو لپاره کوډ اوس د مایکروچپ یونیفایډ معیاري کتابتون څخه راځي، کوم چې ممکن په ځینو شرایطو کې د پخواني avr-libc کتابتون لخوا چمتو شوي په پرتله مختلف چلند ښکاره کړي. د مثال لپارهampل، دا نور اړین ندي چې د lprintf_flt کتابتون (-lprintf_flt اختیار) سره اړیکه ونیسئ ترڅو د فلوټ فارمیټ مشخص کونکو لپاره فارمیټ شوي IO ملاتړ فعال کړئ. د مایکروچپ متحد معیاري کتابتون سمارټ IO ځانګړتیاوې دا اختیار بې ځایه کوي. برسېره پردې، د تار او حافظې د کارونو لپاره د _P ضمیمه شوي معمولونو کارول (د بیلګې په توګه strcpy_P() etc.. چې په فلش کې د کنسټ تارونو کار کوي نور اړین ندي. معیاري C معمولونه (د مثال په توګه strcpy() به د داسې ډیټا سره سم کار وکړي کله چې د کانسټ ډیټا-ان-پروګرام-میموري فیچر فعال شي.
نسخه 2.32
هیڅ نه.
نسخه 2.31
هیڅ نه.
نسخه 2.30
هیڅ نه.
نسخه 2.29 (فعال خوندیتوب خوشې کول)
هیڅ نه.
نسخه 2.2
د DFP ترتیب بدل شوی تالیف کونکی اوس یو مختلف ترتیب په غاړه اخلي چې د DFPs (د وسیلې کورنۍ کڅوړې) لخوا کارول کیږي. دا به پدې معنی وي چې یو زوړ DFP ممکن د دې خوشې کیدو سره کار ونکړي ، او زاړه تالیف کونکي به ونه شي کولی وروستي DFPs وکاروي.
نسخه 2.19 (فعال خوندیتوب خوشې کول)
هیڅ نه.
نسخه 2.10
هیڅ نه
نسخه 2.05
د پروګرام په حافظه کې Const څیزونه په یاد ولرئ چې د ډیفالټ له مخې، د کانسټ کیفیت لرونکي توکي به د پروګرام په حافظه کې ځای پر ځای شي او لاسرسی ومومي (لکه څنګه چې دلته تشریح شوي). دا به ستاسو د پروژې اندازه او اجرا کولو سرعت اغیزه وکړي، مګر باید د RAM کارول کم کړي. دا فیچر غیر فعال کیدی شي، که اړتیا وي، د -mno-const-data-in-progmem اختیار په کارولو سره.
نسخه 2.00
- د کنفیګریشن فیوزونه د وسیلې کنفیګریشن فیوز اوس کولی شي د کنفیګ پراګما په کارولو سره برنامه شي او د فیوز حالت مشخص کولو لپاره د ترتیب ارزښت جوړه تعقیب کړي ، د مثال په توګه #pragma config WDTON = SET #pragma config BODLEVEL = BODLEVEL_4V3
- مطلق څیزونه او افعال اوس اوس د CCI __at(address) مشخص کونکي په کارولو سره په حافظه کې په ځانګړي پته کې ځای په ځای کیدی شي، د مثال لپاره.ampLe:
- #شامل
int foobar __at(0x800100);
char __at(0x250) getID(int offset) { … }
د دې مشخص کونکي دلیل باید یو ثابت وي چې د پتې استازیتوب کوي په کوم کې چې لومړی بایټ یا لارښوونې به ځای په ځای شي. د RAM پتې د 0x800000 د آف سیٹ په کارولو سره ښودل شوي. د دې خصوصیت کارولو لپاره CCI فعال کړئ.
- #شامل
- د نوي مداخلې فنکشن ترکیب اوس د CCI __interrupt(num) مشخصات مني ترڅو دا په ګوته کړي چې C فنکشنونه د مداخلې هینډلرونه دي. مشخص کوونکی د مداخلې شمیره اخلي، د مثال لپارهample: #شامل باطل __مداخله(SPI_STC_vect_num) spi_Isr(باطل) { … }
ثابتې مسلې
لاندې اصالحات دي چې په کمپیلر کې شوي دي. دا ممکن په تولید شوي کوډ کې بګونه حل کړي یا د کمپیلر عملیات هغه ته بدل کړي کوم چې د کارونکي لارښود لخوا ټاکل شوي یا مشخص شوي. په فرعي سرلیکونو کې د نسخې شمیره د لومړي تالیف کونکي نسخه په ګوته کوي ترڅو د تعقیب مسلو لپاره اصلاحات ولري. په سرلیک کې بریکٹ شوي لیبلونه د تعقیب ډیټابیس کې د دې مسلې پیژندنه ده. دا ممکن ګټور وي که تاسو اړتیا لرئ د مرستې سره اړیکه ونیسئ.
په یاد ولرئ چې د وسیلې ځینې ځانګړي مسلې د وسیلې سره تړلي د وسیلې کورنۍ پیک (DFP) کې سم شوي. د DFPs کې د بدلونونو او وروستي کڅوړو ډاونلوډ کولو لپاره د معلوماتو لپاره د MPLAB پیک مدیر وګورئ.
نسخه 2.45
- د رومینګ جواز ناکامي (XCLM-235) روم شوي جوازونه د 2.28 څخه وروسته د glibc نسخو په کارولو سره په لینکس پلیټ فارمونو کې په سمه توګه کار کولو کې پاتې راغلل.
- د جوړښتونو د صفونو سره داخلي تېروتنه (XC8-3069) کله چې د جوړښت څو اړخیزه سرې غړي پروسس شوي، د پتې ځای کوالیفیر په سمه توګه سر ته نه و تبلیغ شوی. دا د پتې ځای کې وړ معلوماتو کې بې توپیره او د داخلي تالیف کونکي تېروتنې لامل شو. دا حالت سم شوی دی.
- بد لیکل غیر پیل شوي جریانونو ته (ML-353, XC8-3100) که چیرې معیاري محصول/غلطي جریانونه په ښکاره ډول د FDEV_SETUP_STREAM یا _init_stdout/_init_stderr په کارولو سره تنظیم شوي نه وي ، نو دوی ته د لیکلو هڅه د نامعلوم چلند پایله وه. دا د stdlib دندو څخه لیکنې هم اغیزه کوي ، لکه pererror(). دې جریانونو ته کومې لیکنې مخکې له دې چې پیل شوي وي اوس به له پامه غورځول شي.
- نه ملاتړ شوی موډیفیر (XC8-2505) د avr-libc کتابتون د پرنټف سټایل تبادلې مشخصاتو کې د * modifier ملاتړ نه کوي، د مثال لپارهample "%.*f" دا اوس د مایکروچپ یونیفایډ معیاري کتابتون په معرفي کولو سره ملاتړ کیږي.
- ډیری غیر پیل شوي اخطارونه (XC8-2409) تالیف کونکی ډیری ورته ورته خبرداری پیغامونه خپروي کله چې د کنسټ سرې سره مخ کیږي چې پیل شوی نه و. پیغام باید یوازې یو ځل خپور شوی وای، کوم چې اوس هغه حالت دی کله چې دا حالت واقع کیږي.
نسخه 2.41
- په وینټورا کې د ډونګل مسلې (XC8-3088) د کمپیلر جواز ورکولو لپاره کارول شوي ډونګلز ممکن د macOS وینټورا کوربه توب په سمه توګه نه وي لوستل شوي ، د جواز ورکولو ناکامۍ پایله. د 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 راجستر د کنفیګریشن بدلون محافظت (CCP) لاندې و او د دې توان نه درلود چې کارول شوي پاڼې ته IO SFR تنظیم کړي. د const-data-in-config-mapped-progmem تالیف کونکي ځانګړتیا لخوا. د AVR-Ex_DFP نسخه 2.2.55 کې شوي بدلونونه به د چلولو وخت پیل کولو کوډ ته اجازه ورکړي چې دې راجستر ته په سمه توګه ولیکي.
- د فلش نقشه کولو څخه د مخنیوي لپاره د DFP بدلونونه (XC8-2847) د فلش نقشه کولو وسیلې ځانګړتیا سره د یوې ستونزې لپاره د کار په شاوخوا کې چې په AVR128DA28/32/48/64 سیلیکون ایرراټا (DS80000882) کې راپور شوي پلي شوي. د Const-data-in-config-mapped-progmem کمپیلر فیچر به د اغیزمنو وسیلو لپاره د ډیفالټ لخوا نه پلي کیږي، او دا بدلون به په AVR-Dx_DFP نسخه 2.2.160 کې څرګند شي.
- د sinhf یا coshf (XC8-2834) سره د غلطۍ رامینځته کول د sinhf() یا coshf() د کتابتون د کارونو د کارولو هڅې د یوې لینک خطا په پایله کې رامینځته شوي، د یوې نا تعریف شوي حوالې تشریح کول. راجع شوی ورک شوی فعالیت اوس د کمپیلر توزیع کې شامل شوی.
- د نوپا (XC8-2833) سره د نوپا خاصیت په کارولو سره غلطۍ رامینځته کړئ د داسې فنکشن سره چې د دې راټولونکي نوم یې د __asm__() په کارولو سره مشخص شوی د راټولونکي څخه د خطا پیغامونه رامینځته کړي. دا ترکیب ممکن نه دی.
- د پوائنټر دلیلونو سره د متغیر فعالیت ناکامي (XC8-2755, XC8-2731) د متغیر شمیر دلیلونو سره فنکشنونه تمه لري 24-bit (__memx ډول) پوائنټرونه د متغیر دلیل لیست کې تیریږي کله چې د کانسټ ډیټا-ان-پروګم خصوصیت وي فعال شوی هغه دلیلونه چې د ډیټا حافظې ته اشاره کوي د 16-bit شیانو په توګه تیریدل ، د کوډ ناکامۍ لامل کیږي کله چې دوی په نهایت کې لوستل شوي. کله چې د const-data-in-progmem فیچر فعال شي، ټول 16-bit پوائنټر دلیلونه اوس په 24-bit پوائنټرونو بدل شوي.
- د strtoxxx کتابتون فعالیت ناکامي (XC8-2620) کله چې د کانسټ ډیټا-ان-پروګم فیچر فعال شوی و، د strtoxxx کتابتون افعالو کې د پای پیرامیټ په سمه توګه نه و تازه شوی د سرچینې تار دلیلونو لپاره چې د پروګرام حافظه کې نه وي.
- د ناسمو کاسټونو لپاره خبرتیاوې (XC8-2612) تالیف کونکی به اوس یوه تېروتنه خپره کړي که چیرې د کانسټ ان-پروګم خصوصیت فعال شوی وي او د سټینګ لیک پته په واضح ډول د ډیټا پته ځای ته کاسټ شوې وي (د کانسټ کوالیفیر پریښودل) ، د مثال لپارهample، (uint8_t *) "سلام نړۍ!" . یو خبرتیا مسله ده که چیرې پته غلطه وي کله چې د کانسټ ډیټا پوائنټر په واضح ډول د ډیټا پته ځای ته کاسټ شي.
- د غیر پیل شوي کانسټیټ څیزونو ځای په ځای کول (XC8-2408) غیر پیل شوي او کنسټ بې ثباته شیان
په هغو وسیلو کې د برنامه حافظه کې ندي ځای پرځای شوي چې د دوی د برنامه حافظې ټوله یا برخه د ډیټا پته ځای کې نقشه کوي. د دې وسیلو لپاره، دا ډول توکي اوس د پروګرام حافظه کې ځای پر ځای شوي، د دوی عملیات د نورو وسیلو سره مطابقت لري.
نسخه 2.39 (فعال خوندیتوب خوشې کول)
هیڅ نه.
نسخه 2.36
د ځنډولو په وخت کې تېروتنه (XC8-2774) په ډیفالټ وړیا موډ اصلاح کې کوچني بدلونونه د ځنډ رامینځته شوي فنکشنونو ته د عملیاتي توضیحاتو دوامداره فولډ کولو مخه نیسي ، چې په پایله کې یې د غیر مستقل په توګه چلند کیږي او خطا یې رامینځته کوي: __builtin_avr_delay_cycles د تالیف وخت تمه کوي دوامداره
نسخه 2.35
- د __at (XC8-2653) په کارولو سره پرله پسې تخصیص په یوه برخه کې د ورته نوم سره د ډیری شیانو ځایونه او د __at() کارول په سمه توګه کار نه کوي. د مثال لپارهampLe:
const char arr1[] __attribute__((section(“.mysec”))) __at (0x500) = {0xAB, 0xCD}; const char arr2[] __attribute__((section(“.mysec”))) = {0xEF, 0xFE}; باید arr2 سمدلاسه د arr1 وروسته ځای په ځای کړي - د برخې پیل پتې مشخص کول (XC8-2650) د -Wl، – برخې - پیل اختیار په خاموشۍ سره د نومول شوي پیل پته کې برخې ځای په ځای کولو کې پاتې راغلی. دا مسله د هر ډول دودیز نوم شوي برخې لپاره حل شوې؛ په هرصورت، دا به د معیاري برخو لپاره کار ونکړي، لکه متن یا .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 غلط مداخله کوډ (XC8-2465) کله چې د ATtiny وسیلو لپاره جوړول او اصلاح کول غیر فعال شوي (-O0) ، د مداخلې افعال ممکن د حد څخه بهر عملیات پیل کړي
- هغه اختیارونه چې له لارې نه تیریږي (XC8-2452) کله چې د -Wl اختیار د ډیری کوما سره جلا شوي لینکر اختیارونو سره کارول کیږي، د لینکر ټول اختیارونه لینکر ته نه لیږدول کیږي.
- په غیر مستقیم ډول د برنامه حافظې لوستلو تېروتنه (XC8-2450) په ځینو مواردو کې ، تالیف کونکي داخلي تېروتنه رامینځته کړې (د نه پیژندلو insn) کله چې له پوائنټر څخه د برنامې حافظې ته د دوه بایټ ارزښت لوستل
نسخه 2.32
د کتابتون دوهم لاسرسی ناکامیږي (XC8-2381) د موجوده کتابتون آرشیف ته د لاسرسي لپاره د دوهم ځل لپاره د xc8-ar.exe کتابتون آرشیور د وینډوز نسخه غوښتنه کول ممکن د غلط پیغام نوم بدلولو کې پاتې راتلل ناکام شوي وي.
نسخه 2.31
د نه تشریح شوي کمپیلر ناکامي (XC8-2367) کله چې په وینډوز پلیټ فارمونو کې چلیږي چې سیسټم لنډمهاله لارښود یوې لارې ته ټاکل شوی و چې په کې یوه نقطه شامله وه. کرکټر، کمپیلر ممکن په اجرا کولو کې پاتې راغلی وي.
نسخه 2.30
- نړیوال لیبلونه د (XC8-2299) د لاس لیکل شوي اسمبلۍ کوډ څخه وروسته له مینځه وړل شوي چې نړیوال لیبلونه د مجلس په ترتیبونو کې ځای په ځای کوي چې د طرزالعمل خلاصون لخوا رامینځته شوي ممکن په سمه توګه ځای په ځای شوي ندي.
- د آرامۍ حادثې (XC8-2287) د -mrelax اختیار کارول ممکن د لینکر د خرابیدو لامل شوی وي کله چې د tail jump آرامۍ اصلاح کولو هڅه کوله د ret لارښوونې لرې کړي چې د یوې برخې په پای کې نه وې.
- کریش کله چې لیبلونه د ارزښتونو په توګه اصلاح کول (XC8-2282) کوډ د "ارزښتونو په توګه لیبلونه" په کارولو سره د GNU C ژبې توسیع ممکن د طرزالعمل خلاصون اصلاحونه د خرابیدو لامل شوي وي ، د رینج سپانز فکس اپ غلطی سره.
- داسې نه ده const (XC8-2271) د strstr() او نورو دندو لپاره پروټوټایپونه کله چې د کانسټ -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) لخوا نه بدلېدونکي د لینکر آرامۍ د کود یا زنګ لارښوونو لپاره ندي رامینځته شوي چې هدف ته د رسیدو وړ وي که چیرې آرام وي.
- ورک شوی فعالیت (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) هغه پروګرامونه چې د شته RAM څخه زیات وي په ځینو حاالتو کې د کمپیلر لخوا ندي کشف شوي، په پایله کې د چلولو کوډ ناکامي.
- د فلش حافظه پریښودل (XC8-1792) د avrxmega3 او avrtiny وسیلو لپاره، د فلش حافظې برخې ممکن د MPLAB X IDE لخوا غیر پروګرام شوي پاتې شوي وي.
- د اصلي اجرا کولو کې پاتې راتلل (XC8-1788) په ځینو حاالتو کې چیرې چې برنامه هیڅ نړیوال تغیرات ندي تعریف شوي ، د چلولو وخت پیل کولو کوډ نه و وتلی او اصلي () فنکشن ته هیڅکله نه و رسیدلی.
- د حافظې ناسم معلومات (XC8-1787) د avrxmega3 او avrtiny وسیلو لپاره، د avr-size برنامه راپور ورکوي چې یوازې د لوستلو ډیټا د برنامې حافظې پرځای رام مصرفوي.
- د غلط پروګرام حافظه لوستل (XC8-1783) پروژې د وسیلو لپاره راټول شوي د پروګرام حافظې سره د ډیټا پته ځای کې نقشه شوي او دا چې د PROGMEM میکرو/ځانګړتیا په کارولو سره شیان تعریفوي ممکن دا توکي له غلط ادرس څخه لوستل شوي وي.
- د صفاتو سره داخلي تېروتنه (XC8-1773) داخلي تېروتنه رامنځ ته شوه که تاسو د __at() یا attribute() ټوکنونو سره د پوائنټر نوم او بې ځایه شوي ډول په منځ کې د پوائنټر توکي تعریف کړئ، د مثال لپاره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 جمع کونکی ممکن هغه وخت ټکر شوی وي کله چې کمپیلر د اوبنټو 18 لاندې چلول شوی و.
- هغه شیان چې پاک شوي ندي (XC8-1752) غیر پیل شوي جامد ذخیره کولو مودې توکي ممکن د چلولو وخت پیل کولو کوډ لخوا نه وي پاک شوي.
- د متضاد وسیلې مشخصات له پامه غورځول شوي (XC8-1749) کله چې د وسیلې ډیری مشخصاتو اختیارونه کارول شوي او مختلف وسیلې یې په ګوته کړي ، کمپیلر کومه تېروتنه نه وه رامینځته کړې.
- د هېپ په واسطه د حافظې فساد (XC8-1748) د __heap_start سمبول په غلطه توګه تنظیم شوی و، چې په پایله کې د عام متغیرونو احتمال د هپ لخوا فاسد شوی و.
- د لینکر د ځای په ځای کولو تېروتنه (XC8-1739) ممکن د لینکر د ځای پرځای کولو تېروتنه هغه وخت خپره شوې وي کله چې کوډ کې rjmp یا rcal د هدف سره دقیقا 4k بایټ لرې وي.
نسخه 2.00
هیڅ نه.
پیژندل شوي مسایل
لاندې د کمپیلر په عملیاتو کې محدودیتونه دي. دا ممکن د کوډ کولو عمومي محدودیتونه وي، یا د کارونکي لارښود کې موجود معلوماتو څخه انحراف وي. په سرلیک کې بریکٹ شوي لیبلونه د تعقیب ډیټابیس کې د دې مسلې پیژندنه ده. دا ممکن ګټور وي که تاسو اړتیا لرئ د مرستې سره اړیکه ونیسئ. هغه توکي چې لیبلونه نلري هغه محدودیتونه دي چې د مودي عملیات تشریح کوي او احتمال لري چې د تل لپاره اغیزمن پاتې شي.
د MPLAB X IDE ادغام
- د MPLAB IDE ادغام که کمپیلر باید د MPLAB IDE څخه وکارول شي ، نو تاسو باید د کمپیلر نصبولو دمخه MPLAB IDE نصب کړئ.
- د اری ډیبګ معلومات (XC8-3157) د کمپیلر لخوا تولید شوي ډیبګ معلومات د __memx پته ځای کې د صفونو لپاره د اعتراض ډول په سمه توګه نه بیانوي. دا به په IDE کې د څیز د مشاهدې مخه ونیسي.
د کوډ تولید
- د سیګفالټ سره د برخې - اینکرز اختیار (XC8-3045) برنامه چې د متغیر دلیل لیستونو سره دندې تعریفوي او دا چې د -fsection-anchors اختیار کاروي ممکن د داخلي تالیف کونکي غلطي رامینځته کړي: د قطع کولو غلطی
- ډیبګ معلومات له ترکیب څخه بهر (XC8-2948) کله چې د لینکر آرامۍ اصلاح لارښوونې کموي (د مثال لپارهampد rcall لارښوونو ته د زنګ ووهئ)، د نقشې په نښه کولو لپاره د سرچینې لاین ممکن په همغږي کې پاتې نشي کله چې په یوه برخه کې له یو څخه ډیر کم شوي عملیات شتون ولري. په لاندې مثال کېample، د foo لپاره دوه زنګونه شتون لري چې د خپلو اړوندو تلیفونونو لپاره آرامۍ پای ته رسوي.
- د PA حافظې تخصیص ناکامي (XC8-2881) کله چې د طرزالعمل خلاصون اصلاح کونکي کاروي ، لینکر ممکن د حافظې تخصیص غلطی راپور کړي کله چې د کوډ اندازه په وسیله کې د موجود برنامې حافظې مقدار ته نږدې وي ، پداسې حال کې چې برنامه باید د دې وړتیا ولري چې شتون ولري ځای
- دومره هوښیار نه دی Smart-IO (XC8-2872) د کمپیلر سمارټ-io ځانګړتیا به د snprintf فنکشن لپاره معتبر مګر فرعي غوره کوډ رامینځته کړي که چیرې د کانسټ ډیټا-ان-پروګم خصوصیت غیر فعال شوی وي یا که وسیله خپل ټول لري. فلش د ډیټا حافظه کې نقشه شوې.
- حتی لږ سمارټ Smart-IO (XC8-2869) د کمپیلر سمارټ-io ځانګړتیا به د اعتبار وړ مګر فرعي غوره کوډ تولید کړي کله چې -flto او -fno-builtin اختیارونه دواړه کارول کیږي.
- د Suboptimal یوازې د لوستلو ډیټا ځای پرځای کول (XC8-2849) لینکر اوس مهال د APPCODE او APPDATA حافظې برخو څخه خبر نه دی، او نه هم د حافظې په نقشه کې د [نه-]د لوستلو په وخت کې د لیکلو ویش. د پایلې په توګه، لږ چانس شتون لري چې لینکر ممکن د حافظې په نا مناسبه سیمه کې یوازې د لوستلو ډاټا تخصیص کړي. د غلط ځای پر ځای شوي ډیټا چانس ډیریږي که چیرې د کانسټ ډیټا-ان-پروګم خصوصیت فعال شوی وي ، په ځانګړي توګه که چیرې د کانسټ ډیټا-ان-کنفیګ-نقشې-پروګم خصوصیت هم فعال شوی وي. دا ځانګړتیاوې د اړتیا په صورت کې غیر فعال کیدی شي.
- د آبجیکٹ فایل پروسس کولو ترتیب (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 د هیکساډیسیمل فلوټس (XC8-2626) لپاره صفر بیرته راګرځي (XCXNUMX-XNUMX) د کتابتون افعال strtof() et al او scanf() et al، به تل د هیکساډیسیمل فلوټینګ پوائنټ شمیره بدلوي چې صفر ته یو exponent نه مشخص کوي. د مثال لپارهample: strtof("0x1"، &endptr)؛ ارزښت به 0 بیرته راولي، نه 1.
- د غلط سټیک مشاور پیغام رسول (XC8-2542, XC8-2541) په ځینو مواردو کې، د سټیک مشاور خبرداری د تکرار یا غیر ټاکل شوي سټیک په اړه چې کارول کیږي (احتمالا د alloca()) کارولو له لارې نه خپریږي.
- د ډپلیکیټ انټرپټ کوډ (XC8-2421) سره ناکامي چیرې چې له یو څخه ډیر مداخلې فعالیت ورته بدن لري ، کمپیلر ممکن د یو مداخلې فنکشن لپاره محصول ولري بل ته زنګ ووهي. دا به په پایله کې ټول د کال-کلوبر شوي راجسترونه په غیر ضروري توګه خوندي شي، او مداخلې به حتی مخکې له دې چې د اوسني مداخلې هینډلر ایپیلوګ پیل شي فعال شي، کوم چې د کوډ ناکامۍ لامل کیدی شي.
- د ناسم DFP لارې (XC8-2376) سره خراب محصول که چیرې تالیف کونکي د غلط DFP لارې سره وغوښتل شي او د ټاکل شوي وسیلې لپاره 'ځانګړی' فایل شتون ولري ، کمپیلر د ورک شوي وسیلې کورنۍ کڅوړې راپور نه ورکوي او پرځای یې 'ځانګړي' غوره کوي. فایل، کوم چې بیا د ناسم محصول لامل کیدی شي. د 'سپیک' فایلونه ممکن د توزیع شوي DFPs سره تازه نه وي او یوازې د داخلي کمپیلر ازموینې سره د کارولو لپاره ټاکل شوي.
- د حافظې اوورلیپ نه کشف شوی (XC8-1966) کمپیلر د __section() مشخص کونکي په کارولو سره د __at()) او نورو شیانو په کارولو سره په پته کې د مطلق جوړ شوي شیانو حافظه اوورلیپ نه کشف کوي او دا د ورته پتې سره تړلي دي.
- د کتابتون د دندو او __memx (XC8-1763) په نامه د libgcc فلوټ فنکشنونو سره د __memx پته ځای کې د دلیل سره ناکامي ممکن ناکام شي. په یاد ولرئ چې د کتابتون معمولونه د ځینې C آپریټرانو څخه ویل کیږي، نو د مثال لپارهample، لاندې کوډ اغیزمن شوی دی: بیرته راګرځئ regFloatVar > memxFloatVar؛
- د Libgcc محدودیت پلي کول (AVRTC-731) د ATTiny4/5/9/10/20/40 محصولاتو لپاره، په libgcc کې د معیاري C / ریاضي کتابتون پلي کول خورا محدود یا شتون نلري.
- د پروګرام حافظې محدودیتونه (AVRTC-732) د 128 kb څخه هاخوا د برنامې حافظې عکسونه د اوزار چین لخوا ملاتړ کیږي؛ په هرصورت، د لینکر د بندیدو پیژندل شوي مثالونه شتون لري پرته له آرامۍ او پرته له کوم ګټور خطا پیغام پرته د اړتیا وړ فنکشن سټبونو رامینځته کولو پرځای کله چې د -mrelax اختیار کارول کیږي.
- د نوم ځای محدودیتونه (AVRTC-733) نومول شوي پته ځایونه د وسیلې چین لخوا ملاتړ کیږي، د کارونکي لارښود برخه کې ذکر شوي محدودیتونو تابع دي ځانګړي ډول کوالیفائر.
- د وخت زونونه د کتابتون فعالیتونه GMT فرض کوي او د ځایی وخت زونونو ملاتړ نه کوي، په دې توګه localtime() به د gmtime() په څیر ورته وخت بیرته راستانه شي، د مثال لپارهample.
اسناد / سرچینې
![]() |
د مایکروچپ XC8 C کمپیلر نسخه 2.45 د AVR MCU لپاره د ریلیز یادښتونه [pdf] لارښوونې د AVR MCU، XC8 C، XC8 C کمپیلر نسخه 2.45 د AVR MCU لپاره د ریلیز یادښتونه، د AVR MCU لپاره د کمپیلر نسخه 2.45 ریلیز نوټونه، د AVR MCU لپاره نسخه 2.45 ریلیز نوټونه، د AVR MCU لپاره ریلیز نوټونه، د AVRAV MCU لپاره نوټونه |