مائکروچپ MPLAB XC8 C کمپائلر سافٹ ویئر 

مائکروچپ MPLAB XC8 C کمپائلر سافٹ ویئر

اس دستاویز میں MPLAB XC8 C کمپائلر سے متعلق اہم معلومات شامل ہیں جب مائیکروچپ اے وی آر ڈیوائسز کو نشانہ بنایا جاتا ہے۔
براہ کرم اس سافٹ ویئر کو چلانے سے پہلے اسے پڑھیں۔ اگر آپ 8 بٹ PIC ڈیوائسز کے لیے کمپائلر استعمال کر رہے ہیں تو PIC دستاویز کے لیے MPLAB XC8 C کمپائلر کے ریلیز نوٹس دیکھیں۔

مشمولات چھپائیں

ختمview

تعارف

Microchip MPLAB® XC8 C کمپائلر کی یہ ریلیز کئی نئی خصوصیات، بگ فکسز، اور نئی ڈیوائس سپورٹ پر مشتمل ہے۔

تعمیر کی تاریخ

اس کمپائلر ورژن کی باضابطہ تعمیر کی تاریخ 3 جولائی 2022 ہے۔

پچھلا ورژن

پچھلا MPLAB XC8 C کمپائلر ورژن 2.39 تھا، ایک فنکشنل سیفٹی کمپائلر، جو 27 جنوری 2022 کو بنایا گیا تھا۔ پچھلا معیاری کمپائلر ورژن 2.36 تھا، جو 27 جنوری 2022 کو بنایا گیا تھا۔

فنکشنل سیفٹی دستی

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 بٹ ورژن شامل ہیں: Microsoft Windows 10 کے پروفیشنل ایڈیشن؛ اوبنٹو 18.04؛ اور macOS 10.15.5۔ ونڈوز کے لیے بائنریز کوڈ پر دستخط کیے گئے ہیں۔ میک او ایس کے لیے بائنریز کوڈ پر دستخط شدہ اور نوٹریائز کیا گیا ہے۔

اگر آپ نیٹ ورک لائسنس سرور چلا رہے ہیں، تو صرف کمپائلرز کے تعاون سے آپریٹنگ سسٹم والے کمپیوٹرز لائسنس سرور کی میزبانی کے لیے استعمال ہو سکتے ہیں۔ xclm ورژن 2.0 کے مطابق، نیٹ ورک لائسنس سرور کو Microsoft Windows Server پلیٹ فارم پر انسٹال کیا جا سکتا ہے، لیکن لائسنس سرور کو آپریٹنگ سسٹم کے سرور ورژن پر چلانے کی ضرورت نہیں ہے۔

تعاون یافتہ آلات

یہ کمپائلر تمام 8 بٹ AVR MCU ڈیوائسز کو سپورٹ کرتا ہے جو ریلیز کے وقت معلوم ہوتے ہیں۔ تمام معاون آلات کی فہرست کے لیے (مرتب کی دستاویز ڈائریکٹری میں) دیکھیں۔ یہ files ہر ڈیوائس کے لیے کنفیگریشن بٹ سیٹنگز بھی لسٹ کرتا ہے۔

ایڈیشن اور لائسنس اپ گریڈ

MPLAB XC8 کمپائلر کو لائسنس یافتہ (PRO) یا بغیر لائسنس (مفت) پروڈکٹ کے طور پر فعال کیا جا سکتا ہے۔ اپنے کمپائلر کو لائسنس دینے کے لیے آپ کو ایکٹیویشن کلید خریدنے کی ضرورت ہے۔ لائسنس مفت پروڈکٹ کے مقابلے میں اعلیٰ سطح کی اصلاح کی اجازت دیتا ہے۔ بغیر لائسنس کے کمپائلر کو بغیر لائسنس کے غیر معینہ مدت تک چلایا جا سکتا ہے۔

ایک MPLAB XC8 فنکشنل سیفٹی کمپائلر کو مائیکرو چِپ سے خریدے گئے فنکشنل سیفٹی لائسنس کے ساتھ چالو کیا جانا چاہیے۔ کمپائلر اس لائسنس کے بغیر کام نہیں کرے گا۔ ایک بار چالو ہونے کے بعد، آپ کسی بھی اصلاح کی سطح کو منتخب کر سکتے ہیں اور کمپائلر کی تمام خصوصیات استعمال کر سکتے ہیں۔ MPLAB XC فنکشنل سیفٹی کمپائلر کا یہ ریلیز نیٹ ورک سرور لائسنس کو سپورٹ کرتا ہے۔
لائسنس کی اقسام اور لائسنس کے ساتھ کمپائلر کی تنصیب کے بارے میں معلومات کے لیے MPLAB XC C Compilers (DS50002059) کی تنصیب اور لائسنسنگ دستاویز دیکھیں۔

تنصیب اور ایکٹیویشن

اس کمپائلر کے ساتھ شامل تازہ ترین لائسنس مینیجر کے بارے میں اہم معلومات کے لیے ہجرت کے مسائل اور حدود کے حصے بھی دیکھیں۔
اگر MPLAB IDE استعمال کر رہے ہیں، تو اس ٹول کو انسٹال کرنے سے پہلے MPLAB X IDE کا تازہ ترین ورژن 5.0 یا اس کے بعد کا انسٹال کرنا یقینی بنائیں۔ کمپائلر انسٹال کرنے سے پہلے IDE کو چھوڑ دیں۔ .exe (Windows)، .run (Linux) یا ایپ (macOS) کمپائلر انسٹالر ایپلیکیشن چلائیں، جیسے XC8-1.00.11403-windows.exe اور اسکرین پر دی گئی ہدایات پر عمل کریں۔
پہلے سے طے شدہ انسٹالیشن ڈائرکٹری کی سفارش کی جاتی ہے۔ اگر آپ لینکس استعمال کر رہے ہیں، تو آپ کو ٹرمینل اور روٹ اکاؤنٹ سے کمپائلر انسٹال کرنا چاہیے۔ ایڈمنسٹریٹر کی مراعات کے ساتھ ایک macOS اکاؤنٹ استعمال کرکے انسٹال کریں۔

ایکٹیویشن اب انسٹالیشن کے لیے الگ سے کی جاتی ہے۔ مزید معلومات کے لیے MPLAB® XC C Compilers (DS52059) کے لیے دستاویز کا لائسنس مینیجر دیکھیں۔

اگر آپ تشخیصی لائسنس کے تحت کمپائلر چلانے کا انتخاب کرتے ہیں، تو اب آپ کو تالیف کے دوران ایک انتباہ ملے گا جب آپ اپنی تشخیص کی مدت ختم ہونے کے 14 دنوں کے اندر ہوں گے۔ اگر آپ اپنی HPA سبسکرپشن ختم ہونے کے 14 دنوں کے اندر ہیں تو وہی وارننگ جاری کی جاتی ہے۔

XC نیٹ ورک لائسنس سرور ایک الگ انسٹالر ہے اور سنگل یوزر کمپائلر انسٹالر میں شامل نہیں ہے۔

XC لائسنس مینیجر اب تیرتے نیٹ ورک لائسنسوں کی رومنگ کو سپورٹ کرتا ہے۔ موبائل صارفین کے لیے یہ فیچر فلوٹنگ لائسنس کو مختصر مدت کے لیے نیٹ ورک سے باہر جانے کی اجازت دیتا ہے۔ اس خصوصیت کو استعمال کرتے ہوئے، آپ نیٹ ورک سے رابطہ منقطع کر سکتے ہیں اور پھر بھی اپنا MPLAB XC کمپائلر استعمال کر سکتے ہیں۔ اس خصوصیت کے بارے میں مزید جاننے کے لیے XCLM انسٹال کا دستاویز فولڈر دیکھیں۔ MPLAB X IDE میں رومنگ کو بصری طور پر منظم کرنے کے لیے ایک لائسنس ونڈو (ٹولز> لائسنس) شامل ہے۔

تنصیب کے مسائل کو حل کرنا

اگر آپ کو کسی بھی ونڈوز آپریٹنگ سسٹم کے تحت کمپائلر انسٹال کرنے میں مشکلات کا سامنا ہے تو درج ذیل تجاویز کو آزمائیں۔

  • انسٹال کو بطور ایڈمنسٹریٹر چلائیں۔
  • انسٹالر ایپلیکیشن کی اجازتوں کو 'مکمل کنٹرول' پر سیٹ کریں۔ (دائیں کلک کریں۔ file، پراپرٹیز منتخب کریں، سیکیورٹی ٹیب، صارف منتخب کریں، ترمیم کریں۔)
  • عارضی فولڈر کی اجازتوں کو "مکمل کنٹرول!

temp فولڈر کے مقام کا تعین کرنے کے لیے، %temp% کو Run کمانڈ میں ٹائپ کریں (Windows logo key + R)۔ یہ کھل جائے گا a file ایکسپلورر ڈائیلاگ اس ڈائریکٹری کو دکھاتا ہے اور آپ کو اس فولڈر کے راستے کا تعین کرنے کی اجازت دیتا ہے۔

کمپائلر دستاویزات

کمپائلر کے صارف کے رہنما HTML صفحہ سے کھولے جا سکتے ہیں جو MPLAB X IDE ڈیش بورڈ میں نیلے رنگ کے ہیلپ بٹن پر کلک کرنے پر آپ کے براؤزر میں کھلتا ہے، جیسا کہ اسکرین شاٹ میں اشارہ کیا گیا ہے۔

کمپائلر دستاویزات
اگر آپ 8-bit AVR اہداف کے لیے تعمیر کر رہے ہیں، MPLAB® XC8 C کمپائلر یوزر گائیڈ برائے AVR® MCU میں ان کمپائلر اختیارات اور خصوصیات کے بارے میں معلومات موجود ہیں جو اس فن تعمیر پر لاگو ہیں۔

کسٹمر سپورٹ

مائکروچپ اس کمپائلر ورژن کے حوالے سے بگ رپورٹس، تجاویز یا تبصروں کا خیرمقدم کرتی ہے۔ براہ کرم کسی بھی بگ رپورٹس یا فیچر کی درخواستوں کو سپورٹ سسٹم کے ذریعے بھیجیں۔

دستاویزی اپ ڈیٹس

MPLAB XC8 دستاویزات کے آن لائن اور تازہ ترین ورژنز کے لیے، براہ کرم مائیکرو چِپ کی آن لائن تکنیکی دستاویزات ملاحظہ کریں۔ webسائٹ

اس ریلیز میں نئی ​​یا اپ ڈیٹ کردہ AVR دستاویزات:

  • MUSL کاپی رائٹ نوٹس
  • MPLAB XC C کمپائلرز کو انسٹال کرنا اور لائسنس دینا (نظرثانی M)
  • ایمبیڈڈ انجینئرز کے لیے MPLAB XC8 یوزر گائیڈ - AVR MCUs (نظرثانی A)
  • MPLAB XC8 C کمپائلر یوزر گائیڈ برائے AVR MCU (نظرثانی F)
  • مائکروچپ یونیفائیڈ اسٹینڈرڈ لائبریری ریفرنس گائیڈ (نظرثانی B)

مائیکرو چِپ یونیفائیڈ اسٹینڈرڈ لائبریری ریفرنس گائیڈ مائیکرو چِپ یونیفائیڈ اسٹینڈرڈ لائبریری کی طرف سے بیان کردہ افعال کے رویے اور انٹرفیس کے ساتھ ساتھ لائبریری کی اقسام اور میکروز کے مطلوبہ استعمال کی وضاحت کرتا ہے۔ اس میں سے کچھ معلومات پہلے MPLAB® XC8 C Compiler User!'s Guide for AVR® MCU میں موجود تھیں۔ ڈیوائس کے لیے مخصوص لائبریری کی معلومات اب بھی اس کمپائلر گائیڈ میں موجود ہے۔

اگر آپ ابھی 8 بٹ ڈیوائسز اور MPLAB XC8 C کمپائلر کے ساتھ شروعات کر رہے ہیں، MPLAB® XC8 User!'s Guide for Embedded Engineers – AVR® MCUs (DS50003108) MPLAB X IDE میں پروجیکٹس ترتیب دینے اور کوڈ لکھنے کے بارے میں معلومات رکھتا ہے۔ آپ کے پہلے MPLAB XC8 C پروجیکٹ کے لیے۔ یہ گائیڈ اب کمپائلر کے ساتھ تقسیم کیا گیا ہے۔

ہیمیٹ یوزر گائیڈ کو اس ریلیز میں دستاویزات کی ڈائرکٹری میں شامل کیا گیا ہے۔ اس گائیڈ کا مقصد ان لوگوں کے لیے ہے جو ہمیٹ کو اسٹینڈ اکیلے ایپلیکیشن کے طور پر چلا رہے ہیں۔

نیا کیا ہے

درج ذیل نئی AVR-ٹارگٹ خصوصیات ہیں جن کی کمپائلر اب سپورٹ کرتا ہے۔ ذیلی سرخیوں میں ورژن نمبر پہلے مرتب کرنے والے ورژن کی طرف اشارہ کرتا ہے جو اس کے بعد آنے والی خصوصیات کی حمایت کرتا ہے۔

ورژن 2.40

نئی ڈیوائس سپورٹ سپورٹ اب درج ذیل AVR حصوں کے لیے دستیاب ہے: AT90PWM3, AVR16DD14, AVR16DD20, AVR16DD28, AVR16DD32, AVR32DD14, AVR32DD20, AVR32DD28, AVR32DD32, AVR64, AVR28, AVR64, AVR32 AVR64EA48۔
بہتر طریقہ کار خلاصہ پروسیجرل ایبسٹریکشن (PA) آپٹیمائزیشن ٹول کو بہتر بنایا گیا ہے تاکہ کوڈ جس میں فنکشن کال انسٹرکشن ( کال ریکال ) ) کا خاکہ بنایا جا سکے۔ یہ صرف اس صورت میں ہوگا جب اسٹیک کو آرگیومینٹس پاس کرنے اور فنکشن سے ریٹرن ویلیو حاصل کرنے کے لیے استعمال نہیں کیا جاتا ہے۔ اسٹیک اس وقت استعمال ہوتا ہے جب کسی فنکشن کو متغیر دلیل کی فہرست کے ساتھ کال کرتے ہوئے یا کسی ایسے فنکشن کو کال کرتے وقت جو اس مقصد کے لیے نامزد کردہ رجسٹروں سے زیادہ دلائل لیتا ہے۔ اس خصوصیت کو monk-pa-outline-calls آپشن کا استعمال کرتے ہوئے غیر فعال کیا جا سکتا ہے، یا کسی شے کے لیے طریقہ کار خلاصہ کو مکمل طور پر غیر فعال کیا جا سکتا ہے۔ file یا -monk-pa-on- کا استعمال کرکے فنکشنfile اور -mo.-pa-on-function بالترتیب، یا nipa انتساب (nipa specifier) ​​کو فنکشنز کے ساتھ منتخب طور پر استعمال کرکے

کوڈ کوریج میکرو کمپائلر اب میکرو __CODECOV کی وضاحت کرتا ہے اگر ایک درست mcodecov آپشن بیان کیا گیا ہو۔

میموری ریزرویشن آپشن xc8-cc ڈرائیور اب AVR اہداف کے لیے تعمیر کرتے وقت -mreserve=space@start: end آپشن کو قبول کرے گا۔ یہ آپشن ڈیٹا یا پروگرام میموری اسپیس میں مخصوص میموری رینج کو محفوظ رکھتا ہے، لنکر کو اس علاقے میں کوڈ یا اشیاء کو آباد کرنے سے روکتا ہے۔

ہوشیار ہوشیار IO اسمارٹ IO فنکشنز میں کئی اصلاحات کی گئی ہیں، بشمول پرنٹ ایف کور کوڈ میں عمومی موافقت، %n کنورژن سپیفائر کو ایک آزاد ویرینٹ کے طور پر علاج کرنا، ڈیمانڈ پر ورارگ پاپ روٹینز میں لنک کرنا، IO فنکشن آرگیومنٹس کو ہینڈل کرنے کے لیے جہاں ممکن ہو مختصر ڈیٹا کی اقسام کا استعمال۔ ، اور فیلڈ کی چوڑائی اور صحت سے متعلق ہینڈلنگ میں عام کوڈ کی فیکٹرنگ۔ اس کے نتیجے میں اہم کوڈ اور ڈیٹا کی بچت ہو سکتی ہے اور ساتھ ہی IO کے عمل کی رفتار میں اضافہ ہو سکتا ہے۔

ورژن 2.39 (فنکشنل سیفٹی ریلیز)

نیٹ ورک سرور لائسنس MPLAB XC8 فنکشنل سیفٹی کمپائلر کا یہ ریلیز نیٹ ورک سرور لائسنس کو سپورٹ کرتا ہے۔

ورژن 2.36

کوئی نہیں۔

ورژن 2.35

نئی ڈیوائس سپورٹ مندرجہ ذیل AVR حصوں کے لیے سپورٹ دستیاب ہے: ATTINY3224، ATTINY3226، ATTINY3227، AVR64DD14، AVR64DD20، AVR64DD28، اور AVR64DD32۔

بہتر سیاق و سباق سوئچنگ نیا -mcall-isr-prologues آپشن تبدیل کرتا ہے کہ کس طرح انٹرپٹ فنکشنز اندراج پر رجسٹروں کو محفوظ کرتے ہیں اور ان رجسٹروں کو کیسے بحال کیا جاتا ہے جب مداخلت کا معمول ختم ہوجاتا ہے۔ یہ -mcall-prologues آپشن کی طرح کام کرتا ہے، لیکن صرف مداخلتی افعال (ISRs) کو متاثر کرتا ہے۔

اس سے بھی زیادہ بہتر سیاق و سباق سوئچنگ نیا -mgas-isr-prologues آپشن چھوٹے انٹرپٹ سروس روٹینز کے لیے پیدا ہونے والے سیاق و سباق کے خارش کوڈ کو کنٹرول کرتا ہے۔ فعال ہونے پر، اس فیچر کو اسمبلر کے پاس رجسٹر کے استعمال کے لیے ISR کو اسکین کرنا ہوگا اور صرف ضرورت پڑنے پر ان استعمال شدہ رجسٹروں کو محفوظ کرنا ہوگا۔

قابل ترتیب فلیش میپنگ AVR DA اور AVR DB فیملی میں کچھ آلات میں SFR (جیسے FLMAP) ہوتا ہے جو یہ بتاتا ہے کہ پروگرام میموری کے کون سے 32k حصے کو ڈیٹا میموری میں میپ کیا جائے گا۔ نئے – mconst-data-in-config-mapped-proem آپشن کا استعمال لنکر کو ایک 32k سیکشن میں تمام کنس کوالیفائیڈ ڈیٹا رکھنے اور متعلقہ SFR رجسٹر کو خود بخود شروع کرنے کے لیے کیا جا سکتا ہے تاکہ یہ یقینی بنایا جا سکے کہ اس ڈیٹا کو ڈیٹا میموری کی جگہ میں میپ کیا گیا ہے۔ ، جہاں اس تک زیادہ مؤثر طریقے سے رسائی حاصل کی جائے گی۔

مائکروچپ یونیفائیڈ معیاری لائبریریاں تمام MPLAB XC مرتب کرنے والے ایک Microchip Unified Standard Library کا اشتراک کریں گے، جو MPLAB XC8 کی اس ریلیز کے ساتھ اب دستیاب ہے۔ MPLAB® XC8 C کمپائلر یوزر گائیڈ/یا AVR® MCU میں اب ان معیاری فنکشنز کے لیے دستاویزات شامل نہیں ہیں۔ یہ معلومات اب مائیکرو چِپ یونیفائیڈ اسٹینڈرڈ لائبریری ریفرنس گائیڈ میں مل سکتی ہیں۔ نوٹ کریں کہ avr-libc کے ذریعہ پہلے بیان کردہ کچھ فعالیت اب دستیاب نہیں ہے۔ (لائبرر دیکھیں):'۔ فعالیت…)

