FreeRTOS
שגיאת לואה ביחידה יחידה:תבנית_מידע בשורה 261: תבנית מערכת הפעלה ריקה. FreeRTOS היא ליבת מערכת הפעלה זמן אמת (RTOS)[1][2][3] עבור מערכות משובצות שהותאם ל-35 פלטפורמות מיקרו-בקר. הוא מופץ תחת רישיון MIT.
היסטוריה
ליבת FreeRTOS פותחה במקור על ידי ריצ'רד בארי בסביבות 2003, ומאוחר יותר פותחה עוד ותוחזקה על ידי החברה של בארי, Real Time Engineers. בשנת 2017 העבירה החברה את ניהול פרויקט FreeRTOS ל-Amazon Web Services. בארי ממשיך לעבוד ב- FreeRTOS כחלק מצוות AWS.[4]
יישום
FreeRTOS נועד להיות קטן ופשוט. הליבה מורכבת משלושה קובצי קוד מקור בלבד. היא כתובה בעיקר ב-C כדי שיהיה קל לנייד ולתחזק אותה. היא כוללת גם כמה פונקציות שפת סף במידת הצורך, בעיקר בשגרות מתזמן ספציפיות לארכיטקטורה.
FreeRTOS מספק שיטות מרובות אשכולות או משימות, מנעולי mutex, סמפורים וקוצבי זמן תוכנתיים. מצב ללא תקתוקי זמן סדורים מסופק עבור יישומי צריכת חשמל נמוכה. הילבה תומכת בתעדוף תהליכונים. ניתן להקצות יישומי FreeRTOS באופן סטטי לחלוטין. לחלופין, ניתן להקצות אובייקטים של RTOS באופן דינמי עם חמש סכמות של ניהול זיכרון (הקצאה) בתנאי:
- להקצות בלבד;
- הקצה ושחרר עם אלגוריתם פשוט מאוד, מהיר
- אלגוריתם מורכב אך מהיר יותר לשחרור זיכרון עם התכנסות זיכרון (memory coalescence)
- אלטרנטיבה לתוכנית המורכבת יותר הכוללת התכנסות זיכרון המאפשרת לפרוס ערימה על פני אזורי זיכרון מרובים.
- ספריית C מקצה ומשחררת עם הגנה מסוימת על אי הכללה הדדית (mutual exclusion).
אין אף אחת מהתכונות המתקדמות יותר הנמצאות בדרך כלל במערכות הפעלה כמו Linux או Microsoft Windows, כגון מנהלי התקנים, ניהול זיכרון מתקדם, חשבונות משתמשים ורשתות. הדגש הוא על הקומפקטיות ומהירות הביצוע. ניתן לחשוב על FreeRTOS כספריית תהליכונים ולא כמערכת הפעלה, אם כי קיים ממשק שורת פקודה ואבסטרקציה של תוספי קלט/פלט דמוי POSIX.
מאפיינים מרכזיים
- גודל זיכרון קטן, תקורה נמוכה וביצוע מהיר
- אפשרות ללא פעימות (Tick-less) ליישומי צריכת חשמל נמוכה
- מיועד הן לתחביבים והן למפתחים מקצועיים העובדים על מוצרים מסחריים
- ניתן להגדיר את המתזמן הן ל-preemptive והן ל-cooperative.
- תמיכה ב-Coroutine - כאשר coroutines ב FreeRTOS הן משימות (Tasks) עם שימוש מוגבל של מחסנית הקריאות
- תמיכה ב-Trace באמצעות פקודות מאקרו ג'נריות. כלים כגון Tracealyzer, כלי מסחרי של שותף FreeRTOS Percepio, יכולים להקליט ולהמחיש את התנהגות זמן הריצה של מערכות מבוססות FreeRTOS לצורך איתור באגים ואימות. זה כולל תזמון משימות וקריאות גרעין לפעולות סמפור ותור.
ארכיטקטורות נתמכות
- Altera Nios II
- ARM architecture
- Atmel
- Ceva
- Ceva-BXx
- SensPro
- Ceva-XC16
- Ceva-XM6
- Ceva-Xx
- Ceva-XM4
- Cortus
- APS1
- APS3
- APS3R
- APS5
- FPS6
- FPS8
- Cypress
- Energy Micro
- eSi-RISC
- eSi-16x0
- eSi-32x0
- DSP Group
- DBMD7
- Espressif
- Fujitsu
- FM3
- MB91460
- MB96340
- Freescale
- IBM
- PPC404, PPC405
- Infineon
- Intel
- Microchip Technology
- PIC18, PIC24, dsPIC
- PIC32
- Microsemi
- Multiclet
- P1
- NXP
- Renesas
- RISC-V[5]
- RV32I
- RV64I
- PULP RI5CY
- Silicon Labs
- Gecko (ARM Cortex)
- STMicroelectronics
- STM32
- STR7
- Texas Instruments
- Xilinx
נגזרות
קישורים חיצוניים
הערות שוליים
- ^ "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}}
: (עזרה)
32429239FreeRTOS