آموزش آردوینو اینترنت اشیا IOT سیستم عامل FreeRTOS

سیستم عامل Free RTOS بردهای آردوینو قسمت دوم: نصب و تعاریف اولیه

getting-started-with-free-rtos-in-arduino-part-two-setup-digispark
نوشته شده توسط معین صابری

در سلسله آموزش سیستم عامل Free RTOS بردهای آردوینو، قسمت دوم را به نصب کتابخانه و بررسی تعاریف اولیه می پردازیم. در قسمت پیشین به بررسی مفهوم سیستم عامل، سیستم عامل های مختلف و…. پرداختیم. در این جا قصد داریم تا به نصب سیستم عامل بر روی برد بپردازیم. در کنار این، کار با سیستم عامل FreeRTOS نیازمند دانستن اطلاعات اولیه است. در این جا به این موضوعات پرداخته و سپس نحوه دانلود و نصب سیستم عامل را بررسی خواهیم نمود. در ادامه با مرجع تخصصی سیستم عامل FreeRTOS به زبان فارسی، دیجی اسپارک همراه باشید.

 


نحوه عملکرد سیستم عامل روی آردوینو


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

نحوه عملکرد سیستم عامل روی آردوینو - دیجی اسپارک

 

سیستم عامل Free RTOS بر روی بردهای آردوینو، به شیوه ای متفاوت با سیستم عامل های اندروید، ویندوز و…. اجرا می گردد. در یک سیستم عامل ویندوز، شما این سیستم عامل را روی رایانه خود نصب می کنید. سپس برنامه های مد نظر خود را روی سیستم عامل اجرا می کنید.  نکته جالب در این جا اینست که سیستم عامل به طور کامل در حافظه هارد و یا حافظه دائمی رایانه و تلفن همراه نصب می گردد. اما هیچ گاه به طور کامل در حافظه رم قرار نمی گیرد. به این جهت که اصلا حافظه رم گنجایش قرارگیری کامل سیستم عامل را ندارد.

در یک رایانه رومیزی یا یک تلفن همراه، مطابق تصویر فوق سیستم عامل به طور کامل در حافظه HARD قرار می گیرد. سپس جهت اجرای برنامه(TASK)، سیستم عامل از RAM درخواست داده می نماید. در اینجا نیز RAM از هارد بخشی از سیستم عامل را که مربوط به اجرای برنامه است، درخواست می کند. در رابطه با سیستم عامل FreeRTOS، توجه داشته باشید که این سیستم عامل به شیوه ای متفاوت با ویندوز و اندروید بر روی آردوینو اجرا می گردد.

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

 


چند برنامگی در برد آردوینو با FreeRTOS


در قسمت قبل، در رابطه با سیستم عامل و نحوه اجرای برنامه ها در CPU، مختصری بحث کردیم. آنطور که از قسمت پیشین به خاطر داریم، اجرای برنامه ها در سیستم عامل FreeRTOS با اجرای برنامه ها درسیستم عامل های معمول نظیر ویندوز و لینوکس، تفاوت های بسیاری دارد. در سیستم عامل Free RTOS بردهای آردوینو، اصل بر این است که در یک برنامه چندین حلقه تکرار بی نهایت به طور همزمان با هم اجرا شوند؛ به طوریکه اجرای هر حلقه سبب عدم اجرای حلقه دیگر نشود.

چند برنامگی در برد آردوینو با FreeRTOS - دیجی اسپارک

 

آنطور که بیان شد، سیستم عامل FreeeRTOS به شکل یک کتابخانه به اجرای برنامه های می پردازد. این کتابخانه با زمان بندی، اجازه اجرای حلقه های تکرار بی نهایت را به صورت همزمان(تقریبا همزمان) صادر می کند. این رویه سبب می شود تا حلقه ها به صورت همزمان اجرا شوند. برای این موضوع، از یک دستور به اسم xTaskCreate استفاده می شود. به کمک این دستور می توان Task یا برنامه مد نظر را تعریف نمود. به عنوان مثال، تعریف TASK را در زیر مشاهده کنید.

xTaskCreate(TaskDigitalRead ,  "DigitalRead" ,128,  NULL ,  ۲  ,  NULL );

 

 در تابع فوق، پارامترها از چپ به راست  به شکل زیر تعریف می گردد.

۱: نام تابعی که قرار است اجرا شود.

۲: یک نام جهت شناسایی TASK در سطح سیستم عامل

۳:اندازه ای از حافظه STACK که به TASK(تابع) اختصاص داده می شود.