اسمارٹ آئی او نئی متحد لائبریریوں کے حصے کے طور پر، پرنٹ اور اسکین فیملیز میں IO فنکشنز اب ہر ایک بلڈ پر اپنی مرضی کے مطابق بنائے گئے ہیں، اس بنیاد پر کہ ان فنکشنز کو پروگرام میں کیسے استعمال کیا جاتا ہے۔ یہ پروگرام کے ذریعہ استعمال ہونے والے وسائل کو کافی حد تک کم کرسکتا ہے۔
اسمارٹ IO امداد کا اختیار سمارٹ IO فنکشنز (جیسے printf () یا scanf () کے لیے کالز کا تجزیہ کرتے وقت، کمپائلر ہمیشہ فارمیٹ سٹرنگ سے تعین نہیں کر سکتا یا کال کے لیے مطلوبہ تبادلوں کی وضاحت کرنے والے دلائل سے اندازہ نہیں لگا سکتا۔ اس سے پہلے، مرتب کرنے والا ہمیشہ کوئی قیاس نہیں کرتا تھا اور اس بات کو یقینی بناتا تھا کہ مکمل طور پر فعال IO فنکشنز فائنل پروگرام امیج میں منسلک ہوں۔ ایک نیا – msmart-io-format=fmt آپشن شامل کیا گیا ہے تاکہ اس کے بجائے کمپائلر کو سمارٹ IO فنکشنز کے ذریعے استعمال ہونے والے تبادلوں کی وضاحت کرنے والوں کے بارے میں مطلع کیا جا سکے جن کا استعمال مبہم ہے، اور ضرورت سے زیادہ طویل IO روٹینز کو منسلک ہونے سے روکتا ہے۔ (مزید تفصیلات کے لیے smart-io-format آپشن دیکھیں۔)

اپنی مرضی کے حصے لگانا پہلے، -Wl، -section-start آپشن صرف مخصوص حصے کو درخواست کردہ پتے پر رکھتا تھا جب لنکر اسکرپٹ اسی نام کے ساتھ آؤٹ پٹ سیکشن کی وضاحت کرتا تھا۔ جب ایسا نہیں تھا، تو سیکشن کو لنکر کے ذریعہ منتخب کردہ ایڈریس پر رکھا گیا تھا اور آپشن کو بنیادی طور پر نظر انداز کر دیا گیا تھا۔ اب آپشن کو تمام حسب ضرورت سیکشنز کے لیے اعزاز دیا جائے گا، چاہے لنکر اسکرپٹ سیکشن کی وضاحت نہ کرے۔ نوٹ کریں، تاہم، معیاری حصوں کے لیے، جیسے۔ متن، . بی ایس ایس یا ڈیٹا، بہترین فٹ مختص کرنے والے کے پاس اب بھی اپنی جگہ پر مکمل کنٹرول ہوگا، اور آپشن کا کوئی اثر نہیں ہوگا۔ -Wl، -Tsection=add آپشن استعمال کریں، جیسا کہ صارف کی گائیڈ میں بیان کیا گیا ہے۔

ورژن 2.32

اسٹیک گائیڈنس پی آر او کمپائلر لائسنس کے ساتھ دستیاب، کمپائلر کے اسٹیک گائیڈنس فیچر کو کسی پروگرام کے ذریعے استعمال کیے جانے والے کسی بھی اسٹیک کی زیادہ سے زیادہ گہرائی کا اندازہ لگانے کے لیے استعمال کیا جا سکتا ہے۔ یہ کسی پروگرام کے کال گراف کی تشکیل اور تجزیہ کرتا ہے، ہر فنکشن کے اسٹیک استعمال کا تعین کرتا ہے، اور ایک رپورٹ تیار کرتا ہے، جس سے پروگرام کے استعمال کردہ اسٹیک کی گہرائی کا اندازہ لگایا جا سکتا ہے۔ یہ فیچر -mchp-stack-usage کمانڈ لائن آپشن کے ذریعے فعال کیا گیا ہے۔ اسٹیک کے استعمال کا خلاصہ عملدرآمد کے بعد پرنٹ کیا جاتا ہے۔ ایک تفصیلی اسٹیک رپورٹ نقشے میں دستیاب ہے۔ file، جس کی درخواست معمول کے مطابق کی جاسکتی ہے۔

نیا ڈیوائس سپورٹ سپورٹ مندرجہ ذیل AVR حصوں کے لیے دستیاب ہے: ATTINY 427, ATTINY 424, ATTINY 426, ATTINY827, ATTINY824, ATTINY826, AVR32DB32, AVR64DB48, AVR64DB64, AVR64DB, AVR28DB, AVR32D,28, AVR64 AVR32DB32۔

پیچھے ہٹنے والا آلہ سپورٹ سپورٹ درج ذیل AVR حصوں کے لیے مزید دستیاب نہیں ہے: AVR16DA28, AVR16DA32 اور, AVR16DA48۔

ورژن 2.31

کوئی نہیں۔

ورژن 2.30

ڈیٹا کی ابتداء کو روکنے کے لیے نیا آپشن ایک نیا -mno-data-ini t ڈرائیور آپشن ڈیٹا کی ابتدا اور بی ایس ایس سیکشنز کو صاف کرنے سے روکتا ہے۔ یہ اسمبلی میں do_copy_ ڈیٹا اور d o_ clear_ bss علامتوں کے آؤٹ پٹ کو دبا کر کام کرتا ہے files، جو بدلے میں لنکر کے ذریعہ ان معمولات کو شامل کرنے سے روکے گا۔

بہتر کردہ اصلاحیں متعدد اصلاحی اصلاحات کی گئی ہیں، بشمول فالتو واپسی کی ہدایات کو ہٹانا، skip-if-bit-is ہدایات کے بعد کچھ چھلانگوں کو ہٹانا، اور بہتر طریقہ کار تجرید اور اس عمل کو دہرانے کی صلاحیت۔

اضافی اختیارات اب ان میں سے کچھ کو کنٹرول کرنے کے لیے دستیاب ہیں، خاص طور پر -f سیکشن اینکرز، جو ایک علامت کے مقابلے میں جامد اشیاء تک رسائی کی اجازت دیتا ہے۔ -mpai derations=n، جو طریقہ کار کے تجریدی تکرار کی تعداد کو 2 کے ڈیفالٹ سے تبدیل کرنے کی اجازت دیتا ہے۔ اور، -mpa- کال لاگت- شارٹ کال، جو زیادہ جارحانہ طریقہ کار کے تجرید کو انجام دیتا ہے، اس امید میں کہ لنکر لمبی کالوں کو آرام دے سکتا ہے۔ یہ آخری آپشن کوڈ کے سائز میں اضافہ کر سکتا ہے اگر بنیادی مفروضوں کا ادراک نہ ہو۔

نئی ڈیوائس سپورٹ درج ذیل AVR حصوں کے لیے سپورٹ دستیاب ہے: AVR16DA28، AVR16DA32،
AVR16DA48, AVR32DA28, AVR32DA32, AVR32DA48, AVR64DA28, AVR64DA32, AVR64DA48, AVR64DA64, AVR128DB28, AVR128DB32, AVR128DB48, AVR128DB64, AVRXNUMXDAVXNUMX

ڈیوائس سپورٹ کو واپس لیا گیا۔ مندرجہ ذیل AVR حصوں کے لیے سپورٹ مزید دستیاب نہیں ہے: ATA5272, ATA5790, ATA5790N,ATA5791,ATA5795,ATA6285,ATA6286,ATA6612C,ATA6613C,ATA6614Q, ATA6616C, ATA6617C, ATA664251Q, ATAXNUMXC, ATAXNUMXN.

ورژن 2.29 (فنکشنل سیفٹی ریلیز)

ہیڈر file کمپائلر بلٹ ان کے لیے اس بات کو یقینی بنانے کے لیے کہ کمپائلر زبان کی تصریحات جیسا کہ MISRA، ہیڈر file، جو خود بخود شامل ہے۔ ، اپ ڈیٹ کر دیا گیا ہے۔ یہ ہیڈر تمام ان بلٹ فنکشنز کے لیے پروٹوٹائپس پر مشتمل ہے، جیسے کہ _buil tin _avrnop () اور _buil tin_ avr delay_ cycles ()۔ کچھ بلٹ ان MISRA کے مطابق نہیں ہو سکتے ہیں۔ ان کو کمپائلر کمانڈ لائن میں ڈیفائن _Xe_STRICT_ MISRA شامل کرکے ختم کیا جاسکتا ہے۔ مقررہ چوڑائی کی اقسام کو استعمال کرنے کے لیے بلٹ انز اور ان کے اعلانات کو اپ ڈیٹ کر دیا گیا ہے۔

ورژن 2.20

نئی ڈیوائس سپورٹ مندرجہ ذیل AVR حصوں کے لیے سپورٹ دستیاب ہے: ATTINY1624، ATTINY1626، اور ATTINY1627۔

بہتر بہترین فٹ ایلوکیشن کمپائلر میں بہترین فٹ ایلوکیٹر (BFA) کو بہتر بنایا گیا ہے تاکہ سیکشنز کو ایک ترتیب میں مختص کیا جائے جو بہتر اصلاح کی اجازت دیتا ہے۔ BFA اب نامزد ایڈریس اسپیس کو سپورٹ کرتا ہے اور ڈیٹا کی ابتدا کو بہتر طریقے سے ہینڈل کرتا ہے۔

بہتر طریقہ کار خلاصہ طریقہ کار تجرید کی اصلاح اب مزید کوڈ کی ترتیب پر کی جاتی ہے۔ سابقہ ​​حالات جہاں اس اصلاح سے کوڈ کے سائز میں اضافہ ہو سکتا ہے، اصلاحی کوڈ کو لنکر کے کوڑے کو جمع کرنے کے عمل سے آگاہ کر کے حل کیا گیا ہے۔

اے وی آر اسمبلر کی غیر موجودگی AVR اسمبلر اب اس تقسیم کے ساتھ شامل نہیں ہے۔

ورژن 2.19 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.10

کوڈ کوریج اس ریلیز میں کوڈ کوریج کی خصوصیت شامل ہے جو اس تجزیہ میں سہولت فراہم کرتی ہے کہ کسی پروجیکٹ کے سورس کوڈ کو کس حد تک عمل میں لایا گیا ہے۔ اسے فعال کرنے کے لیے آپشن -mcodecov=ram استعمال کریں۔ آپ کے ہارڈ ویئر پر پروگرام کے نفاذ کے بعد، کوڈ کوریج کی معلومات کو ڈیوائس میں جمع کر دیا جائے گا، اور اسے MPLAB X IDE کے ذریعے کوڈ کوریج پلگ ان کے ذریعے منتقل اور ڈسپلے کیا جا سکتا ہے۔ اس پلگ ان کے بارے میں معلومات حاصل کرنے کے لیے IDE دستاویزات دیکھیں۔ #pragma mcodecov کو کوریج کے تجزیہ سے بعد کے افعال کو خارج کرنے کے لیے استعمال کیا جا سکتا ہے۔ مثالی طور پر پراگما کو شروع میں شامل کیا جانا چاہئے۔ file اس پورے کو خارج کرنے کے لیے file کوریج تجزیہ سے متبادل طور پر، خصوصیت ( (mcodecov) ) کو کوریج کے تجزیہ سے کسی مخصوص فنکشن کو خارج کرنے کے لیے استعمال کیا جا سکتا ہے۔

ڈیوائس کی تفصیل files ایک نیا آلہ file avr chipinfo کہا جاتا ہے۔ html کمپائلر ڈسٹری بیوشن کی docs ڈائرکٹری میں واقع ہے۔ یہ file کمپائلر کے ذریعہ تعاون یافتہ تمام آلات کی فہرست دیتا ہے۔ ڈیوائس کے نام پر کلک کریں، اور یہ ایک صفحہ کھولے گا جس میں اس ڈیوائس کے لیے تمام قابل اجازت کنفیگریشن بٹ سیٹنگ/ ویلیو جوڑے دکھائے جائیں گے، سابق کے ساتھamples

طریقہ کار خلاصہ پروسیجرل تجریدی اصلاح، جو اسمبلی کوڈ کے عام بلاکس کو اس بلاک کی نکالی ہوئی کاپی پر کال کے ساتھ بدل دیتے ہیں، کو کمپائلر میں شامل کیا گیا ہے۔ یہ ایک علیحدہ ایپلی کیشن کے ذریعہ انجام دیے جاتے ہیں، جو لیول 2، 3 یا آپٹیمائزیشنز کا انتخاب کرتے وقت مرتب کرنے والے کے ذریعے خود بخود درخواست کی جاتی ہے۔ یہ اصلاحیں کوڈ کے سائز کو کم کرتی ہیں، لیکن وہ عمل درآمد کی رفتار اور کوڈ ڈیبگ ایبلٹی کو کم کر سکتی ہیں۔
طریقہ کار تجرید کو آپشن -mno-pa کا استعمال کرتے ہوئے اعلیٰ اصلاحی سطحوں پر غیر فعال کیا جا سکتا ہے، یا -mpa کا استعمال کر کے کم اصلاحی سطحوں (آپ کے لائسنس کے تابع) پر فعال کیا جا سکتا ہے۔ اسے کسی شے کے لیے غیر فعال کیا جا سکتا ہے۔ file -mno-pa-on- کا استعمال کرتے ہوئےfile=fileنام، یا فنکشن = فنکشن پر -mno-pa استعمال کرکے فنکشن کے لیے غیر فعال۔
آپ کے ماخذ کوڈ کے اندر، فنکشن کی تعریف کے ساتھ _attribute_ ( (nopa)) کا استعمال کرکے یا _nopa کا استعمال کرکے طریقہ کار کے تجرید کو غیر فعال کیا جاسکتا ہے، جو کہ وصف ( (nopa، noinline)) تک پھیلتا ہے اور اس طرح فنکشن ان لائننگ کو ہونے سے روکتا ہے۔ اور ان لائن کوڈ کا خلاصہ ہونا۔
پراگما میں لاک بٹ سپورٹ #pragma config کو اب AVR لاک بٹس کے ساتھ ساتھ دیگر کنفیگریشن بٹس کی وضاحت کے لیے استعمال کیا جا سکتا ہے۔ اے وی آر چپ کی معلومات چیک کریں۔ html file (اوپر مذکور) اس پراگما کے ساتھ استعمال کرنے کے لیے ترتیب/قدر کے جوڑوں کے لیے۔
نئی ڈیوائس سپورٹ مندرجہ ذیل حصوں کے لیے سپورٹ دستیاب ہے: AVR28DA128، AVR64DA128، AVR32DA128، اور AVR48DA128۔

ورژن 2.05

آپ کے پیسے کے لیے مزید بٹس اس کمپائلر اور لائسنس مینیجر کا macOS ورژن اب 64 بٹ ایپلی کیشن ہے۔ یہ یقینی بنائے گا کہ کمپائلر میک او ایس کے حالیہ ورژنز پر بغیر انتباہ کے انسٹال اور چلائے گا۔
پروگرام میموری میں Const آبجیکٹ کمپائلر اب پروگرام فلیش میموری میں const کوالیفائیڈ اشیاء رکھ سکتا ہے، بجائے اس کے کہ ان کو RAM میں رکھا جائے۔ کمپائلر میں اس طرح ترمیم کی گئی ہے کہ کنسٹ کوالیفائیڈ عالمی ڈیٹا کو پروگرام فلیش میموری میں محفوظ کیا جائے اور اس ڈیٹا تک براہ راست اور بالواسطہ طور پر مناسب پروگرام-میموری ہدایات کا استعمال کرتے ہوئے رسائی حاصل کی جا سکے۔ یہ نیا فیچر بطور ڈیفالٹ فعال ہے لیکن -mno-const-data-in-progmem آپشن کا استعمال کرتے ہوئے اسے غیر فعال کیا جا سکتا ہے۔ avrxmega3 اور avrtiny architectures کے لیے، اس خصوصیت کی ضرورت نہیں ہے اور ہمیشہ غیر فعال رہتی ہے، کیونکہ پروگرام میموری کو ان آلات کے لیے ڈیٹا ایڈریس اسپیس میں میپ کیا جاتا ہے۔
معیاری مفت میں اس کمپائلر کے غیر لائسنس یافتہ (مفت) ورژن اب لیول 2 تک اور اس میں شامل کرنے کی اجازت دیتے ہیں۔ یہ ایک جیسی اجازت دے گا، اگرچہ مماثل نہیں، جو پہلے معیاری لائسنس کے استعمال سے ممکن تھا۔
خوش آمدید AVRASM2 2 بٹ ڈیوائسز کے لیے AVRASM8 اسمبلر اب XC8 کمپائلر انسٹالر میں شامل ہے۔ یہ اسمبلر XC8 کمپائلر کے ذریعہ استعمال نہیں کیا جاتا ہے، لیکن ہاتھ سے لکھے ہوئے اسمبلی سورس پر مبنی پروجیکٹس کے لیے دستیاب ہے۔
نئی ڈیوائس سپورٹ مندرجہ ذیل حصوں کے لیے سپورٹ دستیاب ہے: ATMEGA1608، ATMEGA1609، ATMEGA808، اور ATMEGA809۔

ورژن 2.00

اعلی درجے کا ڈرائیور ایک نیا ڈرائیور، جسے xc8-cc کہا جاتا ہے، اب پچھلے avr-gcc ڈرائیور اور xc8 ڈرائیور کے اوپر بیٹھا ہے، اور یہ ٹارگٹ ڈیوائس کے انتخاب کی بنیاد پر مناسب کمپائلر کو کال کرسکتا ہے۔ یہ ڈرائیور جی سی سی طرز کے آپشنز کو قبول کرتا ہے، جن کا یا تو ترجمہ کیا جاتا ہے یا مرتب کیے جانے والے کمپائلر تک پہنچایا جاتا ہے۔ یہ ڈرائیور اسی طرح کے الفاظ کے ساتھ ایک جیسے اختیارات کے سیٹ کو کسی بھی AVR یا PIC ہدف کے ساتھ استعمال کرنے کی اجازت دیتا ہے اور اس طرح کمپائلر کو استعمال کرنے کا تجویز کردہ طریقہ ہے۔ اگر ضرورت ہو تو، پرانے avr-gcc ڈرائیور کو پرانے طرز کے اختیارات کا استعمال کرتے ہوئے براہ راست بلایا جا سکتا ہے جو اس نے پہلے کمپائلر ورژن میں قبول کیا تھا۔

عام سی انٹرفیس یہ کمپائلر اب MPLAB کامن C انٹرفیس کے مطابق ہو سکتا ہے، جس سے سورس کوڈ کو تمام MPLAB XC کمپائلرز میں زیادہ آسانی سے پورٹ کیا جا سکتا ہے۔ -mext=cci آپشن اس خصوصیت کی درخواست کرتا ہے، کئی زبانوں کی توسیع کے لیے متبادل نحو کو فعال کرتا ہے۔

نیا لائبریرین ڈرائیور ایک نیا لائبریرین ڈرائیور پچھلے PIC لائبر لائبریرین اور AVR avr-ar لائبریرین کے اوپر رکھا گیا ہے۔ یہ ڈرائیور جی سی سی آرکائیور طرز کے آپشنز کو قبول کرتا ہے، جن کا یا تو ترجمہ کیا جاتا ہے یا لائبریرین کو پھانسی دے دی جاتی ہے۔ نیا ڈرائیور کسی بھی PIC یا AVR لائبریری کو بنانے یا اس میں ہیرا پھیری کرنے کے لیے اسی طرح کے الفاظ کے ساتھ اسی طرح کے اختیارات کے سیٹ کو استعمال کرنے کی اجازت دیتا ہے۔ file اور اس طرح لائبریرین کو طلب کرنے کا تجویز کردہ طریقہ ہے۔ اگر میراثی منصوبوں کے لیے ضرورت ہو تو، سابقہ ​​لائبریرین کو پرانے طرز کے اختیارات کا استعمال کرتے ہوئے براہ راست بلایا جا سکتا ہے جو اس نے پہلے مرتب کرنے والے ورژن میں قبول کیے تھے۔

ہجرت کے مسائل

درج ذیل خصوصیات ہیں جو اب مرتب کرنے والے کے ذریعہ مختلف طریقے سے ہینڈل کی جاتی ہیں۔ ان تبدیلیوں کے لیے آپ کے سورس کوڈ میں ترمیم کی ضرورت پڑ سکتی ہے اگر کوڈ کو اس کمپائلر ورژن میں پورٹ کرنا ہے۔ ذیلی سرخیوں میں ورژن نمبر پہلے مرتب کرنے والے ورژن کی طرف اشارہ کرتا ہے جو بعد میں آنے والی تبدیلیوں کی حمایت کرتا ہے۔

ورژن 2.40

کوئی نہیں۔

ورژن 2.39 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.36

کوئی نہیں۔

ورژن 2.35

سٹرنگ ٹو بیسز کا ہینڈلنگ (XCS-2420) دوسرے XC کمپائلرز کے ساتھ مستقل مزاجی کو یقینی بنانے کے لیے، XC8 سٹرنگ ٹو فنکشنز، جیسے strtol () وغیرہ، مزید ان پٹ سٹرنگ کو تبدیل کرنے کی کوشش نہیں کریں گے اگر بیان کردہ بیس 36 سے بڑا ہے اور اس کی بجائے EINVAL پر errno سیٹ کرے گا۔ C معیار فنکشنز کے رویے کی وضاحت نہیں کرتا ہے جب اس بنیادی قدر سے تجاوز کیا جاتا ہے۔

نامناسب رفتار کی اصلاح سطح 3 کی اصلاح (-03) کو منتخب کرتے وقت طریقہ کار تجریدی اصلاح کو فعال کیا جا رہا تھا۔ یہ اصلاحات کوڈ کی رفتار کی قیمت پر کوڈ کے سائز کو کم کرتی ہیں، اس لیے ایسا نہیں ہونا چاہیے تھا۔ اس اصلاحی سطح کو استعمال کرنے والے پروجیکٹس اس ریلیز کے ساتھ بنائے جانے پر کوڈ کے سائز اور عملدرآمد کی رفتار میں فرق دیکھ سکتے ہیں۔

لائبریری کی فعالیت بہت سے معیاری C لائبریری فنکشنز کا کوڈ اب مائیکرو چِپ کی یونیفائیڈ اسٹینڈرڈ لائبریری سے آتا ہے، جو کچھ حالات میں سابقہ ​​avr-libc لائبریری کے فراہم کردہ اس کے مقابلے میں مختلف رویے کی نمائش کر سکتا ہے۔ سابق کے لیےample، اب یہ ضروری نہیں ہے کہ lprintf_flt لائبریری (-print _flt آپشن) میں float-format specifiers کے لیے فارمیٹ شدہ IO سپورٹ کو آن کریں۔ مائکروچپ یونیفائیڈ اسٹینڈرڈ لائبریری کی سمارٹ IO خصوصیات اس آپشن کو بے کار بناتی ہیں۔ مزید برآں، سٹرنگ اور میموری فنکشنز (مثلاً strcpy_P () وغیرہ .. ) کے لیے _p لاحقہ روٹینز کا استعمال جو فلیش میں const سٹرنگز پر کام کرتے ہیں۔ معیاری سی روٹینز (مثلاً strcpy ()) ایسے ڈیٹا کے ساتھ صحیح طریقے سے کام کریں گے جب const-data-in-program-memory فیچر فعال ہو گا۔

ورژن 2.32

کوئی نہیں۔

ورژن 2.31

کوئی نہیں۔

ورژن 2.30

کوئی نہیں۔

ورژن 2.29 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.20

DFP لے آؤٹ کو تبدیل کر دیا گیا۔ مرتب کرنے والا اب DFPs (ڈیوائس فیملی پیک) کے ذریعے استعمال ہونے والی ایک مختلف ترتیب کو فرض کرتا ہے۔ اس کا مطلب یہ ہوگا کہ ایک پرانا DFP اس ریلیز کے ساتھ کام نہیں کرسکتا ہے، اور پرانے مرتب کرنے والے جدید ترین DFPs استعمال نہیں کر سکیں گے۔

ورژن 2.19 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.10

کوئی نہیں۔

ورژن 2.05

پروگرام میموری میں Const آبجیکٹ نوٹ کریں کہ بطور ڈیفالٹ، const-qualfiied اشیاء کو پروگرام میموری میں رکھا جائے گا اور ان تک رسائی حاصل کی جائے گی (جیسا کہ یہاں بیان کیا گیا ہے)۔ یہ آپ کے پروجیکٹ کے سائز اور اس پر عمل درآمد کی رفتار کو متاثر کرے گا، لیکن RAM کے استعمال کو کم کرنا چاہیے۔ اگر ضرورت ہو تو، -mnoconst-da-ta-in-progmem آپشن کا استعمال کرتے ہوئے اس خصوصیت کو غیر فعال کیا جا سکتا ہے۔

ورژن 2.00

کنفیگریشن فیوز ڈیوائس کنفیگریشن فیوز کو اب کنفیگریشن پراگما کا استعمال کرتے ہوئے پروگرام کیا جا سکتا ہے جس کے بعد فیوز کی حالت کی وضاحت کرنے کے لیے سیٹنگ ویلیو جوڑے، جیسے
#pragma config WDT0N = SET
#pragma config B0DLEVEL = B0DLEVEL_4V3
مطلق اشیاء اور افعال آبجیکٹ اور فنکشنز کو اب میموری میں مخصوص ایڈریس پر CCI _at (ایڈریس) اسپیفائر کا استعمال کرتے ہوئے رکھا جا سکتا ہے، سابق کے لیےample: #شامل int foobar at(Ox800100)؛ char at(Ox250) get ID(int offset) { … } اس وضاحت کنندہ کے لیے دلیل ایک مستقل ہونا چاہیے جو اس ایڈریس کی نمائندگی کرے جس پر پہلا بائٹ یا انسٹرکشن رکھا جائے گا۔ RAM پتے 0x800000 کے آفسیٹ کا استعمال کرتے ہوئے اشارہ کرتے ہیں۔ اس خصوصیت کو استعمال کرنے کے لیے CCI کو فعال کریں۔
نیا مداخلت فنکشن نحو کمپائلر اب CCI interrupt (num) specifier کو اس بات کی نشاندہی کرنے کے لیے قبول کرتا ہے کہ C فنکشنز interrupt ہینڈلرز ہیں۔ وضاحت کنندہ ایک انٹرپٹ نمبر لیتا ہے، مثال کے طور پرample: #شامل void interrupt(SPI STC_ vect _num) spi Isr(void) { … }

فکسڈ ایشوز

درج ذیل اصلاحات ہیں جو مرتب کرنے والے میں کی گئی ہیں۔ یہ تیار کردہ کوڈ میں کیڑے ٹھیک کر سکتے ہیں یا کمپائلر کے آپریشن کو اس میں تبدیل کر سکتے ہیں جس کا مقصد صارف کے رہنما کے ذریعہ بیان کیا گیا تھا۔ ذیلی عنوانات میں ورژن نمبر پہلے مرتب کرنے والے ورژن کی نشاندہی کرتا ہے جس میں بعد میں آنے والے مسائل کے لیے اصلاحات شامل ہیں۔ عنوان میں بریکٹ شدہ لیبل (زبانیں) ٹریکنگ ڈیٹا بیس میں اس مسئلے کی شناخت ہیں۔ اگر آپ کو سپورٹ سے رابطہ کرنے کی ضرورت ہو تو یہ مفید ہو سکتے ہیں۔

نوٹ کریں کہ ڈیوائس کے ساتھ منسلک ڈیوائس فیملی پیک (DFP) میں ڈیوائس کے لیے مخصوص مسائل کو درست کیا گیا ہے۔ DFPs میں کی گئی تبدیلیوں اور تازہ ترین پیک ڈاؤن لوڈ کرنے کے لیے MPLAB پیک مینیجر کو دیکھیں۔

ورژن 2.40

بہت آرام دہ (XCS-2876) -mrelax آپشن کا استعمال کرتے وقت، کمپائلر کچھ حصوں کو ایک ساتھ مختص نہیں کر رہا تھا، جس کے نتیجے میں کوڈ کے سائز کم ہوتے ہیں۔ یہ کوڈ کے ساتھ ہوا ہو سکتا ہے جس میں نئی ​​MUSL لائبریریوں کا استعمال کیا گیا ہو یا کمزور علامتوں کے ساتھ۔
نقشہ سازی کی خصوصیت غیر فعال نہیں ہے جیسا کہ وارننگ میں بیان کیا گیا ہے (XCS-2875) لاگت-ڈیٹا-ان-کنفگ میپڈ پروگم کی خصوصیت لاگت-ڈیٹا-ان-پروم خصوصیت کے فعال ہونے پر منحصر ہے۔ اگر آپشن کا استعمال کرتے ہوئے cost-data-ipconfig-mapped-proem خصوصیت کو واضح طور پر فعال کیا گیا تھا اور لاگت-ڈیٹا-انپروگم خصوصیت کو غیر فعال کر دیا گیا تھا، تو لنک کا مرحلہ ناکام ہو گیا، ایک انتباہی پیغام کے باوجود کہ یہ بتاتا ہے کہ cons data-in-config-mapped- proem کی خصوصیت خود بخود غیر فعال ہوگئی تھی، جو کہ مکمل طور پر درست نہیں تھی۔ اس صورت حال میں const-data-in-config-mapped-proem فیچر اب مکمل طور پر غیر فعال ہے۔
NVMCTRL (XCS-2848) تک درست طریقے سے رسائی کے لیے DFP میں تبدیلی AVR64EA ڈیوائسز کے ذریعہ استعمال ہونے والے رن ٹائم اسٹارٹ اپ کوڈ نے اس بات کو مدنظر نہیں رکھا کہ NVMCTRL رجسٹر کنفیگریشن چینج پروٹیکشن (سی سی پی) کے تحت تھا اور IO SFR کو اس صفحہ پر سیٹ کرنے کے قابل نہیں تھا جو const-data-in configmapped-proem کمپائلر استعمال کرتا ہے۔ خصوصیت AVR-Ex_DFP ورژن 2.2.55 میں کی گئی تبدیلیاں رن ٹائم اسٹارٹ اپ کوڈ کو اس رجسٹر پر صحیح طریقے سے لکھنے کی اجازت دے گی۔
فلیش میپنگ سے بچنے کے لیے DFP میں تبدیلیاں (XCS-2847) AVR128DA28/32/48/64 Silicon Errata (DS80000882) میں رپورٹ کردہ فلیش میپنگ ڈیوائس کی خصوصیت کے ساتھ ایک مسئلہ کے لیے کام کا آغاز کر دیا گیا ہے۔ const-data-in-config-mapped-proem کمپائلر فیچر متاثرہ آلات کے لیے بطور ڈیفالٹ لاگو نہیں ہوگا، اور یہ تبدیلی AVR-Ex_DFP ورژن 2.2.160 میں ظاہر ہوگی۔
sinhf یا coshf کے ساتھ غلطی پیدا کریں (XCS-2834) sinhf () یا coshf () لائبریری کے افعال کو استعمال کرنے کی کوششوں کے نتیجے میں ایک لنک کی خرابی پیدا ہوئی، جس میں ایک غیر متعینہ حوالہ بیان کیا گیا۔ لاپتہ فنکشن کا حوالہ دیا گیا ہے اب کمپائلر تقسیم میں شامل کیا گیا ہے۔
nopa (XCS-2833) کے ساتھ غلطیاں بنائیں nopa انتساب کو ایک فنکشن کے ساتھ استعمال کرنا جس کے اسمبلر کا نام بطور () استعمال کرتے ہوئے اسمبلر کی طرف سے ٹرگرڈ ایرر میسیجز کی وضاحت کی گئی ہے۔ یہ امتزاج ممکن نہیں ہے۔
پوائنٹر دلائل کے ساتھ متغیر فنکشن کی ناکامی (XCS-2755, XCS-2731) آرگیومینٹس کی متغیر تعداد کے ساتھ فنکشنز 24-بٹ (_میمو قسم) پوائنٹرز کو متغیر دلیل کی فہرست میں پاس کرنے کی توقع رکھتے ہیں جب لاگت-ڈیٹا-ان-پروم خصوصیت کو فعال کیا جاتا ہے۔ وہ دلائل جو ڈیٹا میموری کی طرف اشارہ کرتے تھے انہیں 16 بٹ آبجیکٹ کے طور پر پاس کیا جا رہا تھا، جس کی وجہ سے کوڈ کی ناکامی ہو رہی تھی جب انہیں بالآخر پڑھا گیا۔ جب cons data-in-proem خصوصیت کو فعال کیا جاتا ہے، تمام 16-بٹ پوائنٹرز کے دلائل اب 24-بٹ پوائنٹرز میں تبدیل ہو جاتے ہیں۔ strtoxxx لائبریری فنکشنز فیل ہو رہے ہیں (XCS-2620) جب const-data-in-proem فیچر کو فعال کیا گیا تھا، strtoxxx لائبریری فنکشنز میں انٹر پیرامیٹر کو پروگرام میموری میں نہ ہونے والے سورس سٹرنگ آرگیومنٹس کے لیے مناسب طریقے سے اپ ڈیٹ نہیں کیا گیا تھا۔
انتباہات برائے غلط کاسٹ (XCS-2612) کمپائلر اب ایک خرابی جاری کرے گا اگر لاگت میں پروم فیچر کو فعال کیا گیا ہے اور سٹرنگ لٹریل کا پتہ واضح طور پر ڈیٹا ایڈریس اسپیس پر ڈال دیا گیا ہے (کانسٹ کوالیفائر کو چھوڑ کر)، سابق کے لیےample، (uint8 t *) "ہیلو ورلڈ!"۔ ایک انتباہ جاری کیا جاتا ہے اگر پتہ غلط ہوسکتا ہے جب const ڈیٹا پوائنٹر کو واضح طور پر ڈیٹا ایڈریس اسپیس پر کاسٹ کیا جاتا ہے۔
غیر شروع شدہ کانسٹ آبجیکٹ کی جگہ کا تعین (XCS-2408) غیر شروع شدہ const اور const v olatile اشیاء کو پروگرام میموری میں ان ڈیوائسز پر نہیں رکھا جا رہا تھا جو ڈیٹا ایڈریس اسپیس میں اپنی پروگرام میموری کے تمام یا کچھ حصے کا نقشہ بناتے ہیں۔ ان آلات کے لیے، اس طرح کی اشیاء کو اب پروگرام میموری میں رکھا گیا ہے، جس سے ان کا آپریشن دوسرے آلات کے ساتھ مطابقت رکھتا ہے۔

ورژن 2.39 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.36

تاخیر کے دوران خرابی وقت کا عدد مستقل

ورژن 2.35

_at (XCS-2653) کا استعمال کرتے ہوئے متواتر مختص ایک سیکشن میں ایک ہی نام کے ساتھ ایک سے زیادہ آبجیکٹ کی جگہوں کو لگاتار مختص کرنا اور () پر استعمال کرنا درست طریقے سے کام نہیں کرتا ہے۔ سابق کے لیےample: constchararrl [ ] at tri butte ((sect on(".misses"))) at (Ox50 0 ) = {Oxo , Ox CD} ; لاگت char arr2[ ] at tri butte ((section(“.my s eke”)))) = {Oxen, Ox FE}; aril کے فوراً بعد arr2 رکھنا چاہیے تھا۔
سیکشن کے آغاز کے پتے کی وضاحت (XCS-2650) -Wal, -section-start آپشن خاموشی سے نامزد کردہ ابتدائی پتہ پر سیکشن لگانے میں ناکام ہو رہا تھا۔ یہ مسئلہ کسی بھی حسب ضرورت نام والے سیکشنز کے لیے طے کر دیا گیا ہے۔ تاہم، یہ کسی بھی معیاری حصوں کے لیے کام نہیں کرے گا، جیسے۔ متن یا bss، جسے -Wl، -T آپشن کا استعمال کرتے ہوئے رکھا جانا چاہیے۔
آرام کرتے وقت لنکر کریش ہو جاتا ہے (XCS-2647) جب -relax آپٹیمائزیشن کو فعال کیا گیا تھا اور کوڈ یا ڈیٹا سیکشنز تھے جو دستیاب میموری میں فٹ نہیں تھے، تو لنکر کریش ہو گیا۔ اب، ایسے حالات میں، اس کی بجائے ایرر میسجز جاری کیے جاتے ہیں۔
خراب EEPROM رسائی (XCS-2629) لیپروما _read_ بلاک روٹین میگا ڈیوائسز پر صحیح طریقے سے کام نہیں کرتی تھی جب -monist-data-in-proem آپشن کو فعال کیا گیا تھا (جو کہ پہلے سے طے شدہ حالت ہے)، جس کے نتیجے میں EEPROM میموری کو صحیح طریقے سے نہیں پڑھا جا رہا تھا۔
غلط میموری مختص (XCS-2593, XCS-2651) جب -Text یا -Tata لنکر آپشن (مثال کے طور پرample ایک -Wl ڈرائیور آپشن کا استعمال کرتے ہوئے گزر گیا) کی وضاحت کی گئی ہے، متعلقہ متن/ڈیٹا ریجن کی اصل کو اپ ڈیٹ کیا گیا تھا۔ تاہم، آخری ایڈریس کو اس کے مطابق ایڈجسٹ نہیں کیا گیا تھا، جس کی وجہ سے علاقہ ہدف ڈیوائس کی میموری کی حد سے تجاوز کر سکتا تھا۔
غلط ATtiny انٹرپٹ کوڈ (XCS-2465) جب ٹیٹن ڈیوائسز کی تعمیر اور اصلاح کو غیر فعال کر دیا گیا تھا (-00)، تو interrupt فنکشنز نے آپرینڈ کو رینج سے باہر جمع کرنے والے پیغامات کو متحرک کیا ہو گا۔
اختیارات سے گزر نہیں رہے ہیں (XCS-2452) متعدد، کوما سے الگ کردہ لنکر آپشنز کے ساتھ -Wl آپشن کا استعمال کرتے وقت، لنکر کے تمام آپشنز لنکر کو نہیں بھیجے جا رہے تھے۔
پروگرام میموری کو بالواسطہ طور پر پڑھنے میں خرابی (XCS-2450) کچھ مثالوں میں، کمپائلر نے ایک اندرونی خرابی (ناقابل شناخت insn) پیدا کی جب پوائنٹر سے پروگرام میموری تک دو بائٹ ویلیو پڑھتے ہوئے

ورژن 2.32

لائبریری کی دوسری رسائی ناکام ہو جاتی ہے (XCS-2381) xc8-ar کے ونڈوز ورژن کو طلب کرنا۔ ایک موجودہ لائبریری آرکائیو تک رسائی حاصل کرنے کے لیے exe لائبریری آرکائیور دوسری بار غلطی کے پیغام کا نام تبدیل کرنے میں ناکام ہو سکتا ہے۔

ورژن 2.31

غیر واضح کمپائلر کی ناکامیاں (XCS-2367) جب ونڈوز پلیٹ فارمز پر چل رہا ہو جس میں سسٹم کی عارضی ڈائرکٹری کو ایک ایسے راستے پر سیٹ کیا گیا تھا جس میں ڈاٹ شامل تھا۔' کردار، مرتب کرنے والا عمل کرنے میں ناکام ہو سکتا ہے۔

ورژن 2.30

آؤٹ لائننگ (XCS-2299) کے بعد عالمی لیبل غلط جگہ پر ہاتھ سے لکھا ہوا اسمبلی کوڈ جو عالمی لیبلز کو اسمبلی کی ترتیب کے اندر رکھتا ہے جو کہ طریقہ کار کے تجرید کے ذریعہ فیکٹر کیا جاتا ہے شاید صحیح طریقے سے جگہ نہیں دی گئی ہو۔
ایک آرام دہ حادثہ (XCS-2287) -مرلاڈ آپشن کو استعمال کرنے سے لنکر کریش ہو سکتا ہے جب ٹیل جمپ ریلیکسیشن آپٹیمائزیشن نے ریٹ انسٹرکشن کو ہٹانے کی کوشش کی جو سیکشن کے آخر میں نہیں تھیں۔
لیبلز کو قدر کے طور پر بہتر بناتے وقت کریش (XCS-2282) GNU C لینگویج ایکسٹینشن کا استعمال کرتے ہوئے کوڈ "قدر کے طور پر لیبلز" کی وجہ سے طریقہ کار تجریدی اصلاح کو کریش کر دیا گیا ہو، جس میں آؤٹ لائنڈ VMA رینج اسپین فکس اپ کی خرابی ہے۔
ایسا نہیں ہے (XCS-2271) starts () اور دیگر فنکشنز کے لیے پروٹو ٹائپس جب -monist-data inprogmem خصوصیت کو غیر فعال کر دیا جاتا ہے تو واپس آنے والے سٹرنگ پوائنٹرز پر غیر معیاری لاگت کوالیفائر کی مزید وضاحت نہیں کرتا ہے۔ نوٹ کریں کہ avrxmega3 اور avertin آلات کے ساتھ، یہ خصوصیت مستقل طور پر فعال ہے۔
کھوئے ہوئے ابتدائی کار (XCS-2269) جب ٹرانسلیشن یونٹ میں ایک سے زیادہ متغیر کو ایک سیکشن میں رکھا گیا تھا (سیکشن یا وصف ((سیکشن)) کا استعمال کرتے ہوئے، اور اس طرح کا پہلا متغیر صفر شروع کیا گیا تھا یا اس میں ابتدائیہ نہیں تھا، اسی ترجمہ یونٹ میں دیگر متغیرات کے لیے ابتدائی جو کہ اسی حصے میں رکھے گئے تھے کھو گئے تھے۔

ورژن 2.29 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.20

لمبی کمانڈ کے ساتھ خرابی (XCS-1983) AVR ہدف استعمال کرتے وقت، کمپائلر a کے ساتھ رک گیا ہو گا۔ file غلطی نہیں ملی، اگر کمانڈ لائن بہت بڑی تھی اور اس میں خاص حروف جیسے کوٹس، بیک سلیش وغیرہ شامل تھے۔
غیر تفویض شدہ روڈیٹا سیکشن (XCS-1920) AVR لنکر avrxmega3 اور avrtiny architectures کے لیے تعمیر کرتے وقت حسب ضرورت روڈیٹا سیکشنز کے لیے میموری تفویض کرنے میں ناکام رہا، جس سے ممکنہ طور پر میموری اوورلیپ کی خرابیاں پیدا ہوتی ہیں۔

ورژن 2.19 (فنکشنل سیفٹی ریلیز)

کوئی نہیں۔

ورژن 2.10

نقل مکانی کی ناکامیاں (XCS-1891) بہترین فٹ مختص کرنے والا لنکر ریلیکس کے بعد حصوں کے درمیان میموری 'سوراخ' چھوڑ رہا تھا۔ یادداشت کو ٹکڑے ٹکڑے کرنے کے علاوہ، اس نے پی سی سے متعلق چھلانگوں یا کالوں کی حد سے باہر ہونے سے متعلق لنکر کی جگہ بدلنے میں ناکامیوں کے امکانات کو بڑھا دیا۔
ہدایات نرمی سے تبدیل نہیں ہوئیں (XCS-1889) لنکر میں نرمی چھلانگ لگانے یا کال کرنے کی ہدایات کے لیے نہیں ہوئی جس کے اہداف تک پہنچنے کے قابل ہو جائیں اگر آرام ہو۔
لاپتہ فعالیت (XCSE-388) سے کئی تعریفیں ، جیسے clock_ div_t اور clock_prescale_set ()، آلات کے لیے بیان نہیں کیے گئے تھے، بشمول ATmega324PB، ATmega328PB، ATtiny441، اور ATtiny841۔
غائب میکروز پری پروسیسر میکروس_ xcs _MODE_، _xcs VERSION، _xc، اور xcs مرتب کرنے والے کے ذریعہ خود بخود بیان نہیں کیے گئے تھے۔ یہ اب دستیاب ہیں۔

ورژن 2.05

اندرونی کمپائلر کی خرابی (XCS-1822) ونڈوز کے تحت تعمیر کرتے وقت، کوڈ کو بہتر بناتے وقت ایک اندرونی کمپائلر کی خرابی پیدا ہو سکتی ہے۔
RAM اوور فلو کا پتہ نہیں چلا (XCS-1800, XCS-1796) وہ پروگرام جو دستیاب RAM سے زیادہ تھے کچھ حالات میں مرتب کرنے والے کے ذریعے پتہ نہیں چلا، جس کے نتیجے میں رن ٹائم کوڈ ناکام ہو گیا۔
حذف شدہ فلیش میموری (XCS-1792) avrxmega3 اور avrtiny آلات کے لیے، MPLAB X IDE کے ذریعے فلیش میموری کے کچھ حصوں کو بغیر پروگرام کے چھوڑ دیا گیا ہو گا۔
مین کو انجام دینے میں ناکامی (XCS-1788) کچھ حالات میں جہاں پروگرام میں عالمی متغیرات کی وضاحت نہیں کی گئی تھی، رن ٹائم اسٹارٹ اپ کوڈ سے باہر نہیں نکلا تھا اور مین () فنکشن تک کبھی نہیں پہنچا تھا۔
میموری کی غلط معلومات (XCS-1787) avrxmega3 اور avrtiny ڈیوائسز کے لیے، avr-size پروگرام رپورٹ کر رہا تھا کہ صرف پڑھنے کے لیے ڈیٹا پروگرام میموری کی بجائے RAM استعمال کر رہا ہے۔
غلط پروگرام میموری پڑھی گئی (XCS-1783) ڈیٹا ایڈریس اسپیس میں میپ کردہ پروگرام میموری والے آلات کے لیے مرتب کردہ پروجیکٹس اور جو PROGMEM میکرو/انتساب کا استعمال کرتے ہوئے آبجیکٹ کی وضاحت کرتے ہیں ان چیزوں کو غلط ایڈریس سے پڑھ سکتے ہیں۔
اوصاف کے ساتھ اندرونی خرابی (XCS-1773) اگر آپ نے پوائنٹر آبجیکٹ کے ساتھ وضاحت کی ہے تو ایک اندرونی خرابی پیش آگئی
_at () یا attribute() ٹوکنز پوائنٹر کے نام اور ڈیریفرنسڈ قسم کے درمیان، سابق کے لیےampلی، چار*
_at ( 0x80015 0) cp؛ اگر اس طرح کے کوڈ کا سامنا ہوتا ہے تو اب ایک انتباہ جاری کیا جاتا ہے۔
مین کو انجام دینے میں ناکامی (XCS-1780, XCS-1767, XCS-1754) EEPROM متغیرات کا استعمال یا config pragma کا استعمال کرتے ہوئے فیوز کی وضاحت کرنا main () تک پہنچنے سے پہلے رن ٹائم سٹارٹ اپ کوڈ میں ڈیٹا کی غلط شروعات اور/یا لاک اپ پروگرام کے عمل کا سبب بن سکتا ہے۔
چھوٹے آلات کے ساتھ فیوز کی خرابی (XCS-1778, XCS-1742) attiny4/5/9/10/20/40 آلات کے ہیڈر میں غلط فیوز کی لمبائی متعین کی گئی تھی۔ files جو فیوز کی وضاحت کرنے والا کوڈ بنانے کی کوشش کرتے وقت لنکر کی غلطیوں کا باعث بنتا ہے۔
سیگمنٹیشن فالٹ (XCS-1777) وقفے وقفے سے تقسیم کی غلطی کو درست کر دیا گیا ہے۔
اسمبلر کریش (XCS-1761) جب کمپائلر Ubuntu 18 کے تحت چلایا گیا تھا تو avr-as اسمبلر کریش ہو سکتا ہے۔
آبجیکٹ صاف نہیں ہوئے (XCS-1752) غیر شروع شدہ جامد سٹوریج کے دورانیے کی اشیاء کو رن ٹائم اسٹارٹ اپ کوڈ کے ذریعے صاف نہیں کیا گیا ہو گا۔
متضاد آلہ کی تفصیلات کو نظر انداز کر دیا گیا (XCS-1749) کمپائلر ایک خرابی پیدا نہیں کر رہا تھا جب ایک سے زیادہ ڈیوائس کی تفصیلات کے اختیارات استعمال کیے گئے تھے اور مختلف آلات کی نشاندہی کی گئی تھی۔
ہیپ کے ذریعے میموری کی خرابی (XCS-1748) ہیپ_ اسٹارٹ کی علامت کو غلط طریقے سے سیٹ کیا جا رہا تھا، جس کے نتیجے میں ہیپ سے عام متغیرات کے خراب ہونے کا امکان تھا۔
لنکر کی جگہ بدلنے کی خرابی (XCS-1739) جب کوڈ میں 4k بائٹس کے فاصلے پر ہدف کے ساتھ rjmp یا rcal شامل ہو تو لنکر کی جگہ بدلنے کی غلطی پیدا ہو سکتی ہے۔

ورژن 2.00

کوئی نہیں۔

معلوم مسائل

مرتب کرنے والے کے آپریشن میں درج ذیل حدود ہیں۔ یہ عام کوڈنگ پابندیاں ہو سکتی ہیں، یا
صارف کے دستی میں موجود معلومات سے انحراف۔ عنوان میں بریکٹ شدہ لیبل (زبانیں) ٹریکنگ ڈیٹا بیس میں اس مسئلے کی شناخت ہیں۔ اگر آپ کو سپورٹ سے رابطہ کرنے کی ضرورت ہو تو یہ فائدہ مند ہو سکتا ہے۔ وہ آئٹمز جن میں لیبل نہیں ہوتے ہیں وہ حدود ہیں جو موڈ آپریڈی کو بیان کرتی ہیں اور جن کے مستقل طور پر نافذ رہنے کا امکان ہے۔

MPLAB X IDE انٹیگریشن

MPLAB IDE انضمام اگر کمپائلر کو MPLAB IDE سے استعمال کرنا ہے تو کمپائلر انسٹال کرنے سے پہلے آپ کو MPLAB IDE انسٹال کرنا ہوگا۔

کوڈ جنریشن

PA میموری مختص کرنے میں ناکامی (XCS-2881) پروسیجرل ایبسٹریکشن آپٹیمائزرز کا استعمال کرتے وقت، جب کوڈ کا سائز ڈیوائس پر دستیاب پروگرام میموری کی مقدار کے قریب ہو تو لنکر میموری مختص کرنے کی غلطیوں کی اطلاع دے سکتا ہے، حالانکہ پروگرام کو دستیاب جگہ پر فٹ ہونے کے قابل ہونا چاہیے۔
اتنا سمارٹ نہیں Smart-IO (XCS-2872) کمپائلر کا سمارٹ-io فیچر اسپرنٹ فنکشن کے لیے درست لیکن سب سے بہترین کوڈ تیار کرے گا اگر کوسٹ-ڈیٹا-اِن-پروم فیچر کو غیر فعال کر دیا گیا ہے یا اگر ڈیوائس نے اپنے تمام فلیش کو ڈیٹا میموری میں میپ کر لیا ہے۔
اس سے بھی کم سمارٹ Smart-IO (XCS-2869) جب -floe اور -fno-buil ٹن دونوں آپشنز استعمال کیے جائیں گے تو کمپائلر کی سمارٹ-io فیچر درست لیکن سب سے بہترین کوڈ تیار کرے گی۔
سب سے زیادہ صرف پڑھنے کے لیے ڈیٹا پلیسمنٹ (XCS-2849) لنکر فی الحال APPCODE اور APPDATA میموری سیکشنز سے واقف نہیں ہے، اور نہ ہی میموری میپ میں [No-]Read-While-Write Divisions سے۔ نتیجے کے طور پر، اس بات کا بہت کم امکان ہے کہ لنکر میموری کے غیر موزوں علاقے میں صرف پڑھنے کے لیے ڈیٹا مختص کر سکتا ہے۔ اگر coast-data-in-pragma خصوصیت فعال ہو، خاص طور پر اگر coast-data-in-config-mapped-proem خصوصیت بھی فعال ہو تو غلط جگہ پر ڈیٹا کا امکان بڑھ جاتا ہے۔ اگر ضرورت ہو تو ان خصوصیات کو غیر فعال کیا جا سکتا ہے۔
اعتراض file پروسیسنگ آرڈر (XCS-2863) وہ ترتیب جس میں اشیاء files پر لنکر کے ذریعہ کارروائی کی جائے گی طریقہ کار تجریدی اصلاح (-mpa آپشن) کے استعمال کی بنیاد پر مختلف ہوسکتی ہے۔ یہ صرف کوڈ کو متاثر کرے گا جو متعدد ماڈیولز میں کمزور افعال کی وضاحت کرتا ہے۔
مطلق کے ساتھ لنکر کی خرابی (XCS-2777) جب RAM کے آغاز میں کسی پتے پر کسی آبجیکٹ کو مطلق بنا دیا جاتا ہے اور غیر شروع شدہ اشیاء کی بھی تعریف کی جاتی ہے، تو لنکر کی خرابی شروع ہو سکتی ہے۔
شارٹ ویک اپ IDs (XCS-2775) ATA5700/2 ڈیوائسز کے لیے، PHID0/1 رجسٹروں کی وضاحت صرف 16 بٹس چوڑے ہونے کی بجائے 32 بٹس کے چوڑے ہونے کے طور پر کی گئی ہے۔
کالنگ سمبل (XCS-2758) پر لنکر کریش لنکر کریش ہو سکتا ہے اگر -merlad ڈرائیور کا اختیار استعمال کیا جائے جب سورس کوڈ کسی علامت کو کال کرتا ہے جس کی تعریف -Wl، -defsym لنکر آپشن کا استعمال کرتے ہوئے کی گئی ہے۔
غلط ابتداء (XCS-2679) کچھ عالمی / جامد بائٹ سائز والے آبجیکٹ کے ابتدائی اقدار کو ڈیٹا میموری میں کہاں رکھا جاتا ہے اور رن ٹائم کے وقت متغیرات تک کہاں رسائی حاصل کی جائے گی اس کے درمیان ایک تضاد ہے۔
شروع غلط سیٹ خالی (XCS-2652) ایسی صورتوں میں جہاں بیان کردہ () کے ذریعے تبادلوں کے لیے موضوع کی تار میں وہ ہے جو ظاہری شکل میں ایک فلوٹنگ پوائنٹ نمبر لگتا ہے اور ای کریکٹر کے بعد ایک غیر متوقع کریکٹر ہے، تو خالی پتہ، اگر فراہم کیا جائے تو، اس کے بعد کیریکٹر کی طرف اشارہ کرے گا۔ ای اور خود ای نہیں۔ سابق کے لیےample: کہا ("hooey"، خالی)؛ ایکس کیریکٹر کی طرف خالی اشارہ کرنے کے نتیجے میں۔
خراب بالواسطہ فنکشن کالز (XCS-2628) کچھ مثالوں میں، کسی ڈھانچے کے حصے کے طور پر ذخیرہ کردہ فنکشن پوائنٹر کے ذریعے کی جانے والی فنکشن کالز ناکام ہو سکتی ہیں۔
strtof ہیکساڈیسیمل فلوٹس کے لیے صفر واپس کرتا ہے (XCS-2626) لائبریری کے فنکشنز strtof () et al اور scanf () et al، ہمیشہ ایک ہیکساڈیسیمل فلوٹنگ پوائنٹ نمبر کو تبدیل کرے گا جو کسی ایکسپوننٹ کی وضاحت نہیں کرتا ہے
صفر سابق کے لیےample: stator ("الو"، اور خالی)؛ قدر 0 واپس کرے گا، 1 نہیں۔
غلط اسٹیک ایڈوائزر پیغام رسانی (XCS-2542, XCS-2541) بعض صورتوں میں، اسٹیک ایڈوائزر کا انتباہ تکرار یا غیر متعین اسٹیک استعمال کیا جاتا ہے (ممکنہ طور پر alloca() کے استعمال سے) خارج نہیں ہوتا ہے۔
ڈپلیکیٹ انٹرپٹ کوڈ کے ساتھ ناکامی (XCS-2421) جہاں ایک سے زیادہ انٹرپٹ فنکشن ایک ہی باڈی رکھتا ہے، کمپائلر کے پاس ایک انٹرپٹ فنکشن کے لیے آؤٹ پٹ ہو سکتا ہے دوسرے کو کال کریں۔ اس کے نتیجے میں تمام کال-کلوبڈ رجسٹر غیر ضروری طور پر محفوظ ہو جائیں گے، اور انٹرپٹس موجودہ انٹرپٹ ہینڈلر کے ایپیلوگ کے چلنے سے پہلے ہی فعال ہو جائیں گے، جو کوڈ کی ناکامی کا باعث بن سکتا ہے۔
Const آبجیکٹس پروگرام میموری میں نہیں ہیں (XCS-2408) avrxmega3 اور avertins پروجیکٹس کے لیے undealized const اشیاء کو ڈیٹا میموری میں رکھا جاتا ہے، حالانکہ ایک انتباہ بتاتا ہے کہ انہیں پروگرام میموری میں رکھا گیا ہے۔ یہ ان آلات کو متاثر نہیں کرے گا جن کے پاس ڈیٹا میموری کی جگہ میں پروگرام میموری میپ نہیں ہے، اور نہ ہی یہ کسی ایسی چیز کو متاثر کرے گا جو شروع کی گئی ہے۔
غلط DFP پاتھ (XCS-2376) کے ساتھ خراب آؤٹ پٹ اگر کمپائلر کو ایک غلط DFP پاتھ اور ایک 'spec' کے ساتھ طلب کیا گیا ہے file منتخب کردہ ڈیوائس کے لیے موجود ہے، کمپائلر گمشدہ ڈیوائس فیملی پیک کی اطلاع نہیں دے رہا ہے اور اس کے بجائے 'spec' کو منتخب کر رہا ہے۔ file، جو پھر ایک غلط آؤٹ پٹ کا باعث بن سکتا ہے۔ 'خصوصیات' files تقسیم شدہ DFPs کے ساتھ اپ ٹو ڈیٹ نہیں ہو سکتا ہے اور اس کا مقصد صرف اندرونی کمپائلر ٹیسٹنگ کے ساتھ استعمال کرنا تھا۔
میموری اوورلیپ کا پتہ نہیں چلا (XCS-1966) کمپائلر کسی ایڈریس (بذریعہ at ()) اور سیکشن () اسپیفائر کا استعمال کرتے ہوئے اور جو ایک ہی ایڈریس سے منسلک ہیں پر مطلق بنی ہوئی اشیاء کی میموری اوورلیپ کا پتہ نہیں لگا رہا ہے۔
لائبریری کے افعال میں ناکامی اور _meme (XCS-1763) _memo ایڈریس اسپیس میں دلیل کے ساتھ لیمبک فلوٹ فنکشن کہلاتا ہے ناکام ہوسکتا ہے۔ نوٹ کریں کہ لائبریری کے معمولات کچھ C آپریٹرز سے کال کیے جاتے ہیں، لہذا، مثال کے طور پرampلی، درج ذیل کوڈ متاثر ہوتا ہے: واپسی regFloatVar > memxFloatVar؛
محدود لمبک نفاذ (AVRTC-731) ATTiny4/5/9/10/20/40 مصنوعات کے لیے، limbic میں معیاری C/Math لائبریری کا نفاذ بہت محدود ہے یا موجود نہیں ہے۔
پروگرام میموری کی حدود (AVRTC-732) 128 kb سے زیادہ پروگرام میموری کی تصاویر ٹول چین کے ذریعہ سپورٹ کی جاتی ہیں۔ تاہم، لنکر اسقاط حمل کی معلوم مثالیں موجود ہیں بغیر کسی نرمی کے اور ایک مددگار ایرر میسج کے بغیر مطلوبہ فنکشن اسٹبس بنانے کی بجائے جب -relax آپشن استعمال کیا جاتا ہے۔
نام کی جگہ کی حدود (AVRTC-733) نامزد ایڈریس اسپیس ٹول چین کے ذریعہ تعاون یافتہ ہیں، صارف کے گائیڈ سیکشن اسپیشل ٹائپ کوالیفائر میں بیان کردہ حدود کے تابع ہیں۔
ٹائم زونز دی لائبریری کے فنکشنز GMT فرض کرتے ہیں اور مقامی ٹائم زون کو سپورٹ نہیں کرتے، اس طرح مقامی وقت () گومائٹ () کے طور پر ایک ہی وقت واپس آئے گاample

کسٹمر سپورٹ

file:///Applications/microehip/xc8/v 2 .40/docs/Read me_X C 8_ A VR کے لیے۔ htm

دستاویزات / وسائل

مائکروچپ MPLAB XC8 C کمپائلر سافٹ ویئر [پی ڈی ایف] مالک کا دستی
MPLAB XC8 C، MPLAB XC8 C کمپائلر سافٹ ویئر، کمپائلر سافٹ ویئر، سافٹ ویئر

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *