14.1.1.5. การกู้คืนบูตโหลดเดอร์¶
การแฟลชเฟิร์มแวร์ตามปกติไม่เคยแตะต้องบูตโหลดเดอร์ ดังนั้นการอัปเดต เฟิร์มแวร์ที่ถูกขัดจังหวะ แทบทุกครั้งสามารถกู้คืนได้: เรียกคำสั่งแฟลชเดิมจาก การแฟลชเฟิร์มแวร์ อีกครั้ง (dfu-util -w จะรอให้อุปกรณ์พร้อม) หรือเรียก Load Custom Firmware อีกครั้งในขณะที่กล้องยังอยู่ในบูตโหลดเดอร์ หน้านี้ครอบคลุมกรณีที่พบได้น้อยกว่าซึ่ง บูตโหลดเดอร์เอง ได้รับความเสียหายและกล้องไม่สามารถแสดงตัวเป็นอุปกรณ์ DFU เมื่อรีเซ็ต
บูตโหลดเดอร์อยู่ในบริเวณแฟลชแยกต่างหากจากเฟิร์มแวร์และระบบไฟล์ และกล้องทุกรุ่นที่มีตราสินค้า OpenMV มีเส้นทางฮาร์ดแวร์สำรอง ดังนั้นกล้องจึงยากที่จะทำให้ไม่สามารถกู้คืนได้อย่างถาวร ยกเว้นบอร์ด Arduino เท่านั้น -- บูตโหลดเดอร์ของ Arduino เป็นแบบคงที่และผู้ใช้ไม่สามารถกู้คืนเองได้
OpenMV IDE ทำให้กระบวนการกู้คืนทั้งหมดเหล่านี้เป็นอัตโนมัติ โดยแนะนำคุณผ่านขั้นตอนฮาร์ดแวร์ (จัมเปอร์ สวิตช์ ปุ่ม) ตลอดกระบวนการ ส่วนต่าง ๆ ด้านล่างบันทึกขั้นตอนสำหรับแต่ละกลุ่มกล้อง เพื่อให้คุณสามารถดำเนินการกู้คืนด้วยตนเองได้
14.1.1.5.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.5.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.5.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.5.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 เพื่อกู้คืน