14.1.1.3.5.2. OpenMV AE3: dfu-util¶
OpenMV AE3 sử dụng bootloader openmv_dfu (VID:PID ứng dụng 37C5:16E3, VID:PID DFU 37C5:96E3), nhưng đây là thiết bị dual-core: một Alif Ensemble với lõi Cortex-M55 hiệu năng cao (HP) và hiệu suất cao (HE). Để vào bootloader, chỉ cần cắm camera vào: nó lắng nghe trong chốc lát khi khởi động, và -w khiến dfu-util chờ nó xuất hiện. Mỗi lõi chạy ảnh firmware riêng và có ROMFS chỉ đọc riêng, vì vậy một lần nạp đầy đủ cần bốn ảnh:
Lõi | Lệnh firmware | Lệnh ROMFS |
|---|---|---|
M55-HP |
|
|
M55-HE |
|
|
Một lần nạp đầy đủ ghi bốn ảnh, với --reset chỉ ở lần truyền cuối:
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
Để chỉ thay thế firmware của một lõi, nạp chỉ alt của lõi đó (-a 1 cho HP, -a 2 cho HE); để thay thế ROMFS của một lõi, nạp alt ROMFS của lõi đó (-a 6 cho HP / romfs0, -a 3 cho HE / romfs1).
14.1.1.3.5.2.1. Khởi tạo Everspin MRAM¶
Các bản build đặc biệt của OpenMV AE3 thay thế bộ nhớ flash ngoài tiêu chuẩn -- chứa hệ thống tệp FAT nội bộ và ROMFS của lõi HP -- bằng chip Everspin MRAM. Phần này chỉ áp dụng cho các bản build đó. Một chip Everspin chưa bao giờ được khởi tạo, hoặc có các thanh ghi cấu hình bị hỏng, không phản hồi các lệnh ghi, vì vậy các lần truyền DFU tới những alt đó thất bại cho đến khi chip được khởi tạo lại.
Bootloader cung cấp điều này như một alt DFU nữa: tải xuống file khóa vào -a 7 kích hoạt chuỗi khởi tạo (đặt lại JESD, khởi tạo thanh ghi cấu hình, xóa khóa và hai lần xóa toàn chip). Bản thân lần tải xuống không lưu trữ gì -- phân vùng kiểm tra rằng file bắt đầu bằng khóa 16 byte dự kiến và chạy chuỗi, tối đa một lần mỗi phiên bootloader.
Tạo file khóa bằng tools/flash_recovery_key.py từ kho firmware (nó ghi một key.bin 4 KB), sau đó tải xuống:
python tools/flash_recovery_key.py
dfu-util -w -d ,37C5:96E3 -a 7 -D key.bin
Chip trống sau đó: nạp lại ROMFS của lõi HP (-a 6 -D romfs0.img), và hệ thống tệp FAT nội bộ tự định dạng lại ở lần khởi động tiếp theo.
Xem thêm
Để xóa hệ thống tệp FAT nội bộ của camera -- cách khắc phục khi main.py lỗi hoặc hệ thống tệp bị hỏng khiến camera không thể khởi động -- xem Xóa filesystem nội bộ.
Để phục hồi bản thân bootloader của camera, xem Khôi phục bootloader.