بوت لودر bootloader جهت میکرو AVR

بوت لودر bootloader جهت میکرو AVR

بوت لودر bootloader جهت میکرو AVR
بوت لودر bootloader جهت میکرو AVR

همه چیز در مورد بوت لودر bootloader جهت میکروهای AVR 

به همراه سورس مخصوص کدویژن و همچنین برنامه تحت ویندوز Sisoogloader

 

بوت لودر Bootloader چیست؟

اگر شما هم جزء آن دسته از اشخاصی هستید که بصورت آماتور و حتی حرفه ای برنامه میکرو کنترلر می نویسید متوجه دغدغه آپدیت بعد از تحویل پروژه خود هستید.

برای نمونه شما پروژه ای را تحویل کارفرما میدهید, و تعداد زیادی از اون را هم تولید میکنید.

بعد از مدتی تصمیم میگیرید که سیستم هاتون آپدیت بشند و یا اینکه یک باگ در سیستم مشاهده میکنید که تصمیم میگیرید که اون را رفع کنید!

نگید که قراره همه دستگاهها بازگشت داده بشند و یا اینکه قراره شما یک فایل هگز به کارفرما بدید و بگید برو با این پروگرمر به این شکل دستگاهها را آپدیت کن!

(و احیانا کارفرمای عزیز نیز اگر پول زیادی برای سخت افزار شما داده باشه میتونه فردا به راحتی از این سیستم یک کپی داشته باشد و تولید انبوه کنه 🙂   ( البته این صرفا یک شوخی و احتمال ضعیف هست ).

خب, دقیقا اینجا هست که بوت لودر برای شما میتواند رویایی ترین قابلیت میکرو شود.

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

  • پشتیبانی میکرو کنترلر شما و قابلیت بوت لودر در میکرو شما, برای نمونه میکروهای 8051 از این قابلیت پشتیبانی نمیکرد. ( یعنی این قسمت یک قابلیت سخت افزاری در میکرو شما میباشد)
  • نرم افزاری که بر روی بوت لودر میکرو شما نوشته میشه ( تقریبا مشابه برنامه ای است که در برنامه نویسی اون میکرو استفاده میکنید)
  • نرم افزاری که قرار است اطلاعات برنامه را بر روی میکرو شما ارسال نماید (نرم افزار کامپیوتری یا میکروکنترلری مشابه)

بهترین مثالهایی که بصورت عمومی میتوان برای بحث بوت لودر زد:

بوت لودری هست که بر روی بردهای آردوینو Arduino استفاده میشود, این برنامه قابلیت این را دارد که توسط یک پورت کام شناخته شده اطللاعات برنامه را دریافت نموده و در داخل فلش میکرو شما ذخیره نماید بدون اینکه نیاز باشد پروگرامر خاصی به میکرو شما وصل گردد.

در دنیای دیجیتال میتوان بایوس کامپیوتر را هم شبیه بوت لودر تجسم کرد, برنامه ای بسیار ساده که وظیفه دارد بستری مناسب فراهم کند که برنامه اصلی ( مثلا ویندوز..) بر روی اون نصب بشه.

 

بوت لودر Bootloader چطور عمل میکند؟

قسمت بوت لودر در میکروکنترلر, آدرسی متفاوت از برنامه اصلی دارد و غالبا نیز حجم کمی از فلش به این قسمت (بوت لودر) اختصاص داده میشود.

شما در قسمت بوت لودر میکرو خود لازم است یک برنامه بنویسید که این برنامه باید در حد امکان ساده, کوچک و قابلیت گرفتن اطلاعات مربوط به پروگرام را از یک یا چند درگاه ارتباطی مشخص داشته باشد.

سپس باید فیوزبیتهای و یا تنظیمات خاص میکرو خود را طوری انجام دهید که میکرو شما به محض ریستارت شده وارد برنامه بوت لودر گردد.

برنامه نوشته شده در این قسمت باید شامل موارد زیر باشد:

  • تا حد امکان ساده و کم حجم
  • ساختار آن باید طوری باشد که هنگام ریستارت کمترین زمان را جهت بررسی ارتباط خارجی صرف نماید.
  • ساختار نوشته شده حتی الامکان نباید نیاز به آپدیت در آینده داشته باشد.

 

بوت لودر و پروگرمر چه تفاوتی با هم دارند؟

 

از نظر ساختار معماری میتوان گقت این دو قسمت, آدرسی کاملا متفاوت در میکروکنترلر شما دارند و این امکان در بوت لودر وجود دارد که میتواند به فلش برنامه اصلی دسترسی پیدا نموده و آن را پاک و بازنویسی نماید.

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

مثلا از طریق بوت لودر و درگاه سریال, I2C , 1Wire و حتی مثلا از طریق GSM Modem و از راه دور توانایی پروگرام کردن را خواهید داشت و این قابلیت مهم بوت لودر هست بدون در نظر گرفتن سخت افزار اضافی میتوانید امکان پروگرام کردن میکرو خود و آپدیت آن را در آینده داشته باشید.

امنیت برنامه در بوت لودر

یکی از مهمترین مزایای استفاده از سیستم بوت لودر قابلیت رمز نگاری برنامه اصلی میباشد که به عبارتی تضمین میکند که برنامه شما توسط کسی که قرار است عملیات آپدیت را انجام دهد نتواند کپی برداری شود.

شما میتوانید برنامه میکرو خود را توسط یک کد انکریپت  Encrypt نموده و در برنامه بوت لودر میکرو این اطلاعات توسط کلید شما بازگشایی و پروگرام شود.

 

محاسن و کاربردهای بوت لودر Bootloader:

همانطور که در بالا ذکر شد مهمترین محاسن بوت لودر موارد زیر میباشد:

  • امکان حذف پروگرام جهت پروگرام های بعدی ( شبیه بردهای آردوینو)
  • امکان اینکریپت Encrypt کردن اطلاعات فلش برای واگذاری و ارسال فایل آپدیت به افراد دیگر
  • امکان آپدیت کردن میکرو از درگاههای متفاوت از جمله سریال , بلوتوث , وای فای WIFI , GPRS و …..

نکته مهم:

در ساختار برنامه بوت لودر شما این موضوع باید حتما و با دقت مورد لحاظ قرار گیرد که برنامه بوت لودر حتما از گرفتن اطلاعات درست و بدون مشکل مطمئن شود و بعد اقدام به پروگرم فلش اصلی شما نماید.

مثلا در صورتیکه شما یک پکت از درگاه سریال ارسال می کنید توسط CRC پکت ارسالی و دریافتی را از نظر درست بودن بررسی نمایید.

در ساختاری که از راه دور مقل GPRS  شما سعی میکنید بوت لودر سیستم این کار را انجام دهد ابندا فایل را کاملا دریافت کنید سپس کل فایل ریخته شده را از نظر صحت اطلاعات دریافتی چک نمایید و سپس اقدام به جایگزینی برنامه جدید نمایید.

مطمئن باشید که برنامه فرستاده شده از نظر کارکرد درست است! برای نمونه شما اگر برنامه اشتباهی ارسال کنید دستگاه این برنامه را جایگزین خواهد نمود و علنا برنامه اصلی درستی به کار نخواهد افتاد تا سیستم شما امکان بروز اوری و تصحیح داشته باشد.

در دستگاههای حساس ساختار بوت لودر شما میتواند همزمان از چند بستر امکان بروزآوری داشته باشد: مثلا از بستر سریال, از بستر GPRS  و یا حافظه خارجی مثل مموری کارت… که این امکان را میدهد در صورت بوجود اومدن مشکل بتوان از یک بستر دیگر عملیات بروز آوری انجام گیرد.

 

 

بوت لودر bootloader مخصوص AVR برای کد ویژن CodeVision Avr

در زیر سعی داریم یک نمونه بوت لودر که میتوان بر روی اکثر مدل های AVR اجرا نمود را به همراه سورس کدویژن codevision و برنامه تحت ویندوز تفسیر کنیم.

در ابتدا می ریم سراغ برنامه ای که باید روی میکرو AVR ریخته بشه و نحوه پروگرام اون و نکات مربوط را ذکر میکنیم.

به عنوان مثال نیز سعی میکنیم در زیر یک برنامه بوت لودر تست بر روی سخت افزار  ATMEGA128 و بر روی USRAT1 ریخته و آن پیوست نماییم.

لازم به ذکر است که منبع اصلی برنامه میکرو این پروژه از سایت MicroSyl.com عاریه گرفته شده است و با تغییراتی در نحوه ارتباط و همچنین منطبق کردن آن با کدویژن و نوشتن برنامه اختصاصی تحت ویندوز Sisoogloader در وب سایت سیسوگ منتشر میگردد.

 

codevision bootloader

ساختار فلش و بوت لودر در میکروهای AVR

در ایتدا باید بدونیم که لازم هست در قسمت فیوز بیت ها یک سری تغییرات را اعمال کنیم تا میکرو ما هنگام  ریستارت اول سراغ بوت لودر برود  و برنامه اونجا را اجرا نماید  و صد البته باید حتما در برنامه بوت لودر آدرس دهی مناسبی داشته باشیم تا بعد از اتمام کار بوت لودر میکرو سراغ برنامه اصلی برود که با دستور  زیر این کار انجام می گردد:

 

پس طیق صحبت بالا ابتدا ما بیت BOOTRST را فعال میکنیم تا میکرو به محض ریستارت شدن میکرو وارد اجرای برنامه در قسمت بوت لودر شود

 

BOOTRST BOOTloader

 

سپس لازم است که سایز بوت لودر را توسط BootSZ0 , BootSZ1 تعیین کنیم طبق جدول زیر:

BootSZ Bootloader Bootloader

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

 

AVR Bootloader

 

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

در برنامه پیوست شده شما باید در فایل Bootloader.h نوع میکرو خود را انتخاب کنید. که ما نیز میکرو تست خودمون یعنی  ATMEGA128 را انتخاب نموده ایم.

 

سپس لازم است که تنظیمات سریال را تنظیم کنید از جمله باودریت و فرکانس …

در زیر  تابع MAIN  برنامه را مشاهده میکنید:

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

سپس طبق یک تراکنش که شامل یک تبادل اطلاعات با برنامه ویندوز Sisoogloader هست میتوانید برنامه اصلی را به صورت صفحه به صفجه بر روی میکرو بریزید.

تابع WriteFlashPage عکلیات پروگرام صفحه به صفحه را انجام میدهد.

 

 

در زیر نیز نمایی از برنامه ویندوز  SisoogLoader را مشاهده میکنید.

Sisoogloader Windows App

لازم به ذکر است که قابلیت کدگذاری فایلهای هگز نیز که توسط تیم سیسوگ به سیستم اضافه شده بود نیز به علت پیچیده شدن برنامه حذف گردیده است.

همچنین لازم است که برنامه اصلی از طریق درگاه سریال بر روی میکرو ریخته شود و برای اینکار لازم است در برنامه ویندوز فایل هگز را انتخاب نمایید و سپس پورت و باودریت مناسب را انتخاب کنید و میکرو را ریستارت نمایید تا روال آپدیت بصورت اتوماتیک انجام گیرد.

 

 

دانلود برنامه ویندوز بوت لودر SisoogLoader

Sisoogtloader-AVR.zip

دانلود بوت لودر سیسوگ مخصوص کد ویژن

Sisoog-Bootloadr-AVR-Codevision.zip

 

با توجه به استقبال کاربران و درخواست آنها

سورس نرم افزار ویندوز بوت لودر SisoogLoader که به زبان C# نوشته شده به این پست اضافه گردید.

این برنامه با ویژوال استادیو 2013 کامپایل گردیده است.

Sisoog-Loader.zip

 

 

 

 

 

حمایت از Sisoog Os

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

1 نفر

پــــســنــدیـده انـد

توجه

Sisoog Os
Sisoog Os

کارآفرین, تولید کننده, طراح الکترونیک و ....

دیدگاه ها

74 دیدگاه

  • hamed malek
    ۱۷ بهمن ۱۴۰۰

    سلام با تشکر از اموزش خوبتون ای کاش در مورد نحوه چگونگی کدگذاری روی فایل hex و چگونگی اضافه کردن این قابلیت کد گزاری روی بوت لودر میکرو هم توضیح میدادید باتشکر

    • Sisoog Os
      Sisoog Os
      ۱۸ بهمن ۱۴۰۰

      این رمزنگاری میتونه از تعویض چند تا بیت ساده در یک بایت شروع بشه تا الگوریتمهای امن مثل AES128 یا ..
      شما فایل را رمزنگاری میکنید و یک فایل جدید اسمش دیگه هگز نیست را به کسی که قرار دستگاه اپدیت کنه میدید

      مسئله اینه که شما هر Code ای که روی فایل انجام میدید باید برعکسش را در میکرو انجام بدید و مطمئن هم بشید که خروجی درست خواهد بود

  • مریم
    ۹ آبان ۱۴۰۰

    سلام . ببخشید در مورد arduino mega R3 با ای سی 2560 ، من زمانی که بوت لودر رو می ریزم روی میکروم و بعد با IDE پروگرام می کنم بار اول برنامه آردوینو ریخته می شود ولی بار دوم ارور می دهد و باید دوباره بوت لودر رو بریزم تا بشه دوباره میکرو رو پروگرام کنم . ممنون می شم اگر بتونین راهنماییم کنین تا مشکلم حل بشه.

    • Zeus ‌
      Zeus
      ۱۴ آبان ۱۴۰۰

      سلام دوست عزیز
      از چه بوت لودری استفاده میکنید و از چه طریقی پروگرام میکنید برد رو ؟

      • مریم
        ۱۵ آبان ۱۴۰۰

        با سلام
        بوت لودر از مسیر نصب آردوینو برداشته شده و با پروگرامر hattel ریخته می شود.
        C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\stk500v2
        –stk500boot_v2_mega2560 —
        فیوز بیت از مسیر نصب آردوینو برداشته شده و با پروگرامر hattel تنظیم می شود.
        C:\Program Files (x86)\Arduino\hardware\arduino\avr
        –boards–
        بعد پروگرامر جدا شده و بوسیله rxtx پایه آردوینو uno (میکرو uno برداشته می شود) و از طریق usb پروگرام انجام می گردد.
        البته از طریق دیگری مشکلم حل شده (ساخت برنامه ای که بوت لودر هم دارد و فلش آن روی میکرو با hattel ) ولی چرا این روش جواب نمی ده برام سواله وچون قبلا روی uno جواب داده.
        با سپاس فراوان بابت وقتی که گذاشتید. موفق باشید.

        • Zeus ‌
          Zeus
          ۱۵ آبان ۱۴۰۰

          سلام
          الان این موردی که شما باهاش مواجه شدید مقداری عجیبه و من فکر کنم یه جای کار قلقی وجود دارد
          شما برنامه تون رو با چه کامپایلری میسازید ؟‌از خود آردوینو استفاده میکنید ؟
          البته شاید فیوز بیت ها تنظیمات خاصی نداشته باتشن که من در مورد این میکرو نمیدونم باید برم دیتاشیتش رو مطالعه کنم

          • مریم
            ۱۵ آبان ۱۴۰۰

            سلام
            بله ، از خود ide آردوینو استفاده می کنم.

            0
  • moein
    ۲ خرداد ۱۴۰۰

    سلام
    ممنون از توضیحات کامل و خوبتون
    اکثر جاها فقط فایل هگز میکرو هست ولی شما کلی وقت گذاشتید و سورسش رو با کد ویژن قرار دادید
    ولی کاش برای میکرو پر کاربردی مثل mega 8 هم جواب میداد…
    برنامه برای mega8 کلی خطا میگیره
    نظرات رو خوندم #define IVCE 0 هم اضافه کردم به اول برنامه main ولی مشکل حل نشد

    • Zeus ‌
      zeus
      ۴ خرداد ۱۴۰۰

      خواهش میکنیم دوست عزیز
      این سورس باید بگم برای بیش از ۱۰ سال پیش هست و واقعا اصلاحش از توان ما خارجه
      فکر میکنم باید وقت بذاریم و بوت لودر مناسب و امروزی تری طراحی کنیم 🙂

  • یزدخواستی
    ۲۲ فروردین ۱۴۰۰

    سلام و خسته نباشید
    چیزی که تو قضیه بوت لودر اهمیت داره اینه که بتونیم از راه دور میکرو رو پروگرام کنیم میشه یه مقاله بذارید مخصوص کدویژن که یا با وای فای یا با بلوتوت این کارو انجام داد آیا میشه این برنامه ویندوز رو از طریق وای فای به میکرو جهت عملیات بوت متصل کرد؟
    آیا میشه با چیپ های simcom و از طریق GPRS برنامه هگز ر گرفت و روی میکرو اعمال کرد لطفا مقاله بذارید تشکر
    میکرو من atmega128 و نرم افزارم کدویژن هستش

    • Sisoog Os
      Sisoog Os
      ۲۴ فروردین ۱۴۰۰

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

  • اکبر
    ۲۸ آذر ۱۳۹۹

    سلام خسته نباشید من هر میکروavrرو با آردینو بوتلودر انجام میدم پیغام error while burning bootloderمینویسه لظفآ راهنمایی فرمایید ممنون میشم

    • Sisoog Os
      Sisoog Os
      ۲۸ دی ۱۳۹۹

      سلام فکر کنم مشکل از پروگرمر شما باشه

  • حسین
    ۱ شهریور ۱۳۹۹

    سلام ممنون بابت مطلب مفیدتون.
    میشه لطفا یه مقاله در مورد اپدیت وایرلس میکرو stm با ماژول sim بذارید؟ یا اگه اموزشی در این رابطه میشناسید معرفی کنید؟

    • Sisoog Os
      Sisoog Os
      ۶ شهریور ۱۳۹۹

      سلام انشاله سعی مون را خواهیم کرد

  • علی تقی نژاد
    ۵ تیر ۱۳۹۹

    سلام وقت بخیر.ممنون از مطالب خوبتون. من یک برنامه BLINK برای قسمت بوت لودر نوشتم که وقتی سیستم رو ریست میکنم یک ال ای دی شروع کنه به چشمک زدن و 10 تا چشمک بزنه و بعد جامپ بشه به اول حافظه فلش. فیوز بیت ها به شرح زیر است.
    BOOTSZ0=0;BOOTSZ1=0;BOOTRST=0;BODEN=0;SUT=0;CKOPT=0
    کدویژن استفاده میکنم و از درستی برنامه blink هم مطمین هستم. از قسمت configure و program type گزینه مربوط به بوت لودر 4096 word رو انتخاب میکنم.
    از پروگرامر هاتل استفاده میکنم و آدرس رو در کادر مربوط f000 تا ffff انتخاب میکنم و پروگرامر هم برنامه رو پروگرام میکنه ولی نمیدونم چرا وقتی میکرو ریست میکنم قسمت بوت لودر اجرا نمیشه.
    همین برنامه رو وقتی از configure و program type گزینه application رو انتخاب میکنم و از آدرس 0000 تا ffff پروگرام میکنم برنامه به درستی جواب میده!
    خدمت شما عرض کنم که برنامه رو وقتی برای بوت لودر مینویسم قسمت چشمک زدن تو حلقه while نیست.فقط میگم ده بار چشمک بزنه و بعد جامپ بشه اول حافظه فلش. نمیدونم مشکل از کجاست؟

    • Sisoog Os
      Sisoog Os
      ۵ تیر ۱۳۹۹

      سلام پروژتون را یه جا اپلود کنید بفرستید تا یک بررسی کنیم

      • علی تقی نژاد
        ۵ تیر ۱۳۹۹

        سلام مجدد
        فایل شامل دوتا برنامه است که یک برنامه مربوط به بوت لودر و از آدرس F000 تا FFFF نوشته میشه و دیگری برنامه فلش application هستش که از آدرس 0 تا EFFF نوشته میشه . پروگرامرم هاتل هستش و از کادر بالا که مربوط به آدرس فلش هست، آدرس هایی که ذکر کردم رو وارد میکنم. پروژه بوت لودرم از قسمت CONFIGURE و PROGRAM TYPE گزینه bootloder 4095 فعاله و برتامه فلش گزینه application . تشکر
        https://www.dropbox.com/s/vrs08idpz4vxhwf/BOOT%20LOADER%20TEST.rar?dl=0

  • محمد
    ۲۹ خرداد ۱۳۹۹

    سلام ممنون از مطالب خوب و کاربردی که میزارید.
    شما در روند تنظیم فیوز بیت ها ، BOOTRST و BOOTSIZE هارو تغییر دادین که اولی باعث شروع برنامه از قسمت بوت لودر هنگام ریستارت و دومی برای تنظیم میزان حافظه بوت لودر بود . من هنوز متوجه نشدم که تنظیمات بالا چرا باعث تغییر برنامه بوت لودر میشه؟ یعنی میکرو از کجا میفهمه این برنامه مخصوص بوت لودر هست و از آدرس X تا آدرس Y باید نوشته بشه؟
    منظورم اینه که میکرو چجوری فرق بین برنامه بوت لودر و برنامه عادی برای فلش رو متوجه میشه؟

    • Sisoog Os
      Sisoog Os
      ۲۹ خرداد ۱۳۹۹

      خب خودتون توضیح دادید
      با تنظیم فیوز بیت ها برنامه مبپره برنامه بوت لودر را اجرا میکنه
      در اونجا ما میبنیم اگر روال اپدیت فریمور فعال هست خب میریم اپدیت انجام میدیم اگر نه میریم به برنامه اصلی
      برنامه بوت لودر دقیقا برنامه ای هست شبیه برنامه میکرو و شما دسترسی رایت برنامه روی فلش اصلی را هم دارید
      هر کدام از قسمت های میکرو میتونه فعال بشه و شما استفاده کنید

      • محمد
        ۲۹ خرداد ۱۳۹۹

        ممنون پس طبق فرمایش شما اگر من موقع پروگرام کردن میکرو اشتباهی بیت BOOTRST رو فعال کنم ، برنامم در قسمت بوت لودر نوشته میشه درسته؟

        • Sisoog Os
          Sisoog Os
          ۱ تیر ۱۳۹۹

          When the BOOTRST Fuse is programmed, the device will jump to the Boot Loader address at
          reset,
          اگر این را فعال کنید برنامه موقع ریست میره و ا سمت بوت لودر لود میشه ولی برای اینکه تعیین کنید کجا ریخته بشه مثلا توی کدویژن تو قسمت کانفیگ تو قسمت Program Type نوع بوت لودر را انتخاب میکنید

          • محمد
            ۲ تیر ۱۳۹۹

            احتمالا من جایی رو دارم اشتباه درک میکنم و هنوز دید درستی نسبت به قضیه پیدا نکردم.
            اگر قرار باشه برنامه ای برای بوت لودر نوشته بشه باید دقیقا در اول حافظه بوت لودر قرار بگیره.مثلا اگر BOOTSZ0,BOOTSZ1 یک و یک باشن باید این برنامه ای که نوشتین از آدرس FE00 تا FFFF قرار بگیره. اینکه شما چجوری این برنامه رو در این آدرس قرار میدین رو هنوز درک نکردم. نمیدونم این تنظیمات رو سمت پروگرامر باید قرار بدیم یا کاره دیگه ای باید انجام بدیم.اگر سمت پروگرامر هست که من از هاتل استفاده میکنم ممنون میشم توضیحاتشو بدین.
            کلا هم یک فیوز بیت BOOTRST و BOOTSZ داریم که اولی برای شروع برنامه از اول برنامه بوت هست و دومی برای سایز بوت لودر و ربطی به آدرس قرار گیری برنامه نداره.
            ببخشید من زیاد سوال پرسیدم تو این بخش . قطعا از حوصله شما هم خارج شده این سوال ها . عذرخواهم. اگر تمایلی به پخش این سوال نداشتین ممنون میشم با ایمیل در ارتباط باشین.

            0
          • Zeus ‌
            زئوس Zeus
            ۴ تیر ۱۳۹۹

            سلام دوست عزیز
            خوب حدس شما درسته و همینطوره – ببینید وقتی برنامه رو برای بوت لودر مینویسید فایل هگز خروجی از اون آدرس شروع میشه و همونطور که میدونید فایل هگز شامل آدرس هست و جز این که اونو لود کنید نیاز به کار دیگه ای نیست.
            حالا آدرس از کجا میآد از تنظیمات کامپایلر :)‌ شما به کامپایلر میگید میخواید برنامه بوت لودر بنویسید و آدرسش فلانه – و دیگه همه کارها رو خود کامپایلر انجام میده .
            به همین سادگی

            0
  • محمد علی
    ۲۵ خرداد ۱۳۹۹

    سلام وقتتون بخیر
    من یک مسیله رو متوجه نشدم . شما گفتین “ابتدا فایل را کاملا دریافت کنید سپس کل فایل ریخته شده را از نظر صحت اطلاعات دریافتی چک نمایید”.
    منظور از کل فایل چیه؟ یعنی اول همه اطلاعاتی که میخوایم روی حافظه فلش قرار بگیره رو دریافت کنم بعد بریزم روی حافظه ؟

    سوال دوم: بعد از آپلود کردن بوت لودر جدید ، برای پروگرام چطوری باید میکرو ریست بشه؟ منظورم اینه که چطوری میکرو متوجه کنیم که برنامه جدید قراره ریخته بشه تا ریست کنه و به حافظه بوت بره! نرم افزاری باید این کار رو انجام بدیم؟

    سوال سوم: فرض کنیم من بوت لودر جدید رو ریختم ولی بعدش پشیمون شدم ” :))) ” چطوری میتونم بوت لودری که قبلا بوده رو روش آپلود کنم؟

    • Sisoog Os
      Sisoog Os
      ۲۵ خرداد ۱۳۹۹

      سلام دوست عزیز
      در مورد سوال اول بله این کار به دلیل این هست که هیچ مشکلی در مسیر آپدیت پیش نیاد و برنامه شما احیانا از بین نره کلا , البته اگر راهکارهای خاصی را هم داشته باشید بخصوص اینکه اگر مشکلی در فایل بود ساختار استارت دوباره برنامه را داشته باشید میتونید این کار را انجام ندید
      دوم : میتونید نرم افزاری باشه یا سخت افزاری باشه
      سوم : البته مواردی که ما گفتیم اپدیت بوت لودر نبود اپدیت برنامه اصلی بود و خب قاعدتا وقتی شما برنامه خودتون را ریختید برنامه قبلی مثل یک برنامه جدید قابل دستیابی هست

      • محمد علی
        ۲۶ خرداد ۱۳۹۹

        ممنون از پاسختون .
        شما نوشتین که حافظه بوت لودر محدودیت داره. فرض کنید من میخوام یک برنامه فلش برای ATMEGA 128 آپلود کنم که حجمی حدود 120 کیلو بایت داره. منظورتون اینه که من تمام این 120 کیلو بایت رو دریافت کنم و در صورت صحیح بودن شروع کنم به نوشتن در حافظه فلش ؟ این حجم دیتا که در حافظه بوت لودر جا نمیشه.
        سوال سومم رو فکر میکنم نتونستم خوب بپرسم. کدی که در بالا بررسیش کردین قراره به جای برنامه ای که به صورت دیفالت در حافظه بوت لودر میکرو هست قرار بگیره؟ یعنی حافظه بوت لودر میکرو رو پاک میکنیم و این کد رو جاش قرار میدیم؟

        • Sisoog Os
          Sisoog Os
          ۲۹ خرداد ۱۳۹۹

          بله جا نمیشه و شما بهتره از یک فلش خارجی استفاده کنید
          البته گفتم شاید بتونید روال ها و ارتباطات را داخل همون بوت لودر قرار بدید و اگر هم وسط کار مشکلی پیش بیاد خب از اول پیش میره مثل همین بوت لودری که الان ما سمپلش را قرار دادیم
          پروتکلهای متفاوت جهت پروگرام کردن AVR داخل Bootloader ای که ما در موردش صحبت میکنیم نیست و شما همیشه میتونید از اون هم استفاده کنید

      • محمد علی
        ۲۷ خرداد ۱۳۹۹

        ممنون از پاسختون
        منظورم از سوال سومم رو نتونستم درست برسونم. میکرو کنترلر به صورت دیفالت یک برنامه در بوت لودر خودش داره درسته؟چیزی که من برداشت کردم اینه که شما برنامه که در بالا توضیحش دادین رو قراره به جای برنامه بوت لودر دیفالت میکرو قرار بدین. یعنی برنامه قبلی که در حافظه بوت لودر بود رو پاک کنین و این برنامه جدید که نوشتین رو قرار بدین.
        حالا سوالم رو مجدد میپرسم.
        سوال اول:میکرو mega 128 ای داریم که قراره 128 کیلو بایت برنامه فلش بهش بدیم. بوت لودر مگه چقدر حافظه داره که من تمام حجم فایل فلش رو دریافت کنم و بعد از اوکی بودن اطلاعات دریافتی شروع کنم به نوشتن در حافظه فلش؟

        • Sisoog Os
          Sisoog Os
          ۲۹ خرداد ۱۳۹۹

          خدمتتون عرض کردم اینکه شما حتما به حافظه خارجی در صورتیکه سناریو دریافت کامل را اجرا میکنید نیاز دارید و داخل خود میکرو احتمالا نمیتونید
          و مجدد میگم اجباری نیست و میتونید نباشه ولی باید روال بازگشت به اول وجود داشته باشه

  • بهنام خراسانی
    ۱۷ خرداد ۱۳۹۹

    سلام درود فراوان، مهندس جان امکانش هست که از طریق اردوینو روی atmega8 تا atmega128 بوت لودر کرد؟

    • Zeus ‌
      زئوس Zeus
      ۱۹ خرداد ۱۳۹۹

      فکر میکنم امکانش باشه – باید بیشتر سرچ کنید.

  • وحید ستاری
    ۱۳ فروردین ۱۳۹۹

    با سلام و تشکر از مطالب بسیار مفیدتون
    من یه مشکلی دارم لطفا راهنمایی بفرمایید،
    وقتی میخوام عملیات پاک کردن و نوشتن روی فلش رو انجام بدم، در پروتئوس با این خطا مواجه میشم
    “PC=0x76B8 [AVR CPU] SELFPRGEN is cleared by time-out”
    و اینکه عملیات ارسال صفحه به صفحه از کامپیوتر رو در کدویژن خودم بصورت دستی شبیه سازی کردم به اینصورت که فقط میخوام صفحه اول رو پاک و رایت کنم
    دیتای صفحه اول رو هم اینجوری دادم
    “C9400030C9430060C9400000C9400000C9400000C9400000C9400000C9400000C9400000C9400000C9400000C9417060C9400000C942C030C9400000C9400000C9400000C9400000C9400000C9400000C9400006400C80090012003F8FFFCFFFEFFFFFF0000000000000000411F000054502D4C494E4B5F463741373642303931343931363132373838373231003139322E3136382E312E31303100342E300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023257328257329230D0A00245273704765744366672C002B4349505354414D41433A0041540D0A004154970000000000000000000000”
    دقیقا لاین اولی هستش که نرم افزاری که شما گذاشتید همین پست تولید میکنه و میفرسته سمت میکرو تا میکرو به اولین صفحه رایت کنه
    و اینکه شماره صفحه رو هم بصورت دستی صفر دادم تا اولین صفحه رایت کنه
    ولی وقتی به اولین کد اسمبل میرسه واسه پاک کردن فلش یا رایت، هشداری که در بالا ذکر کردم رو میده
    و اینکه در شبیه سازی نگا میکنم اصلا حافظه فلش رو نه پاک میکنه و نه رایت
    لطفا به راهنمایی بکنید

    • Zeus ‌
      زئوس Zeus
      ۱۶ فروردین ۱۳۹۹

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

  • vahid
    ۲ فروردین ۱۳۹۹

    سلام و منون بابت مطلبتون برنامه sisoogloder رو در ویندوز10 اجرا می کنم باز نمیشه میشه راهنمایی کنید . توی ویندوز 7 مشکلی نداره

    • Sisoog Os
      Sisoog Os
      ۴ فروردین ۱۳۹۹

      این نرم افزار با C شارپ نوشته شده به احتمال زیاد یک سری فایلهایی هست که باید نصب بشه که برنامه اجرا بشه
      چه پیغام خطایی میده؟

  • امیرسینا
    ۲۲ شهریور ۱۳۹۸

    سلام. ممنون از آموزش خوبتون. خیلی دنبال یه آموزش ساده و گویا میگشتم. فقط دو تا نکته:
    ۱- سه تا لینک آخر مقاله (برنامه ویندوز، بوت لودر، سورس برنامه ویندوز) اشکال داره. با کروم ارور Failed – Network error و با Free Download Manager ارور Remote server closed connection میده. به هر سه تا مخصوصا آخری نیاز دارم؛ چون دارم یه برنامه GUI با ویژوال استودیو برای ارتباط UART با میکرو میسازم ولی از اونجایی که تو ویژوال استودیو تازه‌کار هستم، کلا قاطی کردم! لطفا لینک‌ها رو تعمیر کنید.
    ۲- هر چند که CodeVision و Atmel Studio هر دو به زبان C هستن و کمی فرق دارن ولی کاش آموزش‌ها با Atmel Studio باشه.
    بحث Encrypt کردن هم جالب بود. اگه میشه یه مقدار بیشتر توضیح بدین.
    با تشکر.

    • Sisoog Os
      Sisoog OS
      ۲۴ شهریور ۱۳۹۸

      سلام دوست عزیز
      لینک ها اوکی شدند ممنون میشم بررسی فرمائید
      دیگه تبدیل کدویژن به ویژوال استادیو دیگه با خودتون 🙂

      سعی کردیم در متن توضیح کافی داده بشه
      شما قرار نیست فایل هگز برنامتون را دست کسی بدید که بره دستگاه را اپدیت کنید
      با این کار شما میتونید یه فایل رمزنگاری شده را بهش بدید که این فایل در خود میکرو بازگشایی میشه

  • امین
    ۱۰ تیر ۱۳۹۸

    سلام
    من با پروگرمر tnm کد آماده را روی برد میریزم و تمامی مراحل را مشابه توضیحات شما انجام میدم ولی وقتی برنامه را اجرا میکنم تارگت شناخته نمیشود و عملا کار نمیکند میخواستم بدونم ممکنه مشکل از نوع پروگرمر باشه مثلا نیازه که حتما با stk500 پروگرم اولیه رو انجام بدم؟
    چون تمام فیوز بیت ها هم درست ست کردم و خیلی عجله دارم لطفا راهنمایی کنید با تشکر

    • Sisoog Os
      Sisoog OS
      ۱۰ تیر ۱۳۹۸

      سلام لازمه حتما فیوز بیت ها هم درست پروگرم بشه
      در ضمن این برنامه مخصوص میکرو گفته شده هست

      • امین
        ۱۰ تیر ۱۳۹۸

        ممنون بابت پاسخگویی
        من هم با atmega 128 کار میکنم و bootrst را enable (یعنی 0) قرار میدم سایز بوت لودر هم که روی ماکسیمم مقدار و همون حالت دیفالت قرار داره
        بعید میدونم مشکل از فیوز بیت ها باشه.چیز دیگه ای بنظرتون نمیاد که مشکل از اون باشه؟

        • Sisoog Os
          Sisoog OS
          ۱۰ تیر ۱۳۹۸

          فکر کنم فیوز بیت باید روی کریستال خارجی باشه که مقدارش هم تا جایی که یادم هست
          7.3728 مگاه هرتز هست

          • امین
            ۱۰ تیر ۱۳۹۸

            من از کریستال 16 مگ استفاده کردم که توی کد هم تغییر دادم قسمت مربوط رو و روری 16 مگ گذاشتم فیوزبیت هم روی کریستال خارجی گذاشتم و درسته

            0
          • Sisoog Os
            Sisoog OS
            ۱۱ تیر ۱۳۹۸

            پیش فرض روی یوزارت صفر هست
            اگر همه موارد اوکی هست
            لحظه ای که میکرو ریستارت میشه میکروی شما چند کاراکتر ارسال میکنه
            که یکی از اونها کاراکتر زیر هست
            ببنید این را باد ریت مناسب تو کامپیوتر درست دریافت میکنید
            TxChar(‘>’);

            0
  • نوید
    ۲۸ اردیبهشت ۱۳۹۸

    سلام وقت بخیر.
    میشه بگین این عکس های زیبا برای هر مطلبتون رو کی تهیه میکنه؟؟؟؟؟
    این همه هنر واقعا جالبه

    • Sisoog Os
      Sisoog OS
      ۲۸ اردیبهشت ۱۳۹۸

      سلام دوست عزیز از حسن توجه شما ممنونم
      وقتی یک کار تیمی اونم با کلی مهندس خوش ذوق شروع بشه نتیجش میشه همین 🙂

  • کاظم
    ۳۱ فروردین ۱۳۹۸

    سلام میشه درباره بوت لودر stm32 هم مطلب بزارید ! نحوه کدنویسیش و اجراش

    • Zeus ‌
      زئوس Zeus
      ۳ اردیبهشت ۱۳۹۸

      سلام دوست عزیز
      در دستور کار قرار داره این مساله 🙂

  • korosh
    ۲۸ آذر ۱۳۹۷

    عالی مفید بود

    • Zeus ‌
      زئوس Zeus
      ۲۸ آذر ۱۳۹۷

      خواهش میکنیم دوست عزیز

  • امین
    ۷ شهریور ۱۳۹۷

    سلام ممنون از زحمت وتلاش شما و آموزش این مبحث مهم

    • Zeus ‌
      زئوس Zeus
      ۸ شهریور ۱۳۹۷

      خواهش میکنم دوست عزیز 🙂

  • پوریا
    ۳۰ مرداد ۱۳۹۷

    سلام
    بابت مطالب عالی سایتتون ازتون تشکر می کنم
    سوالی که دارم اینه که خواستم تنظیمات این بوت لودر را برای mega8 انجام بدم ولی با ارور های کامپایلر مواجه شدم می شه راهنمایی کنید
    با تشکر

    • Sisoog Os
      Sisoog Os
      ۱ شهریور ۱۳۹۷

      سلام دوست عزیز
      پروژتون را که تغییر دادید یه جا اپلود کنید و لینکش را بزارید تا خدمتتون بگم

  • پوریا
    ۲۵ مهر ۱۳۹۶

    سلام تشکر از برنامه خوبتون
    بنده هم از مگا 128a استفاده میکنم و پروگرمرم TNM2000 هست منتهی هر کار میکنم تارکت رو پیدا نمیکنه و عملااا بوت رو پیدا نمیکنه تا کانکت شم
    لطفا راهنمایی بفرمایید

    • Zeus ‌
      زئوس Zeus
      ۲۹ مهر ۱۳۹۶

      لطفا وضعیت و نحوه پروگرام کردن فیوز بیت ها رو بررسی کنید
      احتمالا مشکل از اونجا باشه

  • دهقان
    ۲۸ شهریور ۱۳۹۶

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

    • Sisoog Os
      Sisoog Os
      ۲۹ شهریور ۱۳۹۶

      سلام
      سعی میکنیم دوست عزیز هفته آینده سورس ویندوز را منتشر کنیم

  • ehsan
    ۲۸ تیر ۱۳۹۶

    سلام خسته نباشید، چیزی که من متوجه شدم page number توسط برنامه ویندوز مشخص میشه. می خواستم بدونم ایا کل ریجستر z ((ادرس wordها و ادرس page ها)) رو مشخص میکنه یا فقط قسمت ادرس دهی page رو؟دقیقا برنامه ویندوز برای میکرو چی ارسال میکنه؟ سوال بعدی اینه که چطوری میشه یه counter گذاشت که خود میکرو page ها رو دونه دونه write کنه؟ مثلا اگه متغییر pageadress رو 2 تا 2 تا اضافه کنم جای دیگه برنامه به مشکل نمیخورم؟
    من میخوام میکرو رو با mmc/sd card توسط کدویژن پروگرم کنم چیزی تو اینترنت پیدا نکردم گفتم بشینم برنامه شمارو تغییر بدم، لطفا اگه میتونید کمک کنید

    • Sisoog Os
      Sisoog Os
      ۲۸ تیر ۱۳۹۶

      سلام
      متشکرم از شما
      در ابتدای برنامه از صفحه صفر برنامه ویندوز اولین پیچ را ارسال میکنه
      در صورتیکه تاییدیه از سمت میکرو مبنی بر اینکه اون صفجه از نظر بایتهای تاییدکننده درست باشه و اینکه به درستی پکت را گرفته دریافت کنه یک شماره به سمت بالا میرود و این روند ادامه دار خواهد بود

      ما سعی میکنم در اولین فرصت یک سری اطلاعات مربوط به تبادل شدن سریال سیستم با میکرو را خدمتتون اعلام کنیم
      شما لازمه برای اینکه میکرو را توسط MMC پروگرم کنید لازمه موارد زیر را عملیاتی کنید
      اول اینکه در برنامه بوت لودر MMC را اینیت کنید و همچنین اگر لازمه فت فایل سیستم را
      سپس فایل مورد نظر را اگر وجود داشت پیدا کرده و شروع کنید صفجه صفجه بخونید و دیگه تبادل اطلاعات شبیه انچه که در سریال میبنید وجود نخواهد داشت

      • HOSI
        ۲ مرداد ۱۳۹۶

        ممنون از جوابتون . با بوت لودر و mmc کار کردم ولی حدف من اینه که توسط یک میکرو یک میکرو دیگه پروگرام کنم
        حالا به روش بوت لودر و یا ISP

        • Sisoog Os
          Sisoog Os
          ۲ مرداد ۱۳۹۶

          دوست عزیز شما برای اینکه از قابلیت بوت لودر استفاده کنید چاره ای ندارید برای یکبار حداقل میکرو خود را توسط یک پروگرامر , پروگرم کنید
          حال این برنامه به شما کمک میکند در اینده نیازی با پروگرمر نداشته باشید
          ولی اگر قصد دارید که عملیات پروگرم کردم مستقیم را توسط یک سخت افزار دیگر انجام دهید اون یک مبحث دیگری است.

  • hosi
    ۲۵ تیر ۱۳۹۶

    ممنون .
    عزیز اگه ما بخوایم با یکی میکرو دیگه دیتا به صورت سریال بفرستیم باید چیکار کنیم.
    مثلا دیتا روی مموری بریزیم یا اینکه با یک ماژول مثل nrf دیتا میکرو اول بریزه و روی میکرو دوم بریزه باید چیکار کنیم
    نرم افزار کامپیوتری اول چی میفرسته .

    • Sisoog Os
      Sisoog Os
      ۲۵ تیر ۱۳۹۶

      خواهش میکنم دوست عزیز
      کل فرایند بوت لودر سعی شده توضیح داده بشه
      کلیت کاری هم که لازمه شما انجام بدید این هست که توسط اون ارتباط سخت افزاری پکت ها را دریافت کنید و به تابع write_page فرستاده و منتظر باشید که برنامه جایگزین بشه
      هیچ فرقی نمیکنه شما از چه بستری تمایل دارید اون را اپدیت کنید
      بله متاسفانه کل تبادل را فرصت نشد در یک فایل مجزا پیوست نماییم ولی اگر یکبار پورت سریال را هم اسنیف کنید میتونید به تمام پکتهای دریافت و ارسال شده دسترسی پیدا کنید
      البته داخل برنامه هم همه چیز تقریبا مشخص هست

  • ehsan
    ۲۴ تیر ۱۳۹۶

    سلام، ممنون بابت زحماتتون

    • Zeus ‌
      زئوس Zeus
      ۲۴ تیر ۱۳۹۶

      سلام
      خواهش می‌کنم دوست عزیز
      خوشحالیم که مطالب مورد توجه قرار گرفته است

    • سوران
      ۲۹ اردیبهشت ۱۳۹۸

      تشکر از پست مفیدتون. درباره ota(over the air programming)هم اگر یک مقاله منتشر بفرمایید خیلی مورد استقبال قرار خواهد گرفت. تشکر

      • Zeus ‌
        زئوس Zeus
        ۳۰ اردیبهشت ۱۳۹۸

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

        • vahid
          ۷ مهر ۱۳۹۹

          با سلام و تشکر از مطالب مفیدتون من با استفاده از این فایل برای میکرو mega64 و mega 128 بوت لودر درست کردن و به درستی کار می کنند ولی به تازگی نیاز شده است که برای mega 2560 بوت لودر بسازم ولی هنگامی که این میکرو انتخاب می کنم این خطا داده میشه
          can not open #include file:iom256v.h
          لطفا دوستان اگه تجربه ای دادن راهنمایی بفرمایند

          • Sisoog Os
            Sisoog Os
            ۸ مهر ۱۳۹۹

            سلام دوست عزیز
            در قسمتی که خطا را میده یه جای اون خط این را قرار بدید

            #include mega2560.h
            فکر میکنم مشکلتون حل بشه

            0
          • vahid
            ۱۵ مهر ۱۳۹۹

            با سلام مشکل حل شد در فایل bootLoader.h قسمت دیفاین میکرو 2560 این تغییرات رو دادم مشکل حل شد #include “iom2560v.h” رو به #include “Mega2560.h” تغییر دادم و این دیفاین رو هم اضافه کردم #define IVCE 0 سپس تابع check_source_reset رو با توجه به اینکه رجیستر چک کردن منابع ریست در این میکرو نامش متفاوت است تغییر دادم و مشکل حل شد گفتن تجربه ام رو اینجا ذکر کنم برای بقیه دوستان

            0
          • Sisoog Os
            Sisoog Os
            ۱۵ مهر ۱۳۹۹

            سلام ممنون از شما دوست عزیز

            0

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

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

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 10 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک