آنچه یاد خواهید گرفت:
نوشتن firmware تنها با استفاده از embedded-c به صورت bare-metal
درک معماری Cortex-M
نوشتن درایورهای مبدل آنالوگ به دیجیتال (ADC) با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای PWM با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای UART با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای تایمر با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای وقفه با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای SPI با استفاده از embedded-c به صورت bare-metal
نوشتن درایورهای I2C با استفاده از embedded-c به صورت bare-metal
تسلط به استاندارد ARM-Cortex CMSIS
نوشتن درایورهای DMA با استفاده از embedded-c به صورت bare-metal
ساخت تکتک خطوط کد از ابتدا، با نوشتن مستقیم در فضای حافظه میکروکنترلر.
استفاده نکردن از هیچ کتابخانه یا فایل هدر ثالث
درک و نوشتن تکتک خطوط کد توسط خودتان - بدون کپی/پیست
استفاده مؤثر از دیباگر برای تحلیل و رفع هرگونه باگ
کسب مهارت در توسعه تعبیه و برداشتن گامهای بعدی با اطمینان
تعریف آدرسها برای Peripheralهای مختلف
تحلیل مستندات چیپ
ایجاد Registerها از روی آدرسها
پیش نیازهای دوره
هیچ تجربه برنامهنویسی لازم نیست - مدرس همه چیزهایی را که باید بدانید به شما یاد خواهد داد.
ما از STM32 IDE استفاده خواهیم کرد که رایگان است.
توضیحات دوره
آیا از کپی و پیست کردن کدی که نمیفهمید خسته شدهاید؟
این دوره با رویکردی مبتنی بر برنامهنویسی طراحی شده است تا اصول محکم در توسعه فریمور bare-metal برای میکروکنترلرهای مبتنی بر ARM به شما بدهد. هدف این دوره این است که به شما یاد دهد چگونه در راهنمای مرجع و دیتاشیت میکروکنترلر ناوبری کنید تا اطلاعات مناسب برای ساخت حرفهای درایورهای Peripheral و firmware را استخراج کنید. برای رسیدن به این هدف، هیچ کتابخانهای در این دوره استفاده نمیشود، صرفاً embedded-c به صورت bare-metal و دستکاری register است.
با حفظ سادگی، این دوره بر روی بوردهای توسعه مختلف ARM Cortex-M ارائه میشود تا دانشجویان بتوانند تکنیکها را با استفاده از یک بورد توسعه ARM Cortex-M به انتخاب خودشان تمرین کنند. این نسخه از دوره از بورد STMicroelectronics STM32F4-NUCLEO استفاده میکند که یک میکروکنترلر ARM Cortex-M4 دارد.
حالا که این موضوع روشن شد، اجازه دهید بگوییم…
دقیقاً چه چیزی به دست میآورید.
این دوره به طور چشمگیری با هر دوره دیگری که تا به حال دیدهاید متفاوت است، زیرا بیشتر شبیه یک "راهنمای میدانی" حرفهای و عملی برای توسعه فریم ور bare-metal برای STM32 است.
دلیلش این است که هیچ حاشیه و زوائدی وجود ندارد. بلافاصله سراغ اصل مطلب میرود و دقیقاً به شما نشان میدهد که چه کاری انجام دهید، چگونه انجام دهید و چرا.
به علاوه، آسان است.
و شما بلافاصله کل متدولوژی که مدرس شخصاً در زندگی حرفهای خود برای ساخت firmware دستگاههای مصرفی استفاده میکند را درک خواهید کرد.
این بسیار فراتر از فقط کار انداختن کد است.
" فرار از "
کپی/پیست کردن کدی که نمیفهمید.
استفاده از کتابخانهها و فایلهای هدر ثالث مانند HAL ،LL و StdPeriph
تجربه باگهایی که نمیفهمید.
ترس از مستندات فنی مانند راهنمای مرجع و دیتاشیت چیپ
سندروم ایمپاستر (احساس خودویرانگری)
" رسیدن به "
ساخت تکتک خطوط کد از ابتدا، با نوشتن مستقیم در فضای حافظه میکروکنترلر
استفاده نکردن از هیچ کتابخانه یا فایل هدر ثالث
درک و نوشتن تکتک خطوط کد توسط خودتان - بدون کپی/پیست
استفاده مؤثر از دیباگر برای تحلیل و رفع هرگونه باگ
کسب مهارت در توسعه تعبیه و برداشتن گامهای بعدی با اطمینان
بنابراین همانطور که گفتیم، مسئله فراتر از فقط کار انداختن هر تکه کد است.
در اینجا یک بررسی از آنچه به دست میآورید...
تحلیل مستندات چیپ:
قبل از توسعه firmware برای هر چیپ، باید یاد بگیرید که چگونه مستندات ارائه شده توسط سازنده چیپ را بخوانید.
تعریف آدرس Peripheral
تمام کامپوننت های روی میکروکنترلر یک محدوده آدرس دارند. برای نوشتن در یک جزء یا خواندن از یک کامپوننت، باید محدوده آدرس آن را در مستندات پیدا کنید و آدرسها را به درستی در کد خود تعریف کنید.
ایجاد Registerها از روی آدرس:
آدرسهای موجود در محدوده آدرس یک جزء، نمایانگر Registerهای آن جزء هستند. برای دسترسی به این Registerها، باید به طور مؤثر آدرسها را typecast کنید.
درک CMSIS:
Cortex-Microcontroller Interface Standard (CMSIS) استانداردی است که توسط Arm برای تمام میکروکنترلرهای Cortex توسعه یافته است. این استانداردی است که در توسعه firmware حرفهای استفاده میشود.
اما حتی بهتر هم میشود، زیرا شما همچنین…
درسهای عمیق در توسعه درایورهای Peripheral
شما یاد خواهید گرفت که چگونه درایورهای bare-metal برای Peripheralهای زیر توسعه دهید:
مبدل آنالوگ به دیجیتال (ADC)
رابط سریال Peripheral (SPI)
Inter-Integrated Circuit (I2C)
دسترسی مستقیم به حافظه (DMA)
کنترلکننده وقفه برداری تو در تو (NVIC)
تایمرهای عمومی (TIM)
تایمر System Tick (SysTick)
ورودی/خروجی عمومی (GPIO)
به طور ویژه برای افرادی که از کپی/پیست متنفرند طراحی شده است.
این دوره برای چه کسانی مناسب است؟
اگر در سیستمهای تعبیه کاملاً مبتدی هستید، این دوره را بگذرانید.
اگر یک توسعهدهنده تعبیه با تجربه هستید و میخواهید یاد بگیرید که چگونه به صورت حرفهای اپلیکیشنهای تعبیه برای پردازندههای ARM توسعه دهید، این دوره را بگذرانید.