מבוא מערכות הפעלה בזמן אמת למכשירים Embedded

מערכות Embedd יעילות יוצרות את עמוד השדרה של הטכנולוגיה המודרנית, פועל בשקט לוגיקה בכל דבר ממוניטורים רפואיים ובקרי רכב למרכזי בית חכמים ועוקבים כושר לבם של רבים מהמערכות הללו הוא מערכת הפעלה בזמן אמת (RTOS), המספקת תזמון דטרמיוני, תקשורת בין-task, ומטילה מופשטת של מערכת ההפעלה הנכונה היא החלטה בסיסית המשפיעה על פיתוח, מהירות ואמינות לטווח ארוך של מערכת הפעלה פתוחה, ללא ספקיות.

FreeRTOS: The Light Weight Workshorse

מקור ופילוסופיה

FreeRTOS החל בשנת 2003 כ- RTOS קטן, kernel-רק תוכנן עבור microcontrollers עם זיכרון RAM מוגבל מאוד ופלאש. יוצרו, ריצ'רד בארי, קידם את טביעת הרגל המינימלית והקלות של יכולת הניתנות. ב-2017 אמזון Web Services רכשו FreeRTOS ומיתוג מחדש אותו כמכשירים חינמיים עם שילוב IoT, הוספת ספריות לקישוריות ענן תוך שמירה על הפשטות הליבה של הליבה.

תכונות Core Kernel

הקרנל FreeRTOS מציע מדיניות תזמון מתקדמת, שיתופית, היברידית ורציונאלית.משימות מוגדרים כחוטים עצמאיים עם ערימה ועדיפות משלהם. לוח הזמנים מבטיח כי העדיפות הגבוהה ביותר היא ניהול משימה מוכן, עם הזמן licing עבור משימות שווה-פרטיות. תקשורת בין-task וסינכרון מטופלים באמצעות תורים, סמפורס (סמינר, ספירה, מאורע), ולהפחית את מערכת ההפעלה.

FreeRTOS מחולק כמערך קטן של קבצי C מקור שאתה מאגד ישירות לתוך היישום שלך.אין מערכת בנייה או שכבת תצורה מורכבת - פשוט לכלול את מקור הליבה, להגדיר פרמטרים ב-הגדרה:0, ולהתחיל לכתוב משימות.גישה מינימליסטית זו היא גם כוח וחולשה: זה נותן מפתחי שליטה מלאה אבל משאיר אותם לנהל שילוב של נהגים, מודעות בינונית, וערימות ידניות.

תמיכה קשה ויציאה

FreeRTOS תומך במגוון עצום של ארכיטקטורות MCU: ARM Cortex-M/R/A, AVR, PIC, MSP430, RISC-V, Xtensa (Espressif ESP32), ורבים נוספים.ההורדת הקרנל הרשמי כוללת פרויקטים טרום-מקודמים עבור מאות לוחות פיתוח.

מערכת אקולוגית ושימוש מסחרי

FreeRTOS יש את קהילת המפתח הגדולה ביותר של כל RTOS משובצת.ההיסטוריה הארוכה שלה היא שפע הדרכות, ספרים, ספריות מונחות קהילה.AWS מספקת חבילה של ספריות תוכנה עבור IoT (MQTT, צללים למכשירים, מתן צי) המשלבות בצורה חלקה עם FreeRTOS, מה שהופך אותו פופולרי עבור מוצרים המחוברים לענן.

Zphyr: The Scalable, Modular RTOS

עיצוב מודרני למכשירים מחוברים

Zephyr נולד בשנת 2016 כפרויקט משותף תחת קרן לינוקס, שנבנה על הקרנל רוקטה מוקדם יותר.מעצבים שלה נועדו ליצור RTOS מתאים לעידן ה-IoT: מודולרי, אבטחה-מודעה, ומסוגלים לדרג מנקודות חיישן קטנות במערכות מרובות-core מורכבות יותר.זהפיאר אינו רק גרעין; הוא מערכת הפעלה מלאה עם מכשירים מובנים, רשתות, מחסנים, מערכות ניהול קבצים.

לבנות מערכת וידוי

Zephyr משתמש במערכת בנייה מודרנית המבוססת על CMake עם Kconfig עבור תצורה של זמן רב.גישה זו, שנלקחה מהגרעין לינוקס, מאפשר למפתחים לאפשר או להשבית תכונות ברמת התצורה, באופן אוטומטי למשוך רק את הקבצים המקור הדרושים.התוצאה היא בינארית מאוד אופטימיזציה המכילה בדיוק את מה היישום צריך, הימנעות מנפיחות קוד שיכול להתרחש בעת שימוש מלא של קושחית ביניים עבור תוכנת USB, לדוגמה, באפשרותך, באפשרותך להתקין רכיבי Bluetooth ZAT בלבד.

תמיכה ברשת ופרוטוקולים

אחת מתכונות הסטנדאפ של Zephyr היא מערכת הרשת המקומית שלה.זה תומך בערימות רשת מרובות (IPv4, IPv6, 6LoWPAN), פרוטוקולי תחבורה מרובים (TCP, UDP, TLS/DT), ומגוון רחב של פרוטוקולי יישומים של יישומי מחשב (MQTT, CoAP, HTTP, LM2M2, ועוד ערימה Bluetooth (כולל , Audio- Audio) ו-Ob-Ob-Obt, כולל , הפונקציה CAN-OC) ל-OC (OC) ו-OC) ל-OCuptice (OC) דורשות ל-OCC (OCC (Occ-Occ) ו-Occ-Occ-Occ-Occ-Occ-Occ-OCC (Occ-Occ-Occ-OCC (OCC) ל-OCC (Occ-Occ-Occ-Occ-Occ-Occ-OCT (OCC (Occ-Occ-Occ-OCC) ל-OCC) ל-Occ-OCC) דורשות הפעלה (Occ-OCC

אבטחה על ידי עיצוב

Zephyr תוכנן עם אבטחה כנדרשת מחלקה ראשונה.It כולל תמיכה אופציונלית מהימן (TEE) תמיכה, מנעול מאובטח באמצעות MCUboot, ספריות קריפטוגרפיים (Mbed TLS, TinyCrypt), ומודל בקרת גישה מבוסס הרשאות עבור אובייקטים הקרנל.מערכת הבנייה מאפשרת לך לערום הגנה על זרימת יתר, הגנה באמצעות MPU/MMU בפלטפורמות הנתמכות, והפעלה של אבטחה באופן קבוע יכולה גם לבצע בדיקות אבטחה ומאובטחות.

מודל נהיגה

Zephyr לאכוף API של נהג עקבי בכל פלטפורמות החומרה.כל נהג מיישם ממשק סטנדרטי (למשל, GPIO, SPI, I2C, watchdog, pinctrl) והוא מתגלה דרך מכשיר.המכשיר הוא שפה תיאור חומרה שמפרידה משימות ספציפיות של לוחיות ספציפיות של לוח הבקרה ממכשירים ניידים ללא עבודה ידנית.

השוואה בין FreeRTOS ו-Zphyr

התנהגות בזמן אמת ומציאות

FreeRTOS ו-Zphyr מציעים תזמון מבוסס עדיפות מראש עם זמן רב-רובין אופציונלי עם זמן רב יותר אופציונלית סלקטיבית של זמן תזמון. FreeRTOS משתמשת תור עדיפות פשוט ללא זמן החלירת מחדל (הסבירים) Zphyr משתמש לוח זמנים מתוחכם יותר תומך מדיניות לוח זמנים מרובים: עדיפות מבוססת על מערכת ההפעלה ZMPt® פחות גבוהה, אך מערכת הפעלה מצופה פחות גבוהה יותר של TREXOR (ה-R) עבור מערכת הפעלה (R) אך ורק לאחר מכן היא תמיכה ב-R-RSRM-R) היא פחות גבוהה יותר עבור מערכת הפעלה (RMADSRM-R) עבור מערכת הפעלה (אך היא גם גבוהה יותר עבור מערכת הפעלה (REDLSTD® עבור מערכת הפעלה (RIRDSRM-REDLSRM-RLEEXDS) אך נמוכה יותר, אך ורק לאחר זמן קצר יותר, אך היא תמיכה קטנה יותר, אך היא פחות גבוהה יותר עבור מערכת הפעלה (החדשנית עבור מערכת הפעלה (החדשנית עבור מערכת הפעלה (RIRSTDOS-RIRSTRIRSTR) עבור מערכת הפעלה (מערכת הפעלה (מערכת הפעלה נמוכה יותר, אך ורק לאחר מכן היא פחות גבוהה יותר, אך ורק לאחר מכן

Deadline Scheduling in Zephyr

מדיניות התזמון הקדם-ממצה של Zephyr יכולה להיות מורחבת עם רצף של עדי-זמן באמצעות מנגנון ה-FLT:1 ו-Time-לימוזינה.עבור לולאות בקרה בזמן אמת קשה (למשל, שליטה מוטורית ב-10 kHz), ראש המינימום של FreeRTOS מניב לעתים קרובות מעט יותר מזל טוב, בעוד תכונות נוספות של Zephyr עשויות להיות מיותרות עבור משימות מחוספסות כאלה.

טביעת רגל זיכרון ושימושי משאבים

FreeRTOS הוא האגדי עבור טביעת הרגל הזעירה שלה.תצורה מינימלית של הקרנל יכול להשתמש רק 6 KB של RAM ו 4 KB של פלאש, כולל ערימה של משימות תורים לוח הזמנים שלה. zephyr הקטן ביותר לבנות סטטי (עולם מינימלי עם לא נהגים, שום רשת, לא חלוק) מתחיל בסביבות 8-12 KB של פלאש-M, סביב 2 KB עם זאת, אתה מוסיף KB, פעם, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000 יותר מאשר את ה- RAM, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000 יותר מאשר ⁇ , 000 יותר מאשר ⁇ , 000 יותר מאשר את זה יותר מאשר את זה יותר מאשר t.

רדיפת חומרה ותמיכה בדירקטוריון

FreeRTOS מספק אבסטרקציה מינימלית - פיתחורים חייבים להסתמך על שכבת ההפשטות החומרית של המוכר של MCU (HAL) או לכתוב נהגים ברמה נמוכה בעצמם. Zphyr אוניות עם חבילת תמיכה מקיפה של לוח (BSP) הכוללת הגדרות מכשיר ונהגים עבור לוחות פיתוח פופולריים רבים (nRF52840, STM2, IMX RT, ESP, SiLabs EFR, ו-32, אשר עדיין יש שיפור משמעותי יותר של CRM, לעומת זאת באופן אוטומטי, לעומת זאת, לעומת זאת, לעומת זאת, מערכת ההפעלה CRM2, ו-R, לעומת זאת, , , , , , , , , , , , , , , , , , , , , , RM2 .

פרוטוקולים ברשת ו-IoT

[הרשת של Zephyr היא הרבה יותר מקיפה מחוץ ל-Crebox.It כולל ערימה מלאה של IPv4/IPv6, BSD socket API, TLS 1.2/1.3, DTLS, MQTT (לקוח ושר), CoAP, LwM2M, והתמיכה ב- ®FOS-T2KT-Treatives-upt®, אינה כוללת לעיתים קרובות תמיכה ב-HDOS-HD+Tv-Tv-T2M2M2M2M2M2M2M, ו-FreeOS-FreeOS-FreeOS-FreeOS-FreeOS-TvFvFREFREFREFREFvp.

תכונות אבטחה בהשוואה

היציבה הביטחונית של זפיאר חזקה יותר על פני הלוח.תכונות מפתח כוללות:

  • (ב) ,0) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ,0) , 000 ההרחבה של ה-MPU (ב-Cortx-M23/M33/M85) ו- MMU (ב-Cortx-A).
  • (ב) ,0) ,Kernel object Authority Control ControlFLT:1, משימות בודדות יכולות להיות זכויות גישה שונות ל-Smaphores, תורים וכו '.
  • (FLT:0Cryptographicische האצה 1FLT) באמצעות PSA Cryptography API (אדריכלות אבטחת פלטפורמה של ARm).
  • (ב) ,0) דור מספר אקראי ודור מספר אקראי (FLT:1) באמצעות נהגים ייעודיים וחומרה TRNG.

FreeRTOS יכול להשיג רמות אבטחה דומות על ידי הוספת אישור התקן של AWS IoT, ספריות PKCS#11 ו- MCUboot בנפרד, אבל זה דורש שילוב ידני ותצורה זהירה.

פיתוח זרימת עבודה וקידוד

FreeRTOS: Quick Start for Simple Projects

החל עם FreeRTOS הוא פשוט: להוריד את המקור הקרנל, ליצור קובץ ההרחבה:2, ולהפיק. ספקים רבים IDE (STM32CubeIDE, MCUXpresso, IAR, Keil) יש קוסמים פרויקטים שיוצרים פרויקט פשטות עבודה בתוך דקות.דאג נעשה באמצעות סטנדרטי JTA/G/DSW וכלים IDE-Aware, לא יכול ליצור את CV יחיד, לא יכול לעשות שימוש ב-DOS.

Zphyr: Steeper Learning Curve, Greater Discipline

Zephyr כוהההת לפיתוח מובנה יותר.You חייב להתקין את Zephyr SDK (toolchain, Python Scripts, מערבה meta-Build Tool) כל הפרויקטים משתמשים במרחב עבודה המנוהל על ידי FLT:3, אשר מביא את מקור Zephyr וכל מודולים חיצוניים. Configuration נעשה באמצעות Kconfig (קבצי מבוסס או COP), והגדרות משתמשות במכשיר ®, במיוחד, כדי לפתח את ה-Val, כולל מספר שעות עבודה.

בדיקות ואינטגרציה רציפה

Zphyr כולל מסגרת בדיקות בנוי (FLT:4) ותומכת בבדיקות חומרה-in-the-loop באמצעות Twister ו- Docker-based CI. FreeRTOS אין מסגרת בדיקה רשמית; מפתחים מסתמכים על רתימות יחידות צד שלישי.עבור צוותי מוצר הדורשים בדיקות רגרסיה אוטומטיות, התמיכה של Zephyr היא יתרון חזק.

הכחשה והשלכות מסחריות

FreeRTOS הוא בעל רישיון כפול: הקרנל עצמו נמצא תחת רישיון MIT, בעוד ספריות של AWS IoT נמצאות תחת רישיון התוכנה אמזון.רישיון הרשיבית זה מאפשר שימוש קנייני ללא חובות קוד פתוח. Zephyr משתמש ברישיון Apache 2.0, שהוא גם ידידותי לעסקים, אך כולל סעיף הענקת פטנט.שני הרישיונות מתאימים למוצרים מסחריים, אך רישיון Apache של Zephyr מספק הגנה ברורה יותר עבור תורמים: הודעות דומות לרישיונות, כולל הודעות דואר זבל.

אין מנעול באף פלטפורמה, אבל המערכת האקולוגית של Zephyr מעודדת שיתוף נהגים ופרסומות ביניים בחברות - בדומה לאופן שבו פועל הקרנל של לינוקס.זה יכול להוריד עלויות לבניית מוצרים מורכבים שמבוססים על רכיבים קהילתיים.

שימוש במקרים: מתי לבחור FreeRTOS לעומת Zephyr

FreeRTOS Fits Best When:

  • אתה צריך גרעין מינימלי עבור MCU מאומץ משאבים (למשל, 8 סיביות או 16 סיביות מכשירים עם 32 KB פלאש).
  • הפרויקט משתמש בערימה אחת של רשתות (למשל, רק Wi-Fi או רק BLE) עם ספריות המוכרות.
  • הצוות שלך מכיר היטב את FreeRTOS ואת בסיסי הקוד הקיימים.
  • אתה דורש קביעה מקסימלית ותדירות נמוכה ביותר האפשרית של חוסר יכולת שליטה בזמן אמת קשה.
  • המוצר הוא חיישן פשוט או מתנגן ללא דרישות עדכון אוויריות.

זפינר מתאים למתי:

  • המכשיר שלך דורש אפשרויות קישוריות מרובות (BLE + Wi-Fi + סלול + Ethernet).
  • אתה צריך משקפי מנעול מאובטח, עדכוני קושחה מרוחקים (באמצעות MCUboot ו-SMP Server), ומודל אבטחה חזק.
  • אתה מפתח משפחה מוצר עם גרסאות חומרה מרובות, הדורש קוד נהג נייד.
  • יש לך צוות מנוסה עם מושגי ליבה של לינוקס (Devicetree, Kconfig) ורוצי זרימת עבודה דומה.
  • עמידה בסטנדרטים כמו משנה, מחרוזת או LwM2M היא דרישה.

שיקולים של ביצועים אמיתיים

כאשר השוואת ביצועים, עליך לשקול גם זמן ביצוע הגרוע ביותר (WCET) וצריכת חשמל ממוצעת. idle טיקס חסר טייפ הוא יותר מסוגל מאשר מצב הקרציות של FreeRTOS כי Zephyr יכול להתאים באופן דינמי את הזמן להפריע לתקופה עד למחזור הבא של kernelRT, לא רק מספר קבוע של מחזורים טיפוסי, Zphyr מראה 10-20% יותר בגלל בעיות חכמות יותר עבור מחזורים של 50 פעמים טיפול רגיל.

עבור רשתות באמצעות חישוב, ערימה IP Native של Zephyr (מבוסס על ערימה רשת לינוקס) יכול לעמוד גבוה יותר שערי חבילות מאשר lwIP ב FreeRTOS, במיוחד עם IPv6 או 6LoWPAN במבחנים באמצעות nRF52840 משדר MQTT על Wi-Fi, Zephyr השיג - 1.2bps באמצעות ® לעומת LIPw -0.

קישורים צד שלישי וקריאה נוספת

  • אתר האינטרנט הרשמי של LT:0 OUTRTOS: 1.FLT 1 - הורדות גרעין רשמיות, התייחסות ל-AP ותיעוד שילוב של AWS IoT.
  • פרויקט ה-FLT:0(Zephyr Project הרשמי של אתר האינטרנט הרשמי של LT:1) – תיעוד, תמיכה בדירקטוריון ומדריכים מצופים.
  • (ב) ⁇ :0) שיתוף פעולה של RTOS Licensing ModelsFLT 1:1 - נייר לבן ממעבדות הסיליקון (לא נדרש, אבל שימושי לקריאה עמוקה יותר).
  • (FLT:0)Wikipedia: השוואה בין מערכות הפעלה בזמן אמת (Real-Time) 1:1 - שולחן מקיף המשווה תכונות על פני אפשרויות RTOS רבות, כולל FreeRTOS ו-Zphyr.

מגמות עתידיות ואבולוציה של מערכת אקולוגית

שתי הפלטפורמות RTOS מתפתחות במהירות. FreeRTOS הופכת יותר מודולרית, עם הפחתת הדרגתית של הקרנל המונוליטי, בעוד ש-"FreeRTOS Kernel V11" המציגה מערכת אובייקטים גמישה יותר. AWS ממשיכה להשקיע ביוזמה נקייה ל-IoT, אך רוב החדשנות (למשל, עדכוני IoT, AWS ExpressLink) קשורה לשירותי AWS, Zphyto-Creative Activecast (D) ו-Creative Security Analysis) ל-APTSD) תהיה זמינה ל-Creative Security Software (מציעה-APTSD (DICTOR) ו-CIOCIST) ל-CISTFICTORIFICTORIFICTOR, והיא תמיכה ב-CTOR, והיא זמינה ל-CTORIFICTORIF).

עבור מפתחים, להשקיע זמן בלמידה שתי הפלטפורמות הוא הגיוני - חינםRTOS עבור הפשטות שלה ואת כל אי-השוויון, ו-Zphyr עבור כלי מודרני שלה והיקף רחבות היקף. מהנדסים רבים מתחילים עם FreeRTOS עבור אב-טיפוס ולאחר מכן נודדים לזפיר כאשר המורכבות של המוצר דורש את זה.הבנת ה-offs המפורטים במאמר זה יעזור לך להפוך את ההגירה בצורה חלקה או לבחור את הבסיס הנכון מהיום.

מסקנה: לעשות בחירה בלתי מוגדרת

FreeRTOS ו-Zphyr מייצגים שתי פילוסופיות שונות בעיצוב RTOS מוטבעת. FreeRTOS מספק גרעין מוכח, מינימליסטי אשר הפעיל מיליארדי מכשירים במשך שני עשורים. Zephyr מציעה מערכת הפעלה מלאה, מודולרית שנבנתה עבור המורכבות של מוצרים מודרניים מחוברים.אין ברירה אוניברסלית נכונה - רק זה שמיישר עם מגבלות המשאבים של המוצר שלך, קישוריות, דרישות אבטחה, ודרישות של צוות זה מבטיח בזהירות את המיומנות שלך.