NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2551 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 9 از 9

موضوع: قفل کردن برنامه avr و بوت لودر

  1. #1
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض قفل کردن برنامه avr و بوت لودر

    سلام دوستان
    تمام بایدها و نبایدها در مورد بیتهای قفل AVR:

    با Lock Bits قابلیت برنامه ریزی و خواندن برنامه میکرو تنظیم میشه. یعنی برای اینکه با پروگرمرهای موازی و سری نشه برنامه رو خوند باید 0b00 تنظیم بشن.
    البته اشاره کنم که فقط دسترسی پروگرمرهای خارجی رو محدود میکنه ولی هنوز قابلیت بوت لودر (Boot Loader) کار میکنه و حتی با قفل کردن هنوز با بوت لودر میکرو پروگرم میشه.
    برای محدود کردن بوت لودر هم بیتهای Boot Lock Bits هستن که به BLB0 و BLB1 تقسیم میشن. BLB0 میگه که بوت لودر میتونه قسمت اپلیکیشن رو تغییر بده یا نه و BLB1 هم میگه که میشه قسمت بوت لودر رو تغییر داد یا نه.

    توجه کنید که:
    - با قفل کردن میکرو با LB هنوز بوت لودر کار میکنه. پس اگر بعد از تنظیمات فیوز بیت ها و بیت های قفل بوت لودر، میکرو رو قفل کردین هنوز میشه با بوت لودر برنامه رو آپدیت کرد.

    اینم آدرس یک بوت لودر خوب
    Free AVR ATmega Xmega Bootloader with Intel hex Support and Automatic Baudrate Adjustment Autobaud - chip45boot2

    سوالی بود در خدمتیم
    ویرایش توسط esisafa : 25-10-2014 در ساعت 15:39

  2. کاربران : 7 تشکر کرده اند از شما esisafa برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    یک مشکل بوت لودر chip45 اینه که اگر فرکانس میکرو خیلی کم باشه، زمان انتظار بوت لودر خیلی زیاد میشه و درنتیجه زمان استارت آپ میکرو بسیار بالا میره. مثلا اگر سرعت میکرو 1 مگاهرتز تنظیم بشه اونوقت میکرو بیشتر از 15 ثانیه داخل بوت لودر صبر میکنه و این اصلا برای شروع برنامه زمان خوبی نیست. ولی اگر سرعت میکرو 4 و 8 باشه خوبه.
    حالا طبق منابعی که داشتم، گفتم که فیوزبیت bootrst رو غیر فعال میکنم و داخل برنامه اصلی شرط میذارم که بپره بوت لودر. در منبعی که دارم گفته که در میکرو مگا16 از دستور اسمبلی jmp استفاده کنیم. اما میکرو من atmega8a هست و وقتی در کدویژن 3.12 از دستور jmp استفاده میکنم در زمان کامپایل خطای اسمبلی میگیره که دستور jmp در مگا8 نداریم.

    حالا من چکار کنم. ممنون میشم پاسخ بدین.

  5. #3
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    دیتا شیت رو که بررسی کردم دیدم واقعا اسمبلر راست میگه. برای مگا8 دستور jmp نداریم ولی rjmp و ijmp داریم. هنوز دوستان نظری ندارن.

  6. #4
    کاربر فعال ppittl آواتار ها
    تاریخ عضویت
    Sep 2009
    نام
    اکبری
    نوشته ها
    138
    تشکر
    44
    تشکر شده 72 بار در 46 پست

    پیش فرض

    رییس جان
    شما کارت خیلی درسته،و من اگر بتونم دوست دارم کمک کنم
    می خواهی رمز نگاری کنی یا نه ؟
    ورودیت چیه ؟ سریال ،i2c ....
    با مگا لودر کار کردی؟
    این برنامه که معرفی کردید،سورس نیست !
    نمیشه کلاک رو تو برنامه تغییر داد که اینقدر منتظر نمونه؟
    ویرایش توسط ppittl : 13-12-2014 در ساعت 00:11

  7. #5
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    نه متاسفانه بوت لودر chip45 سورس نداره البته مجانی وگرنه با پول که همه کار میشه کرد.
    رمز نگاری نمیکنم. میخوام بوت لودر داشته باشه. سورس cvmegaload هست که برای cv یعنی کدویژن ساخته شده ولی مشکلش اینه که از همین دستور jmp استفاده کرده. تعجب میکنم که در لیست میکروهای سازگارش مگا8 هست ولی mega8a این دستور نداره.
    دستورات rjmp و ijmp رو کسی میتونه راهنمایی کنه. دوستان اسمبلی بلد کجا هستن؟ من کد زیر رو نوشتم ولی هنوز به دلیل مشکلات دیگه ای که در سخت افزار بود به نتیجه نرسیدم
    ldi r30,0x00
    ldi r31,0x0c
    ijmp
    این دستورات صحیح هست؟ گفته که دستور ijmp میپره به دستور واقع در رجیستر z که رجیستر z هم همون r30 و r31 هستن.

    این میکرو اعصاب برام نذاشته. نمیدونم چرا با روشن کردن بازر هم ریست میشه. البته تغذیه باتری هست ولی جریان مصرفی هم پایینه!!!!! ممکنه از کیفیت میکرو باشه؟
    ویرایش توسط esisafa : 13-12-2014 در ساعت 03:35

  8. #6
    عضو جدید
    تاریخ عضویت
    Sep 2013
    نوشته ها
    7
    تشکر
    2
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    میشه فایل cvmegaload رو برای من بذارید؟ من هرچی می گردم همچین فایلی نمی بینم. کلا چطوری میشه با بوت لودر کار کرد؟

  9. #7
    مدیرکل انجمنها
    تاریخ عضویت
    May 2011
    نام
    احسان صفامنش
    نوشته ها
    1,763
    تشکر
    919
    تشکر شده 2,261 بار در 1,056 پست

    پیش فرض

    هنوز دوستان جوابی ندارن.
    میکرو mega8 دستور jmp نداره ولی چرا در برنامه megaload از این دستور برای پرش به آدرس 0x0000 استفاده شده؟؟؟؟؟؟؟!!!!! جالب اینه که گفته mega8 ساپورت میشه.
    اینم لینک megaloader
    http://www.microsyl.com/index.php/2010/03/30/megaload

  10. #8
    کاربر فعال rozeh آواتار ها
    تاریخ عضویت
    Mar 2013
    نوشته ها
    198
    تشکر
    27
    تشکر شده 176 بار در 104 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esisafa نمایش پست ها
    میکرو mega8 دستور jmp نداره ولی چرا در برنامه megaload از این دستور برای پرش به آدرس 0x0000 استفاده شده؟؟؟؟؟؟؟!!!!! جالب اینه که گفته mega8 ساپورت میشه.
    اینم لینک megaloader
    http://www.microsyl.com/index.php/2010/03/30/megaload
    عیبی نداره. احتمالا اشتباه کرده که فکر کرده این برنچ(Branche) رو داره. این دو صفحه فوق العاده عالی هستن واسه کار شما:

    c++ - ATmega8 doesn't support JMP instruction - Stack Overflow

    و یا

    jmp to 0x0000 in atmega8 | AVR Freaks

  11. تشکرها از این نوشته :


  12. #9
    تازه وارد
    تاریخ عضویت
    Apr 2017
    نوشته ها
    1
    تشکر
    1
    تشکر شده 0 بار در 0 پست

    پیش فرض

    با سلام به دوستان عزیز
    بابت توضیحات خوبتون تشکر میکنم. و یه سوالی دارم
    با استفاده از بوت لودر میشه یه میکرو رو قفلش کرد ؟ یه سیستم دارم که فقط به رابط سریالش دسترسی دارم و برنامشو با رابط سریال و بوت لودر عوض میکنم . میخوام آخر کار با همون رابط سریال برنامه رو قفلش کنم . و از spi نخوام استفاده کنم. میشه؟ کسی این کارو کرده؟ راستی میکرو atmega1284 استفاده میکنم.
    بازم ممنون

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •