Web appOpen in Telegram
RReady Board Free RTOS

Ready Board Free RTOS

@ReadyBoardRTOS · group · Tech · indexed since 2026-07-03
181members
441messages in the index
R
Ready Board Free RTOS
اینجا کارمون دوره معرفی کردنه بیشتر دیگه
M
Photo
click to show
🔹 پروژه سراFPGA,ARM,PCB 🚨این کانال پروژه های صنعتی ، دانشجوی ، طراحی ، برنامه نویسی ‌، هوش مصنوعی ، شبیه سازی ، نرم افزاری و تئوری را دلی و رایگان پست میکند: ✅️برق ✅️سیستم های قدرت ✅️الکترونیک ✅️سیستم های دیجیتال ✅️مخابرات ✅️کنترل ✅️پزشکی ✅️هوش مصنوعی ✅️کوانتوم ✅️برنامه نویسی ✅️طراحی کانال تلگرام : https://t.me/PCBProjeSara پیج اینستاگرام: http://instagram.com/PCBProjeSara @PCBProjeSara
1.1K · 130.9K ·
M
باسلام یه سوال داشتم دوستانی که تجربه دارند ممنون میشم کمک کنند🙏🏻 مناسب‌ترین برد برای کار روی یک پروژه سنگین (مثل ECUخودرو) که شامل میکرو STM32 باشه و معماری RTOS رو هم ساپورت کنه چی پیشنهاد میدید؟
N
دوستان سلام یه سوال معمولا چند درصد از کل حافظه در دسترس رو به هیپ FreeRTOS اختصاص داده میشه که سیستم با اطمینان مناسبی کار کنه ؟
  1. R
    Ready Board Free RTOS
    کاملا بستگی به برنامتون داره
Whole thread · 1 reply →
M
تو استفاده از rtos ها یه سری نکات رو رعایت کنید که بعدا به مشکل نخورید. سعی کنید از api‌ های استاتیک اون استفاده کنید،تسک ها صف ها  و سمافور رو به صورت استاتیک تعریف کنید. به جای جابه‌جایی داده ها با صف یا بافر مسیج ها از پوینتر ها برای جا‌به‌جایی داده استفاده کنید. خود این جابه‌جایی داده ممکنه پردازش اضافی داشته باشه. اگر میخواید تو وقفه ها از توابع rtos‌ استفاده کنید از نسخه isr اون توابع استفاده کنید. به جای سمافمور باینری از نوتیف ها استفاده کنید که ۵۰ درصد سریع ترن بهترین فلگ(علامت دادن) استفاده از notification هست بعدش semaphore از کويی ها برای تسک های آنی به هیچ وجه استفاده نکنید. برای  زمان بندی دقیق از vTaskDelayUntil استفاده کنید.vTaskDelay زمان اجرای کد رو در نظر نمیگیره. آخر تسک هایی که میدونی میکرو کاری نمیکنه از portYield استفاده کن تا rtos کانتکس سوییچ انجام بشه #rtos #freertos @Embedded_geek
    1. R
      باورت نمیشه که چه کار ها ک با این کویی انجام میشه
Whole thread · 4 replies →
M
RTOS - بخش یک آر تووس!! یا سیستم عامل های بلادرنگ یک جور OS هایی هستند که قرار هست کوچک و قطعی در اجرا باشند.هدف کوچک بودن از نظر حافظه و رم مصرفی و بهینه بودن در اجرای دستورات و مصرف انرژی هست بر خلاف سیستم عامل های general purpose. Multitasking یا چند تسکی کرنل(kernel) هسته یک سیستم عامل هست. در سیستم عامل هایی مثل لینوکس کرنل این قابلیت رو به کاربر میده که به پراسسور همزمان دسترسی پیدا کنند و تسک های خودشون رو ظاهرا همزمان اجرا کنند. هرکدام از این تسک ها توسط یک رشته یا threads زیر نظر سیستم عامل اجرا میشه.اگر سیستم عامل بتونه چند رشته رو باهم اجرا کنه میگن Multitasking انجام میده. اما تو سیستم عامل های مختلف این کلمه رشته متفاوته مثلا تو freertos به همین رشته میگن task یا توابع posix که یک wrapper روی freertos تو فریمورک esp-idf هست بهش میگه thread . Multitasking در برابر Concurrency میکرو و پروسسر های تک هسته ای درحالت عادی میتوانند یک تسک رو اجرا کنند اما اگر سیستم عامل دائم بین تسک ها سوییچ کنه انگار که تسک ها دارن به صورت موازی اجرا می شن. این برخلاف این هست که پردازنده چند هسته چند تسک که واقعا به صورت موازی اجرا میکنه. Scheduling زمانبند یا scheduler  یه بخش از کرنل هست که تصمیم میگیره در لحظه چه تسکی اجرا بشه. هر تسکی ممکنه یک وضعیت داره و در آینده ممکنه این وضعیت تغییر بکنه.برای مثال تسک A اجرا میشه و بعد مدتی Block میشه و تسک B اجرا میشه. وضعیت تسک ها میشه به چهار مورد زیر برای Freertosدسته بندی کرد: حالت Running تو این حالت تسک به معنای واقعی در حال اجرا روی پردازنده هست.برای یک پردازنده یک هسته ای در لحظه تنها یک تسک وضعیت running داره. حالت Ready در این حالت تسک ها نمیتونن اجرا بشن ولی وضعیت suspend یا blocked هم ندارن،این موقعیت وقتی پیش میاد که یک تسک دیگه با اولویت یکسان یا بالاتر در حالت Running هست. حالت Blocked وقتی تسکی در این وضعیت باشه منتظر یک پدیده(event) خارجی هست.برای مثال وقتی از توابع delay استفاده می‌کنید تسک وارد حالت Blocked‌میشه تا وقتی که delay تمام بشود. تسک همچنین میتواند برای صف ها، سمافور ها،event group ها و notification  ها تو این حالت بلوکه باشه.معمولا تسک ها یک timeout برای این حالت دارند که اگر تمام بشود از این حال
M
Link
click to show
FreeRTOS-part2 ‏FreeRTOS که یک سیستم عامل بلادرنگ هست برای میکروکنترلر ها و کامپایلر های زیادی پورت شده است. از این لینک می‌تونید برنامه دموی این rtos رو برای میکروهای مختلف ببنید.همچنین این rtos قابلیت شبیه سازی برروی ویندوز رو داره میتونید از این لینک بهش دسترسی پیدا کنید.همچنین می‌تونید از Qemu برای شبیه سازی این سیستم عامل با معماری های مختلف مثل cortexm-3 و riscv استفاده کنید. آناتومی Freertos برنامه شما تا قبل اینکه vTaskStartScheduler فراخونی بشه مثل یک برنامه non-rtos هست که معمولا اون رو تو main فراخونی میکنند. rtos فقط دستورات پس از فراخونی این تابع رو مدیریت میکنه.سورس های این به زبان c هست که اگر این کل کدش رو از سایت Freertos.org دانلود کنید به فرمت زیر هست. FreeRTOS/Source/tasks.c FreeRTOS/Source/queue.c FreeRTOS/Source/list.c FreeRTOS/Source/portable/[compiler]/[architecture]/port.c. FreeRTOS/Source/portable/MemMang/heap_x.c این ها حداقل فایل هایی هستند که به پروژه خودتون باید اضافه کنید. برای تایمر های نرم افزاری، event group،stream  buffer ، message buffer و قابلیت co-routine باید سورس فایل های مربوطه رو به کدتون اضافه کنید. فایل های هدر زیر هم هم باید در Include path‌ کامپایلر تعریف شوند: FreeRTOS/Source/include FreeRTOS/Source/portable/[compiler]/[architecture]. هر پروژه ای یک فایل به نام FreeRTOSConfig.h داره وظیفش مدریت کرنل rtos هست که در فایل سورس اصلی تون باید قرار بگیره نه مسیر سورس کد rtos. ‏configMINIMAL_STACK_SIZE  یکی از ماکرو های این فایل هستش که میزان استکی که به تسک idle‌اختصاص داده میشه رو تعیین میکنه.اگر خیلی کم درنظر بگیرید ممکنه برنامه stackoverflow بکنه.پس بهتر هست که مقدارش رو طبق دمو های خود سایت freertos.org قرار بدید یا از قالب آماده این لینک استفاده کنید. Interrupt Vectors هر rtos از تایمر برای ایجاد وقفه های تیک متناوب(periodic tick interrupt) استفاده می‌کند.خیلی از پورت ها(ports) ها از تایمر های اضافی برای context switching استفاده می‌کنند. وقفه های که rtos استفاده می‌کند توسط فایل سورس پورت rtos تعریف میشن. تعریف این وقفه ها هم به پورت و کامپایلر بستگی داره #rtos #freertos @Embedded_geek
R
Ready Board Free RTOS
FreeRTOS-part3 FreeRTOS Libraries توزیع های freertos بیش از یک کرنل هستند. این توزیع ها کتابخونه های مختلفی را به همراه کرنل فراهم میکنند که میتوانند در سیستم عامل هایی مثل لینوکس و دیگر rtos ها اجرا شوند.این کتابخونه ها به دسته بندی های متفاوت تقسیم میشن: FreeRTOS-Plus libraries که دو افزونه متفاوت را دارد: FreeRTOS-Plus-TCP استک TCP/IP برای freertos FreeRTOS-Plus-CLI وجود رابط خط فرمان برای freertos FreeRTOS core libraries کتابخونه های freertos به زبان سی بدون هیچ وابستگی به کتابخونه دیگر براساس استاندارد های اتصال(connectivity) و امنیتی coreMQTT پایده سازی پروتکل MQTT برای freertos coreMQTT Agent یک رشته برای مدیریت هماهنگی بین چندین MQTT coreHTTP کتابخانه HTTP برای freertos coreSNTP کتابخانه پروتکل SNTP برای freertos Transport Interface کتابخانه برای لایه لایه انتزاعی انتقال داده ها coreJSON کتابخانه برای pars کردن json corePKCS کتابخانه برای پیاده سازی استاندارد PKCS FreeRTOS Cellular Interface Library کتابخونه برای ارتباط با مدم های سلولی Modular Over the Air Updates کتابخونه برای آپدیت OTA FreeRTOS for AWS IoT کتابخونه های freertos برای فریمورک IoT امازون. AWS IoT Device Shadow AWS IoT Jobs AWS IoT Device Defender AWS IoT Fleet Provisioning AWS Signature Version 4 FreeRTOS labs کتابخونه های که عمل میکنند اما ناقص،آزمایشی و یا حتی برای علاقه جامعه برنامه نویسان ساخته شده. LoRaWAN: کتابخانه برای پروتکل LoRaWAN FreeRTOS-Plus-POSIX: پیاده سازی توابع براساسapi های posix FreeRTOS-Plus-FAT: سیستم فایل FAT FreeRTOS MCUBoot: کتابخانه بوتلودر برای برای میکروها #rtos #freertos @Embedded_geek
14 · 474 ·
R
Ready Board Free RTOS
FreeRTOS-part4 کرنل freertos در مدت ۱۸ سال با کمپانی های متفاوت توسعه داده شده.در ادامه توضیح میدیم اصن freertos چی هست بعد از ۳ پارت!! سیستم عامل های General Purpose چی هستند؟ این سیستم عامل یک برنامه کامپیوتری هست که قابلیت های ساده کامپیوتر رو پشتیبانی میکنه و همچنین به برنامه های دیگه مثل اپلیکیشن ها سرویس میده.اپلیکیشن قابلیت ها و نیاز های کاربر رو فراهم میکنه.سرویس هایی که توسط سیستم عامل ارائه میشن نوشتن اپلیکشین ها رو سریع تر،ساده تر و قابل نگه‌داری میکنند. ‏RTOS چی هست؟ خیلی از سیستم عامل ها اجازه میدن که چندین برنامه همزمان اجرا بشن که بهش Multi-tasking میگن.در واقعیت هر هسته پردازنده میتونه یک رشته یا thread رو اجرا کنه و زمان بند یا scheduler وظیفه داره که انتخاب کنه در لحظه چه برنامه ای اجرا بشه و همچنین این توهم رو ایجاد که که برنامه ها همزمان اجرا میشن با دائما سوییچ کردن بین هر برنامه. نوع سیستم عامل توسط نوع زمانبند اون تعریف میشه مثلا برای یک سیستم عامل مثل unix زمانبند اون به هر کاربر زمان اجرای مساوی اختصاص میده و مثلا در ویندوز هدف زمانبند این هست که در اول به کاربر پاسخگو باشه. زمابند در rtos ها طراحی شدند که الگوی اجرای قابل پیش بینی(deterministic) فراهم کنند. بلادرنگ بودن ایجاب میکنه که امبدد سیستم نسبت به یک رویداد مشخص قبل از زمان تعیین شده(deadline) پاسخ بده. این فقط زمانی اتفاق می‌افته که که رفتار زمانبند سیستم عامل قابل پیشبینی باشه. زمابند بلادرنگ مانند آنچه در freertos هست این قطعیت(determinism) رو با فراهم کردن قابلیت تخصیص اولویت(priority) برای کاربر فراهم میکنند. این اولویت تعیین میکنه که کدام رشته قرار هست در دفعه بعد اجرا بشه. تو freertos به رشته ای که اجرا میشه میگن تسک یا task. ‏FreeRTOS‏ چی هست؟ یک کلاس از rtos می باشد که طراحی شده که آنقدر کوچک باشه که در میکروکنترلر ها اجرا بشود هرچند که محدود به کاربرد های میکروکنترلر ها محدود نمی‌باشد. محدودیت های فضا و ذات اپلیکیشن های اختصاصی بسیار کم اجازه استفاده از تمام قابلیت های rtos را میدهند.قابلیت های اضافی مثل رابط خط فرمان(CLI) پیشته های شبکه(networking stack) میتوانند به همراه ادان های دیگر با freertos استفاده شوند. #Freertos #rtos @Embedded_geek
13 · 495 ·
R
Ready Board Free RTOS
FreeRTOS-part5 Tasks and Co-routines در این پارت درمورد task ها و co-routin ها صحبت میکنیم.اپلیکیشن ها میتوانند تنها با تسک ها یا فقط کو روتین ها یا ترکیبی از هردو استفاده کنند اما هرکدام از api های متفاوت استفاده میکنند و کیو(Queue) از یک تسک به کو روتین یا برعکس نمی تونه ارسال بشه . کو روتین ها برای پردازنده هایی که محدودیت زیادی در رم دارند استفاده میشن. خصوصیات تسک به طور خلاصه یه اپلیکیشن بلادرنگ که از rtos استفاده میکنه میتونه مجموعه ای از تسک های مستقل باشه.هر تسک درون چارچوب خودش اجرا میشه بدون هیچ وابستگی تصادفی به تسک های دیگر داخل سیستم یا زمانبند(Scheduler).در لحظه تنها یک تسک میتونه در هر لحظه از زمان اجرا بشه و زمانبند مسئول این هست که تصمیم بگیره کی اجرا بشه.پس زمانبند ممکن است که هر تسک رو به طور مکرر شروع و متوقف کنه.یک تسک هیچ اطلاعی از فعالیت زمانبند نداره و مسئولیت زمانبند rtos هست که context پروسسور(مثل مقادیر رجیستر ها،محتوای استک و..) همان مقداری باشد که تسکی شروع شد همان مقداری باشد که متوقف می‌شود.برای دستیابی به این هدف هر تسکی یک پشته(استک) مخصوص خودش رو داره. وقتی که یک تسک متوقف میشه کانتکس(context) اجرای تسک در پشته ذخیره میشه. پس همان تسک وقتی دوباره اجرا میشه میتونه بازیابی بشه. خلاصه تسک: ساده، هیچ محدودیتی در استفاده ندارد، تمام پیشدستی (preemption) هارو ساپورت میکنه، کاملا اولویت بندی شده(Fully prioritised) هر تسک استک خودش رو داره که مصرف رم رو بیشتر میکنه، در صورت استفاده از پیشدستی، باید ورود مجدد به دقت در نظر گرفته شود. فرق priority(اولویت) و preemption(پیشدستی) تسک ها ممکنه اولویت های متفاوت داشته باشه این اولویت اجراشون رو تعیین میکنه اما اگر دو تسک اولویت یکسان داشته باشن چی؟ اینجاست که مفهوم preemption رو داریم که تسک با پیشدستی بیشتر اول اجرا میشه یعنی به معنای واقعی پیشدستی میکنه و اول اجرا میشه. یه الگوریتم هم داریم به نام round robin algorithm این الگوریتم هم در سطح سخت افزار برای دو فعالیت مثل دسترسی همزمان cpu یا dma به یک حافظه تصمیم میگیره کدوم اول اجرا بشه ویژگی های کو روتین این کو روتین ها برای دستگاه های بسیار کوچک پیاده سازی شده اند اما بسیار کم استفاده شده اند در فیلد های امروزی. اگر چه هیچ پلنی برای حذ
11 · 556 ·
R
Ready Board Free RTOS
FreeRTOS-part6 ‏Task Priorities یا اولویت های تسک هرتسکی یک اولویت از ۰ تا configMAX_PRIORITIES -۱ رو میتونه داشته باشه که مقدار configMAX_PRIORITIES در فایل هدر تنظیمات Freertos یعنی FreeRTOSConfig.h تنظیم میشه. قبل از گفتن جمله بعدی چند مفهوم را شفاف سازی کنم تا بفهمید پورت: همونطور که میدونید freertos باید برای هر میکرویی و معماری پورت بشه یعنی نحوره تعاملش با پردازنده و ارتباط با بخش های زمانبند ،وقفه ها و.. مدیریت بشه که ممکنه از زبان های سی و حتی اسمبلی برای اینکار استفاده بشه. ‏Count Leading Zeros: در برخی پردازنده ها یک قابلیت سخت افزاری وجود دارد که پردازنده ۳۲ بیتی بفهمه در یک رجیستر ۳۲ بیتی اولین بیت غیر صفر کدام است. از این قابلیت بعدا تو rtos‌ میشه استفاده کرد. اگر پورت استفاده از یک مکانیزم بهنیه شده برای انتخاب تسک استفاده میکنه مانند استفاده از CLZ وconfigUSE_PORT_OPTIMISED_TASK_SELECTION مقدار ۱ دارد در این صورت configMAX_PRIORITIES نمیتونه مقدار بیشتر از ۳۲ داشته باشد. به ازای هر هسته پردازنده یک تسک idle‌ داریم که دارای اولویت ۰ هست(در ادامه تسک idle رو میگم). زمانبند freertos مطمئن میشه که تسک های در وضعیت ready یا running هموار پردازش پردازنده رو نسبت به تسکی با اولویت پایین تر که در وضعیت ready‌ هست بگیره. در معنای دیگر تسک در حالت اجرا همواره بالاترین اولویت تسکی رو داره که باید اجرا بشه. دوباره چند مفهوم رو قبلش بگم برای متن بعدی: ‏Time slicing: یعنی زمانبند میاد زمان اجرا هرتسکی ره به میلی ثانیه تقسیم میکنه مثلا سه تسک با اولیت یکسان داریم و configTICK_RATE_HZ روی ۱۰۰ باشه میکرو هرتسکی رو ۱۰ میلی ثانیه اجرا میکنه. الگوریتم Round Robin یه الگوریتم برای زمانبندی برای مدیریت چند وظیفه یکسان هرتعداد تسکی میتونن اولویت یکسانی داشته باشند.اگر configUSE_TIME_SLICING تنظیم نشده باشه این مقدار پیشفرض ۱ رو میگیره و تسک های با اولویت یکسان رو با زمان یکسان با time استفاده از slicing و الگوریتم round robin اجرا میکنه. ‏Idle Task یا تسک بیکار!!! این تسک به طور اتوماتیک وقتی زمانبند شروع بکار میکنه ایجاد میشه که مطمئن باشه هموار حداقل یک تسک هست که اجرا بشه.اولویت این تسک هم پایین ترین مقدار هست که مطمئن بشیم زمان هیچ تسک با اولویت بالاتر ر
12 · 798 ·
R
Ready Board Free RTOS
FreeRTOS-part7 زمابندی FreeRTOS(تک هسته،AMP و SMP) در ادامه درمورد الگوریتم های زمابندی تک هسته، چند هسته ای نامتقارن(asymmetric multicore (AMP)) و چند هسته ای متقارن(symmetric multicore (SMP)) صحبت می‌کنیم. الگوریتم زمابندی یه روتین نرم افزاری هست که تصیمی میگیره کدام تسک RTOS دارای وضعیت Running‌ باشه. تنها یک تسک دارای وضعیت Running‌ به ازای هر هسته در هر زمان مشخیص میتونه وجود داشته باشه.AMP حالتی هست که هر هسته پردازنده نمونه (Instance) خودش از FreeRTOS رو اجرا بکنه.ولی در SMP تنها یک نمونه از FreeRTOS هست که تصمیم میگیره تسک ها بین هسته های پردازنده اجرا بشن.کتاب خود FreeRTOS شامل جزییات و بلوک دیاگرام های بیشتری برای جزییات این الگوریتم ها هستش. سیاسیت پیشفرش زمانبندی RTOS(تک هسته ای) پیشفرض FreeRTOS از سیاست زمانبندی پیش دستی اولویت ثابت(fixed-priority preemptive scheduling policy) استفاده میکنه با استفاده از الگوریتم روند رابین برای time-slicing برای تسک های اولویت یکسان. اولویت ثابت یا Fixed priority به این معناست که زمان‌بند اولویت یک تسک را به صورت دائمی تغییر نخواهد داد، اگرچه ممکنه به دلیل ارث‌بری اولویت(priority inheritance) ، به طور موقت اولویت یک وظیفه رو افزایش بده. بعدا درمورد این ارث بری اولویت توضیح میدم. پیش دستی یا Preemptive یعنی زمانبند همیشه تسکی که بالاترین اولویت رو داره که قابل اجرا باشه رو اجرا میکنه بدون توجه به اینکه تسک کی قابل اجرا میشه. برای مثال یک روتین سرویس وقفه(ISR)اولویت یک تسک با بالاترین اولویت رو تغییر بده، زمانبند تسک فعلی در حال اجرا رو متوقف میکنه و تسک با اولیت بالاتر رو اجرا میکنه حتی اگر این در بین زمان time-slincing اتفاق بیافته. اصطلاحا میگن تسک با اولویت پایین تر preempted توسط تسک با اولویت بالاتر شده. زمان برش خورده یا Time sliced به این معنا هست که زمانبند بین تسک های با اولویت یکسان سوییچ بکنه در هر تیک وقفه(tick interrupt)- زمان بین دو تیک وقفه میشه یک time slice.(تیک های وقفه، وقفه های متناوب هستند که توسط RTOS برای اندازه گیری زمان استفاده میشن.) استفاده از زمانبند پیشدستی اولویت دار – جلوگیری از task starvation عواقب همیشه اجرا کردن تسک با بالاترین اولویت باعث میشه که تسک هیچ وقت وارد حالت Blocked
8 · 728 ·
R
Ready Board Free RTOS
FreeRTOS-part8 سیاست زمان‌بندی FreeRTOS در حالت AMP در پردازش نامتقارن چند هسته‌ای (AMP) با FreeRTOS، هر هسته در یک دستگاه چند هسته‌ای، نمونه مستقل و جداگانه‌ای از FreeRTOS را اجرا می‌کند. هسته‌ها لزوماً نیازی ندارند که معماری یکسانی داشته باشند، اما اگر نمونه‌های FreeRTOS نیاز به ارتباط با هم داشته باشند، باید بخشی از حافظه را به اشتراک بگذارند. از آنجایی که هر هسته نمونه مخصوص به خودش از FreeRTOS را اجرا می‌کند، الگوریتم زمان‌بندی روی هر هسته دقیقاً مشابه همان توضیحات سیستم تک‌هسته‌ای است. می‌توانید از Stream Buffer یا Message Buffer به عنوان ابزار ارتباط بین هسته‌ها استفاده کنید. به این صورت، تسک‌ها در یک هسته می‌توانند وارد حالت Blocked شوند و منتظر داده یا رویدادی بمانند که از هسته دیگر ارسال شده است. سیاست زمان‌بندی FreeRTOS در حالت SMP در پردازش متقارن چند هسته‌ای (SMP) با FreeRTOS، تنها یک نمونه از FreeRTOS وجود دارد که تسک‌های سیستم عامل بلادرنگ را بین چندین هسته پردازنده زمان‌بندی می‌کند. از آنجایی که فقط یک نمونه FreeRTOS در حال اجراست، تنها یک پورت (Port) از FreeRTOS در هر زمان می‌تواند استفاده شود؛ بنابراین همه هسته‌ها باید معماری پردازنده یکسانی داشته باشند و فضای حافظه یکسانی را به اشتراک بگذارند. سیاست زمان‌بندی SMP در FreeRTOS از همان الگوریتم زمان‌بندی تک‌هسته‌ای استفاده می‌کند. اما برخلاف سناریوهای تک‌هسته‌ای و AMP، در SMP ممکن است در هر لحظه بیش از یک تسک در حالت Running وجود داشته باشد (یک تسک در حال اجرا برای هر هسته). این یعنی آن فرض قدیمی که «یک تسک با اولویت پایین‌تر فقط زمانی اجرا می‌شود که هیچ تسک با اولویت بالاتری آماده اجرا نباشد» دیگر برقرار نیست. برای درک دلیل، یک مثال می‌زنیم: فرض کنید زمان‌بند SMP می‌خواهد تسک‌ها را روی یک میکروکنترلر دو هسته‌ای انتخاب کند. در ابتدا، یک تسک با اولویت بالا و دو تسک با اولویت متوسط، همه در حالت Ready هستند. زمان‌بند باید دو تسک را انتخاب کند، یکی برای هر هسته. اول، تسک با اولویت بالا، بالاترین اولویت را دارد، بنابراین برای هسته اول انتخاب می‌شود. حالا دو تسک با اولویت متوسط، بالاترین اولویت موجود هستند، پس یکی از آن‌ها برای هسته دوم انتخاب می‌شود. نتیجه این می‌شود که یک تسک با اولویت بالا و یک تسک با
9 · 592 ·
S
Помогите с модулем 868 на CC1310F128
S
Интересует мигание светодиодом с синхронизацией по радио
S
Из программаторов у меня J-Link V9.6 и подключение по JTAG

An open public feed from the search index ChatCrawler — “Google for public Telegram”; refreshed as the venue is crawled. Times are UTC.

Public content only, official Telegram API. About · FAQ · What we do not do · Remove a page · Catalog · Search · How we count