ساخت اولین برنامه Bare-Metal Rust خود از ابتدا
نحوه تنظیم زنجیره ابزار Rust برای توسعه فریمور برای میکروکنترلرهای ARM Cortex-M را بیاموزید.
اسکریپت لینکر و فایل راهاندازی (startup) خود را بنویسید و چگونگی چیدمان حافظه و فرآیند بوتاسترپ در Rust توکار را درک کنید.
برای بازرسی و تحلیل فایلهای ELF از cargo-binutils استفاده کنید.
یک گردش کار مدرن و کارآمد با استفاده از VS Code برای کامپایل، فلش و دیباگ کد Rust خود با اهداف (targets) توکار راهاندازی کنید.
استفاده و درک Crateهای اصلی Rust توکار.
لاگگیری و دیباگ کارآمد در محیطهای با منابع محدود.
کار عملی با پریفرالهای ARM Cortex مانند SysTick و ITM با استفاده از Crateهای cortex-m و cortex-m-rt را تجربه کنید.
Rust FFI: ایجاد APIهای ایمن Rust برای ارتباط با کتابخانههای C موجود، که ادغام Rust را در پایگاههای کد مبتنی بر C موجود آسانتر میکند.
نحوه انتقال ایمن ساختارها (structs)، رشتهها و Enumها بین Rust و C با حفظ ایمنی نوع (type safety) و کنترل را بیاموزید.
توابع Rust را برای قابلیت فراخوانی از C، با استفاده از مفاهیم unsafe و FFI برای مدیریت ایمن قابلیت همکاری بین زبانها، در دسترس قرار دهید.
گام به گام، یک برنامه بازی واقعی Flappy Bird را با استفاده از Rust بسازید.
درایورهای مستقل از سختافزار را با استفاده از Traitsهای embedded-hal بسازید، که کد شما را در پلتفرمهای مختلف میکروکنترلر قابل حمل میکند.
ارتباط با سنسورهای واقعی (MPU6050) برای کنترل مکانیک بازی.
سازماندهی کد خود در ماژولهای تمیز و قابل نگهداری.
از Crate HAL STM32 برای پیکربندی و کنترل آسان پریفرالهای میکروکنترلر خود با انتزاعات ایمن Rust استفاده کنید.
نوشتن کد توکار جنریک (Generic Embedded Code).
==> به دنبال افزودن یک زبان برنامهنویسی توکار دیگر به مجموعه مهارتهای خود هستید؟ Rust را امتحان کنید — پشیمان نخواهید شد!! <==
این دوره نقطه شروع شما برای استفاده از Rust در میکروکنترلرهای مبتنی بر ARM Cortex-M مانند STM32 است، حتی اگر در زمینه سیستمهای توکار تازهکار باشید.
این یک دوره کاملاً عملی است که شما را از ابتدا وارد دنیای واقعی توسعه Rust توکار بر روی STM32 میکند. هر ویدئو بر پایه ویدیوی قبلی ساخته شده و به شما کمک میکند گام به گام پیشرفت کنید، از نوشتن کد Bare-Metal گرفته تا موضوعات پیشرفتهای مانند FFI، Crateها، توسعه درایور و Traits. این دوره برای کسانی که تازه با Rust و سیستمهای توکار آشنا میشوند، ایدهآل است.
Rust از بسیاری از مشکلات رایج حافظه (مانند اشارهگرهای null، سرریز بافر و خطاهای استفاده پس از آزاد شدن حافظه) جلوگیری میکند، از طریق:
مدل مالکیت (Ownership model): قوانین سختگیرانه Rust در مورد مالکیت، قرض گرفتن (borrowing) و طول عمر (lifetimes) از بیشتر سوءاستفادههای تصادفی از حافظه جلوگیری میکند.
ایمنی نوع (Type safety): سیستم نوع Rust اطمینان میدهد که شما به دادهها به درستی دسترسی پیدا میکنید و با اعمال الگوهای سختگیرانه استفاده از متغیر، به جلوگیری از انواع خاصی از دسترسی نامعتبر به حافظه کمک میکند.
به لطف Cargo، مدیر بسته رسمی Rust، میتوانید به راحتی با افزودن کتابخانههای خارجی یا "Crate" که مانند قطعات plug-and-play هستند، قابلیتها را اضافه کنید.
در این دوره، شما بر موارد زیر مسلط خواهید شد:
مقدمهای دوستانه بر Rust برای مبتدیان، متناسب با سیستمهای توکار
تنظیم کامل زنجیره ابزار (Toolchain) برای کامپایل متقابل (Cross-compiling)، فلش کردن و دیباگ
دیباگ و لاگگیری کارآمد با defmt و probe-rs برای ردیابی بیدرنگ
برنامهنویسی پریفرالهای سطح بالا با Crate HAL STM32
ساخت گام به گام یک بازی واقعی Flappy Bird با استفاده از Rust
ارتباط با سنسورهای واقعی (MPU6050) برای کنترل مکانیک بازی
روشهای کدنویسی تمیز، ماژولار و انتزاع سختافزار
ساخت درایورهای مستقل از سختافزار با استفاده از Traitsهای embedded-hal
نوشتن و درک اسکریپتهای لینکر و کدهای راهاندازی (Startup) خودتان
ساخت کد توکار جنریک با استفاده از جنریکها (generics) و Traitsهای Rust
ادغام ایمن و بیدرنگ Rust + C از طریق FFI
اعتماد به نفس برای نوشتن فریمور توکار قوی، قابل استفاده مجدد و آماده برای تولید در Rust
توجه: اگر از قبل یک برد توسعه میکروکنترلر دارید، توصیه میکنیم با همان ادامه دهید. این دوره با دقت زیادی طراحی شده است که مفاهیم و مراحل آن را میتوان با کمی تنظیمات برای اکثر بردهای توسعه به کار برد. اما اگر ترجیح میدهید برای یک تجربه روانتر از همان برد دقیقاً مانند مربی استفاده کنید، میتوانید سختافزار توصیهشده را بررسی کنید.
1) برد توسعه میکروکنترلر
گزینه 1: برد مبتنی بر STM32F303
این دوره عمدتاً از برد Fastbit STM32 Nano استفاده میکند که مبتنی بر میکروکنترلر STM32F303 و سنسور MPU6050 روی برد است.
گزینه 2: هر برد میکروکنترلر STM32
شما میتوانید از هر برد توسعهای که شامل میکروکنترلر STM32 باشد استفاده کنید. محتوای دوره به گونهای طراحی شده است که قابل انطباق باشد و به شما امکان میدهد با برد STM32 خاصی که در اختیار دارید، مراحل را دنبال کنید.
2) دیباگر مبتنی بر SWD
یک دیباگر مبتنی بر SWD (Serial Wire Debug) برای برنامهریزی و دیباگ میکروکنترلر STM32 شما مورد نیاز است. این ابزار برای بارگذاری برنامههای شما روی میکروکنترلر و برای دیباگ پروژههایتان به صورت بیدرنگ ضروری است.
3) نمایشگر LCD (LCD shield)
در یکی از پروژهها، به یک ماژول TFT LCD برای آزمایش نیاز خواهید داشت. این دوره از Fastbit 1.28" TFT LCD با رابط موازی 8 بیتی، مبتنی بر درایور LCD GC9A01 استفاده میکند. با این حال، شما میتوانید از ماژول مشابه یا سازگار استفاده کنید.
4) سنسور MPU6050
VS Code
STM32CubeIDE
FastBit Embedded Brain Academy
روی Firmware و Embedded Engineering کار می کند
Kiran Nayak
نرم افزار تعبیه شده
نمایش نظرات