14.1.1.3.5.2. OpenMV AE3: dfu-util¶
OpenMV AE3 ใช้บูตโหลดเดอร์ openmv_dfu (แอปพลิเคชัน VID:PID 37C5:16E3, DFU VID:PID 37C5:96E3) แต่เป็นอุปกรณ์ dual-core: Alif Ensemble ที่มีคอร์ Cortex-M55 ประสิทธิภาพสูง (HP) และประสิทธิภาพสูง (HE) ในการเข้าสู่บูตโหลดเดอร์ เพียงเสียบกล้อง: มันรับฟังชั่วคราวเมื่อเปิดเครื่อง และ -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 ของคอร์เดียว ให้แฟลช ROMFS alt ของคอร์นั้น (-a 6 สำหรับ HP / romfs0, -a 3 สำหรับ HE / romfs1)
14.1.1.3.5.2.1. การเริ่มต้น Everspin MRAM¶
บิลด์พิเศษของ OpenMV AE3 แทนที่แฟลชภายนอกมาตรฐาน -- ซึ่งเก็บระบบไฟล์ FAT ภายในและ ROMFS ของคอร์ HP -- ด้วยชิป Everspin MRAM ส่วนนี้ใช้ได้กับบิลด์เหล่านั้นเท่านั้น ชิ้นส่วน Everspin ที่ไม่เคยถูกเริ่มต้น หรือรีจิสเตอร์การกำหนดค่าถูกทำให้เสียหาย จะไม่ตอบสนองต่อการเขียน ดังนั้นการถ่ายโอน DFU ไปยัง alt เหล่านั้นจะล้มเหลวจนกว่าชิปจะถูกเริ่มต้นใหม่
บูตโหลดเดอร์แสดงสิ่งนี้เป็น DFU alt อีกตัวหนึ่ง: การดาวน์โหลดไฟล์คีย์ไปยัง -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 ภายในจะฟอร์แมตตัวเองในการบูตครั้งถัดไป
See also
หากต้องการลบระบบไฟล์ FAT ภายในของกล้อง -- วิธีแก้ไขเมื่อ main.py ที่ผิดพลาดหรือระบบไฟล์ที่เสียหายทำให้กล้องไม่สามารถบูตได้ -- ดู การลบ filesystem ภายใน
หากต้องการกู้คืนบูตโหลดเดอร์ของกล้องเอง ดู การกู้คืนบูตโหลดเดอร์