آموزش برنامه نویسی Bare-Metal میکروکنترلر STM32F7 با هسته ARM Cortex-M7 از پایه™ - آخرین آپدیت

دانلود ARM Cortex-M7 STM32F7 Bare-Metal Programming From Ground Up™

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

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

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

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

با درک این موضوع، اجازه دهید به شما بگویم…

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

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

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

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

این فقط در مورد کار کردن کد نیست

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

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

این چیزی است که دانشجوی دیگری گفت:

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

دانشجوی سوم:

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

نسخه اول (STM32F4) توسط بیش از 5000 دانشجو با بیش از 1000 نظر بررسی شده است

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

"فرار از"

  1. کپی و پیست کردن کدی که نمی فهمید

  2. استفاده از کتابخانه ها و فایل های هدر شخص ثالث مانند HAL، LL و StdPeriph

  3. تجربه باگ هایی که نمی فهمید

  4. ترس از مستندات فنی مانند دفترچه راهنمای مرجع و دیتاشیت چیپ

  5. سندرم ایمپاستر

"رسیدن به"

  1. ساخت هر خط کد از ابتدا با نوشتن مستقیم در فضای حافظه میکروکنترلر.

  2. عدم استفاده از کتابخانه ها یا فایل های هدر شخص ثالث

  3. درک و نوشتن هر خط کد توسط خودتان- بدون کپی/پیست

  4. استفاده موثر از دیباگر برای تجزیه و تحلیل و رفع هر گونه باگ

  5. توسعه مهارت در مهارت های توسعه جاسازی شده خود و برداشتن گام های بعدی با اطمینان

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

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

  • تجزیه و تحلیل مستندات چیپ:

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

  • تعریف آدرس جانبی

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

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

    آدرس ها در محدوده آدرس یک جزء نشان دهنده رجیسترهای آن جزء هستند. برای دسترسی به این رجیسترها، باید به طور موثر آدرس ها را تایپ کنید.

  • درک CMSIS:

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

اما بهتر از این هم می شود زیرا شما همچنین دریافت می کنید...

درس های عمیق در مورد توسعه درایورهای جانبی

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

  • مبدل آنالوگ به دیجیتال (ADC)

  • رابط سریال جانبی (SPI)

  • مدار مجتمع بین آی سی (I2C)

  • کنترلر وقفه برداری تو در تو (NVIC)

  • تایمرهای عمومی (TIM)

  • تایمر تیک سیستم (SysTick)

  • ورودی/خروجی هدف کلی (GPIO)

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

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

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

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

پیش نیازها: برد توسعه NUCLEO-STM32F7

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


آموزش برنامه‌نویسی Embedded C بدون کتابخانه برای ARM Cortex-M7 با STM32F7

در این دوره جامع، نحوه برنامه‌نویسی میکروکنترلرهای ARM Cortex-M7 با استفاده از زبان Embedded C و بدون هیچ‌گونه کتابخانه جانبی را فرا خواهید گرفت. تمرکز این دوره بر روی درک عمیق معماری Cortex-M، ساخت درایورهای Bare-Metal و کار با رجیسترهای حافظه میکروکنترلر به صورت مستقیم است. هدف این دوره، توانمندسازی شما در توسعه فریمورهای سفارشی و حرفه‌ای برای کاربردهای مختلف Embedded Systems است.

آنچه در این دوره خواهید آموخت:

  • درک کامل معماری ARM Cortex-M
  • نوشتن درایورهای Bare-Metal برای ADC (مبدل آنالوگ به دیجیتال)
  • نوشتن درایورهای Bare-Metal برای Timerها
  • نوشتن درایورهای Bare-Metal برای UART
  • نوشتن درایورهای Bare-Metal برای Interruptها
  • نوشتن درایورهای Bare-Metal برای GPIO (ورودی/خروجی‌های هدف کلی)
  • نوشتن درایورهای Bare-Metal برای SPI
  • نوشتن درایورهای Bare-Metal برای I2C
  • ساخت کامل کد از ابتدا با نوشتن مستقیم در حافظه میکروکنترلر
  • عدم استفاده از هیچ‌گونه کتابخانه جانبی یا فایل‌های Header
  • درک و نوشتن هر خط کد بدون کپی/پیست
  • استفاده مؤثر از Debugger برای تحلیل و رفع باگ‌ها
  • توسعه مهارت‌های برنامه‌نویسی Embedded و برداشتن گام‌های بعدی با اطمینان
  • تعریف آدرس‌های Peripheralهای مختلف
  • تحلیل مستندات تراشه
  • ایجاد Registerها از آدرس‌ها

پیش‌نیازها:

برای شرکت در این دوره، به برد توسعه NUCLEO-STM32F7 نیاز دارید. هیچ‌گونه تجربه برنامه‌نویسی قبلی لازم نیست، زیرا تمام مفاهیم مورد نیاز از ابتدا آموزش داده خواهد شد.

چرا این دوره؟

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


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

Getting Started - Constructing Peripheral Registers from Memory Addresses-فصل ۱- شروع به کار - ساخت ثبات‌های جانبی از آدرس‌های حافظه 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- Pt.1 Pins and Bus Connection-ویدیو ۳-۲-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۱ پین‌ها و اتصال باس Coding : Developing the UART Transmitter Driver- Pt.1 Pins and Bus Connection

  • Coding : Developing the UART Transmitter Driver- Pt.2 Configuring Pin Mode-ویدیو ۳-۳-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۲ پیکربندی حالت پین Coding : Developing the UART Transmitter Driver- Pt.2 Configuring Pin Mode

  • Coding : Developing the UART Transmitter Driver- Pt.3 Pin Alternate Function-ویدیو ۳-۴-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۳ عملکرد جایگزین پین Coding : Developing the UART Transmitter Driver- Pt.3 Pin Alternate Function

  • Coding : Developing the UART Transmitter Driver- Pt.4 UART Parameters-ویدیو ۳-۵-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۴ پارامترهای UART Coding : Developing the UART Transmitter Driver- Pt.4 UART Parameters

  • Coding : Developing the UART Transmitter Driver- Pt.5 UART Baudrate-ویدیو ۳-۶-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۵ نرخ باود UART Coding : Developing the UART Transmitter Driver- Pt.5 UART Baudrate

  • Coding : Developing the UART Transmitter Driver- Pt.6 Testing the UART TX Driver-ویدیو ۳-۷-برنامه‌نویسی: توسعه درایور فرستنده UART - قسمت ۶ آزمایش درایور TX UART Coding : Developing the UART Transmitter Driver- Pt.6 Testing the UART TX Driver

  • Coding : Retargeting printf-ویدیو ۳-۸-برنامه‌نویسی: تغییر هدف printf Coding : Retargeting printf

  • Coding : Making the UART TX Driver more Modular-ویدیو ۳-۹-برنامه‌نویسی: ایجاد درایور TX UART مدولارتر Coding : Making the UART TX Driver more Modular

  • Coding : Developing the UART RX Driver-ویدیو ۳-۱۰-برنامه‌نویسی: توسعه درایور RX UART Coding : Developing the UART RX Driver

  • Coding : Testing the UART RX Driver-ویدیو ۳-۱۱-برنامه‌نویسی: آزمایش درایور RX UART Coding : Testing the UART RX 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 - قسمت ۱ مکان‌یابی باس 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 - قسمت ۲ پیاده‌سازی تابع Init ADC Coding : Developing the ADC Driver - Pt.2 Implementing the ADC Init Function

  • Coding : Developing the ADC Driver - Pt.3 Testing the ADC Driver-ویدیو ۴-۵-برنامه‌نویسی: توسعه درایور ADC - قسمت ۳ آزمایش درایور 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-فصل ۵- تایمر تیک سیستم (SysTick) The System Tick (SysTick) Timer

  • Overview of the System Tick Timer-ویدیو ۵-۱-مروری بر تایمر تیک سیستم Overview of the System Tick Timer

  • Coding : Developing the Systick Driver-ویدیو ۵-۲-برنامه‌نویسی: توسعه درایور Systick Coding : Developing the Systick Driver

General Purpose Timers-فصل ۶- تایمرهای همه منظوره General Purpose Timers

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

  • Coding : Developing the General Purpose Timer (GPTM) Driver-ویدیو ۶-۲-برنامه‌نویسی: توسعه درایور تایمر همه منظوره (GPTM) Coding : Developing the General Purpose Timer (GPTM) 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 Timer Interrupt Driver-ویدیو ۷-۴-برنامه‌نویسی: توسعه درایور وقفه تایمر Coding : Developing the Timer Interrupt Driver

  • Coding : Developing the Systick Interrupt Driver-ویدیو ۷-۵-برنامه‌نویسی: توسعه درایور وقفه Systick Coding : Developing the Systick Interrupt Driver

  • Coding : Developing the ADC Interrupt Driver-ویدیو ۷-۶-برنامه‌نویسی: توسعه درایور وقفه ADC Coding : Developing the ADC Interrupt Driver

  • Coding : Developing the UART Transmitter Interrupt Driver-ویدیو ۷-۷-برنامه‌نویسی: توسعه درایور وقفه فرستنده UART Coding : Developing the UART Transmitter Interrupt Driver

  • Coding : Developing the UART Receiver Interrupt Driver-ویدیو ۷-۸-برنامه‌نویسی: توسعه درایور وقفه گیرنده UART Coding : Developing the UART Receiver 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-ویدیو ۸-۴-برنامه‌نویسی: مدیریت ارتباطات Master I2C Coding : Handling the I2C Master Communication

  • Coding : Implementing the I2C Slave Interrupt Handler-ویدیو ۸-۵-برنامه‌نویسی: پیاده‌سازی کنترل کننده وقفه Slave I2C Coding : Implementing the I2C Slave 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 : 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 Driver-ویدیو ۹-۴-برنامه‌نویسی: آزمایش درایور SPI Coding : Testing the SPI Driver

نمایش نظرات

آموزش برنامه نویسی Bare-Metal میکروکنترلر STM32F7 با هسته ARM Cortex-M7 از پایه™
جزییات دوره
11.5 hours
51
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,019
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Israel Gbati Israel Gbati

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

BHM Engineering Academy BHM Engineering Academy

آکادمی مهندسی قرن بیست و یکم