۴:پارامترهای ورودی برای TASK

۵: اولیت اجرای TASK، برای عدد ۳ بیشترین و بالاترین اولیت و عدد ۰ پایین ترین اولویت

۶: مدیریت اجرای TASK

با تعریف تابع فوق در setup آردوینو، TASK به سیستم عامل شناسانده می شود. حال شما می توانید در تابعی که در پارامتر شماره ۱ معرفی کرده اید، دستورات مد نظر خود را بنویسید. در رابطه با دو مفهوم TASK و اولویت نکات مهمی وجود دارد. این نکات را در قسمت بعد بررسی می کنیم.

 


مفاهیم Task و  Priority در FreeRTOS


در قسمت پیشین هنگام معرفی تابع xTaskCreate، یک پارامتر و یک مفهوم بسیار مهم خودنمایی می کردند. یک پارامتر مربوط به اولیت و مورد بعد مربوط به مفهوم Task است. ابتدا از پارامتر اولیت یا Priority شروع می کنیم. همانطور که پیشتر گفته شد، یک سیستم عامل برنامه ها را تقسیم بندی زمانی کرده و به ترتیب از اولین برنامه تا آخرین، زمانی را به اجرای آن ها اختصاص می دهد. سپس این چرخش از ابتدا شروع شده و برنامه نخست، اجرا خواهد شد. در اینجا می توان تعیین نمود که کدام برنامه زودتر از بقیه اجرا شود. جهت تعیین اولیت اجرا، از یک پارامتر به اسم Priority استفاده می شود. در سیستم عامل Free RTOS بردهای آردوینو، این اولیت یک عدد بین ۰ الی ۳ است. عدد ۳ بیشترین و بالاترین اولیت، و عدد ۰ پایین ترین اولویت را به خود اختصاص می دهد.

در کنار این، مفهوم Task است. در این جا Task منظور از تابع است. این تابع می تواند دارای حلقه تکرار بی نهایت باشد. به عنوان مثال ۴ تابع با حلقه تکرار بی نهایت، همواره اجرا می شوند. اما این حلقه های تکرار سبب بلاک شدن بر نامه نخواهد شد. در اینجا چون در تابع xTaskCreate تابع یا همان Task تعریف شده، بنابراین بدون اختلال در اجرا، هر ۴ حلقه تکرار بی نهایت اجرا خواهند شد.

 


دانلود و نصب کتابخانه FreeRTOS


همانطور که اطلاع دارید، کتابخانه ها یکی از ابزارهای کلیدی و کاربردی در برنامه نویسی به شمار می روند. به کمک این ابزار، می توانیم توابع نوشته شده در فایلهایی به نام کتابخانه ذخیره کرده و سپس در پروژه های متعدد از آن استفاده کنیم.  همانطور که پیشتر گفته شد، برای راه اندازی و کار با سیستم عامل FreeRTOS  کتابخانه توسعه داده شده است. برای استفاده از این کتابخانه، ابتدا باید آن را نصب کنیم. برای نصب کتابخانه در محیط آردویینو، ابتدا مطابق تصویر زیر بر روی گزینه Tools و سپس Manage Libraries کلیک کنید.

اصول نصب کتابخانه در آردوینو - دیجی اسپارک

 

پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت freertos را جستجو نموده و کتابخانه مشخص شده در تصویر زیر را نصب نمایید.

دانلود و نصب کتابخانه FreeRTOS - دیجی اسپارک

 


 لوازم مورد نیاز


لینک خرید انواع برد آردوینو، کلیک کنید

 


جمع بندی


در مجموعه آموزش های سیستم عامل FreeRTOS برای بردهای آردوینو، این قسمت را به بررسی مفاهیم پایه و برنامه نویسی این سیستم عامل در بردهای آردوینو پرداختیم. همانطور که اطلاع دارید، سیستم عامل FreeRTOS مورد بحث در این سلسله آموزش، قابلیت اجرا بر روی بردهای آردوینو با معماری AVR 8 بیتی را داراست. در این آموزش به معرفی سیستم عامل و نحوه اجرای آن در رایانه ها پرداختیم.  پس از این مورد بحث و بررسی چگونگی اجرای سیستم عامل در بردهای آردوینو را از نظر گذراندیم. در ادامه موضوع به چگونگی معرفی توابع در سیستم عامل پرداخته شد. در نهایت با معرفی دو مفهوم Task و Priority، بحث را به پایان رساندیم.

 

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه