Table of Contents
FreeRTOS היא מערכת הפעלה בקוד פתוח בזמן אמת המיועדת במיוחד למכשירים משובצים ופרויקטים IoT.טבע קל משקל ותכונות חזקות שלה להפוך אותה לבחירה פופולרית בקרב מהנדסים מפתחים פתרונות מחוברים, שפותחה במקור על ידי ריצ'רד בארי בשנת 2003, וכעת נשמרה תחת שירותי אמזון Web Services (AWS), FreeRTOS הפך לסטנדרט הנדסי מוכח של ניהול זמן רב-מחדש בעולם המוטבע, ובכך הוא מחוזק של כל דבר מאבני החיישן זעירות ועד לבקר תעשייתי מורכב, מספק מערכת הפעלה יעילה, המאפשרת של ניהול זמן רב-חשמל, המאפשרת, עם ניהול יעיל, עם ניהול משאבים יעילה, ומעבדה, עם ניהול זמן רב-מחדש, אשר מאפשר עיבוד של ציוד ניהול יעיל, עם ניהול יעיל, יעיל, עם ניהול יעיל, 000 יעיל, 000 יעיל, יעיל, יעיל, יעיל, עם ניהול זמן רב-מחדש, יעיל, 000 זמן ניהול משאבים, עם ניהול זמן ניהול יעיל, יעיל, יעיל, יעיל, עם ניהול יעיל, יעיל, יעיל, 000 זמן ניהול יעיל, 000 זמן ניהול יעיל, 000 זמן ניהול יעיל, 000 יעיל, 000 זמן ניהול יעיל, 000.
במאמר זה, אנו חוקרים את תכונות הליבה של FreeRTOS ולבחון את היתרונות המרכזיים שהיא מביאה לפרויקטים הנדסיים של IoT.We'll גם לבחון שיקולים מעשיים וכיצד להתחיל עם RTOS רב עוצמה זו.
מה זה FreeRTOS?
FreeRTOS היא מערכת הפעלה בזמן אמת עבור מכשירים משובצים אשר כבר נותק ליותר מ -40 ארכיטקטורות מיקרו-בקר, כולל ARM Cortex-M, RISC-V, AVR ו- x86. הקרנל מספק שירותים חיוניים כגון תזמון משימה, תקשורת בין-task (קוויס, סמפורס, פשטות), ניהול זיכרון, ותפקוד זמן שלא כמו מערכות הפעלה רגילות, הוא מיועדות ל-Linux, הוא קריטי, כלומר, הפונקציה יעילה, פונקציות הפעלה, פונקציות הפעלה באופן קבוע, פונקציות בפועל, פונקציות הפעלה.
הקרנל FreeRTOS הוא קטן להפליא - לעתים קרובות סביב 6 KB עד 12 KB של ROM עבור קבצי הליבה - מה שהופך אותו מתאים למכשירים עם 32 KB של זיכרון פלאש ו 8 KB של RAM.יעילות זו לא באה עלות של תכונות; FreeRTOS תומך preemptive, שיתופי, היברידית תזמון, וכולל מצב idle חזק עבור פעילות נמוכה כוח.
ניהול המורכבות של משימות במקביל למכשיר IoT הוא אחד האתגרים הגדולים ביותר עבור מהנדסים משובצים. FreeRTOS מטפל בהסרת הכבד על ידי הסרת פרטים ספציפיים מעבדים מופשטים ומספק API נקי ליצירת משימות, שליחת נתונים ביניהם, וסינון גישה למשאבים משותפים.הפשטה זו מאפשרת למפתחים לכתוב קוד נייד שניתן להשתמש בו מחדש בפלטפורמות חומרה שונות.
יתרונות מרכזיים של שימוש ב-FreeRTOS בפרויקטים של IoT
היתרונות של שילוב FreeRTOS בפרויקט הנדסה של IoT הם משמעותיים.למטה אנחנו בודקים את היתרונות החשובים ביותר, עם שיקולים מעשיים עבור פריסה בעולם האמיתי.
1 ביצועים בזמן אמת ודמנציה
ביישומים רבים של IoT - כגון בקרה תעשייתית, מערכות רכב, מכשירים רפואיים או רשתות חיישן - שיתופי פעולה חייבים להתרחש בתוך חלונות זמן מחמירים. עיכוב של כמה מיקרו-שניות בקריאת חיישן או הפעלת מנוע יכול לגרום כשל מערכת או סכנות בטיחות. FreeRTOS בנוי מן הקרקע עבור ניתוח בזמן אמת. לוח הזמנים שלו משתמש אלגוריתם קבוע מראש על ידי ברירת מחדל, המבטיח כי טיפול מינימלי הוא גם עם משימות יעילות ביותר עם .
מפתחים יכולים לקבוע סדרי עדיפויות משימה כדי להבטיח כי פונקציות קריטיות של זמן (כמו קריאה של חיישן לחץ או שליטה בלולאה משוב) לעולם לא נצפו על ידי משימות פרטיות נמוכה (כמו איסוף נתונים או עדכון תצוגה) FreeRTOS גם תומך ב-reoutines וקבוצות אירועים עבור שליטה על ביצוע משימה.עבור מהנדסים, קביעה זו מתורגמת לחיזוי התנהגות וקלה יותר של תזמון במהלך בדיקות.
דוגמה מעשית: תרמוסטט חכם פועל FreeRTOS יכול לאשר את משימת המדידה הטמפרטורה כל 100 מילישניות בעוד משימות רקע (כמו Wi-Fi מחדש או OTA עדכון בדיקות) לרוץ רק במהלך מרווחי הרגעה.זה מבטיח התגובה של תרמוסטט לשינויים בטמפרטורה נשאר עקבי ללא קשר לתנאי רשת.
טביעת רגל קלה ויציבות
הנוף של מכשיר ה-IoT נשלט על ידי מיקרובקרים עם מגבלות משאבים חמורות - לעתים קרובות רק עשרות קילובייט של RAM וכמה מאות קילוביטים של אחסון פלאש. FreeRTOS מותאם במיוחד לסביבות כאלה.הגרעין הליבה מסתמך על טביעת רגל מינימלית בינארית, משאיר יותר מקום עבור קוד יישומים ונתונים.הלוח עצמו יכול לרוץ ללא יחידת ניהול זיכרון (U), אשר בדרך כלל חסר מיקרו-בקר.
בנוסף, FreeRTOS תומך בהקצאת זיכרון דינמי באמצעות מספר תוכניות ניהול ה-heap 1 באמצעות Heap 5), כל אחד מותאם למקרים שונים של שימוש במקרים שונים.מפתחים יכולים לבחור את התוכנית המתאימה ביותר למזער פיצול ולמעלה.היכולת להקצות באופן סטטי את כל האובייקטים הקרנל זמינה גם, אשר קריטי עבור מערכות קריטיות בטיחות כי יש להימנע מכישלונות הקצאה במהלך שעות ריצה.
הטבע הקל משקל של FreeRTOS גם אומר צריכת חשמל מופחתת.במכשירים מבוססי סוללות, כל מיקרו-דג 'ספירה idle סמן מאפשר למערכת להיכנס לשינה עמוקה תוך שמירה על תזמון מדויק; כאשר כל המשימות חסומות או idle, ה-SSSsTick מפריע הוא מדוכא, וניתן להאריך את חיי הסוללה באופן משמעותי - החל מכמה ימים עד חודשים - תלוי במחזור.
3.Ease of Use and Developer Productivity
אחד המחסומים העיקריים לאמץ RTOS בפיתוח מוטבע הוא עקומת הלמידה. FreeRTOS מטפל בזה עם ממשק API פשוט, עקבי, עקבי, ומוסמך היטב.השמות הם אינטואיטיביים: FLT:0, כרך 1:0, בין היתר: 1,FLT:2 וכן על תיעוד כולל הפניות API, דוגמאות קוד, וספר חופשי שכותרתו "שימוש חופשי ו-"משחררים"משחררים" על ידי ריצ'ו-Times" על ידי ריצ'רד-Times".
בנוסף, מערכת האקולוגית של FreeRTOS יש תמיכה חזקה בסביבות פיתוח משולב (IDE) ו- Toolchains.It כלולה כמרכיב סטנדרטי בפלטפורמות פופולריות רבות כמו Espressif ESP-IDF, STM32Cube, NXP MCUXpresso, ו-Arduino Core (באמצעות ספריית FreeRTOS). אינטגרציה זו מפחיתה את זמן ההתקנה ומאפשרת למהנדסים להתחיל במהירות ללא נמל באופן ידני.
הזמינות של שכבת סימולציה דמוי POSIX (FreeRTOS Windows Port ו- FreeRTOS+POSIX) מאפשרת למפתחים לבחון ולערער את רוב לוגיקה היישום שלהם במחשב לפני הבזק לחומרה.זה מאיץ את מחזור הפיתוח ומאפשר אימות מוקדם של concurrency ותזמון.
4.פתוח-מקור קהילה ותמיכה מסחרית
FreeRTOS יש אחת הקהילות הגדולות והאקטיביות ביותר בין RTOS משובצים.אלפי מפתחים תורמים לפורומים, שיחות GitHub ו- Stack Overflow, המספקים שפע של ידע משותף.טבע הקוד הפתוח הוא קוד המקור הוא ביקורת מלאה, חיוני עבור מוצרי IoT בעלי מודעות אבטחה.
מאז שנרכש על ידי אמזון Web Services בשנת 2017, FreeRTOS קיבלה החזר מסחרי רשמי עם ההשקה של FreeRTOS IoT Libraries, הכולל מודולים הסוכן עבור MQTT, HTTP ו Shadow.הספרות האלה משולבים בקפידה עם AWS IoT Core, מה שהופך אותו פשוט לחבר מכשירים לענן.
עבור מהנדסים הדורשים תמיכה ברמת הארגון, מספר חברות - כגון אמזון, חברות שותפים של AWS, וחברות שירותים משובצות מקצועיות - הכשרה, ייעוץ ותמיכה בתקרית.שילוב זה של תמיכה קהילתית ואפשרויות מסחריות מספק רשת בטיחות עבור פריסות ייצור.
קישור חיצוני:0 (חינם) אתר האינטרנט הרשמי של ההרחבה 1
סקאביה מחיישנים פשוטים ל-Complex Gateways
בעוד ש-FreeRTOS ידועה טביעת הרגל הקטנה שלה, היא גם מקנה עד חומרה יותר מוכשרת.הגרעין יכול לרוץ על חיישן קורטקס-M0 פשוט עם 16 KB של פלאש ועל שער מבוסס Cortex-M7 עם 2 MB של פלאש ו- RAM חיצוני.מערכת ההפעלה FreeRTOS כוללת רכיבים אופציונליים כגון מחסניות TCP/IP (FreeOS+T), מערכות (F+I), ו-FTM) ו-S (F) יכולות להוסיף ממשק חינמי (מחדש) כמו .
קיבולת זו פירושה שצוותי הנדסה יכולים להתאים את עצמם על קו מוצר אחד בכל - ממכשירים בעלי ביצועים נמוכים ל-Aggregators ביצועים גבוהים.שימוש באותו מערכת ההפעלה מקטין את האימון מעל הראש, מפשט את הקוד מחדש, ושומר על איכות עקבית ברחבי הארגון.
ארכיטקטורה מודרנית של IoT כרוכה לעתים קרובות עיבוד קצה שבו נתונים מסוימים מסוננים או משתנים לפני שנשלחים לענן. FreeRTOS תומך בזה עם ערימה מלאה TCP / IP שפועלת לצד הקרנל בזמן אמת, ומאפשר למכשיר לטפל הן בלולאות בקרה קריטיות בזמן והן בשרשרת בענן.
תקשורת בין-Task ו SynSyncization
במערכת רב-תחומית, משימות צריכות להחליף נתונים ולתאם גישה למשאבים משותפים (זיכרון, היקפים, IO pins) FreeRTOS מספק מערך עשיר של מנגנונים: תורים, סמפורים (ביניים, ספירה ו- mutexes עם עדיפות ירושה), קבוצות אירועים, והודעות משימה.
השימוש בתורים חשוב במיוחד באפליקציות IoT שבהן קורא חיישן, חבילות פיקוד או הודעות יומן חייב לעבור בין משימות.משימה מפיקה (למשל, שגרת שירות מפריעה שלוכדת קריאה טמפרטורה) יכולה לכתוב תור ללא חסימת, בעוד משימה צרכנית (למשל, משימה שמממוצעת קריאה) קוראת ממנה.
עבור הגנת משאבים משותפת, FreeRTOS מיישמת מוטציות חוזרות ומנגנון הפחתת העדיפות באמצעות ירושה עדיפות.זה מונע משימות פרטיות נמוכות מחסימת משימות פרטיות גבוהות ללא הגבלת זמן - דרישה חיונית עבור מערכות בזמן אמת.
7.צמצם נמוך לתקני IoT מאומנים
יעילות אנרגיה היא יעד עיצוב קריטי עבור מוצרים רבים של IoT.מצב של שיתוק קלרקוז, בשילוב עם שימוש זהיר של מצבי שינה, מאפשר MCU להשיג צריכת חשמל אולטרה-נמוכה.הגרעין נכנס באופן אוטומטי למצב שינה בעוצמה נמוכה כאשר אין משימות מוכן לרוץ, ולוח חומרה מתעורר המערכת ברגע המדויק משימה צריך להיות מוכן.
בנוסף, מכשירים מבוססי IoT מונעים על ידי FreeRTOS יכולים למנף את ה-idle s כדי להציב חומרים חיצוניים (למשל, חיישנים, רדיו) לתוך מצבי הכוח הנמוכים ביותר שלהם. בשילוב עם לוח זמנים של התעוררות משימה נאותה, מעצבים יכולים להשיג חיי סוללה נמדדים בשנים עבור מכשירים אשר משדרים נתונים רק כמה פעמים לשעה.
קישור חיצוני:0 (FLT:0) Embedded.com מאמר על FreeRTOS Tickless ModeveFLT 1
שיקולים ועיסוקים טובים ביותר בעת שימוש ב-FreeRTOS ב-IoT
בעוד FreeRTOS הוא חזק, ישנם כמה תחומים שבהם מהנדסים צריכים לנקוט זהירות וליישם שיטות הטובות ביותר כדי להימנע ממכשולים נפוצים.
אפשרויות ניהול זיכרון
FreeRTOS מציעה חמש תוכניות הקצאות heap 1 הוא הפשוט ביותר (ללא חינם), heap 2 ו- heap-3 עבור בלוקים בגודל קבוע, heap 4 מוסיף פחמייה חופשית, והוא יכול להיות ap -5 מאפשר אזורי זיכרון מרובים.הבחירה שברומנטציה ו-Digitalism. עבור רוב מכשירי IoT עם דפוסים חוזרים של הקצאה וקידום (למשל, משימה דינמית), יצירתומת), הוא נמנע מכשלים קריטיים, או למנוע תקלות בטיחות.
אינטרפוחיות ו-Nexed Interrupts
FreeRTOS משתמש במודל קינון תצורה.על ידי ברירת מחדל, הפרעות פרטיות נמוכה מופרכות לדגמת RTOS, בעוד פרטיות גבוהה מפריעה לעקוף את הקרנל. מהנדסים חייבים להקצות בזהירות סדרי עדיפויות כדי להבטיח מגבלות בזמן אמת ללא רעב לוח הזמנים.
בחירת לוח הזמנים הנכון
FreeRTOS תומך בתזמון טרום-מספק, שיתופי ו היברידי (החלרה היא מוקדמת) במצב שיתופי, משימות מניבות מרצון שליטה, אשר יכול להיות פשוט יותר אבל עשוי להוביל מועדים פספס.רוב יישומי IoT נהנים מתזמון מוקדם, אבל מפתחים צריכים פרופיל המערכות שלהם כדי להבטיח כי משימות פרטיות גבוהה יותר לא למנוע משימות בית פרטיות נמוכות יותר מריצה ללא הגבלת זמן.
שילוב עם Cloud Platforms
FreeRTOS IoT Libraries הם אופטימיזציה עבור AWS IoT Core, אבל הקרנל יכול לשמש עם כל ספק ענן באמצעות מותאם אישית MQTT, HTTP, או מחסניות CoAP. עבור Microsoft Azure, Azure IoT התקן SDK כולל מתאם FreeRTOS. Google Cloud Core גם תומך FreeRTOS דרך לקוח Eclipse Paho. בעת שילוב, תשומת לב לשמור על מרווחים, QS ורמות כוח מופרזות כדי למנוע מנגנוני ניקוז.
קישור חיצוני:0 (AWS FreeRTOS IoT קישוריות) Libraries
כיצד להתחיל עם FreeRTOS עבור פרויקט ה-IoT הבא שלך
החל עם FreeRTOS הוא פשוט הודות לתמיכה הנרחבת שלה חומרה ושילוב כלי.
- (FLT:0Select a Development BoardFLT:1) כמעט כל לוח Cortex-M יעבוד; אפשרויות פופולריות כוללות ESP32 (Espriff), S32TM Discovery/Nucleo, Raspberry Pi Pico (RP2040), או NXP LXpresso.
- (FLT:0) להרים את כלי ה-IDE של היצרן (STM32CubeIDE, MCUXpresso, Platform, או GCC רגיל עם CMake) רוב IDE יש תיבת בדיקה כדי לכלול FreeRTOS.
- (FLT:0)Blink LED עם משימות מרובותFLT:1) לכתוב יישום פשוט שיוצר שתי משימות: אחת ממצמצמת LED ב 1 הרץ, הדפסה נוספת הודעה על UART. תרגיל זה מלמד יצירת משימה, עיכובים, וסינכרון בסיסי.
- (FLT:0)Add a תורeurFLT:1) - לעבור נתוני חיישן (למשל, מ- ADC סימולציה) בין משימות באמצעות תור.
- (FLT:0)Explore IoT קישוריות IoTFLT:1 - Integrate a Wi-Fi או Ethernet Library (למשל, ESP-IDF, LWIP) וחיבור ל-AWS IoT או Azure Hub באמצעות ספריות IoT FreeRTOS.
- (ב) ,0) ,Optimizing כוח 1 (FLT) - ניסוי עם מצב של סלקציה קליקטיבית ומדכא את הצריכה הנוכחית עם פרופיל חשמל.
קוד המקור של FreeRTOS ותיעוד מקיף זמינים באתר הרשמי.בנוסף, ישנם הרבה הדרכות שנוצרו על ידי הקהילה באתרים כמו GitHub, Hackaday ו Medium כי ללכת באמצעות פרויקטים מלאים של IoT באמצעות FreeRTOS.
קישור חיצוני:0 (חינם) ספר מאת ריצ'רד באריבנדר 1
מסקנה
FreeRTOS מספקת שילוב משכנע של ביצועים בזמן אמת, טביעת רגל מינימלית, ומערכת אקולוגית בוגרת שהופכת אותה לבחירה אידיאלית לפרויקטים הנדסיים IoT.רישיון קוד פתוח ואימוץ תעשייתי חזק - מהתחביבים לתאגידים רב-לאומיים - לספק ביטחון כי הקרנל יישאר יציב ונתמך במשך שנים כדי להגיע.
בין אם אתה מפתח חיישן סביבתי פשוט, תרמוסטט בית חכם, או יחידת בקרה תעשייתית, FreeRTOS מציעה את הסקאלה, יעילות ואמינות הדרושים כדי לבנות מכשירים אלקטרוניים מוכנים לייצור.שילוב שלה עם פלטפורמות ענן גדולות יותר מפשט את הדרך ליצירת פתרונות מחוברים כי הם גם רסן ויעיל כוח. עבור כל צוות הנדסה של ייצור מוצרים הדור הבא של IoT, FreeOS נשאר בסיס חכם ו pdent.