آموزش AVR

قفل کردن میکروکنترلر AVR (محافظت از برنامه)

دسترسی به حافظه برنامه یا حافظه فلش برنامه (flash program) میکروکنترلر های AVR را میتوان با استفاده از بیت های قفل LB1 و LB2 محدود کرد. با توجه به جدول پایین:

قفل کردن میکروکنترلر AVR

  • زمانی که هر دو بیت LB1 و LB2 یک باشند، هیچ قفلی روی میکروکنترلر اعمال نمیشود.
  • اگر LB1 صفر و  LB2 یک باشد، flash و EEPROM میتواند خوانده شود اما دیگر نمیتوان آن میکروکنترلر را پروگرام کرد و کد جدید روی آن ریخت.
  • اگر LB1 و LB2 هر دو صفر باشند، نمیتوان برنامه آن را خواند یا برنامه جدید روی آن ریخت، یعنی میکروکنترلر کاملا قفل میشود.

باز کردن قفل میکروکنترلر AVR

اگر میکروکنترلر خود را با صفر کردن LB1 و LB2 قفل کردید نگران نباشید. شما میتوانید کل بیت های Lock، Flash و EEPROM را پاک کنید و سپس دوباره Flash و EEPROM را دوباره برنامه ریزی کنید. میکروکنترلر AVR به ما تضمین داده است که حافظه Flash و EEPROM قبل از پاک شدن بیت های قفل، پاک میشوند. به این ترتیب کسی به برنامه دسترسی نخواهد داشت و فقط میتواند حافظه میکروکنترلر را پاک کند و از آن به عنوان یک میکروکنترلر خام استفاده کند.

بنابراین، وقتی عملیات پاک کردن تراشه روی AVR خود انجام می‌دهید، تمام بیت‌ های قفل برنامه‌ ریزی نشده بازنشانی می‌شوند و می‌توانید AVR خود را برای به‌روزرسانی دوباره برنامه‌ ریزی کنید. پس از ارتقای کد، می توانید با برنامه ریزی مجدد قفل بیت ها، سیستم عامل خود را در برابر بازرسی خارجی ایمن کنید.

قفل کردن بوت لودر

بیت های قفل بوت برای کنترل دسترسی فلش از کد استفاده می شود.

قفل کردن بوت لودر میکروکنترلر

دسترسی به فلاش داخلی (internal flash) از کد (از بوت لودر یا کد برنامه) را می توان با استفاده از بیت های قفل بوت BLB01، BLB02، BLB11 و BLB12 محدود کرد.

4 (6 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

10 نظر

  1. درود مهندس
    چطوری میتونم محدودیت خاموش روشن شدن ۲۵۰ بار رو بردارم ممنون میشم پاسخ بدیم یا کمکم کنین

  2. سلام مهندس رحیمی من یه مدل ای سی EEPROM دارم قفله میخوام قفلش رو باز کنم چکار کنم؟

    1. سلام ببخشید من یه سوال داشتم وقتی یک کد روی میکروکنترلر آپلود میشود و دوباره بخواهیم کد جدیدی را وارد کنیم کد های قبلی پاک میشن با باید خودمونه از میکروکنترلر پاک کنیم

  3. عذر خواهی میکنم مهندس جان با اردینو نوشته شده کدفرق نمیکنه؟

    1. شما قرار نیست کد رو تغییر بدید. میخواهید فیوز بیت مربوط به حفاظت رو تغییر بدید

  4. سلام مهندس رحیمی من برنامه ای نوشتم که میخواستم قفلی برایش بزارم که کسی دسترسی نداشته باشه به کد برنامه جهت کپی کردن اردینو را خودم ساختم با mega328 smd میشه بیزحمت راهنمایی بفرمایید که چه کار باید انجام بدم ممنون میشم راهنمایی بفرمایید

    1. سلام عزیز
      همانطور که نوشته شده بیت LB1 و LB2 رو صفر کنید
      برای تنظیم بیت ها میتونید از اتمل استودیو استفاده کنید
      همچنین دوره AVR با اتمل استودیو برای شما مفید خواهد بود

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *