Table of Contents
פיתוח מערכת הפעלה Embedded ובדיקה דורש חבילה שנבחרה בקפידה של כלים וסביבות פיתוח משולבות כדי לייעל את זרימת העבודה, להפחית פגמים, להאיץ את הזמן לשוק.השילוב הנכון של IDE, debugger, וכלים ניתוח יכול להפוך פרויקט מורכב לתוך מאמץ מנוהל, המאפשר למפתחים להתמקד פונקציונליות הליבה ולא להילחם בעיות כלי רכב.זה בוחן את היעיל ביותר IDE ובדיקה עבור כלי מערכת ההפעלה המשובחים, כדי לעזור ערימה ספציפיים כדי לספק את דרישות ספציפיות כדי לספק את הסוללות ספציפיות, כדי לעזור ערימה.
IDEs for Embedded OS Development
IDE לפיתוח מוטבע חייב להציע אוסף חזק, פיזור, ותכונות ניהול פרויקטים, לעתים קרובות מותאם למשפחות מיקרובקר ספציפיות.ה- IDEs הבאים הם אימצו באופן נרחב בתעשייה עבור האמינות שלהם, הביצועים שלהם ותמיכה אקולוגית.
Keil MDK
Keil MDK (Microcontroller Development Kit) הוא מדד IDE מסחרי מ Arm כי מצטיין בפיתוח תוכנה עבור Arm Cortex-M microcontrollers.It כולל את μVision IDE, הזרוע C / C++ Compiler, ו debugger חזק עם יכולות סימולציה.Kil MDK מספק שילוב חלקה עם מערכות הפעלה בזמן אמת כגון RTX5, CMS-C2cur, ו-R2C, ומאפשר מעקב מתקדם עבור מערכת ההפעלה Ix.
IAR Embedded Workbench
IAR Embedd Workbench הוא מסחרי IDE ידוע עבור המאגד C / C + C + C + ++ רבת כלים bugging.הוא תומך מגוון רחב של ארכיטקטורות מיקרובקר, כולל Arm, RISC-V, AVR, MSP430, ורנסס כמו RX.הפיצר ידוע על ידי יצירת קוד קומפקטי ויעיל, קריטי ב-זיכרון מוטבעת תכונות כגון IFvd פונקציות תמיכה משולבת, IFvreved.
Eclipse with CDT
Eclipse עם C / C++ Development Tooling (CDT) הוא בחירה בקוד פתוח פופולרי IDE לפיתוח משובצ, במיוחד כאשר בשילוב עם GNU MCU MCU Eclipse plugins. זה מספק פלטפורמה גמישה שניתן להרחיב עם מגוון רחב של שרשראות, קבוצות debuggers, ולבנות סביבות פיתוח חזקות יותר של Eclipses (OCC) להעריך את התמיכה חוצה פלטפורמות (, לינוקס, macOS) ואת הקוד הבוגר שלה עריכת קוד הבוגר ותכונות של GNU.
סטודיו Embedded Studio
Segger Embedd Studio הוא משקל, ביצועים גבוהים IDE תוכנן במיוחד עבור פיתוח מוטבע.It כולל את הספידר (מבוסס על Clang) ואת האינטגרציה J-Link debugger סטנדרטית.The IDE הוא מהיר במיוחד באינדקסים ובניית קבוצות, צמצום מחזורי ההסרה.זה תומך ב-ArmSC-V, ואדריכלות אחרות באמצעות תבניות נפרדות.
MCUXpresso IDE
MCUXpresso IDE הוא NXP מבוסס IDE עבור i.MX, LPC, Kinetis מיקרובקר משפחות.זה מספק סביבת פיתוח משולבת עם שרשראות כלי GCC אופטימיזציה, debugger תומך הן חומרה והן ב- Software Breakpoints, ותכונות מתקדמות כמו עקבות (באמצעות SWO) וניתוח ביצועים.
פרטים נוספים של Note
STM32CubeIDE מ STMicroelectronics הוא כלי תצורה חינמי, מבוסס Eclipse המספק שילוב ייחודי של ספק עבור STM32 מיקרובקררים.זה כולל את כלי תצורה STM32CubeMX , ותומכת במגוון רחב של תוכנות ביניים ו RTOSs. עבור אלה עובדים עם RISC-V הליבהs, חופש מ Si Five מציעה סביבה מבוססת Eclipse למעבדים המותאמים שלהם, כולל קוד פתוח, כולל מערכת ההפעלה או מערכת ההפעלה פתוחה, כולל קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח של מערכת ההפעלה עם RISC-OSTOSTOSTOSTOSTOSTOSTOSTOSTOSTOSTOSTOSTOST, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח, כולל פונקציות פתוחה, ללא תשלום, כולל פונקציות אבטחה, כולל מערכת ההפעלה עם מערכת ההפעלה עם מערכת ההפעלה עם מערכת ההפעלה עם מערכת ההפעלה עם קוד פתוח, כולל פונקציות פתוחה, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם קוד פתוח, ללא שימוש לעתים קרובות, ללא קוד פתוח, ללא ספק פתוח, כולל מערכת ההפעלה עם קוד פתוח, כולל מערכת ההפעלה עם RIRM
כלי חיוני לבדיקת מערכת ההפעלה
בדיקת מערכת ההפעלה המוטבעת הולכת מעבר לבדיקות יחידה פשוטות; היא דורשת ניתוק חומרה, בזמן אמת, ואימות אוטומטי.הכלים הבאים הם קריטיים להבטחת נכונות, ביצועים ואמינות.
חומרה Debuggers
(FLT:0J-Link Debugger (Segger)3PlusFLT) הוא תקן התעשייה עבור מכשירים מבוססי זרוע, המציע SWD / JTAG debugging, בלתי מוגבל שובר נקודות פלאש, וגישה אמיתית לזיכרון של זמן. אינטגרציה שרת GDB עושה את זה תואם עם רוב IDEs. J-Link זמין גם בגרסת " עם עקבות זרימה (E) מספק תמיכה גמישה, BA-BA-S.
(FLT:0) OpenOCDigFLT:1 (פתוח על צ'יפ דבגר) הוא פרויקט קוד פתוח המספק bugging, תכנות, ומבחן הגבול עבור מטרות מוטבעת.הוא תומך במגוון רחב של קבוצות debug (כולל כבלים מבוססי FTDI ו CMS-DAP) ומתקשר עם GDB OpenOCD הוא מרכיב חיוני עבור כלי קוד פתוח רבים.
(ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
ניתוח בזמן אמת וכלי רכב
הבנת ההתנהגות הדינמית של מערכת משובצת היא חיונית.FLT:0Segger SystemViewFrover 1LT מספק הקלטה בזמן אמת ודמיון של אירועי מערכת, כגון מתגי משימה, הפרעות, ושיחות API, מבלי לעצור את המטרה.זה עובד עם FreeRTOS, embOS, ו RTOS אחרים, והוא לא יקר עבור אבחון עדיפות בערימה, מעל פני ערימה, overflow, עם בעיות משולבות עם s-S.
(FLT:0)Trace32 מ LauterbachFLT:1) מציע פתרון עוד יותר מקיף של עקבות, תמיכה במעקב הוראה, מעקב נתונים, וגישה זיכרון בזמן אמת.זה משמש עבור מערכות מרובותcore מורכבות וביקורתיות מעורבת שבו debugging מסורתי הוא לא מספיק.
(ב) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
יחידת בדיקות מסגרות
בדיקות יחידה במערכות משובצות התבגרו באופן משמעותי.FLT:0Ceedlingling-1 הוא מערכת בנייה ומסגרת מבחן שנבנתה על גבי רובי המעוטפת CUnit ו-CMock (ספרייה מטועת) הוא דור מבחן אוטומטי, בונה וביצוע, מה שהופך אותו מתאים לפרויקטים קטנים עד בינוניים.
(FLT:0)UnityveFLT:1) הוא מסגרת בדיקות יחידה טהורה וקלה המיועדת לשימוש מוטבע.הוא מייצר מינימום מעל פני השטח ויכול לפעול על חומרת היעד או בסביבה מבוססת מארחת. בשילוב עם FLT:2CMockcioFLT 3, הוא מאפשר בדיקות לעג קפדניות של מודולים עם תלות בחומרה.
(FLT:0)TessyofLT:1) מ Hitex הוא כלי מסחרי המציע ניתוח אוטומטי יחידה ושילוב עם ניתוח כיסוי, המיועד במיוחד עבור תוכנה ממוקדת בטיחות (IEC 61508, ISO 26262) עבור פרויקטים עתירי גבוה, Tessy מספק את הקפדה הנדרשת על ידי תקני הסמכה.
מערכת ומערכת בדיקות כלים
בדיקה של ערימה של מערכת ההפעלה המוטבעת דורשת סימולציה וחיקוי.FLT:0QEMUFelove:1 הוא אדפטוטור קוד פתוח שיכול להסוות מערכות משובצות רבות (למשל, Zephyr, Linux, FreeRTOS) הוא מאפשר למפתחים להפעיל ולבדוק את מערכת ההפעלה על מכונה מארחת לפני פריסה לחומרה. QEMU תומך באדריכלות שונות, כולל RISC-VR, ו-86, ו-FREFREF בדיקות משולבות, כמו בדיקות משולבות.
(ה) בדיקות חומרה-ב-the-loop (HIL), כלים כמו FLT:0 מכשירים לאומיים VeriStandcioFLT:1 או FLT:2Vector CANoephFLT 3 (עבור רכב) סימולציה קלטי חיישן אמת ותקשורת ברשת.
שילוב רציף (CI) הוא עכשיו תרגול סטנדרטי לפיתוח מערכת ההפעלה משובצת.פלטפורמות כמו ג'נקינס, GitLab CI, או GitHub פעולות יכול לגרום לבנות, להפעיל בדיקות יחידות ואפילו לפרוס לחיקויים או חוות חומרה. integrating כלים כמו Ceedling ו QEMU לתוך צינורות להבטיח כי כל מבצע הוא נבדק, לתפוס רגרסציות מוקדם.
שיקולים נוספים לבחירת כלי
המונחים:
הגורם החשוב ביותר הוא להבטיח את IDE ו debugger לתמוך אדריכלות של היעד microcontroller ו על-chip debugging תכונות (SWD, JTAG, ETM, וכו ') מנעול הנדור - הוא דאגה אמיתית; שרשרת כלים שתומכת רק MCU אחת מגבילה גמישות בעתיד.
RTOS ו-Mileware Support
אם הפרויקט משתמש RTOS ספציפי (חינםRTOS, Zephyr, RT-Thread, embOS), IDE צריך להציע kernel-aware debugging.זה מאפשר למפתחים להציג מצבי משימה, תורי סלמפור, והשימוש heap ישירות ב debugger. רבים IDEs עכשיו עם תוספים מובנה עבור RTOS פופולריים, לשקול אם אני מספק USB, או מערכת פיתוח באופן משמעותי.
סליחות ותאונות דרכים
מעבר לצעד פשוט-באמצעות פיזור, תכונות מתקדמות כמו עקבות הוראה, עקבות אירועים, ושעון המשתנה בזמן אמת הם הכרחיים לאבחנה של באגים רגישים לתזמון.כלי Trace (SystemView, Trace לספק חשיפה ל-32 לתוך פנים של מערכת ההפעלה אשר פורצות לא יכול.שרשרת הכלים חייבת לתמוך בתכונות אלה ברמת החומרה - לא כל בדיקות debugggs או MCUs מאפשרים מעקב מלא בהתאם.
עלויות והודעות
מאגרי IDE מסחריים ו-Debug יכולים לנוע בין כמה מאות לאלף דולרים למושב.Kil MDK ו- IAR Embedded Workbench דורשים רישיון בתשלום, בעוד IDEs מבוסס Eclipse (כולל MCUXpresso ו-STM32CubeIDE) הם חינם.Sam Embedd Studio מציעה גרסה חופשית עבור כלים שאינם מסחריים (GCC, הם חסרי תמיכה ישירה.
קהילה ותמיכה
ספקים מסחריים מספקים תמיכה רשמית, עדכונים קבועים, ותיעוד.כלי קוד פתוח להסתמך על פורומים קהילתיים ו-wikis. עבור מוצרים קריטיים או ארוכים של מחזור חיים, תמיכה מסחרית מספקת ערבויות חוזיות.עם זאת, מערכת אקולוגית בקוד פתוח סביב לינוקס ו-Zphyr הוא פעיל מאוד, עם הרבה מבצעים מחברות גדולות. להעריך את רמת ההיענות ואת איכות הדוגמאות הזמינות ו-Zphyr הוא פעיל מאוד, עם הרבה.
Best Practices for Embedded OS Developmentflow
הקמת ה- Toolchain
החל על ידי בחירת פלטפורמה חומרה הפניה ו RTOS. Install the Software SDK של היצרן ואת ה- IDE המועדפת IDE. הגדר את הכלי שרשרת (compiler, Linker) כדי להתאים את מודל MCU ואת הפריסה זיכרון מדויק. השתמש במערכת בקרת גרסאות (Git) מיום אחד, ולשמור את כל גרסאות הכלי תחת שליטה במקור (למשל, באמצעות Docker או afile כי מורידים את הגרסאות האוטומטיות את השרתים).
שילוב בדיקות אוטומטיות
כתוב בדיקות יחידה עבור כל מודול עצמאי שאינו מודע באמצעות Unity או Ceedling. עבור קוד תלוי בחומרה, לכתוב שכבות לעג ולהשתמש CMock כדי ליצור גמגמות. להפעיל את הבדיקות האלה על המארח באמצעות סביבה מדומה (למשל, באמצעות נמל מבוסס מחשב של RTOS) כדי לגרות את חבילת הבדיקה לתוך תהליך הבנייה כך בדיקות על כל כלי סיקור שימוש (co) כדי למדוד את הכיסוי גבוה כדי לכוון את הכיסוי.
שילוב מתמשך
הגדר צינור CI אשר בונה את הקושחה עבור מטרות מרובות (debug, שחרור, גרסאות MCU שונות) ומנהל את כל בדיקות יחידה. עבור בדיקות אינטגרציה, השתמש QEMU כדי להחרים את תמונת מערכת ההפעלה ולהפעיל חבילה של בדיקות פונקציונליות (למשל, לבדוק את לוח הזמנים של משימות נכון, כי תקשורת בין-task פועל עומק חומרה אמיתי חומרה-in-in-the-the-the-the-הגדרה עבור כלי פעולה סופיים כדי לזהות את הכלים כדי ללכוד אותם מחדש כדי ללכוד אותם.
מסקנה
בחירת הסט הנכון של IDEs ובדיקת כלים לפיתוח מערכת ההפעלה משובצת היא החלטה אסטרטגית המשפיעה על הפרודוקטיביות, איכות הקוד וזמן לשוק.ה- IDEs הטובים ביותר - Keil MDK, IAR Embedded Workbench, Eclipse עם קבוצות CDT, Segger Embedded Studio ו- MCUXpresso - מציעים נקודות שונות בהתאם לאדריכלות היעד, RTOS, ו-S-Ric-PTS (מערכת הפעלה מחדש) עם כלי פיתוח לא מאובטחים מודרניים, כולל תכונות מתקדמות (מערכת הפעלה) עם תכונות מתקדמות, כולל תכונות מתקדמות, כולל תכונות מתקדמות, כולל תכונות מתקדמות של מערכת הפעלה (מערכת הפעלה, מערכת הפעלה, כולל תכונות פתוחות, כולל תכונות מתקדמות של מערכת הפעלה של UnvHDC) עם תכונות מתקדמות של מערכת הפעלה (מערכת הפעלה (מערכת הפעלה, טיפול) עם תכונות מתקדמות של מערכת הפעלה, טיפול (מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של UnvHDC) עם תכונות מתקדמות, מערכת הפעלה מחדש של UnvHDC) עם תכונות מתקדמות, מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה (מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של מערכת הפעלה מחדש של Un