توسعه سیستمهای جاسازی شده و سیستمعامل
✅ سرفصل و جزئیات آموزش
آنچه خواهید آموخت
- یاد بگیرید که چگونه یک سیستم جاسازی شده از ابتدا روی میز بسازید. این کار به شما بینش خوبی دربارهی پلتفرم هدف میدهد، اما الزامی نیست.
- چگونه یک میکروکنترلر را از ابتدا برنامهنویسی کنید، با تنظیم سیمکشی، ساعتگذاری، متصل کردن برنامهنویس و فلش کردن برنامههای باینری به تراشه.
- فهم عمیقی از اینکه یک سیستمعامل چیست، چه زمانی به آن نیاز دارید و چگونه در پلتفرمهای جاسازی شده کار میکند، به دست آورید.
- گونههای هسته، چندوظیفگی، جابجایی زمینه، زمانبندی، بخشهای بحرانی و همگامسازی تسک را از دیدگاه عملی درک کنید.
- درک معماریهای CPU به طور کلی و نحوه انتخاب یک CPU هدف. درک عمیق از درونمایههای معماری MIPS32 مانند ثبتها و چیدمان حافظه.
- برنامهنویسی برنامههای پیشرفته برای میکروکنترلر Microchip PIC32 (MIPS32).
- توسعه بستههای پشتیبانی برد (BSP) برای یک پلتفرم هدف.
- درک عمیق و عملی از ارتباط دادهای از طریق باسهای SPI و I2C، همچنین ارتباط سریال از طریق ماژولهای UART (شامل USB به سریال).
- یاد بگیرید چگونه یک هسته پیشگیرانه و مشترک بر اساس کد اسمبلی خاص CPU برای جابجایی زمینه تسک توسعه دهید.
- یاد بگیرید چگونه خدمات داخلی کارآمدی برای مدیریت زمان، تسک و حافظه ارائه دهید.
- یاد بگیرید چگونه ارتباط بینفرایندی (IPC) با استفاده از جعبههای پیام و صفهای پیام ایجاد کنید.
- فهم عمیق از - و یاد گیری نحوه پیادهسازی - محدودیتهای زمان واقعی تا یک سیستمعامل به عنوان RTOS (سیستمعامل واقعی زمان) در نظر گرفته شود.
- مشکل معکوس اولویت را درک کنید و یاد بگیرید چگونه تدابیر خاصی برای آن پیادهسازی کنید.
- یادگیری توسعه درایورهای دستگاه. ما به صورت مرحلهای درایورها را برای سختافزارهای جانبی پلتفرم هدف خود توسعه خواهیم داد، مانند نمایشگر و کارت MicroSD.
- برقراری ارتباط بین برنامه کاربری و سیستمعامل.
- درک چگونه یک تصویر باینری را در حافظه برنامه پلتفرم هدف در زمان اجرا بنویسید و یک بوتلودر USB/UART ایجاد کنید.
- یاد بگیرید چگونه OS را پورت کنید تا قابل اجرا در معماریهای مختلف CPU باشد.
- درک شماتیک الکتریکی و چیدمان PCB پلتفرم هدف (اختیاری).
الزامات
- مهارتهای پایه برنامهنویسی C توصیه میشود اما الزامی نیست. پیادهسازی کد به صورت عملی و با توضیحات در زمان واقعی انجام خواهد شد. نیاز به دانش قبلی خاصی نیست. اگر سوالی دارید، فقط یک پیام بفرستید: من به شما پاسخ خواهم داد.
توضیحات
در این دوره شما یاد خواهید گرفت که چگونه یک سیستمعامل جاسازی شده را واقعاً از ابتدا ایجاد کنید.
شما به صورت مرحله به مرحله در ایجاد هر یک از ماژولهای نرمافزاری فنی که یک سیستمعامل جاسازی شده را تشکیل میدهند، راهنمایی خواهید شد، و همچنین در توسعه دستگاه هدف خود روی میز (اختیاری: میتوانید از یک شبیهساز رایگان یا یک کیت استارتر آماده استفاده کنید)، که با اجزای الکترونیکی پایه و یک پردازنده استاندارد صنعتی آغاز خواهید کرد.
شما یاد خواهید گرفت که چگونه درایورهای دستگاه را مرحله به مرحله برای اجزای سختافزاری واقعی مانند نمایشگرها، حافظه SD، Wi-Fi، واحدهای حرکتی اینرسی (IMU، یعنی شتابسنج و ژیروسکوپ)، ارتباط USB، جویاستیکهای آنالوگ، ماژولهای دوربین حرارتی و بیشتر ایجاد کنید.
در پایان این دوره، شما برنامهنویسی سطح سیستم در زبانهای اسمبلی و C را تسلط خواهید داشت، و همچنین فرآیندهای فنی حاکم بر تعامل CPU و حافظه را درک خواهید کرد. به لطف تجربیات عملی و نمایشهای عملی متعدد، شما توانایی کنترل کامل ماشین را با دستکاری ثبتهای CPU، پشته، نقطه دستور، آدرسهای بازگشتی و موارد دیگر توسعه خواهید داد. در پایان بخش توسعه نرمافزار، یاد خواهید گرفت که چگونه یک پورتینگ به معماری دیگر، مانند x86، ایجاد کنید.
اگرچه بخش توسعه سختافزار اختیاری است، اگر به یک آزمایشگاه الکترونیکی دسترسی دارید، شما همچنین توانایی پروتوتایپسازی مدار خود را، طراحی و مونتاژ PCB (برد مدار چاپی) هدف خود را توسعه خواهید داد.
این دوره برای چه کسانی مناسب است:
- از توسعهدهندگان جاسازی شده تا علاقهمندان و عاشقانی که مایل به ایجاد سیستمعامل خود هستند.
- این دوره عملی است: شما مرحله به مرحله از طریق ایجاد یک سیستمعامل کارآمد از ابتدا راهنمایی خواهید شد.
توسعه سیستمهای جاسازی شده و سیستمعامل
-
معرفی دوره 01:24
-
انگیزه 10:10
-
آمادهسازی محیط 10:55
-
طراحی پروتوتایپ 13:02
-
برد شکاف CPU 05:23
-
اولین برنامه 24:10
-
شبیهسازی بدون سختافزار 30:12
-
مقدمهای بر تسکها 09:54
-
مقدمهای بر چندوظیفگی 10:12
-
منابع مشترک 18:02
-
جابجایی تسک 13:24
-
هستهها 23:58
-
زمانبندها 11:36
-
بخشهای بحرانی 09:28
-
دستگاههای قفل شده 06:46
-
مقدمهای بر همگامسازی تسک 07:08
-
تیک سیستم 13:18
-
معماریهای CPU 14:50
-
انتخاب CPU مناسب 21:58
-
MIPS32: ثبتهای CPU 08:44
-
MIPS32: چیدمان حافظه 07:42
-
میکروکنترلر PIC32 01:28:57
-
برد ما در مقابل کیت استارتر Microchip 30:49
-
بررسی اجمالی وقفهها 04:18
-
ISRها: روالهای خدمات وقفه 11:35
-
latency وقفه و پاسخ به وقفه 02:21
-
وقفهها در سیستمعامل ما 02:35
-
آزمایش وقفهها با وقفه نرمافزاری 07:56
-
بررسی اجمالی BSP: بسته پشتیبانی برد چیست 05:36
-
تنظیم تایمر سیستم 07:05
-
تنظیم وقفه تیک سیستم 03:54
-
تنظیم LEDهای سیستم 03:13
-
آزمایش LEDها: فلش زدن S.O.S. 01:31
-
UART: توضیحات و تنظیمات 14:41
-
آزمایش UART: پینگپنگ با یک کامپیوتر 03:04
-
SPI: توضیحات و تنظیمات 14:19
-
آزمایش SPI: پینگپنگ با یک آردوینو 10:32
-
زیرساخت پایه 05:14
-
پیادهسازی تسکها و TCBها 05:25
-
پیادهسازی مدیریت پشته 20:19
-
پیادهسازی جابجایی زمینه در اسمبلی 30:38
-
مدیریت تسک 04:13
-
پیادهسازی زمانبند 04:15
-
شروع سیستمعامل 04:09
-
مدیریت زمان 06:10
-
مفهوم مدیریت رویداد 04:14
-
ساختارهای داده برای مدیریت رویداد 12:55
-
ایجاد و پاسخ به رویداد 10:30
-
پیادهسازی mutexها 10:25
-
پیادهسازی semaphoreها 08:48
-
اجتناب از معکوس اولویت 14:40
-
درایور دستگاه MPU6500 20:12
-
طراحی دستگاه بیسیم ESP32 51:52
-
دوربین CCTV روی رادیو FM 21:48
مشخصات آموزش
توسعه سیستمهای جاسازی شده و سیستمعامل
- تاریخ به روز رسانی: 1404/06/14
- سطح دوره:مقدماتی
- تعداد درس:54
- مدت زمان :12:22:54
- حجم :10.03GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy