زنگ.

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

این کلون Arduino یک بوت لودر ویژه ارائه می دهد که به شما اجازه می دهد تا از طریق USB نرم افزار را از طریق USB، بدون استفاده از اجزای خارجی نوع ST-Link یا Adapter USB-UART استفاده کنید.

امروز من نیاز به کار با یک کنترلر برهنه از زیر CooCox و بدون STM32DUINO. اما مشکل چیست؟ حتی لامپ های ساده Ferglass از طریق این بوت لودر کار نمی کند.

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

من هیچ چیز علیه ST-LINK و سایر debuggers ندارم. اما در دستگاه آماده من نمی شود، اما قطعا USB خواهد بود. چرا بلافاصله فرصتی برای به روز رسانی سیستم عامل از طریق USB نیست؟ شخصا، من این راه را راحت می بینم. به خصوص از آنجا که من هنوز هم توری را وصل کرده ام و سریال USB است.

بیایید ببینیم چگونه بوت لودر کار می کند برای شروع، در مثال کنترل کننده های AVR. چرا من در مورد او به یاد می آورم؟ من از Arduino تغییر کردم و ناخودآگاه رفتار مشابهی را انتظار داشتم. اما در STM32 معلوم شد متفاوت است. بنابراین، من می خواهم در مورد تفاوت این دو میکروکنترلر بگویم.

بنابراین. که در microcontrollers AVR Atmega زیر بوت لودر می تواند برخی از حافظه را به انتهای فلش نزدیک کند. با استفاده از بیت های فیوز، می توانید از آن آدرس برنامه را شروع کنید. اگر هیچ بوت لودر وجود ندارد - برنامه از آدرس 0x0000 شروع می شود. اگر بوت لودر است - از بعضی از آدرس های دیگر شروع می شود (بگذارید بگوییم، در Atmega32 از 0x3C00، اگر اندازه بوت لودر 2K انتخاب شود).

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

در میکروکنترلرهای STM32، همه چیز چنین نیست. همه برنامه ها با آدرس 0x0800000 شروع می شود. Butloider چیزی خاص نیست. این همان برنامه ای است که از همان آدرس اولیه شروع می شود. در فرآیند عملیات، بوت لودر می تواند سیستم عامل (از طریق USB یا UART را بخواند، از درایو فلش بخواند تا از ماهواره بیرون بیاید تا از Subspace، Whatver ...) و آن را در آدرس های بالاتر از آن بنویسید لودر خودش خوب، البته، در پایان کار خود، مدیریت برنامه اصلی را انتقال دهید.


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

در این با تئوری، همه چیز. برو به تمرین زیر دستورالعمل گام به گام چگونه می توان لودر USB را به میکروکنترلرهای STM32F1XX متصل کرد، و شاید به برخی دیگر نیز.

