متفرقات

مائکروکنٹرولرز میں کوڈ کی اصلاح

مصنف: Laura McKinney
تخلیق کی تاریخ: 4 اپریل 2021
تازہ کاری کی تاریخ: 16 مئی 2024
Anonim
بیٹری کی وضاحت بلیک بورڈ۔ موبائل کی مرمت کا کورس
ویڈیو: بیٹری کی وضاحت بلیک بورڈ۔ موبائل کی مرمت کا کورس

مواد

مصنف نے اپنے آخری سال کا انجینئرنگ پراجیکٹ ڈی ایس پیک مائکرو کنٹرولرز کے ساتھ مکمل کیا ، ان آلات میں وسیع تر بصیرت حاصل کی۔

مائکروکانٹرولر کے سی لینگویج کوڈ کو کچھ اعلی درجے کی ایپلی کیشنز میں اصلاح کی ضرورت پڑسکتی ہے۔ اس کوڈ کی اصلاح دو اہم چیزوں کو کم کرنے کے لئے کی گئی ہے۔

  1. کوڈ کا سائز: مائکروکانٹرولر محدود ڈیٹا اور ہدایات اسٹور کرسکتے ہیں کیونکہ ان کی ریم محدود ہے۔ لہذا کوڈ کو بہتر بنانے کی ضرورت ہے ، تاکہ دستیاب ہدایات اور ڈیٹا میموری کو زیادہ موثر طریقے سے استعمال کیا جاسکے۔
  2. کوڈ عملدرآمد ٹائمز: مائکروکانٹرولرز ایک دوسرے کے مطابق ایک ہی ہدایت پر عملدرآمد کرنے والے ترتیب والے آلہ ہوتے ہیں۔ ہر اسمبلی کی ہدایت خود کو عملی جامہ پہنانے کے لئے ایک خاص تعداد میں گھڑی کے چکروں کا استعمال کرتی ہے۔ لہذا یہ یقینی بنانے کے لئے کوڈ کو بہتر بنانا ہوگا کہ وہ کم سے کم تعداد میں گھڑی کے چکروں یا اسمبلی ہدایات میں مطلوبہ کام انجام دیتا ہے۔ کوڈ کے استعمال میں جتنی کم گھڑیاں چلتی ہیں ، اس سے تیزی سے چلتا ہے۔ اس کا مطلب ہے کہ ایپلی کیشنز تیزی سے چل سکتی ہیں کیونکہ پروسیسنگ کا وقت کم ہوتا ہے۔

یہ مضمون ایسے نکات اور ترکیب پیش کرتا ہے جنہیں مائیکرو کنٹرولر کوڈ کے سائز اور عملدرآمد کے وقت کو کم کرنے کے لئے استعمال کیا جاسکتا ہے۔


مائکروچپ کے ایمپلیب ایکس ڈویلپمنٹ آئی ڈی کا استعمال جہاں مناسب ہو وہاں کی نمائش کے لئے کیا جائے گا۔

کوڈ عملدرآمد کے وقت کو تجرباتی طور پر کیسے ماپیں

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

  • کچھ مرتب کرنے والوں میں گھڑی کے چکروں کی گنتی کرنے کی صلاحیت ہوتی ہے جو کوڈ استعمال کرے گا۔
  • کچھ ڈیبگر مثال کے طور پر مائکروچپ سے آئی سی ڈی 3 اسٹاپ واچ کے ذریعے عملدرآمد کے وقت کو براہ راست پیمائش کرسکتے ہیں۔

1. اپنے مائکروکنٹرولر کی پروسیسنگ پاور اور میموری سائز کو جانیں

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

MCUs عام طور پر اعلی کے آخر میں زمرے میں 60–70 MIP سے 20 MIP 8 بٹ AVRs تک ہوتے ہیں۔ ایک اعلی ایم آئی پی ایس مائیکرو کنٹرولر کا امکان ہے کہ اس سے زیادہ مہنگا ہو پھر ایک کم آخر والا آلہ ہے لہذا یہاں آپ کی لاگت اور پروسیسنگ کی رفتار کے درمیان تجارت بند ہے۔


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

2. کوڈ سائز میں اصلاح کے ل V متغیرات کا انتخاب

مائیکرو کنٹرولرز کے پاس محدود ڈیٹا میموری ہوتا ہے ، عام طور پر 1 سے 4 Kbytes تک ہوتا ہے۔ اس معاملے میں ، دانشمندانہ بات ہے کہ تاریخ کے متوقع حد کے مطابق موزوں متغیر کی مناسب قسم کا انتخاب کریں۔ ذیل میں جدول ان متغیرات کا خلاصہ کرتا ہے:

متغیرات کا خلاصہ جو سی زبان میں استعمال ہوتا ہے۔

متغیر قسمبائٹس میں سائزرینج

بول

1

صرف 0 یا 1

چار

1


-128 سے 127

INT

2

-32،768 سے 32،767

بغیر دستخط شدہ

2

0 سے 65،535

لمبا

4

-2،147،483،648 سے 2،147،483،647

تیرنا

4

عین مطابق 6 اعشاریہ 8 مقامات تک

دگنا

8

عین مطابق 15 اعشاریہ 8 مقامات

لمبی ڈبل

10

عین مطابق 19 اعشاریہ 8 مقامات

مثال:

  • اگر دو متغیر X اور Y کو شامل کرنا ہے اور نتیجہ Z میں ذخیرہ کرنا ہے لیکن Z کی قیمت 65،535 کے اضافے کے بعد توقع کی جاتی ہے تو Z ایک لمبا اور X اور Y کو دستخط شدہ قرار دیا جاسکتا ہے int ، X اور Y کی اقدار سے بھی منفی ہونے کی توقع نہیں کی جاتی ہے۔ اس سے اعداد و شمار کی میموری میں 04 بائٹس کی بچت ہوگی جو بصورت دیگر تمام متغیرات کا اعلان کرنے کی صورت میں استعمال ہوجاتے۔
  • دو متغیر X اور Y ، جن کی قیمتوں میں توقع کی جاتی ہے کہ وہ پوری تعداد میں ہوں گے ، تقسیم کیا جائے گا ، لیکن تقسیم کا نتیجہ ایک اعشاریہ حاصل کرسکتا ہے ، پھر X اور Y کو انٹیک اعلان کیا جاسکتا ہے اور اس کے نتیجے میں نتیجہ فلوٹ یا ڈبل ​​قرار دیا جاسکتا ہے۔ صحت سے متعلق ضروری ہے۔

عناصر کی بڑی تعداد پر مشتمل صفوں کا اعلان کرتے وقت اعداد و شمار کی قسم کا انتخاب اہم ثابت ہوسکتا ہے۔

3. کوڈ عملدرآمد کے وقت میں اصلاح کے ل V متغیر کا انتخاب

  • یہ ایک ثابت شدہ حقیقت ہے کہ فلوٹنگ پوائنٹ کا حساب کتاب مقررہ نقطہ حساب سے زیادہ وقت لگتا ہے۔ سچل نقطہ متغیر کا استعمال نہ کریں جہاں اعشاریہ کی ضرورت نہیں ہے۔ جہاں بھی ممکن ہو دستخط کئے ہوئے اشاروں کے ساتھ کام کریں۔
  • مقامی متغیرات عالمی سطح پر متغیر ہیں۔ اگر کسی فعل میں صرف متغیر استعمال ہوتا ہے تو پھر اس فعل میں اس کا اعلان ضرور کیا جانا چاہئے کیونکہ عالمی متغیر تک رسائی مقامی متغیر کے مقابلے میں آہستہ ہے۔
  • ایک 8 بٹ ایم سی یو تیزی سے ایک بائٹ سائز کے متغیر کو تیزی سے تلاش کرے گا اور ایک 16 بٹ ایم سی یو 2 بائٹ متغیر پذیر پتے کی طوالت کی وجہ سے رسائی میں آسان مل جائے گا۔

