🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش توسعه درایورهای سختافزاری 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) توسط بیش از ۵۰۰۰ دانشجو با بیش از ۱۰۰۰ نقد و بررسی گذرانده شده است
اگر حداقل یکی از موارد زیر در مورد شما صدق میکند، به خواندن ادامه دهید؛ در غیر این صورت، میتوانید از این دوره صرف نظر کنید:
رها شدن از:
کپی/پیست کردن کدی که نمیفهمید
استفاده از کتابخانهها و فایلهای هدر شخص ثالث مانند HAL، LL و StdPeriph
تجربه باگهایی که درک نمیکنید
ترس از مستندات فنی مانند دفترچه راهنمای مرجع و دیتاشیت تراشه
سندروم ایمپاستر
رسیدن به:
ساخت تک تک خطوط کد از ابتدا با نوشتن مستقیم در فضای حافظه میکروکنترلر
عدم استفاده از کتابخانهها یا فایلهای هدر شخص ثالث
درک و نوشتن تمام خطوط کد توسط خودتان – بدون کپی/پیست
استفاده موثر از دیباگر برای تحلیل و رفع هرگونه اشکال
توسعه مهارتهای برنامهنویسی امبدد و برداشتن گامهای بعدی با اطمینان
همانطور که گفتم، این دوره چیزی فراتر از صرفاً کار کردن هر قطعه کد است.
در اینجا یک مرور کلی از آنچه به دست میآورید آمده است...
تحلیل مستندات تراشه:
قبل از توسعه فریمور برای هر تراشهای، باید یاد بگیرید که چگونه مستندات ارائه شده توسط سازنده تراشه را بخوانید.
تعریف آدرس پریفرالها:
تمام قطعات روی میکروکنترلر دارای یک محدوده آدرس هستند. برای نوشتن یا خواندن از یک قطعه، باید محدوده آدرس آن را در مستندات پیدا کرده و آدرسها را به درستی در کد خود تعریف کنید.
ایجاد رجیسترها از روی آدرس:
آدرسهای موجود در محدوده آدرس یک قطعه، رجیسترهای آن قطعه را نشان میدهند. برای دسترسی به این رجیسترها، باید آدرسها را به طور موثر 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
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
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
Embedded Firmware Engineer نام من اسرائیل است ، من بیش از 7 سال است که در فضای سیستم جاسازی شده تحقیق و کار می کنم. در Udemy ده ها هزار دانش آموز در سیستم های جاسازی شده با تمرکز بر موضوعاتی مانند برنامه نویسی Assembly ، طراحی سیستم عامل های زمان واقعی ، توسعه سیستم عامل و پردازش سیگنال دیجیتال آموزش داده ام. من قادر به آموزش این مباحث هستم زیرا در کارهای روزمره مفاهیمی را از این مباحث استفاده می کنم. به یکی از دوره های من بپیوندید و ببینید چطور پیش می رود. همیشه می توانید درخواست بازپرداخت کنید.
نمایش نظرات