دوره "توسعه نرمافزار جاسازی شده با C++" به کاربرد برنامهنویسی شیءگرا (OOP) در سیستمهای امبدد میپردازد. C++ به دلیل قابلیتهای فراوانی که پیادهسازی OOP را آسان میکند و همچنین امکان برنامهنویسی در سطح سختافزار را فراهم میآورد، زبان انتخابی این دوره است. با این حال، C++ هرچند غنی و فوقالعاده است، اما استفاده نادرست از آن میتواند منجر به افزایش بیرویه حجم کد (code bloat) شود. در این دوره، ویژگیهای خاصی از زبان C++ انتخاب شدهاند تا اطمینان حاصل شود که برنامههای توسعهیافته از اصول زیر پیروی میکنند:
مفاهیم اصلی OOP مانند انتزاع، کپسولهسازی و چندریختی در این دوره پوشش داده میشوند. هدف این دوره، ارائه این سبک از برنامهنویسی به سادهترین و دوستانهترین شکل ممکن است، بنابراین مبحث وراثت (inheritance) پوشش داده نمیشود. برای سرعت بخشیدن به توسعه کتابخانهها و برنامههای کاربردی، از APIهای STM32Cube HAL استفاده شده و برنامهنویسی در سطح رجیستر مستقیم به حداقل میرسد. در طول این دوره از برد STM32F401RE Nucleo استفاده میشود و Keil uVision5 MDK و STM32CubeIDE برای توسعه و اشکالزدایی نرمافزار به کار میروند. از آنجا که دوره عمدتاً از HAL استفاده میکند، هر کسی که این دوره را میگذراند میتواند به دلیل قابلیت حمل HAL، از یک میکروکنترلر STM32 متفاوت استفاده کرده و همان کد را (با تغییرات اندک) اجرا کند.
بیشتر نرمافزارهای جاسازی شده به زبان C و با رویکرد رویهای (procedural) نوشته میشوند. C++ جایگزینی برای C نیست و OOP نیز جایگزینی برای برنامهنویسی رویهای نیست. اما C++ ویژگیهایی را فراهم میکند که نرمافزار جاسازی شده ما میتواند از آنها بهرهمند شود و در صورت استفاده صحیح، برای توسعه کاربردها بسیار سودمند خواهد بود. در نهایت، این موضوع به ترجیح و مورد استفاده بستگی دارد و این دوره تضمین میکند که کاربردپذیری زبان و پارادایم برنامهنویسی (OOP) منعکس و قدردانی شود.
برنامهنویسی شیءگرا در یک سیستم امبدد و کاربرد موارد زیر:
توسعه کتابخانهها با استفاده از C++، درایورهای STM32Cube HAL و اطلاعات موجود در مستندات برای واسطهگذاری میکروکنترلر STM32 با قطعات خارجی مانند:
از آنجا که این دوره پروژهمحور است، دانشجویان حداقل دو پروژه را خواهند ساخت که برخی از آنها عبارتند از:
من تضمین میکنم هر کسی که در این دوره ثبتنام کند، پس از اتمام آن قادر خواهد بود نرمافزارهای جاسازی شده را برای پروژهها با نظارت کم یا بدون نظارت بسازد. همچنین، به عنوان فارغالتحصیل این دوره، شما قادر خواهید بود نرمافزارهای جاسازی شده ساده، خوانا و قابل نگهداری را برای چندین پروژه با الزامات مشخص، با استفاده از C++ طراحی و توسعه دهید.
برای بهرهبرداری حداکثری از دوره، دانشجویان ملزم به تهیه برخی قطعات سختافزاری و نصب نرمافزارهای مورد نیاز هستند تا بتوانند درسها، تمرینها و پروژهها را به راحتی دنبال کنند.
همچنین از دانشجویان انتظار میرود با برنامهنویسی STM32 در سطح پایه آشنا باشند، یعنی درک درایورها و رجیسترهای پریفرالهای اساسی (GPIO، UART و Timers در حالت شمارش عادی). آشنایی با C امبدد نیز میتواند مفید باشد. هم Keil uVision 5 و هم STM32CubeIDE قابل استفاده هستند. برای بردهایی که در زنجیره ابزار Keil uVision از HAL آنها پشتیبانی نمیشود (مانند STM32 bluepill)، میتوان از STM32CubeIDE استفاده کرد.
فرآیند آموزش و یادگیری در این دوره فراتر از درسنامهها و تمرینها است. دانشجویان همیشه میتوانند از طریق بخش پرسش و پاسخ با مدرس ارتباط برقرار کنند. این بخش بسیار فعال است و به سؤالات ظرف 24 ساعت پاسخ داده خواهد شد.
Olaoluwa Raji
سیستم های جاسازی شده || میکروکنترلر || مدارها
نمایش نظرات