آموزش توسعه درایورهای سخت‌افزاری STM32L4 بدون استفاده از کتابخانه‌ها - آخرین آپدیت

دانلود STM32L4 Bare-Metal Peripheral Drivers Development

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

آموزش پیشرفته فریمور Bare-Metal برای میکروکنترلرهای STM32L4 و ARM Cortex

بدون استفاده از کتابخانه‌ها، با استاندارد حرفه‌ای CMSIS برای ARM Cortex، ADC، UART، تایمرها، GPIO، SPI، I2C و سایر ماژول‌ها:

  • نوشتن فریمور فقط با استفاده از Embedded-C Bare-Metal
  • نوشتن درایورهای Bare-Metal ADC برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal TIMER برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal UART برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal INTERRUPT برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal GPIO برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal SPI برای میکروکنترلر STM32L4
  • نوشتن درایورهای Bare-Metal I2C برای میکروکنترلر STM32L4
  • ساخت تک تک خطوط کد از ابتدا با نوشتن مستقیم در فضای حافظه میکروکنترلر
  • عدم استفاده از کتابخانه‌ها یا فایل‌های هدر شخص ثالث
  • درک و نوشتن تمام خطوط کد توسط خودتان – بدون کپی/پیست
  • استفاده موثر از دیباگر برای تحلیل و رفع هرگونه اشکال
  • توسعه مهارت‌های برنامه‌نویسی امبدد و برداشتن گام‌های بعدی با اطمینان
  • تعریف آدرس‌ها برای پریفرال‌های مختلف
  • تحلیل مستندات تراشه
  • ایجاد رجیسترها از روی آدرس‌ها

پیش‌نیازها:

  • برد توسعه NUCLEO-STM32L476
  • هیچ تجربه برنامه‌نویسی لازم نیست – ما هر آنچه را که باید بدانید به شما آموزش می‌دهیم.

آیا از کپی و پیست کردن کدی که متوجه نمی‌شوید، خسته شده‌اید؟

این دوره با رویکردی عملی و کدنویسی‌محور، طراحی شده است تا یک پایه قوی در توسعه فریمور Bare-Metal برای میکروکنترلرهای مبتنی بر ARM به شما بدهد. هدف این دوره آموزش نحوه استفاده از دفترچه راهنمای مرجع میکروکنترلر و دیتاشیت برای استخراج اطلاعات صحیح جهت ساخت حرفه‌ای درایورهای پریفرال و فریمور است. برای دستیابی به این هدف، هیچ کتابخانه‌ای در این دوره استفاده نمی‌شود و تمرکز صرفاً بر Embedded-C Bare-Metal و دستکاری رجیسترها است.

با حفظ سادگی، این دوره برای بردهای توسعه مختلف ARM Cortex-M ارائه می‌شود تا دانشجویان بتوانند تکنیک‌ها را با استفاده از برد توسعه ARM Cortex-M انتخابی خود به کار بگیرند. این نسخه از دوره از برد STMicroelectronics STM32L4-NUCLEO استفاده می‌کند که دارای میکروکنترلر ARM Cortex-M4 است.

با این توضیحات، اجازه دهید به شما بگویم…

دقیقاً چه چیزی به دست می‌آورید

این دوره به‌طور چشمگیری متفاوت از هر دوره‌ای است که تاکنون گذرانده‌اید، زیرا بیشتر شبیه یک "راهنمای عملی" حرفه‌ای برای توسعه فریمور Bare-Metal STM32 است.
دلیل آن این است که هیچ حشو یا مطالب اضافی وجود ندارد. این دوره بلافاصله به موضوع اصلی می‌پردازد و دقیقاً به شما نشان می‌دهد که چه کاری انجام دهید، چگونه انجام دهید و چرا.

علاوه بر این، آسان است.

و شما بلافاصله با روشی که من شخصاً برای ساخت فریمور دستگاه‌های مصرفی در زندگی حرفه‌ای‌ام استفاده می‌کنم، آشنا خواهید شد.

این دوره چیزی فراتر از فقط کار کردن کد است

ببینید، این دوره زندگی حرفه‌ای شما را برای همیشه تغییر خواهد داد. در اینجا نظر یکی از دانشجویان درباره نسخه اول (STM32F4) این دوره آمده است:

"من این دوره را برای تمام مبتدیان پیشنهاد می‌کنم. مفاهیم به ترتیب صحیح پوشش داده شده‌اند. و بهترین بخش این مجموعه سخنرانی، آشنایی با نحوه بررسی دفترچه راهنمای مرجع و دیتاشیت‌ها است."

در اینجا نظر دانشجوی دیگری آمده است:

