14.1.1.6. การกู้คืนบูตโหลดเดอร์#
การแฟลชเฟิร์มแวร์ตามปกติไม่เคยแตะต้องบูตโหลดเดอร์ ดังนั้นการอัปเดต เฟิร์มแวร์ที่ถูกขัดจังหวะ แทบทุกครั้งสามารถกู้คืนได้: เรียกคำสั่งแฟลชเดิมจาก การแฟลชเฟิร์มแวร์ อีกครั้ง (dfu-util -w จะรอให้อุปกรณ์พร้อม) หรือเรียก Load Custom Firmware อีกครั้งในขณะที่กล้องยังอยู่ในบูตโหลดเดอร์ หน้านี้ครอบคลุมกรณีที่พบได้น้อยกว่าซึ่ง บูตโหลดเดอร์เอง ได้รับความเสียหายและกล้องไม่สามารถแสดงตัวเป็นอุปกรณ์ DFU เมื่อรีเซ็ต
บูตโหลดเดอร์อยู่ในบริเวณแฟลชแยกต่างหากจากเฟิร์มแวร์และระบบไฟล์ และกล้องทุกรุ่นที่มีตราสินค้า OpenMV มีเส้นทางฮาร์ดแวร์สำรอง ดังนั้นกล้องจึงยากที่จะทำให้ไม่สามารถกู้คืนได้อย่างถาวร ยกเว้นบอร์ด Arduino เท่านั้น -- บูตโหลดเดอร์ของ Arduino เป็นแบบคงที่และผู้ใช้ไม่สามารถกู้คืนเองได้
OpenMV IDE ทำให้กระบวนการกู้คืนทั้งหมดเหล่านี้เป็นอัตโนมัติ โดยแนะนำคุณผ่านขั้นตอนฮาร์ดแวร์ (จัมเปอร์ สวิตช์ ปุ่ม) ตลอดกระบวนการ ส่วนต่าง ๆ ด้านล่างบันทึกขั้นตอนสำหรับแต่ละกลุ่มกล้อง เพื่อให้คุณสามารถดำเนินการกู้คืนด้วยตนเองได้
14.1.1.6.1. กล้อง STM32 (จัมเปอร์ BOOT--RST)#
สำหรับกล้อง OpenMV รุ่น STM32 (M4, M7, H7, H7 Plus, Pure Thermal):
ถอดสายกล้องออก
ต่อสายจัมเปอร์ระหว่างพิน BOOT และ RST
เชื่อมต่อใหม่ กล้องจะแสดงตัวเป็นอุปกรณ์ ST system DFU (
0483:df11) โดยไม่ขึ้นกับเฟิร์มแวร์ที่เสียหายแฟลชเฉพาะบูตโหลดเดอร์ -- ใช้ Load Custom Firmware ใน OpenMV IDE พร้อม
bootloader.binหรือ:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binถอดจัมเปอร์และเชื่อมต่อใหม่
แฟลชเฟิร์มแวร์ตามปกติ (ดู การแฟลชเฟิร์มแวร์)
14.1.1.6.2. OpenMV Cam N6 (จัมเปอร์ BOOT--VCC)#
ถอดสายกล้องออก
ต่อสายจัมเปอร์ระหว่างพิน BOOT และ VCC
เชื่อมต่อใหม่ กล้องจะแสดงตัวเป็นอุปกรณ์ ST system DFU (
0483:df11) โดยไม่ขึ้นกับบูตโหลดเดอร์ที่เสียหายแฟลชใหม่ด้วย STM32CubeProgrammer (รวมอยู่ใน OpenMV SDK) โดยใช้ตัวบ่งชี้ flash-layout ที่ส่งมาพร้อมกับ
bootloader.bin-- จะเขียนทับบูตโหลดเดอร์ระยะแรก ตัวโหลด external-flash และบูตโหลดเดอร์:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvถอดจัมเปอร์และเชื่อมต่อใหม่
แฟลชเฟิร์มแวร์ตามปกติ (ดู การแฟลชเฟิร์มแวร์)
14.1.1.6.3. OpenMV Cam RT1062#
การสร้าง secure bootloader ของ RT1062 ขึ้นใหม่ต้องการเข้าสู่โหมด ROM serial-download (SDP) ของชิปด้วยจัมเปอร์ วาง RAM flashloader จากนั้นเขียนทับ flash configuration block, SBL และเฟิร์มแวร์ ขั้นตอนดำเนินการด้วยตนเอง:
ถอดสายกล้อง ต่อจัมเปอร์ที่พิน SBL และ 3.3V แล้วเชื่อมต่อใหม่ ชิปจะแสดงตัวในโหมด SDP ROM (
0x1FC9:0x0135)วางและเริ่ม RAM flashloader:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
กล้องจะตอบสนองในฐานะ flashloader (
0x15A2:0x0073) กำหนดค่า external flash เขียน flash configuration block จากนั้นเขียน SBL:blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xC0000008 word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60000000 0x1000 blhost -u 0x15A2,0x0073 -- fill-memory 0x2000 4 0xF000000F word blhost -u 0x15A2,0x0073 -- configure-memory 9 0x2000 blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60001000 <sbl_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60001000 blhost_flash_loader.bin
เขียนเฟิร์มแวร์และตั้งค่า boot-source fuse เพื่อให้ชิปบูต SBL ใหม่จาก external flash:
blhost -u 0x15A2,0x0073 -t 120000 -- flash-erase-region 0x60040000 <firmware_size> blhost -u 0x15A2,0x0073 -- write-memory 0x60040000 firmware.bin blhost -u 0x15A2,0x0073 -- efuse-program-once 0x06 00000010 blhost -u 0x15A2,0x0073 -- reset
ถอดจัมเปอร์และปิดแล้วเปิดกล้องใหม่
Warning
efuse-program-once 0x06 00000010 คือการเขียน fuse แบบ ครั้งเดียวและไม่สามารถย้อนกลับได้ ซึ่งตั้งค่าให้อุปกรณ์บูตจาก external flash นี่เป็นอีกเหตุผลที่ควรให้ OpenMV IDE ดำเนินการกู้คืนบูตโหลดเดอร์ RT1062 แทนการรันลำดับขั้นตอนด้วยตนเอง
14.1.1.6.4. OpenMV AE3#
secure bootloader ของ AE3 ไม่ ได้รับการกู้คืนผ่าน USB DFU แต่จะถูกเขียนทับเข้า MRAM ของชิปด้วย Alif Semiconductor's SE Tools (รวมอยู่กับ OpenMV IDE) ผ่านการเชื่อมต่อ serial ISP นี่เป็นกระบวนการแบบโต้ตอบและใช้สำหรับกู้คืนเท่านั้น -- ไม่ใช่วิธีแฟลชตามปกติ -- และมีความเสี่ยงเกิดข้อผิดพลาดหากทำด้วยตนเอง จากทุกอย่างในหน้านี้ นี่คือสิ่งที่ควรปล่อยให้ OpenMV IDE จัดการ
การเชื่อมต่อ SE Tools สื่อสารกับ AE3 ผ่านพอร์ต serial ISP ของ debug adapter -- อินเทอร์เฟซ FTDI 0403:6015 หรือ CH340 1A86:55D3 ร่วมกับ J-Link การกู้คืนต้องวางอุปกรณ์ใน recovery mode: เปิดสวิตช์กู้คืนบนบอร์ด
SE Tools OpenMV IDE รวมไฟล์ปฏิบัติการ Alif เหล่านี้ไว้ด้วย โดยใช้ไฟล์กำหนดค่าร่วมกันสองไฟล์ -- isp_config_data.cfg และ global-cfg.db -- ที่สร้างโดย maintenance เมื่อเชื่อมต่อครั้งแรก:
เครื่องมือ | วัตถุประสงค์ |
|---|---|
| ตรวจสอบ Secure Enclave ( |
| อัปเดต Secure Enclave system package เมื่อเวอร์ชันเก่ากว่าที่เฟิร์มแวร์ต้องการ |
| สร้างภาพ table-of-contents (TOC) (ใช้สำหรับการเขียนเฉพาะแอปพลิเคชัน) |
| เขียนภาพลงใน MRAM -- ขั้นตอนที่กู้คืนบูตโหลดเดอร์ |
ขั้นตอน:
เชื่อมต่อกับ AE3 ด้วย
maintenance; โปรแกรมจะถามพอร์ตซีเรียลและประเภทอุปกรณ์ สร้างisp_config_data.cfgและglobal-cfg.dbสำหรับเครื่องมืออื่น ๆหาก Secure Enclave system package ล้าสมัย
updateSystemPackageจะอัปเดต; ปิดแล้วเปิดเครื่องใหม่เมื่อระบบแจ้งapp-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"เขียนบูตโหลดเดอร์และ TOC ลงใน MRAMAE3 จะแสดงตัวใหม่เป็นอุปกรณ์ DFU
37C5:96E3เรียกใช้การแฟลชภาพสี่ภาพตามปกติจาก OpenMV AE3: dfu-util เพื่อโหลดแอปพลิเคชันปิดแล้วเปิดกล้องใหม่และปิดสวิตช์กู้คืนกลับ
Note
OpenMV IDE จัดการกับสถานการณ์ที่ซับซ้อนกว่านี้มาก -- Secure Enclave firmware ที่เสียหาย บูตโหลดเดอร์ที่ผิดพลาด และสถานะความล้มเหลวอื่น ๆ แต่ละอย่างต้องการขั้นตอนกู้คืนของตัวเอง และสิ่งต่าง ๆ มากมายอาจผิดพลาดได้ระหว่างทาง หากขั้นตอนด้วยตนเองข้างต้นไม่สามารถนำกล้องกลับมาได้ ให้ใช้ OpenMV IDE เพื่อกู้คืน