آموزش FreeRTOS در STM32 | از 0 تا 100 | کاملا رایگان

آموزش پروژه محور FreeRTOS در STM32

انواع مختلفی از سیستم عامل های بلادرنگ (RTOS) وجود دارد که در میان آنها سیستم عامل بلادرنگ FreeRTOS یک سیستم عامل بسیار سریع و بهینه است شما در آموزش FreeRTOS در STM32 از سری آموزش RTOS  که می تواند بر روی میکروکنترلرهای ARM مستقر شود. در دنیای میکروکنترلرها است. سیستم عامل های بلادرنگ پاسخ قطعی برای پروژه ها و پروژه های پیچیده ای هستند که نیاز به انجام چندین کار به طور همزمان دارند. میکروکنترلرها به روش های مختلفی برنامه ریزی می شوند. استفاده از RTOS بهترین و ارزان ترین راه برای برنامه ریزی میکروکنترلر و اجرای پروژه است.

روش های برنامه نویسی میکروکنترلر STM32

میکروکنترلرها به روش های مختلفی برنامه نویسی می شوند. متداول ترین روش bare metal است که Superloop نیز نامیده می شود. این روش برای پروژه‌های کوچک و پروژه‌های کوچک خوب است، اما زمانی که با پروژه‌های بزرگ و پیچیده‌ای مواجه می‌شویم که به طور مداوم ایجاد می‌شوند و کارهای زیادی را همزمان انجام می‌دهند و در زمان پاسخگویی شما، استفاده از RTOS بهترین است و حداقل روش طراحی میکروکنترلر و اجرای این پروژه در این روش سیستم ماژولار می شود و هر قسمت را می توان به طور مستقل ایجاد کرد، به این ترتیب بسیاری از برنامه نویسان می توانند همزمان روی یک پروژه کار کنند، برنامه نویس دستی در لیست سیستم عامل ها ندارد و فقط اپلیکیشن را پیاده سازی می کند.

شاید برای شما مفید باشد: آموزش الکترونیک

به طور کلی برنامه نویسی میکروکنترلر ها به سه دسته زیر تقسیم می شود:

  1. Bare metal
  2. RTOS
  3. OS

نیازهای پروژه را برآورده می‌کند و به راحتی می‌توان فرآیند را به سازمان دیگری انتقال داد، علاوه بر این، زمان ارائه پروژه به بازار کاهش می‌یابد، به گونه‌ای که محصول نهایی رقابتی‌تر و در دسترس‌تر می‌شود. از موفقیت پروژه، گسترش بازار است.

چرا RTOS بهترین روش برای برنامه نویسی میکروکنترلر STM32 می باشد؟

روش برنامه نویسی RTOS می تواند بیشترین استفاده را از قدرت پردازش داشته باشد و در بین شرکت های طراحی محبوبیت بیشتری دارد. با در نظر گرفتن پروژه های پیچیده و بزرگ امروزی، به طور عمده در زمینه IoT (اینترنت اشیا)، یک پروژه RTOS پاسخ مناسبی است. مانند برنامه های کاربردی دیگر، برنامه هایی که شامل یک رابط کاربری گرافیکی هستند و از طریق اینترنت ارتباط برقرار می کنند، اغلب توسط RTOS ها پیاده سازی می شوند.

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

 

آیا RTOS یک سیستم عامل است؟

اگر شما یک مهندس نرم‌افزار هستید که از محاسبات پیشرفته (یعنی از یک محیط محاسباتی کاملاً متفاوت) به سراغ ریزپردازنده‌ها آمده‌اید، ممکن است فکر کنید اینکه FreeRTOS  را یک «سیستم عامل» نامید، اغراق‌آمیز است. FreeRTOS فقط از یک زمانبندی رشته ای و یک TCP/IP  تشکیل شده است و واقعاً حافظه مجازی ندارد. همچنین هیچ سیستم فایل و مدل امنیتی وجود ندارد. شما هسته FreeRTOS (بخش مرکزی) را مستقیماً در برنامه بارگذاری شده در MCU ایجاد می کنید.

انواع مختلفی از سیستم عامل های بلادرنگ (RTOS) وجود دارد که در میان آنها سیستم عامل بلادرنگ FreeRTOS یک سیستم عامل پرسرعت بهینه سازی شده است که می تواند بر روی میکروکنترلرهای ARM مانند STM32 و LPC پیاده سازی شود. میکروکنترلرهای ساده 8 بیتی مانند غیره، AVR و بسیاری از پردازنده های دیگر. در دنیای میکروکنترلرها و سیستم های تعبیه شده، سیستم های کنترل بلادرنگ پاسخی آشکار به پروژه های پیچیده و چند وظیفه ای امروزی هستند.

اگر شما یک مهندس نرم‌افزار هستید که از محاسبات پیشرفته (یعنی از یک محیط محاسباتی کاملاً متفاوت) به سراغ ریزپردازنده‌ها آمده‌اید، ممکن است فکر کنید که FreeRTOS را یک «سیستم عامل» نامید، اغراق‌آمیز است. البته FreeRTOS فقط از یک زمانبندی رشته و یک پشته TCP/IP تشکیل شده است و واقعاً حافظه مجازی ندارد. همچنین هیچ سیستم فایل و مدل امنیتی وجود ندارد. شما هسته FreeRTOS (بخش مرکزی) را مستقیماً در برنامه بارگذاری شده در MCU ایجاد می کنید.

