mbed – הפתרון המלא להאצת זמן הפיתוח שלך בעולם המעבדים המשובצים

Freescale SemiconductorAdi Shieber & Yan Vainter, Freescale Semiconductor

האתר הרשמי של ™mbed טוען כי פלטפורמת הפיתוח mbed היא הדרך המהירה ביותר ליצירת מוצרים המבוססים על מקירובקרים מבוססי ליבת ®ARM .ARM התחילה את פרוייקט

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

בניית אב-טיפוס
עם mbed
אז מה היא בדיוק mbed וכיצד היא עוזרת בבניית האב טיפוס? פלטפורמת mbed מורכבת מכל היסודות הדרושים להפעלת הפרויקט המבוסס על מיקרובקר בעל ליבת ARM: חומרה, תוכנה, כלים ותמיכה.

חומרת mbed
הפרויקט mbed הושק עם אופציית חומרה יחידה. זהו כרטיס הכולל מיקרובקר המבוסס על ליבת Cortex™-M של ARM
באריזת 40 פין פשוטה מסוג DIP המאפשרים גישה קלה לכל הממשקים הטוריים העיקריים ופיני קלט/פלט שניתן לחבר אותם לכרטיס הרחבה חיצוני. מערך החומרה הנתמך על-ידי mbed כולל כיום מספר לוחות וביניהם כרטיסים התואמים בגודלם ובסידור הפינים שלהם ל-DIP פינים ו-™Arduino. פלטפורמת הפיתוח של Freescale הקרויה Freedom® FRDM-KL25Z (המוצג באיור 1) ובנויה סביב מיקרובקר המבוסס על Cortex-M0+ תואם מבחינת גודל וסידור הפינים לכרטיסי Arduino. פלטפורמה זו חושפת את הפוטנציאל לשימוש במערכת הולכת וגדלה של שיתוף פעולה עם חברות צד שלישי של כרטיסי חומרה להרחבה מהמדף (המוכרות כ-shields) המקדמות בניית אב טיפוס בסביבת mbed.
מאפיין מרכזי של כל חומרת mbed הוא ממשק לניפוי שגיאות מובנה הנשלט על ידי מיקרובקר ייעודי להפעלת תוכנה מיוחדת. הממשק לניפוי שגיאות, המוכר בעבר בשם “ממשק mbed”, מספק חיבור USB למחשב המארח (®PC ,Mac או ®Linux) הכולל התקן לאחסון בנפח גדול (MSD, כגון: דיסק און קי), יציאה טורית וירטואלית עם חיבורים פיסיים ל-UART, ויישום CMSIS-DAP אשר מתקשר עם המיקרובקר אליו מתחברים באמצעות אותות JTAG או SWD. ממשק MSD הופך את תכנות/צריבת הזיכרון הבלתי נדיף על מיקרובקר לקלה: פשוט לגרור ולשחרר או להעתיק ולהדביק תמונה בינארית לתוך “הכונן”. ממיר ה-USB ל-UART מאפשר חיבורי מסוף טוריים וניפוי שגיאות באופן של הדפסה לטרמינל. בגרסאות מאוחרות יותר של תוכנה מיוחדת זו הוסיפו פרוטוקול יישום של ניפוי שגיאות בשם CMSIS-DAP אשר מאפשר ניפוי שגיאות בשיטת בקרת-ריצה עם תוכנות IDE מוכרות, כגון:
®Keil® µVision או IAR Embedded
®Workbench. אוסף זה של מעגל חומרה והפעלת התוכנה מוכר כיום בתור “ממשק CMSIS-DAP”.

תוכנת mbed
ערכת פיתוח תוכנת mbed () היא אבן הבניין הבסיסית עבור כל היישומים וספריות ב-mbed. זהו סט של קוד הפעלה, שכבת הפשטת החומרה וספריות להתקנים היקפיים יחד עם ספריות C סטנדרטיות לריצה בזמן אמת, כאשר כולם מספקים ספרייה ברמה גבוהה, מונחית עצמים להתקנים היקפיים ומאפיינים של המיקרובקר. ה-API להתקנים ההיקפיים (HAL API) מוגדר היטב ונועד להיות אינטואיטיבי לשימוש. הוא מקודד ב-C אך הוא כולל מעטפת ++C
() אשר מוסיפה לקלות השימוש בו. יישום mbed הבסיסי Hello World המוצג באיור 2 הוא דוגמה מצוינת לאלגנטיות פשוטה זו. בתכנית מוצג משתנה ++C
myled, אשר משמש להגדרת פין פלט למטרות כלליות הניתן להגדרה כ-‘0’ או ‘1’ באמצעות הקצאת ערכים באופן ישיר הודות לשימוש באופרטור לטעינה.
כמו כן, כלולה בספריות mbed הנתמכות באופן רשמי גם תמיכה בקישוריות USB, רשתות ומערכת הפעלה בזמן אמת (RTOS). ספריית USB כהתקן כוללת תמיכה בעכבר, מקלדת, HID כללי, חיבור טורי, MIDI, והתקן לאחסון בנפח גדול. ספריית הרשת מספקת יישום מלא של TCP/IP המבוסס על lwIP. מערכת ההפעלה ל-mbed היא יישום של CMSIS-RTOS אשר תומך ב-threads, mutexes, semaphores, איתות ותורים – כולם חיוניים עבור יישומים מרובי תהליכים.
בנוסף ל-mbed הרשמי, לסביבת mbed יש אוסף של ספריות אשר נתרמו על ידי המשתמשים. ספריות אלה, אשר נכתבו על גבי mbed, הם מעל שכבת ההפשטה של חומרת המיקרובקר ולפיכך ניתן לשלב אותן בקלות ביישומים חדשים. הרבה מהספריות אשר נתרמו על ידי המשתמשים ניתן למצוא ב-Cookbook באתר של mbed והן מכילות תיעוד והדרכות. ספריות אלה מספקות תוכנה על מנת להפעיל רכיבי חומרה רבים, כגון: דחיסת/פריסת אודיו, תצוגה גרפית וטקסטואלית, התקני
NFC/RFID, חיישני תאוצה, התקני ®WiFi, ומודולים של GPS.
האוסף של ספריות mbed רשמיות כמו גם ספריות אשר נתרמו על ידי משתמשים התומכות במספר הולך וגדל של רכיבי חומרה יכולות להפחית את לוח הזמנים של פיתוח האב טיפוס בשבועות ואף בחודשים.

כלי mbed
בערכת מיקרובקר מסורתית תוכלו למצוא תקליטור, החסן נייד, או (סביר יותר) קישור להורדת כלי לשולחן העבודה – בדרך כלל אחד שפועל רק בסביבת ®Windows. גודל ההתקנה עבור כלים טיפוסיים הקיימים היום נע בין 300MB עד מעבר ל-1GB, מה שיכול לקחת זמן רב להורדה דרך חיבור ברוחב פס נמוך. לאחר ההורדה, ההתקנה יכולה לקחת מכמה דקות עד לשעה, ולפעמים יש צורך בהפעלה מחדש של המחשב כדי להשלים את התהליך.
המטרה הנוספת של mbed הייתה לגרום למשתמש חדש להתחלת עבודה כמה שיותר מהירה.
בפרויקט ה-mbed נקטו בגישה שונה על ידי החדרת סביבת עבודה משולבת (IDE) מקוונת המציעה יכולות עריכה והדרה, כמו גם ניהול פרויקטים משולב. ה-IDE הוא יישום ענן מחשוב הפועל בדפדפן אינטרנט. הוא מגיע מוגדר מראש והממשק הפשוט הוא אינטואיטיבי הן עבור משתמשים מנוסים והן עבור משתמשים מתחילים. IDE המבוסס רשת מבטל את תהליך ההורדה וההתקנה ומאפשר למשתמשים להתחיל בעבודה תוך שניות במקום דקות או שעות. ה-IDE עובד היטב בדפדפני ® Internet Explorer® ,Firefox,
®Safari ו-™Chrome כך שניתן להשתמש בו ב-Windows ,Linux ו-®Mac OS.
מאז יוני 2012, סיפקה mbed את היכולת למפתחי תוכנה לשיתוף פעולה בסביבת הכלים המקוונים ולהשתמש במערכת בקרת גרסאות כדי לאפשר ביצוע תיקונים. בעבר זה היה פשוט למצוא ולעשות שימוש חוזר בקוד mbed, אבל לא כל-כך פשוט לפרסם תיקונים לקוד זה או לפתח תוכנה במשותף. שיפורים בשיתוף הפעולה
ב-mbed מאפשרים ביתר קלות למצוא ספריות, לסעף אותן, לתקן או לשפר אותן, ולטעון את השינויים האלה בחזרה לבסיס הקוד המקורי. יכולות אלה הן בעלות ערך עצום לצוותים של מפתחי תוכנה אשר יוצרים ספריות לרכיבי חומרה חדשים.

תמיכה של mbed
mbed היא גם קהילה של משתמשים שמקבלים תמיכה ונותנים תמיכה אחד לשני. משתמשי mbed חולקים SDK משותף, ארכיטקטורת חומרה משותפת (ARM Cortex-M), וחוויות משותפות. קשר משותף זה מאפשר למשתמשי ARM ו-mbed לשחזר בעיות ולענות ביעילות על שאלות טכניות.
התיעוד הרשמי של mbed מתוחזק על ידי ARM במדריך למשתמש (Handbook)הנמצא באתר של mbed. תיעוד והערות שנוספו מנסיונם של המשתמשים זמינים ב-Cookbook ובמחברות של המשתמשים באתר. פורום mbed הוא המקום לדון בנושא ולחלוק מחשבות ורעיונות, והמשתמשים יכולים לשאול שאלות ספציפיות דרך עמוד ייעודי באתר mbed. משתמשי ARM ו-mbed הינם פעילים בשני דפים אלה, אך המשתמשים יכולים גם לשלוח שאלות ישירות לצוות התמיכה של mbed באמצעות דואר אלקטרוני.

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

תוכנת קוד פתוח והמרה
כאשר mbed יצאה, ה-SDK היה זמין רק כספרייה בינארית שיכולה להיות מיובאת לתוך הפרויקט של המשתמש. זה שירת היטב את הקהילה בשלבים המוקדמים, אולם זה הגביל את השימוש רק לשלב בניית האב-טיפוס ולחומרת mbed הרשמית בלבד. בחודש פברואר 2013 שוחררה תוכנת mbed כקוד מקור דרך סביבת mbed המקוונת וגם דרך אתר ב-®GitHub. התוכנה נמצאת ברישיון קוד פתוח Apache 2.0. רישיון זה הוא מאוד מתירני, המאפשר שימוש של ה-mbed SDK ביישומים אישיים ומסחריים, ללא צורך לפרסם את התכנה שפותחה בקוד פתוח. לכן, יכולים המשתמשים כעת לשנות את ה-SDK (במידת הצורך) באופן חופשי ולבנות יישומים מסחריים. ניתן להמיר את ה-mbed SDK למיקרובקרים אחרים ובכך למעשה מתאפשר השימוש במיקרובקר על כרטיס המותאם לעבודה עם mbed לבניית האב טיפוס ולאחר מכן לבצע אופטימיזציה על נגזרת המיקרובקר המתאימה עבור הייצור.
החלקים הפנימיים של תוכנת mbed מתוארים באתר mbed במדריך הקרוי Handbook. רבדי התוכנה מוצגים באיור 3; המרת תוכנת mbed למיקרו בקר חדש דורשת שינויים ברבדים המסומנים כ”MCU Dependent”.

כלי בדיקה בעלי קוד פתוח וסקריפטים
משאבי mbed באתר GitHub כוללים גם כלים (בצורת סקריפטים בשפת ™Python) המשמשים את צוות ARM mbed כמו גם מפתחים אחרים כדי לפתח ספריות mbed. כלי mbed, אשר שוחררו גם הם תחת רישיון Apache 2.0, כוללים מערכת לא מקוונת לבניית הפרוייקט וחבילת בדיקות לא מקוונות. לכן, יכולים המפתחים להשתמש במערכות אלה בסביבה שלהם כדי לבדוק את המרת התכנה. דוגמה לכך מופיעה באיור 4.
כלי אחד מעניין במיוחד בקוד הפתוח, pyOCD, הינו בפיתוח מאגר m.mbed GitHub pyOCD היא ספריית Python לתכנות וניפוי שגיאות במיקרובקרים מבוססי ליבת ARM באמצעות ממשק CMSIS-DAP. ניתן לקבל גישה לספריית pyOCD מ-Python או מ-GDB client. ספרייה זו מראה כמה אפשרויות מבטיחות לניפוי שגיאות ואוטומצית בדיקות.
ייצוא לכלים מסורתיים לא מקוונים
המהדר המקוון הוא מעולה עבור שלב בניית האב-טיפוס, אולם הרבה מפתחים מעדיפים את הסביבות המוכרות להם כבר. mbed מאפשרת לייצא פרויקטים מקוונים בצורה פשוטה מאוד לסביבה לא-מקוונת ומסורתית יותר, המאפשרת אופטימיזציה ובדיקות קפדניות יותר. מהדר mbed יכול לייצא בין היתר ל-Keil µVision, IAR Embedded Workbench, וכלי GNU ל-Cortex-M המתוחזקים על-ידי ARM. משתמשים יכולים גם להתחיל בסביבה מסורתית על ידי שכפול מאגר mbed GitHub.
יתרון נוסף של IDE מסורתי “לא מקוון” הינו היכולת לנפות שגיאות ביישומים בצורה ישירה תוך שימוש של ניפוי-שגיאות בבקרת-ריצה. ממשק CMSIS-DAP במעגל mbed לניפוי שגיאות מאפשר את זה, ללא צורך בכלי JTAG חיצוני.

ערכת פיתוח חומרה בעלת קבצי מקור
בדומה לתוכנה, ערכת פיתוח החומרה הרשמית (HDK) של mbed, הכוללת בתוכה את מיקרובקר המטרה ומעגל הממשק לניפוי שגיאות, שוחררה לאחרונה בקבצי מקור. בנוסף, חומרת פיתוח Freescale Freedom () שהינה חומרת mbed מותאמת הינה זמינה עם קבצי מקור (כולל Layout). תכנונים אלה הינם נקודות פתיחה מצוינות לתכנן חומרה מותאמת אישית.

ממשק קוד פתוח CMSIS-DAP
כפי שצוין לעיל, מאפיין מרכזי של כל חומרה התומכת ב-mbed הנו מעגל לניפוי שגיאות מובנה ותוכנה עם חיבור USB אשר כולל התקן אחסון בנפח גדול (MSD), יציאה טורית וירטואלית (CDC) ו-CMSIS
– DAP כממשק JTAG או SWD למיקרובקר המטרה. ממשק MSD מספק את יכולת plug-and-Play לצריבת קובץ בינארי על חומרת mbed מהמהדר המקוון ושומר את התוצאה הבינארית ב”כונן” mbed והוא נצרב אוטומטית למיקרובקר המטרה. מאפייני CMSIS-DAP מאפשרים לבצע ניפוי שגיאות בבקרת-ריצה באמצעותpyOCD , OpenOCD, IAR™ ,Keil וכלים אחרים. באופן קולקטיבי יכולות אלה מוכרות כממשק CMSIS-DAP.
עד אוקטובר 2013 הקושחה אשר מיישמת את ממשק CMSIS-DAP היתה זמינה בצורה בינארית בלבד ורק עבור חומרת mbed הרשמית. יחד עם זאת, אותה קושחה משוחררת כעת גם תחת אותו רישיון Apache 2.0. מפתחים יכולים כעת להוסיף את המעגל לניפוי שגיאות למוצר המסחרי שלהם, להמיר את הקושחה לחומרה שלהם במידת הצורך ולנצל את היתרונות של הממשק לניפוי שגיאות זה במהלך הפיתוח של המוצרים המותאמים אישית.

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

 

תגובות סגורות