"فوق‌العاده مفید برای درک عمیق‌تر برنامه‌نویسی میکروکنترلر! برای من از این به بعد توسعه کد بسیار آسان‌تر است، زیرا من پایه و اساس را درک می‌کنم، بنابراین اعتماد به نفس و تجربه بیشتری برای توسعه و اشکال‌زدایی کد دارم. واقعاً، این دوره برای مرتبط کردن دانش سخت‌افزار با مهارت‌های کدنویسی بسیار مفید است. این دوره شکاف بین آن‌ها را پر می‌کند. ممنون بابتش! :)"

دانشجوی سوم:

"من یک مهندس کاربرد چیپ‌ست نیمه‌هادی حرفه‌ای با ۳۰ سال تجربه در طراحی محصول امبدد جهانی در کاربردهای سیستمی هستم. می‌توانم بگویم این مدرس بسیار رک و راست است و دانش سال‌ها تجربه خود را با صداقت تمام با دانشجویان به اشتراک می‌گذارد. بله. من سرعت و سبک تدریس او را دوست دارم!"

نسخه اول (STM32F4) توسط بیش از ۵۰۰۰ دانشجو با بیش از ۱۰۰۰ نقد و بررسی گذرانده شده است

اگر حداقل یکی از موارد زیر در مورد شما صدق می‌کند، به خواندن ادامه دهید؛ در غیر این صورت، می‌توانید از این دوره صرف نظر کنید:

رها شدن از:

  1. کپی/پیست کردن کدی که نمی‌فهمید
  2. استفاده از کتابخانه‌ها و فایل‌های هدر شخص ثالث مانند HAL، LL و StdPeriph
  3. تجربه باگ‌هایی که درک نمی‌کنید
  4. ترس از مستندات فنی مانند دفترچه راهنمای مرجع و دیتاشیت تراشه
  5. سندروم ایمپاستر

رسیدن به:

  1. ساخت تک تک خطوط کد از ابتدا با نوشتن مستقیم در فضای حافظه میکروکنترلر
  2. عدم استفاده از کتابخانه‌ها یا فایل‌های هدر شخص ثالث
  3. درک و نوشتن تمام خطوط کد توسط خودتان – بدون کپی/پیست
  4. استفاده موثر از دیباگر برای تحلیل و رفع هرگونه اشکال
  5. توسعه مهارت‌های برنامه‌نویسی امبدد و برداشتن گام‌های بعدی با اطمینان

همانطور که گفتم، این دوره چیزی فراتر از صرفاً کار کردن هر قطعه کد است.

در اینجا یک مرور کلی از آنچه به دست می‌آورید آمده است...

  • تحلیل مستندات تراشه:

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

  • تعریف آدرس پریفرال‌ها:

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

  • ایجاد رجیسترها از روی آدرس:

    آدرس‌های موجود در محدوده آدرس یک قطعه، رجیسترهای آن قطعه را نشان می‌دهند. برای دسترسی به این رجیسترها، باید آدرس‌ها را به طور موثر typecast کنید.

  • درک CMSIS:

    CMSIS (Cortex-Microcontroller Software Interface Standard) یک استاندارد توسعه یافته توسط Arm برای تمام میکروکنترلرهای Cortex است. این استانداردی است که در توسعه حرفه‌ای فریمور استفاده می‌شود.

اما بهتر هم می‌شود، زیرا شما همچنین…

درس‌های عمیق در توسعه درایورهای پریفرال را فرا می‌گیرید

شما یاد خواهید گرفت که چگونه درایورهای Bare-Metal را برای پریفرال‌های زیر توسعه دهید:

  • مبدل آنالوگ به دیجیتال (ADC)
  • رابط سریال جانبی (SPI)
  • مدار مجتمع بین‌تراشه‌ای (I2C)
  • کنترلر وقفه وکتوری تودرتو (NVIC)
  • تایمرهای عمومی (TIM)
  • تایمر سیستم تیک (SysTick)
  • ورودی/خروجی عمومی (GPIO)

ویژه افرادی که از کپی/پیست متنفرند

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

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

همچنین این دوره شامل گارانتی بازگشت پول است، بنابراین هیچ چیز برای از دست دادن ندارید.


سرفصل ها و درس ها

Getting Started - Constructing Peripheral Registers from Memory Addresses

  • Downloading our Integrated Development Environment (IDE) - دانلود محیط توسعه یکپارچه (IDE) Downloading our Integrated Development Environment (IDE)

  • Installing our Integrated Development Environment (IDE) - نصب محیط توسعه یکپارچه (IDE) Installing our Integrated Development Environment (IDE)

  • Getting the right Documentation for Bare-Metal Development - دریافت مستندات صحیح برای توسعه Bare-Metal Getting the right Documentation for Bare-Metal Development

  • Coding : Locating the Ports and Pins of Components on the Nucleo board - کدنویسی: یافتن پورت‌ها و پین‌های قطعات روی برد Nucleo Coding : Locating the Ports and Pins of Components on the Nucleo board

  • Coding : Defining Addresses of Modules using information from the Documentation - کدنویسی: تعریف آدرس‌های ماژول‌ها با استفاده از اطلاعات مستندات Coding : Defining Addresses of Modules using information from the Documentation

  • Coding : Creating required Registers using Information from Documentation - کدنویسی: ایجاد رجیسترهای مورد نیاز با استفاده از اطلاعات مستندات Coding : Creating required Registers using Information from Documentation

  • Coding : Configuring Pins using the Registers we Created - کدنویسی: پیکربندی پین‌ها با استفاده از رجیسترهایی که ایجاد کردیم Coding : Configuring Pins using the Registers we Created

  • Coding : Creating Registers from Structure Members - کدنویسی: ایجاد رجیسترها از اعضای ساختار Coding : Creating Registers from Structure Members

General Purpose Input/Output(GPIO) - ورودی/خروجی همه منظوره (GPIO) General Purpose Input/Output(GPIO)

  • Overview of ARM Cortex-M General Purpose Input/Output Module - مروری بر ماژول ورودی/خروجی همه منظوره ARM Cortex-M Overview of ARM Cortex-M General Purpose Input/Output Module

  • Coding : Developing the GPIO Output Driver - کدنویسی: توسعه درایور خروجی GPIO Coding : Developing the GPIO Output Driver

  • Coding : Controlling GPIO Outputs using the Bit Set/Reset Register (BSRR) - کدنویسی: کنترل خروجی‌های GPIO با استفاده از رجیستر تنظیم/بازنشانی بیت (BSRR) Coding : Controlling GPIO Outputs using the Bit Set/Reset Register (BSRR)

  • Coding : Developing the GPIO Input Driver - کدنویسی: توسعه درایور ورودی GPIO Coding : Developing the GPIO Input Driver

  • Notice - توجه Notice

Universal Asynchronous Receiver-Transmitter (UART) - فرستنده-گيرنده ناهمزمان همگاني (UART) Universal Asynchronous Receiver-Transmitter (UART)

  • Overview of the UART Protocol - مروری بر پروتکل UART Overview of the UART Protocol

  • Coding : Developing the UART Transmitter Driver - کدنویسی: توسعه درایور فرستنده UART Coding : Developing the UART Transmitter Driver

  • Coding : Testing the UART Transmitter Driver - کدنویسی: آزمایش درایور فرستنده UART Coding : Testing the UART Transmitter Driver

  • Coding : Retargeting printf - کدنویسی: هدف‌گذاری مجدد printf Coding : Retargeting printf

  • Coding : Making the UART TX Driver more Modular - کدنویسی: مدولارتر کردن درایور UART TX Coding : Making the UART TX Driver more Modular

  • Coding : Developing the UART Receiver Driver - کدنویسی: توسعه درایور گیرنده UART Coding : Developing the UART Receiver Driver

  • Coding : Testing the UART Receiver Driver - کدنویسی: آزمایش درایور گیرنده UART Coding : Testing the UART Receiver Driver

Analog to Digital Conversion (ADC) - تبدیل آنالوگ به دیجیتال (ADC) Analog to Digital Conversion (ADC)

  • Introduction to Analog to Digital Conversion - مقدمه‌ای بر تبدیل آنالوگ به دیجیتال Introduction to Analog to Digital Conversion

  • Understanding ADC Independents Modes - درک حالت‌های مستقل ADC Understanding ADC Independents Modes

  • Coding : Developing the ADC Driver - Pt.1 Locating the ADC Bus - کدنویسی: توسعه درایور ADC - قسمت 1: یافتن گذرگاه ADC Coding : Developing the ADC Driver - Pt.1 Locating the ADC Bus

  • Coding : Developing the ADC Driver - Pt.2 Implementing the ADC Init Function - کدنویسی: توسعه درایور ADC - قسمت 2: پیاده‌سازی تابع ADC Init Coding : Developing the ADC Driver - Pt.2 Implementing the ADC Init Function

  • Coding : Developing the ADC Driver - Pt.3 Testing the ADC Driver - کدنویسی: توسعه درایور ADC - قسمت 3: آزمایش درایور ADC Coding : Developing the ADC Driver - Pt.3 Testing the ADC Driver

  • Coding : Developing the ADC Single Conversion Driver - کدنویسی: توسعه درایور تبدیل تکی ADC Coding : Developing the ADC Single Conversion Driver

