14.1.1.5. Memulihkan bootloader¶
Flash firmware normal tidak pernah menyentuh bootloader, sehingga pembaruan firmware yang terputus hampir selalu dapat dipulihkan: jalankan kembali perintah flashing yang sama dari Mem-flash firmware (dfu-util -w menunggu perangkat) atau jalankan kembali Load Custom Firmware selagi kamera masih dalam bootloader-nya. Halaman ini mencakup kasus yang lebih jarang terjadi di mana bootloader itu sendiri rusak dan kamera tidak lagi terdaftar sebagai perangkat DFU saat di-reset.
Bootloader berada di wilayah flash terpisah dari firmware dan filesystem, dan setiap kamera bermerek OpenMV memiliki jalur perangkat keras untuk kembali, sehingga kamera sulit untuk benar-benar tidak dapat dipulihkan. Board Arduino adalah satu-satunya pengecualian -- bootloader mereka tetap dan tidak dapat dipulihkan oleh pengguna.
OpenMV IDE mengotomatiskan semua prosedur pemulihan ini, memandu Anda melalui langkah-langkah perangkat keras (jumper, sakelar, tombol) di sepanjang prosesnya. Bagian-bagian di bawah ini mendokumentasikan apa yang dilakukannya untuk setiap keluarga kamera, untuk saat Anda ingin menjalankan pemulihan sendiri.
14.1.1.5.1. Kamera STM32 (jumper BOOT--RST)¶
Untuk kamera OpenMV STM32 (M4, M7, H7, H7 Plus, Pure Thermal):
Cabut kamera.
Hubungkan kabel jumper antara pin BOOT dan RST.
Sambungkan kembali. Kamera sekarang terdaftar sebagai perangkat ST system DFU (
0483:df11), terlepas dari firmware yang rusak.Flash ulang hanya bootloader -- OpenMV IDE Load Custom Firmware dengan
bootloader.bin, atau:dfu-util -w -d ,0483:df11 -a 0 -s 0x08000000 -D bootloader.binLepas jumper dan sambungkan kembali.
Flash firmware secara normal (lihat Mem-flash firmware).
14.1.1.5.2. OpenMV Cam N6 (jumper BOOT--VCC)¶
Cabut kamera.
Hubungkan kabel jumper antara pin BOOT dan VCC.
Sambungkan kembali. Kamera sekarang terdaftar sebagai perangkat ST system DFU (
0483:df11), terlepas dari bootloader yang rusak.Flash ulang dengan STM32CubeProgrammer (disertakan dalam OpenMV SDK), menggunakan deskriptor tata letak flash yang disertakan bersama
bootloader.bin-- ini menulis ulang bootloader tahap pertama, loader flash eksternal, dan bootloader:STM32_Programmer_CLI -c port=USB1 -d OPENMV_N6/FlashLayout.tsvLepas jumper dan sambungkan kembali.
Flash firmware secara normal (lihat Mem-flash firmware).
14.1.1.5.3. OpenMV Cam RT1062¶
Memulihkan bootloader aman RT1062 memerlukan masuk ke mode serial-download (SDP) ROM chip dengan jumper, menyiapkan RAM flashloader, lalu menulis ulang blok konfigurasi flash, SBL, dan firmware. Urutan manual:
Cabut kamera, pasang jumper pada pin SBL dan 3.3V, dan sambungkan kembali. Chip terdaftar dalam mode SDP ROM (
0x1FC9:0x0135).Siapkan dan mulai RAM flashloader:
sdphost -u 0x1FC9,0x0135 -- write-file 0x20001C00 sdphost_flash_loader.bin sdphost -u 0x1FC9,0x0135 -- jump-address 0x20001C00
Kamera sekarang menjawab sebagai flashloader (
0x15A2:0x0073). Konfigurasikan flash eksternal, tulis blok konfigurasi flash, lalu tulis 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
Tulis firmware dan set fuse sumber boot sehingga chip mem-boot SBL baru dari flash eksternal:
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
Lepas jumper dan matikan/hidupkan kembali kamera.
Peringatan
efuse-program-once 0x06 00000010 adalah penulisan fuse sekali, tidak dapat dibatalkan yang mengatur perangkat untuk boot dari flash eksternal. Ini adalah alasan lain untuk membiarkan OpenMV IDE melakukan pemulihan bootloader RT1062 daripada menjalankan urutan secara manual.
14.1.1.5.4. OpenMV AE3¶
Bootloader aman AE3 tidak dipulihkan melalui USB DFU. Ini ditulis ulang ke dalam MRAM chip dengan Alif Semiconductor's SE Tools (dibundel dengan OpenMV IDE) melalui koneksi ISP serial. Ini adalah prosedur interaktif, hanya untuk pemulihan -- bukan metode flashing rutin -- dan rawan kesalahan jika dilakukan secara manual; dari semua yang ada di halaman ini, ini adalah yang sebaiknya diserahkan kepada OpenMV IDE.
Koneksi. SE Tools berkomunikasi dengan AE3 melalui port ISP serial adapter debug -- antarmuka FTDI 0403:6015 atau CH340 1A86:55D3, bersama dengan J-Link. Pemulihan mengharuskan perangkat dalam mode pemulihan: aktifkan sakelar pemulihan di papan.
SE Tools. OpenMV IDE membundel eksekutabel Alif ini. Mereka berbagi dua file konfigurasi -- isp_config_data.cfg dan global-cfg.db -- yang dibuat oleh maintenance pada koneksi pertama:
Alat |
Tujuan |
|---|---|
|
Query Secure Enclave ( |
|
Perbarui paket sistem Secure Enclave ketika lebih lama dari versi yang dibutuhkan firmware. |
|
Buat citra table-of-contents (TOC) (digunakan untuk penulisan hanya aplikasi). |
|
Tulis citra ke MRAM -- langkah yang memulihkan bootloader. |
Prosedur:
Hubungkan ke AE3 dengan
maintenance; ini meminta port serial dan jenis perangkat, membuatisp_config_data.cfgdanglobal-cfg.dbuntuk alat lainnya.Jika paket sistem Secure Enclave sudah usang,
updateSystemPackagememperbaruinya; matikan/hidupkan kembali ketika diminta.app-write-mram -i "bootloader.bin 0x80000000 firmware_pad.toc 0x8057E000"menulis bootloader dan TOC ke dalam MRAM.AE3 mendaftar ulang sebagai perangkat DFU
37C5:96E3. Jalankan flash empat citra normal dari OpenMV AE3: dfu-util untuk memuat aplikasi.Matikan/hidupkan kembali kamera dan kembalikan sakelar pemulihan ke posisi mati.
Catatan
OpenMV IDE menangani jauh lebih banyak dari jalur normal ini -- firmware Secure Enclave yang rusak, bootloader yang buruk, dan kondisi kegagalan lainnya masing-masing membutuhkan langkah pemulihan tersendiri, dan banyak yang bisa salah di sepanjang jalan. Jika langkah-langkah manual di atas tidak membawa kamera kembali, gunakan OpenMV IDE untuk memulihkannya.