14.1.1.3.5.2. OpenMV AE3: dfu-util¶
ה-OpenMV AE3 משתמש במאתחל (bootloader) openmv_dfu (VID:PID של היישום 37C5:16E3, VID:PID של DFU 37C5:96E3), אך זהו התקן דו-ליבתי: Alif Ensemble עם ליבת Cortex-M55 בעלת ביצועים גבוהים (HP) וליבה בעלת יעילות גבוהה (HE). כדי להיכנס למאתחל (bootloader), פשוט חברו את המצלמה: היא מאזינה לזמן קצר בהפעלה, ו--w גורם ל-dfu-util להמתין שתופיע. כל ליבה מריצה תמונת קושחה משלה ובעלת ROMFS לקריאה בלבד משלה, כך שצריבה מלאה כוללת ארבע תמונות:
ליבה |
פקודת קושחה |
פקודת ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
צריבה מלאה כותבת את ארבע התמונות, כאשר --reset מופיע רק בהעברה האחרונה:
dfu-util -w -d ,37C5:96E3 -a 1 -D firmware_M55_HP.bin
dfu-util -w -d ,37C5:96E3 -a 2 -D firmware_M55_HE.bin
dfu-util -w -d ,37C5:96E3 -a 3 -D romfs1.img
dfu-util -w -d ,37C5:96E3 -a 6 --reset -D romfs0.img
כדי להחליף את הקושחה של ליבה אחת בלבד, צרבו רק את ה-alt של אותה ליבה (-a 1 עבור HP, -a 2 עבור HE); כדי להחליף את ה-ROMFS של ליבה אחת, צרבו את ה-alt של ה-ROMFS של אותה ליבה (-a 6 עבור HP / romfs0, -a 3 עבור HE / romfs1).
14.1.1.3.5.2.1. אתחול ה-Everspin MRAM¶
בניות מיוחדות של ה-OpenMV AE3 מחליפות את זיכרון הפלאש (flash) החיצוני הסטנדרטי – המכיל את מערכת הקבצים הפנימית מסוג FAT ואת ה-ROMFS של ליבת ה-HP – בשבב Everspin MRAM. סעיף זה חל על בניות אלה בלבד. רכיב Everspin שמעולם לא אותחל, או שאוגרי התצורה שלו נפגמו, אינו מגיב לכתיבות, ולכן העברות DFU אל אותם alts נכשלות עד שהשבב מאותחל מחדש.
המאתחל (bootloader) חושף זאת כ-alt נוסף של DFU: הורדת קובץ מפתח אל -a 7 מפעילה את רצף האתחול (איפוס JESD, אתחול אוגרי התצורה, הסרת נעילה, ושני מעברי מחיקת שבב מלאה). ההורדה עצמה אינה מאחסנת דבר – המחיצה בודקת שהקובץ מתחיל במפתח הצפוי בן 16 הבייטים ומריצה את הרצף, לכל היותר פעם אחת בכל מושב מאתחל.
צרו את קובץ המפתח באמצעות tools/flash_recovery_key.py ממאגר הקושחה (הוא כותב key.bin בגודל 4 KB), ולאחר מכן הורידו אותו:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
השבב ריק לאחר מכן: צרבו מחדש את ה-ROMFS של ליבת ה-HP (-a 6 -D romfs0.img), ומערכת הקבצים הפנימית מסוג FAT מאתחלת את עצמה (formatting) באתחול הבא.
ראה גם
כדי למחוק את מערכת הקבצים הפנימית מסוג FAT של המצלמה – התיקון כאשר main.py פגום או מערכת קבצים פגומה מונעים מהמצלמה לאתחל – ראו מחיקת מערכת הקבצים הפנימית.
כדי לשחזר את המאתחל (bootloader) עצמו של המצלמה, ראו שחזור המאתחל (bootloader).