The System Tick (SysTick) Timer - تایمر System Tick (SysTick) The System Tick (SysTick) Timer

  • Overview of the System Tick Timer - مروری بر تایمر System Tick Overview of the System Tick Timer

  • Coding : Developing the System Tick Timer Driver - کدنویسی: توسعه درایور تایمر System Tick Coding : Developing the System Tick Timer Driver

General Purpose Timers - تایمرهای همه منظوره General Purpose Timers

  • Overview of General Purpose Timers - مروری بر تایمرهای همه منظوره Overview of General Purpose Timers

  • Coding : Developing the General Purpose Timer Driver - کدنویسی: توسعه درایور تایمر همه منظوره Coding : Developing the General Purpose Timer Driver

  • Coding : Developing Timer Output Compare Driver - کدنویسی: توسعه درایور مقایسه خروجی تایمر Coding : Developing Timer Output Compare Driver

Interrupts Programming - برنامه‌نویسی وقفه Interrupts Programming

  • Introduction to Interrupts - مقدمه‌ای بر وقفه‌ها Introduction to Interrupts

  • Coding : Developing the GPIO Interrupt Driver - کدنویسی: توسعه درایور وقفه GPIO Coding : Developing the GPIO Interrupt Driver

  • Coding : Testing the GPIO Interrupt Driver - کدنویسی: آزمایش درایور وقفه GPIO Coding : Testing the GPIO Interrupt Driver

  • Coding : Developing the Systick Interrupt Driver - کدنویسی: توسعه درایور وقفه Systick Coding : Developing the Systick Interrupt Driver

  • Coding : Developing the Timer Interrupt Driver - کدنویسی: توسعه درایور وقفه تایمر Coding : Developing the Timer Interrupt Driver

Inter-Integrated Circuit (I2C) - مدار مجتمع درون‌مداری (I2C) Inter-Integrated Circuit (I2C)

  • Introduction to I2C - مقدمه‌ای بر I2C Introduction to I2C

  • Coding : Implementing the I2C Slave Config function - کدنویسی: پیاده‌سازی تابع پیکربندی Slave در I2C Coding : Implementing the I2C Slave Config function

  • Coding : Implementing the I2C Master Config function - کدنویسی: پیاده‌سازی تابع پیکربندی Master در I2C Coding : Implementing the I2C Master Config function

  • Coding : Handling the I2C Master Communication sequence - کدنویسی: رسیدگی به توالی ارتباط Master در I2C Coding : Handling the I2C Master Communication sequence

  • Coding : Implementing the I2C Slave Device Interrupt Handler - کدنویسی: پیاده‌سازی هندلر وقفه دستگاه Slave در I2C Coding : Implementing the I2C Slave Device Interrupt Handler

Serial Peripheral Interface (SPI) - واسط جانبی سریال (SPI) Serial Peripheral Interface (SPI)

  • Introduction to Serial Peripheral Interface (SPI) - مقدمه‌ای بر واسط جانبی سریال (SPI) Introduction to Serial Peripheral Interface (SPI)

  • Coding : Configuring the SPI Parameters - کدنویسی: پیکربندی پارامترهای SPI Coding : Configuring the SPI Parameters

  • Coding : Implementing the SPI Master Config function - کدنویسی: پیاده‌سازی تابع پیکربندی Master در SPI Coding : Implementing the SPI Master Config function

  • Coding : Implementing the SPI Slave Config function - کدنویسی: پیاده‌سازی تابع پیکربندی Slave در SPI Coding : Implementing the SPI Slave Config function

  • Coding : Testing the SPI RxTx Driver - کدنویسی: آزمایش درایور RxTx در SPI Coding : Testing the SPI RxTx Driver

نمایش نظرات

آموزش توسعه درایورهای سخت‌افزاری STM32L4 بدون استفاده از کتابخانه‌ها
جزییات دوره
9 hours
46
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
470
4.5 از 5
دارد
دارد
دارد
Israel Gbati
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Israel Gbati Israel Gbati

Embedded Firmware Engineer نام من اسرائیل است ، من بیش از 7 سال است که در فضای سیستم جاسازی شده تحقیق و کار می کنم. در Udemy ده ها هزار دانش آموز در سیستم های جاسازی شده با تمرکز بر موضوعاتی مانند برنامه نویسی Assembly ، طراحی سیستم عامل های زمان واقعی ، توسعه سیستم عامل و پردازش سیگنال دیجیتال آموزش داده ام. من قادر به آموزش این مباحث هستم زیرا در کارهای روزمره مفاهیمی را از این مباحث استفاده می کنم. به یکی از دوره های من بپیوندید و ببینید چطور پیش می رود. همیشه می توانید درخواست بازپرداخت کنید.