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

دانلود Embedded Systems and Operating System Development

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

تبدیل به متخصص سیستم‌های تعبیه‌شده: دوره‌ی جامع توسعه‌ی سیستم‌عامل و طراحی PCB

آیا می‌خواهید یک متخصص در زمینه‌ی سیستم‌های تعبیه‌شده شوید؟ در این دوره، شما با توسعه‌ی یک سیستم‌عامل (OS) اختصاصی با استفاده از زبان‌های C و Assembly، و طراحی PCB (برد مدار چاپی) آشنا خواهید شد.

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

  • ساخت سیستم‌های تعبیه‌شده از پایه: یاد بگیرید چگونه یک سیستم تعبیه‌شده را از صفر تا صد بسازید. این دوره بینش عمیقی در مورد پلتفرم هدف ارائه می‌دهد (اختیاری: استفاده از شبیه‌ساز رایگان یا کیت استارتر).
  • برنامه‌نویسی میکروکنترلر از ابتدا: با تنظیم سیم‌کشی، کلاک، اتصال برنامه‌نویس، و فلش کردن برنامه‌های باینری به تراشه آشنا شوید.
  • درک عمیق سیستم‌عامل‌ها: بفهمید یک سیستم‌عامل چیست، چه زمانی به آن نیاز دارید و چگونه در پلتفرم‌های تعبیه‌شده کار می‌کند.
  • آشنایی با مفاهیم کلیدی OS: با هسته‌ها (Kernels)، چندوظیفگی (Multitasking)، تعویض زمینه (Context Switching)، زمان‌بندی (Scheduling)، بخش‌های بحرانی (Critical Sections)، و همگام‌سازی وظایف (Task Synchronization) از دیدگاه عملی آشنا شوید.
  • آشنایی با معماری CPU: معماری‌های CPU را به طور کلی درک کنید و نحوه انتخاب یک CPU هدف را بیاموزید. درک عمیق از جزئیات معماری MIPS32، مانند رجیسترها و چیدمان حافظه.
  • برنامه‌نویسی پیشرفته برای میکروکنترلر PIC32 (MIPS32): یاد بگیرید چگونه برنامه‌های پیشرفته‌ای را برای میکروکنترلر PIC32 توسعه دهید.
  • توسعه بسته‌های پشتیبانی از برد (BSP): برای یک پلتفرم هدف، بسته‌های پشتیبانی از برد (BSP) را توسعه دهید.
  • ارتباطات داده‌ها: درک عمیق و عملی از ارتباط داده‌ها از طریق باس‌های SPI و I2C، و همچنین ارتباط سریال از طریق ماژول‌های UART (شامل USB-to-Serial).
  • توسعه کرنل پیشگیرانه و مشارکتی: یاد بگیرید چگونه یک کرنل پیشگیرانه و مشارکتی را بر اساس کد Assembly مخصوص CPU برای تعویض زمینه وظیفه توسعه دهید.
  • مدیریت زمان، وظایف و حافظه: یاد بگیرید چگونه سرویس‌های داخلی کارآمدی را برای مدیریت زمان، وظایف و حافظه ارائه دهید.
  • ارتباطات بین فرآیندی (IPC): یاد بگیرید چگونه ارتباطات بین فرآیندی (IPC) با استفاده از Mailbox و صف پیام‌ها ایجاد کنید.
  • محدودیت‌های زمان واقعی: درک عمیق و پیاده‌سازی محدودیت‌های زمان واقعی برای تبدیل شدن سیستم‌عامل به یک RTOS (سیستم‌عامل زمان واقعی).
  • مشکل معکوس‌سازی اولویت: درک و پیاده‌سازی اقدامات متقابل برای مشکل معکوس‌سازی اولویت.
  • توسعه‌ی درایورهای دستگاه: توسعه‌ی گام به گام درایورها برای دستگاه‌های جانبی پلتفرم هدف، مانند نمایشگر و کارت MicroSD.
  • واسطه‌ی کاربردی به OS: واسطه‌کردن برنامه‌های کاربردی به سیستم‌عامل.
  • Bootloader و تصویر باینری: یاد بگیرید چگونه یک تصویر باینری را در زمان اجرا به Program Flash پلتفرم هدف بنویسید و یک Bootloader USB/UART ایجاد کنید.
  • Porting سیستم‌عامل: یاد بگیرید چگونه سیستم‌عامل را Porting کنید و آن را بر روی معماری‌های مختلف CPU قابل اجرا کنید.
  • (اختیاری) طراحی PCB: درک شماتیک الکتریکی و طراحی PCB پلتفرم هدف.

پیش‌نیازها:

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

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

شما گام به گام در ایجاد هر ماژول نرم‌افزاری فنی تشکیل‌دهنده‌ی یک سیستم‌عامل تعبیه‌شده، و همچنین در توسعه‌ی دستگاه هدف خودتان (اختیاری: می‌توانید از یک شبیه‌ساز رایگان یا یک کیت استارتر آماده استفاده کنید) از ابتدا با قطعات الکترونیکی اساسی و یک پردازنده استاندارد صنعتی، راهنمایی خواهید شد.

شما یاد خواهید گرفت که چگونه درایورهای دستگاه را گام به گام ایجاد کنید برای اجزای سخت‌افزاری واقعی مانند نمایشگرها، حافظه SD card، Wi-Fi، واحدهای اندازه‌گیری اینرسی (IMU، به عنوان مثال شتاب‌سنج و ژیروسکوپ)، ارتباط USB، جوی استیک‌های آنالوگ، ماژول‌های دوربین حرارتی و موارد دیگر.

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

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


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

Set, Ready, Go!-آماده، حرکت! Set, Ready, Go!

  • Course Presentation-معرفی دوره Course Presentation

  • Motivation-انگیزه Motivation

  • Environment Preparation-آماده‌سازی محیط Environment Preparation

Base Electrical Circuit-مدار الکتریکی پایه Base Electrical Circuit

  • Prototype Design-طراحی نمونه اولیه Prototype Design

  • CPU Breakout Board-برد تفکیک CPU CPU Breakout Board

  • The First Program-اولین برنامه The First Program

  • Simulating Without Hardware-شبیه‌سازی بدون سخت‌افزار Simulating Without Hardware

Operating System Basics-اصول اولیه سیستم عامل Operating System Basics

  • Introduction to Tasks-معرفی وظایف Introduction to Tasks

  • Introduction to Multitasking-معرفی چندوظیفگی Introduction to Multitasking

  • Shared Resources-منابع مشترک Shared Resources

  • Task Switching-سوئیچینگ وظیفه Task Switching

  • Kernels-هسته‌ها Kernels

  • Schedulers-برنامه‌ریزان Schedulers

  • Critical Sections-بخش‌های بحرانی Critical Sections

  • Deadlocks-بن‌بست‌ها Deadlocks

  • Introduction to Task Synchronization-معرفی همگام‌سازی وظایف Introduction to Task Synchronization

  • System Tick-تیک سیستم System Tick

Target Platform-پلتفرم هدف Target Platform

  • CPU Architectures-معماری‌های CPU CPU Architectures

  • Choosing the right CPU-انتخاب CPU مناسب Choosing the right CPU

  • MIPS32: CPU Registers-MIPS32: ثبات‌های CPU MIPS32: CPU Registers

  • MIPS32: Memory Layout-MIPS32: چیدمان حافظه MIPS32: Memory Layout

  • The PIC32 Microcontroller-میکروکنترلر PIC32 The PIC32 Microcontroller

  • Our Board VS Microchip's StarterKit-برد ما در مقابل StarterKit شرکت Microchip Our Board VS Microchip's StarterKit

Interrupts-وقفه ها Interrupts

  • Interrupts Overview-مروری بر وقفه‌ها Interrupts Overview

  • ISRs: Interrupt Service Routines-ISRs: روتین‌های سرویس وقفه ISRs: Interrupt Service Routines

  • Interrupt Latency and Interrupt Response-تاخیر وقفه و پاسخ به وقفه Interrupt Latency and Interrupt Response

  • Interrupts in our Operating System-وقفه‌ها در سیستم عامل ما Interrupts in our Operating System

  • Testing Interrupts with the Software Interrupt-تست وقفه‌ها با وقفه نرم‌افزاری Testing Interrupts with the Software Interrupt

