FreeRTOS

FreeRTOS היא ליבת מערכת הפעלה זמן אמת (RTOS) עבור מערכות משובצות שהותאמה ל-35 פלטפורמות מיקרו-בקר, ומופצת תחת רישיון MIT. ליבת FreeRTOS פותחה במקור על ידי ריצ'רד בארי בסביבות 2003, ומאוחר יותר פותחה עוד ותוחזקה על ידי החברה של בארי, Real Time Engineers. בשנת 2017 העבירה החברה את ניהול פרויקט FreeRTOS ל-Amazon Web Services. בארי ממשיך לעבוד ב- FreeRTOS כחלק מצוות AWS. FreeRTOS נועדה להיות קטנה ופשוטה. הליבה מורכבת משלושה קובצי קוד מקור בלבד. היא כתובה בעיקר ב-C כדי שיהיה קל לנייד ולתחזק אותה. היא כוללת גם כמה פונקציות שפת סף הכרחיות, בעיקר בשגרות מתזמן ספציפיות לארכיטקטורה. FreeRTOS מספקת שיטות מרובות אשכולות או משימות, מנעולי mutex, סמפורים וקוצבי זמן תוכנתיים. מצב ללא תקתוקי זמן סדורים מסופק עבור יישומי צריכת חשמל נמוכה. הליבה תומכת בתעדוף תהליכונים. ניתן להקצות יישומי FreeRTOS באופן סטטי לחלוטין. לחלופין, ניתן להקצות אובייקטים של RTOS באופן דינמי עם חמש סכמות של ניהול זיכרון: הקצה בלבד; הקצה ושחרר עם אלגוריתם פשוט מאוד, מהיר; אלגוריתם מורכב אך מהיר יותר לשחרור זיכרון עם התכנסות זיכרון (memory coalescence); אלטרנטיבה לתוכנית המורכבת יותר הכוללת התכנסות זיכרון המאפשרת לפרוס ערימה על פני אזורי זיכרון מרובים; ספריית C מקצה ומשחררת עם הגנה מסוימת על אי הכללה הדדית (mutual exclusion). FreeRTOS אינה כוללת תכונות מתקדמות יותר הנמצאות בדרך כלל במערכות הפעלה כמו Linux או Microsoft Windows, כגון מנהלי התקנים, ניהול זיכרון מתקדם, חשבונות משתמשים ורשתות. הדגש הוא על קומפקטיות ומהירות ביצוע. ניתן לחשוב על FreeRTOS כעל ספריית תהליכונים ולא כעל מערכת הפעלה, אם כי קיימים ממשק שורת פקודה ואבסטרקציה של תוספי קלט/פלט דמוית POSIX. גודל זיכרון קטן, תקורה נמוכה וביצוע מהיר מצב עבודה ללא פעימות (Tick-less) ליישומי צריכת חשמל נמוכה מיועדת הן לחובבים והן למפתחים מקצועיים העובדים על מוצרים מסחריים ניתן להגדיר את המתזמן הן ל-preemptive והן ל-cooperative. תמיכה ב-Coroutine - כאשר coroutines ב-FreeRTOS הן משימות (Tasks) עם שימוש מוגבל של מחסנית הקריאות תמיכה ב-Trace באמצעות פקודות מאקרו גנריות. כלים כגון Tracealyzer, כלי מסחרי של שותף FreeRTOS Percepio, יכולים להקליט ולהמחיש את התנהגות זמן הריצה של מערכות מבוססות FreeRTOS לצורך איתור באגים ואימות. זה כולל תזמון משימות וקריאות גרעין לפעולות סמפור ותור. Altera Nios II ARM architecture ARM7 ARM9 ARM Cortex-M ARM Cortex-A Atmel Atmel AVR AVR32 SAM3, SAM4 SAM7, SAM9 SAMD20, SAML21 Ceva Ceva-BXx SensPro Ceva-XC16 Ceva-XM6 Ceva-Xx Ceva-XM4 Cortus APS1 APS3 APS3R APS5 FPS6 FPS8 Cypress PSoC Energy Micro EFM32 eSi-RISC eSi-16x0 eSi-32x0 DSP Group DBMD7 Espressif ESP8266ex ESP32 Fujitsu FM3 MB91460 MB96340 Freescale Coldfire V1, V2 HCS12 Kinetis IBM PPC404, PPC405 Infineon TriCore Infineon XMC4000 Intel x86 8052 Microchip Technology PIC18, PIC24, dsPIC PIC32 Microsemi SmartFusion Multiclet P1 NXP LPC1000 LPC2000 LPC4300 Renesas 78K0R RL78 H8/S RX600 RX200 SuperH V850 RISC-V RV32I RV64I PULP RI5CY Silicon Labs Gecko ‏(ARM Cortex) STMicroelectronics STM32 STR7 Texas Instruments MSP430 Stellaris Hercules ‏(TMS570LS04 & RM42) Xilinx MicroBlaze Zynq-7000 פרק זה לוקה בחסר. אנא תרמו לוויקיפדיה והשלימו אותו. מדיה וקבצים בנושא FreeRTOS בוויקישיתוף אתר האינטרנט הרשמי של FreeRTOS (באנגלית) FreeRTOS, ברשת החברתית אקס (טוויטר) FreeRTOS, הבלוג הרשמי "2011 Embedded Market Study". EE Times. אורכב מ-המקור ב-2012-04-02. Kolesnik, Sergey (2013-12-08). "Comparing microcontroller real-time operating systems". A kernel is not an RTOS, but this can be a confusing issue because of the inappropriate naming chosen for some popular kernels, ‘freeRTOS’ for example. "Why RTOS and What Is RTOS?". נבדק ב-29 באוגוסט 2014. What is FreeRTOS? … The size constraints, and dedicated end application nature, rarely warrant the use of a full RTOS implementation - or indeed make the use of a full RTOS implementation possible. FreeRTOS therefore provides the core real-time scheduling functions, inter-task communication, timing, and synchronisation primitives only. This means it is more accurately described as a real time kernel, or real time executive. … {{cite web}}: (עזרה) http://www.openrtos.net/RTOS.html "Using FreeRTOS on RISC-V Microcontrollers". FreeRTOS. נבדק ב-11 בספטמבר 2019. {{cite web}}: (עזרה)