با این حال، برخی از محدودیت های مدار وجود دارد. در اینجا، متاسفانه، قوی نیست. YATP نیاز به مقاومت کششی 1.5K برای پورت PA12 دارد (همچنین USB D + است). این اجازه می دهد تا لودر در لحظات درست زمان اتصال و قطع اتصال از USB.

  • در حال حاضر میکروکنترلر آماده است تا از طریق بوت لودر USB پیگیری شود. اما شما هنوز هم نیاز به اصلاح سیستم عامل خود دارید. و شما نیاز به 2 چیز دارید:
    • خط شروع خط را مشخص کنید. در CooCox، این در تنظیمات پروژه، برگه لینک، بخش بخش های حافظه، آدرس IROM1 شروع به کار انجام می شود. Bootloader اولین 8 کیلوبایت را می گیرد، یعنی آدرس شروع سیستم عامل، 0x0800000 + 0x2000 \u003d 0x08002000 خواهد بود. اندازه اندازه، احتمالا، همچنین به ارزش 8K کاهش می یابد.
    • جایی در ابتدای برنامه قبل از راه اندازی اولیه حاشیه، یک چالش را ایجاد می کند

      nvic_setvectortable (nvic_vecttab_flash، 0x2000)؛

      به روز رسانی 17.05.2018: در نسخه مدرن STM32Cube، تابع nvic_setvectrectable () نیست. در عوض، شما می توانید در فایل system_stm32f1xx.c (یا مشابه با میکروکنترلر دیگری) Fix تعریف vect_tab_offset را تعریف کنید

  • خلیج سیستم عامل شما می توانید از پروژه STM32DUINO استفاده کنید. در دایرکتوری ابزار، به دنبال یک اسکریپت تحت نام Maple_Upload. من فقط از نسخه ویندوز - maple_upload.bat استفاده کردم.
  • راه اندازی مثل این:

    "maple_upload.bat" com20 2 1Eaf: 0003 "مسیر \\ to \\ firmware.bin"
    به جای COM20 شما باید پورت خود را جایگزین کنید که در آن میکروکنترلر بسته می شود.

    چاک بسیار ملایم است، مسیرهای نسبی دوست ندارند. بنابراین مسیر سیستم عامل باید به طور کامل مشخص شود.

    1EAF: 0003 VID و PID است

    2 پارامتر Altid است که نشان می دهد که سیستم عامل باید به 0x08002000 (خواندن) ریخته شود.

  • تفاوت های کمی دیگر. قبل از ریختن سیستم عامل، باید بوت لودر را شروع کنید. ساده ترین راه این است که دکمه تنظیم مجدد را فشار دهید. پس از آن، بوت لودر شروع خواهد شد و برای چند ثانیه صبر کنید. اگر هیچ کس Maple_Upload را در آن لحظه اجرا نکرده باشد، بوت لودر کنترل سیستم عامل اصلی را انتقال می دهد.

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

    این همه است امیدوارم مقاله من نور را بر روی چگونگی کار لودر در STM32 و نحوه بارگذاری سیستم عامل از طریق آن شکست دهد پورت USB. متأسفانه، آستانه ورود هنوز بالا است، اما ناگهان کسی که مقاله من به غلبه بر آن کمک خواهد کرد.

    هر میکروکنترلر STM32 می تواند از بین برود USART_1 و رابط های دیگر، به طور دقیق نگاه کنید. برای انجام این کار، در MK یک سیستم عامل ویژه وجود دارد که در حال چرخش است حافظه سیستم. (مشخصات منطقه حافظه) در مرحله تولید، نمی توان آن را حذف یا تغییر داد. این بوت لودر توسط "Pull-ups" pina boot_0 به "plus"، که پس از آن انتظار می رود ورود به سیستم عامل، آغاز شود.

    از طریق USART می توان فایل های Any.bin یا .HEX را دانلود کرد.

    توضیحات بر روی نمونه ای از هزینه قرص آبی ساخته شده است، اما همه چیز برای هر STM32 کاملا گفته شده است.

    تابلوهای نام تجاری کشف و نوکلئو نیز می توانند از طریق USART فلش کنند.

    برای کار، شما نیاز به یک USB به مبدل UART ...

    اگر چنین چیزی وجود ندارد، یعنی دو گزینه برای تبدیل اردوئین در مبدل ...

    دگرگونی

    1 . نزدیک تنظیم مجدد در gnd (ممکن است رول نباشد).
    2 . بار به او در اینجا چنین طرح ساده ای است:

    void setup () (pinmode (0، ورودی)؛ Pinmode (1، ورودی)؛) void loop () ()

    برای بررسی اینکه آیا اردوئن به عنوان یک مبدل کار می کند، RX و TX را ببندید، باز کنید و برخی از کاراکترها را بفرستید. اگر آنها برگشتند، این بدان معنی است که همه چیز کار می کند.

    قبل از سیستم عامل، باید بوت پین را به "Plus" بسپارید، MK را به حالت "کره سیستم" ترجمه می کند. در هیئت مدیره شرح داده شده، این کار با اتصال به بلوز انجام می شود ...

    اگر هیئت مدیره نام تجاری باشد

    در تخته های شرکتی (Discovery، Nucleo)، شما همچنین باید بوت PIN Boot0 را به Plus بسپارید، اما فقط کار نخواهد کرد. طرح هیئت مدیره خود را پیدا کنید و خطوط مربوط به آن را پیدا کنید ...

    شما باید چیزی شبیه به این را جستجو کنید:

    من به یاد نمی آورم که کدام هیئت مدیره این طرح، اما ماهیت این است: در این مورد، پین boot_0. سفت شدن به "منهای" از طریق مقاومت R16 و بلوز SB16. اگر Jumper SB16 را حذف کنید، پین از طریق مقاومت R17 به "Plus" سفت می شود و شما می توانید فلش کنید. پس از سیستم عامل، شما باید همه چیز را به محل برگردانید.

    جهنده ممکن است مانند یک مقاومت باشد.

    مبدل و STM را به صورت زیر وصل کنید ...

    تصویر

    مبدل رگ <-> PA9 STM
    مبدل tx <-> pa10 STM
    مبدل gnd <-> gnd STM

    ... و مبدل و STM را به کامپیوتر وصل کنید.

    دستورالعمل های سیستم عامل برای

    اگر می خواهید، می توانید از سایت ST (در پایین صفحه) بگیرید.

    روی تنظیم مجدد روی هیئت مدیره کلیک کنید.

    به پوشه بروید تظاهر کننده فلش لودر و راه اندازی فلش لودر theattor.exe.

    پورت SOM مبدل را انتخاب کنید و روی کلیک کنید بعد...

    هشدار حذف حفاظت (حفاظت نوشتن)

    چنین پیامی ...

    ... به این معنی است که هیئت مدیره قفل شده است. هیچ چیز وحشتناک وجود ندارد، فقط حفاظت را با دکمه حذف کنید حفاظت را حذف کنید و بعدی کلیک کنید خوب.

    دفاع حذف شد


    اگر یک خطای دیگر را بیرون بیاورید، یا تنظیم مجدد یا چیزی را با مبدل فشار نمی داد.

    اگر چراغ راهنمایی به نور سبز می دهد، ما به شدت فشار می دهیم بعد...

    ژمم بعد...

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

    همه چیز آماده است، بلوز را به موقعیت اصلی خود بازگردانید و روی Reset کلیک کنید.

    دستورالعمل های سیستم عامل برای

    دانلود و باز کردن جایی

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

    این ابزار در Ubuntu Repars است، من در فاجعه دیگر نمی دانم، بنابراین من پست می کنم.

    قبل از سیستم عامل، همیشه در هیئت مدیره تنظیم مجدد را فشار دهید.

    در ترمینال، فرمان را بدهید:

    ./stm32flash -w /home/dima/myfile.bin -v -g 0x0 / dev / ttyusb0
    نام و مسیر به فایل شما خودتان را دارید. فایل های هگز نیز می توانند این ابزار را فلش کنند.

    اگر به سمت راست قسم می خورید، سپس به تیم بدهید ...

    sudo chmod 777 / dev / ttyusb0

    ... یا ابزار را از طریق sudo اجرا کنید.

    حفاظت از ضبط

    اگر این پیام ظاهر شد ...

    ... سپس دو تیم را به نوبه خود:

    ./stm32flash -u / dev / ttyusb0 ./stm32flash -k / dev / ttyusb0

    اولین بار حفاظت از ضبط را حذف می کند، دوم خواندن.

    اگر شما بوت لودر Arduin داشتید، آن را پوشش داده خواهد شد تا آن را بازگرداند، فقط نحوه توضیح داده شده در بالای این را پور می کند

    فرض کنید دستگاه شما را به بازار عرضه کرده اید و ما می ترسیم که کسی آن را کپی کند ... واقعا - فقط برنامه نویس را به دستگاه ما وصل کنید و سیستم عامل را بخوانید، به عنوان مثال، از طریق ابزار ST-Link Utility ( هدف.اتصال).

    البته شما می توانید به سادگی پاها را از میکروکنترلر پاره کنید ... اما توسعه دهندگان ST Microelectronics یک جایگزین برای بهتر شدن ارائه می دهند. تمام MK دارای یک سیستم امنیتی (خواندن حفاظت) است. ماهیت آن بسیار ساده است - اگر در یک ثبت خاص (گزینه BYTES) یک مقدار خاص تعیین شده است - پس از آن امکان اشکال زدایی و خواندن سیستم عامل خاموش است. در این حالت، شما نیز با فلش MK ناپدید می شوید. البته، این حفاظت را می توان با تغییر مقدار در گزینه BYTES غیرفعال کرد، با این حال، در این مورد، حافظه برنامه پوشش داده خواهد شد، به این معنی که هیچ کس نمی تواند آن را کپی کند.

    ارزش را در ثبت نام خود را با کمک همان ابزار ST-Link تغییر دهید، هدف.گزینه BYTES ...خواندن حفاظتفعال کردن.


    غیر فعال کردن، به ترتیب، به همان شیوه. اگر دستگاه های زیادی وجود داشته باشند، کاملا راحت نیستند. شما می توانید برنامه های کاربردی را فعال کنید.

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

    • #define - Directive نشان می دهد پیش پردازنده برای جایگزینی رشته در فایل، با این حال، اگر استدلال (آنچه در پایان است) نشان می دهد خود شناسه خود را مشخص نمی کند (این واقعیت که در وسط) به سیستم و می تواند توسط دیگر بررسی شود دستورالعمل ها (به عنوان مثال، شما می توانید یک شرط بنویسید که کد خاص انجام می شود یا بالعکس)؛
    • # Fifndef - دستورالعمل می تواند به عنوان "اگر نه قطعا" خوانده شود، اما دیگر #ifdef مناسب تر است - "اگر قطعا"؛
    • #endif - دستورالعمل نشان دهنده پایان شرایط است.

    یک شناسه ایجاد کنید که می گوید این مونتاژ نهایی است. در حالی که این رشته نظر داده می شود - کد بین #ifdef قرار می گیرد و #endif اجرا نمی شود.

    // # تعریف انتشار

    هنگامی که مونتاژ نهایی به اندازه کافی به راحتی خط را خاموش کرده و دستگاه را فلش می کند.

    #ifdef release // کد اینجا نسخه

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

    #IFDEF RELEASE #WARNING "حفاظت روشن است. DEBUG خاموش است" اگر (FLASH_GETREADOUTPROTYSTUS () \u003d\u003d RESET) (FLASH_UNLOCK ()؛ FLASH_READOUTOUTECTECTECTECTECTECTIVE (فعال کردن)؛ FLASH_LOCK ()؛) #endif

    امروز ما از نرم افزار STM32 از Reading Kul Hakers محافظت خواهیم کرد. به منظور نه کشیدن لاستیک، در اینجا یک قطعه کد است:

    #ifdef ndebug اگر (flash_GetReadoutProightStatus () \u003d\u003d reset) (flash_unlock ()؛ flash_readouttection (فعال کردن)؛ flash_lock ()؛) #endif

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

    بله، من در مورد Holivor در مورد "کتابخانه در مقابل درخواست تجدید نظر مستقیم به ثبت نام" می دانم. موقعیت من در اینجا چنین است - اگر شما به سرعت بالا نیاز دارید، یا حافظه بسیار کمی وجود دارد، اما شما باید به طور مستقیم به ثبت نام مراجعه کنید. اگر سرعت مهم نیست و حافظه بسیار زیاد است، بهتر است از کتابخانه استفاده کنید، بنابراین برنامه سریعتر نوشته شده است و قابل خواندن بیشتر است.

    حفاظت را حذف کنید
    کنترل کننده، ما محافظت کردیم. اما مشکل این است که شما باید برنامه ما را تعمیر کنید، و با حفاظت از تخریب، شما نمیتوانید هر کاری را با کنترلر انجام دهید - نمی توانید بنویسید. چگونه برای حذف حفاظت؟ بلافاصله به شما هشدار می دهم - بچه ها از ST همه چیز درست بود و همه سیستم عامل با حفاظت از بین می رود.

    برای حذف حفاظت، ما به یک ابزار ST-Link نیاز داریم. شما می توانید آن را دانلود کنید.

    ما برنامه را اجرا می کنیم و این مورد را انتخاب می کنیم، یا به سادگی روی CTRL-B کلیک کنید:

    در "شروع وضعیت حفاظت از خواندن، غیرفعال" را انتخاب کنید ". و روی دکمه اعمال کلیک کنید:

    همراه با بیت حفاظت، کل حافظه پاک می شود:

    امن، ما برای یک جاذبه ایمن هستیم.



    در پروژه من، از میکروکنترلر STM32F103C8 و چارچوب STM32Duino استفاده می کنم. این کلون Arduino یک بوت لودر ویژه ارائه می دهد که به شما اجازه می دهد تا از طریق USB نرم افزار را از طریق USB، بدون استفاده از اجزای خارجی نوع ST-Link یا Adapter USB-UART استفاده کنید.

    امروز من نیاز به کار با یک کنترلر برهنه از زیر CooCox و بدون STM32DUINO. اما مشکل چیست؟ حتی لامپ های ساده Ferglass از طریق این بوت لودر کار نمی کند.

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

    من هیچ چیز علیه ST-LINK و سایر debuggers ندارم. اما در دستگاه آماده من نمی شود، اما قطعا USB خواهد بود. چرا بلافاصله فرصتی برای به روز رسانی سیستم عامل از طریق USB نیست؟ شخصا، من این راه را راحت می بینم. به خصوص از آنجا که من هنوز هم توری را وصل کرده ام و سریال USB است.

    بیایید ببینیم چگونه بوت لودر کار می کند برای شروع، در مثال کنترل کننده های AVR. چرا من در مورد او به یاد می آورم؟ من از Arduino تغییر کردم و ناخودآگاه رفتار مشابهی را انتظار داشتم. اما در STM32 معلوم شد متفاوت است. بنابراین، من می خواهم در مورد تفاوت این دو میکروکنترلر بگویم.

    بنابراین. در میکروکنترلرهای AVR Atmega، شما می توانید تعدادی حافظه را به انتهای فلش رزرو کنید. با استفاده از بیت های فیوز، می توانید از آن آدرس برنامه را شروع کنید. اگر هیچ بوت لودر وجود ندارد - برنامه از آدرس 0x0000 شروع می شود. اگر بوت لودر است - از بعضی از آدرس های دیگر شروع می شود (بگذارید بگوییم، در Atmega32 از 0x3C00، اگر اندازه بوت لودر 2K انتخاب شود).


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

    در میکروکنترلرهای STM32، همه چیز چنین نیست. همه برنامه ها با آدرس 0x0800000 شروع می شود. Butloider چیزی خاص نیست. این همان برنامه ای است که از همان آدرس اولیه شروع می شود. در فرآیند عملیات، بوت لودر می تواند سیستم عامل (از طریق USB یا UART را بخواند، از درایو فلش بخواند تا از ماهواره بیرون بیاید تا از Subspace، Whatver ...) و آن را در آدرس های بالاتر از آن بنویسید لودر خودش خوب، البته، در پایان کار خود، مدیریت برنامه اصلی را انتقال دهید.


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

    در این با تئوری، همه چیز. برو به تمرین در زیر یک دستورالعمل گام به گام نحوه پیچ کردن لودر USB را به میکروکنترلرهای سری STM32F1XX سری STM32F1XX، و شاید به برخی دیگر نیز.

    با این حال، برخی از محدودیت های مدار وجود دارد. در اینجا، متاسفانه، قوی نیست. YATP نیاز به مقاومت کششی 1.5K برای پورت PA12 دارد (همچنین USB D + است). این اجازه می دهد تا بوت لودر برای اتصال و قطع اتصال از USB به لحظات مورد نظر.

  • در حال حاضر میکروکنترلر آماده است تا از طریق بوت لودر USB پیگیری شود. اما شما هنوز هم نیاز به اصلاح سیستم عامل خود دارید. و شما نیاز به 2 چیز دارید:
    • خط شروع خط را مشخص کنید. در CooCox، این در تنظیمات پروژه، برگه لینک، بخش بخش های حافظه، آدرس IROM1 شروع به کار انجام می شود. Bootloader اولین 8 کیلوبایت را می گیرد، یعنی آدرس شروع سیستم عامل، 0x0800000 + 0x2000 \u003d 0x08002000 خواهد بود. اندازه اندازه، احتمالا، همچنین به ارزش 8K کاهش می یابد.
    • جایی در ابتدای برنامه قبل از راه اندازی اولیه حاشیه، یک چالش را ایجاد می کند

      nvic_setvectortable (nvic_vecttab_flash، 0x2000)؛

  • خلیج سیستم عامل شما می توانید از پروژه STM32DUINO استفاده کنید. در دایرکتوری ابزار، به دنبال یک اسکریپت تحت نام Maple_Upload. من فقط از نسخه ویندوز - maple_upload.bat استفاده کردم.
  • راه اندازی مثل این:

    "maple_upload.bat" com20 2 1Eaf: 0003 "مسیر \\ to \\ firmware.bin"
    به جای COM20 شما باید پورت خود را جایگزین کنید که در آن میکروکنترلر بسته می شود.

    چاک بسیار ملایم است، مسیرهای نسبی دوست ندارند. بنابراین مسیر سیستم عامل باید به طور کامل مشخص شود.

    1EAF: 0003 VID و PID است

    2 پارامتر Altid است که نشان می دهد که سیستم عامل باید به 0x08002000 (خواندن) ریخته شود.

  • تفاوت های کمی دیگر. قبل از ریختن سیستم عامل، باید بوت لودر را شروع کنید. ساده ترین راه این است که دکمه تنظیم مجدد را فشار دهید. پس از آن، بوت لودر شروع خواهد شد و برای چند ثانیه صبر کنید. اگر هیچ کس Maple_Upload را در آن لحظه اجرا نکرده باشد، بوت لودر کنترل سیستم عامل اصلی را انتقال می دهد.

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

    این همه است امیدوارم مقاله من نور را در مورد چگونگی کار لودر در STM32 و نحوه دانلود نرم افزار از طریق پورت USB شکست دهد. متأسفانه، آستانه ورود هنوز بالا است، اما ناگهان کسی که مقاله من به غلبه بر آن کمک خواهد کرد.

    زنگ.

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