BSP (Board Support Package)-بسته پشتیبانی برد BSP (Board Support Package)

  • BSP Overview: What is the Board Support Package-مروری بر BSP: بسته پشتیبانی برد چیست BSP Overview: What is the Board Support Package

  • Setting up the System Timer-تنظیم تایمر سیستم Setting up the System Timer

  • Setting up the System Tick Interrupt-تنظیم وقفه تیک سیستم Setting up the System Tick Interrupt

  • Setting up the system's LEDs-تنظیم LEDهای سیستم Setting up the system's LEDs

  • Testing LEDs: Flashing an S.O.S.-تست LEDها: چشمک زدن S.O.S. Testing LEDs: Flashing an S.O.S.

  • UART: Explanation and Setup-UART: توضیح و راه‌اندازی UART: Explanation and Setup

  • Testing the UART: Ping-Pong with a PC-تست UART: پینگ-پونگ با کامپیوتر Testing the UART: Ping-Pong with a PC

  • SPI: Explanation and Setup-SPI: توضیح و راه‌اندازی SPI: Explanation and Setup

  • Testing the SPI: Ping-Pong with an Arduino-تست SPI: پینگ-پونگ با آردوینو Testing the SPI: Ping-Pong with an Arduino

Kernel-هسته Kernel

  • The Base Infrastructure-زیرساخت پایه The Base Infrastructure

  • Implementing Tasks and TCBs-پیاده‌سازی وظایف و TCBها Implementing Tasks and TCBs

  • Implementing Stack Management-پیاده‌سازی مدیریت پشته Implementing Stack Management

  • Implementing Context Switching in Assembly-پیاده‌سازی تعویض زمینه در اسمبلی Implementing Context Switching in Assembly

  • Task Management-مدیریت وظایف Task Management

  • Implementing the Scheduler-پیاده‌سازی برنامه‌ریز Implementing the Scheduler

  • Starting the Operating System-راه‌اندازی سیستم عامل Starting the Operating System

  • Time Management-مدیریت زمان Time Management

Event Management-مدیریت رویداد Event Management

  • Event Management Concept-مفهوم مدیریت رویداد Event Management Concept

  • Data Structures for Event Management-ساختارهای داده برای مدیریت رویداد Data Structures for Event Management

  • Event Creation and Response-ایجاد و پاسخ به رویداد Event Creation and Response

Task Synchronization-همگام‌سازی وظایف Task Synchronization

  • Implementing Mutexes-پیاده‌سازی Mutexها Implementing Mutexes

  • Implementing Semaphores-پیاده‌سازی Semaphores Implementing Semaphores

  • Priority Inversion Avoidance-اجتناب از وارونگی اولویت Priority Inversion Avoidance

ITC (Inter-Task Communication)-ITC (ارتباط بین وظایف) ITC (Inter-Task Communication)

  • Implementing ITC with Mailboxes-پیاده‌سازی ITC با Mailboxها Implementing ITC with Mailboxes

OS Development Project-پروژه توسعه سیستم عامل OS Development Project

  • Download the Complete OS Sources-دانلود سورس‌های کامل سیستم عامل Download the Complete OS Sources

Bonus Lectures-درس‌های اضافی Bonus Lectures

  • MPU6500 Device Driver-درایور دستگاه MPU6500 MPU6500 Device Driver

  • ESP32 Wireless Device Design-طراحی دستگاه بی‌سیم ESP32 ESP32 Wireless Device Design

  • CCTV Camera Over FM Radio-دوربین مداربسته روی رادیو FM CCTV Camera Over FM Radio

نمایش نظرات

آموزش سیستم‌های توکار و توسعه سیستم عامل
جزییات دوره
12.5 hours
56
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
870
4.3 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Victor Huerlimann Victor Huerlimann

مهندس سیستم های جاسازی شده و هوش مصنوعی