4. ریاضی کے آپریشنوں کو بہتر بنانا

حسابی کارروائیوں کو درج ذیل طریقوں سے بہتر بنایا جاسکتا ہے۔

  1. کسی سائن یا کسی اور ٹریگنومیٹرک فنکشن یا کسی اور عمل کا جائزہ لینے کے بجائے پہلے سے حساب شدہ اقدار کی تلاش کے جدولوں کا استعمال کریں جس کے نتائج کوڈ میں پہلے ہی معلوم ہوسکتے ہیں۔
  2. اگر یادداشت میں سائن سائٹس اپ ٹیبل پہلے ہی ذخیرہ ہے تو اس میں 90 ڈگری کے برابر سرنی پوائنٹر کو آگے بڑھا کر ایک کوزین کا اندازہ کیا جاسکتا ہے۔
  3. چار ریاضی عملوں میں سے ، تقسیم اور ضرب سب سے زیادہ پروسیسنگ کا وقت لگتا ہے ، عملی طور پر یہ سیکڑوں مائکرو سیکنڈ کی حد میں ہوسکتا ہے یا اسی طرح فلوٹنگ پوائنٹ ویلیو کی صورت میں ہوسکتا ہے۔
  4. تقسیم اور ضرب کی بجائے بٹ شفٹ ہدایات استعمال کریں۔ دائیں شفٹ انسٹرکشن 3 میں 2 کو تقسیم کرنا ہے3 جہاں بطور بائیں شفٹ انسٹرکشن 1 2 سے ضرب لگائے گی1.

5. گہری حساب کے لئے ڈی ایس پی قابل مائکروکنٹرولر استعمال کریں

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

ہدایات ڈی ایس پی پروسیسر تیزی سے انجام دے سکتے ہیں پھر ALU یہ ہیں:

  • بٹ شفٹ اور گھماؤ ہدایات۔
  • ضربات ، ڈویژنز اور دیگر ریاضی کے عمل۔
  • سائنز اور دیگر ٹریگنومیٹرک افعال کا اندازہ کرنا۔
  • تمام ڈی ایس پی آپریشنز جیسے ایف ایف ٹی ، ڈی ایف ٹی ، کنفیوژن اور ایف آئی آر فلٹرنگ۔

مائکروکنٹرولر کے ڈی ایس پی انجن کا استعمال کرنے کی ضرورت ہے۔

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

نوٹ کریں کہ معیاری ریاضی کی لائبریری کے افعال ڈی ایس پی انجن کی مدد نہیں کریں گے کیونکہ ان کا ترجمہ ALU اسمبلی کی ہدایت میں ہوتا ہے۔

6. مداخلت کے ساتھ کام کریں

مخصوص افعال کو انجام دینے کے لئے رکاوٹوں کا استعمال جیسے:

  • اے ڈی سی کی اقدار کو پڑھنا۔
  • UART سے بھیجنا اور وصول کرنا۔
  • PWM ڈیوٹی سائیکل رجسٹر کو اپ ڈیٹ کرنا۔
  • CAN یا I2C مواصلات۔

رکاوٹیں ان افعال کو افعال کال یا ان لائن کوڈ کے ذریعہ مین باڈی میں انجام دینے کے مقابلے میں تیزی سے کام کریں گی۔

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

7. بہترین دستیاب مرتب کرنے والے استعمال کریں

مرتب کرنے والے خود بخود کچھ اصلاحات پر عمل درآمد کرسکتے ہیں جب کوڈ کو سی-لینگوئج سے اسمبلی زبان میں ترجمہ کرتے ہو if اگر مناسب طریقے سے تشکیل دیا گیا ہو۔ اپنے مرتب میں اختیارات کو بہتر بنانے کے ل. دیکھیں اور اگر ممکن ہو تو تالیف دہندگان کے پیشہ ورانہ ورژن میں اپ گریڈ کریں کیونکہ وہ زیادہ طاقتور کوڈ آپٹیمائزر ہیں۔

8. مشروط بیانات کو ذہانت سے استعمال کریں

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

9. ان لائن افعال استعمال کریں

کوڈ میں صرف ایک بار استعمال ہونے والی افعال کو مستحکم قرار دیا جاسکتا ہے۔ اس سے کمپلر ان فنکشن کو ان لائن فنکشن میں بہتر بنائے گا اور اسی وجہ سے فنکشن کال کے لئے کسی اسمبلی کوڈ کا ترجمہ نہیں کیا جائے گا۔

  • کسی تقریب کے ساتھ 'جامد' کلیدی لفظ استعمال کرکے ان لائن کا اعلان کیا جاسکتا ہے۔

10. گھٹا ہوا لوپ استعمال کریں

ایک بڑھے ہوئے لوپ کے مقابلے میں ایک کم شدہ لوپ کم اسمبلی کوڈ تیار کرے گا۔

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

یہ دیکھتے ہوئے کہ لوپ کو سو مرتبہ تکرار کرنا پڑتا ہے ، لوپ سے ایک ہدایت کو کم کرنا سو مرتبہ عمل سے بچنے سے بچ جائے گا لہذا جب لوپ کو کئی بار دہرانا پڑتا ہے تو اس کا اثر زیادہ نمایاں ہوجاتا ہے۔

ختم کرو

یہ نکات مددگار ثابت ہوسکتے ہیں لیکن ان کی صحیح استعمال اور طاقت کا انحصار پروگرامر کی مہارت اور اس کے کوڈ پر موجود کمانڈ پر ہے۔ یاد رکھیں ، پروگرام کا سائز ہمیشہ عملدرآمد کے اوقات کا تعین نہیں کرتا ہے ، کچھ ہدایات زیادہ گھڑی کے چکروں کا استعمال کرسکتی ہیں تب دوسری پروگرام کی مہارتوں کو اپنا کردار ادا کرنا ہوگا۔

یہ مضمون مصنف کے بہترین علم کے مطابق درست اور درست ہے۔ مواد صرف معلوماتی یا تفریحی مقاصد کے لئے ہے اور کاروبار ، مالی ، قانونی ، یا تکنیکی معاملات میں ذاتی صلاح یا پیشہ ورانہ مشورے کا متبادل نہیں ہے۔

ہم آپ کو دیکھنے کے لئے مشورہ دیتے ہیں

ہم آپ کو پڑھنے کے لئے مشورہ دیتے ہیں

ونڈوز پی سی صارف ایپل میک میں تبدیل ہو رہا ہے: میں نے کیا سیکھا
کمپیوٹرز

ونڈوز پی سی صارف ایپل میک میں تبدیل ہو رہا ہے: میں نے کیا سیکھا

گلین اسٹوک تکنیکی ماہر ہیں جس میں ماسٹر آف سائنس کی ڈگری ہے۔ وہ صارفین کے ل product مصنوعات کا جائزہ لیتے ہیں اور ان کی خصوصیات کی واضح وضاحت کرتے ہیں۔کیا آپ ونڈوز پی سی صارف ایپل میک حاصل کرنے کے بار...
ایم ایس ایکسل 2016 میں ڈیولپر ٹیب کو کیسے شامل کریں
کمپیوٹرز

ایم ایس ایکسل 2016 میں ڈیولپر ٹیب کو کیسے شامل کریں

جوشوا یو ایس ایف میں ایک فارغ التحصیل طالب علم ہے۔ اس کی بزنس ٹکنالوجی ، تجزیات ، مالیات ، اور چھ سگما پر دباؤ ہے۔مذکورہ بالا 'ڈویلپر' ٹیب اس وقت تک نظر نہیں آتا جب تک آپ اسے اختیارات کے مینو ...