آیا کار با FreeRTOS در STM32  سخت است؟

هیچ چیز خیلی پیچیده ای در مورد FreetRTOS وجود ندارد. همانطور که قبلاً اشاره کردیم، FreeRTOS فقط یک جزء کوچک است که از چیزی به جز یک زمانبندی (که در FreeTROS “تکلیف” نامیده می شود) و یک لایه TCP/IP تشکیل شده است.

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

 

سوالات متداول

سرفصل های آموزش چیا هست و آموزش به چه صورتی پیش میره؟

هر قسمت از این آموزش با یک یا چند سوال و یک یا چند سرنخ شروع میشه و ما تلاش میکنیم تا پاسخ این سوالات رو به کمک سرنخ ها پیدا کنیم. این آموزش به طور کلی به دو بخش تقسیم میشه:

  1. هر آن چیزی که باید برای شروع RTOS یاد بگیرید؟؟؟!!!
  2. آموزش نوشتن یک سیستم عامل RTOS به صورت پایه ای

در این آموزش کدوم سری از میکروکنترلرهای stm32 استفاده میشه؟

باید گفت که از تمامی سری های میکروکنترلرهای stm32 تقریبا میشه استفاده کرد اما در برخی از اونها ممکنه یکم کار سخت بشه اما شما میتونید یکی از بردهای رایج در بازار مثل Bluepill که معرف حضور خیلی از دوستان هست رو تهیه کنید.

این آموزش تحت ویندوزه دیگه؟

این آموزش تحت سیستم عامل لینوکس(یکی از توزیع های debian base مانند Ubuntu) انجام میشه اما کسایی که نمیتونن از ویندوز دل بکنن هم نگران نباشن.مایکروسافت قابلیتی به نام WSL(Windows Subsystem for Linuxبه ویندوز اضافه کرده که میتونه محیط ترمینال توزیع های مختلف سیستم عامل لینوکس رو در ویندوز شبیه سازی کنه که در ادامه نصب و راه اندازی اون رو میگم.

این آموزش با چه کامپایلری انجام میشه؟

در این آموزش از کامپایلر GNU GCC استفاده میکنیم و برای ادیت کدهامون هم از یکی از ادیتورهای معروف مانند VScode یا Eclips استفاده میکنیم.حالا چرا ؟ دلیلش رو در اینجا میتونید ببینید که به طور مفصل توضیح داده شده.

آموزش RTOS

آموزش RTOS با STM32 قسمت 0: مقدمه

!RTOS In Microcontrollers!RTOS(Real Time Operating System) یا به عبارت دیگر سیستم عامل بلادرنگ حوزه ای بسیار جذاب و پر از سوال در زمینه برنامه نویسی و کار با انواع میکروکنترلرها است که نیاز به درک عمیقی از چگونگی کارکرد پریف...

ادامه مطلب

کامپایلر GCC

کامپایلر GCC چیست؟ + بررسی نحوه عملکرد | آموزش RTOS با STM32 قسمت 1

این اولین قسمت از فصل اول آموزش FreeRTOS در STM32 نوشتن یک سیستم‌عامل بلادرنگ برای میکروکنترلرهاست. در این قسمت به بررسی کامپایلر GCC می پردازیم. همان‌طور که قبلاً گفتم فصل اول درباره پیش‌نیازهای نوشتن یک سیستم‌عامل بلادرنگ است. ت...

ادامه مطلب

GNU make

آموزش RTOS با STM32 قسمت 2: ابزار GNU Make-بخش اول

در قسمت قبل آموزش FreeRTOS در STM32 با کامپایلر gcc آشنا شدیم، با دستورات آن کار کردیم و دیدیم که برای کامپایل کردن یک برنامه ساده چه سوئیچ‌هایی از این ابزار را باید به کار گرفت. این دستورات طولانی آن هم برای یک برنامه ساده بسیار ...

ادامه مطلب

آموزش RTOS با STM32 قسمت 2:ابزار GNU Make-متغیرها

آموزش RTOS با STM32 قسمت 2:ابزار GNU Make-متغیرها

در این قسمت از آموزش RTOS به ادامه معرفی و آموزش ابزار GNU Make می پردازیم، با ما همراه باشید. متغیرها همواره کاربردهای زیادی در برنامه‌نویسی داشته‌اند. به‌طورکلی شما هر الگوریتمی را که بخواهید با یک‌زبان برنامه‌نویسی اجرایی کنید...

ادامه مطلب

آموزش GNU make

آموزش RTOS با STM32 قسمت 2:ابزار GNU make-بخش سوم

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

ادامه مطلب

آموزش RTOS با STM32 قسمت 3:دیباگر GDB

آموزش RTOS با STM32 قسمت 3:دیباگر GDB

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

ادامه مطلب