14.1.1.3. Nạp firmware

Sau khi có firmware.bin (và romfs<n>.img đi kèm) từ Biên dịch firmware, hãy nạp nó lên camera. OpenMV IDE là phương pháp được khuyến nghị; quy trình dòng lệnh khác nhau tùy theo dòng camera và được ghi chép riêng cho từng dòng ở các trang được liên kết ở cuối. Bản thân bootloader được phục hồi riêng -- xem Khôi phục bootloader.

14.1.1.3.2. Windows: cài đặt driver USB

Windows không có sẵn driver cho các giao diện USB DFU, SDP và ISP của camera, vì vậy các công cụ dòng lệnh (dfu-util, các công cụ NXP SPSDK, Alif SE Tools) không thể phát hiện thiết bị cho đến khi driver WinUSB được gán vào. Trình cài đặt Windows của OpenMV IDE sẽ cài tất cả các driver này, vì vậy cách đơn giản nhất là cài OpenMV IDE một lần -- sau đó cả IDE lẫn các công cụ dòng lệnh đều hoạt động. Đây là lý do nạp firmware qua GUI thành công trên máy Windows mới trong khi dfu-util độc lập thì không.

Nếu không thể cài IDE, hãy chạy trình cài driver phù hợp từ thư mục share/qtcreator/drivers/ của OpenMV IDE với quyền Administrator:

Trình cài driver

Thiết bị USB được gán

openmv\openmv.cmd

Các thiết bị OpenMV DFU và các giao diện RT1062 SPSDK (0x1FC9:0x0135 SDP ROM và 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Các thiết bị Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

Bộ chuyển đổi FTDI 0403:6015 dùng để phục hồi bootloader AE3

DFU_Driver\STM32Bootloader.bat

Thiết bị DFU hệ thống ST 0483:df11 dùng để phục hồi bootloader STM32

Ngoài ra, có thể gán WinUSB cho VID:PID cụ thể bằng Zadig hoặc pnputil. Không có cách nạp firmware dòng lệnh nào trên Windows hoạt động nếu không làm bước này. Linux và macOS không cần cài driver (Linux chỉ cần các quy tắc udev).

14.1.1.3.3. Nạp firmware qua SWD (make deploy)

Nếu đầu dò debug đã được nối với camera -- như khi debugging -- chu trình chỉnh sửa-build-nạp nhanh nhất sẽ bỏ qua USB DFU và lập trình chip trực tiếp qua SWD. Trên các camera STM32:

make -j$(nproc) TARGET=<TARGET> deploy

Lệnh này nạp firmware vừa build qua STM32_Programmer_CLI (từ SDK) qua đầu dò đang kết nối. Không cần vào bootloader, không cần liệt kê lại USB, và không cần đổi cáp: build, chạy deploy, và camera khởi động lại với code mới. Đây là quy trình được khuyến nghị trong quá trình phát triển firmware tích cực. Dùng DFU hoặc OpenMV IDE khi nạp firmware không có đầu dò hoặc khi phân phối firmware cho người khác.

14.1.1.3.4. Vào chế độ bootloader / DFU

Nạp firmware yêu cầu camera phải ở chế độ bootloader / DFU. Có ba cách để vào:

  • Khi cắm vào (bất kỳ camera nào). Mỗi camera chạy bootloader trong một khoảng thời gian ngắn khi khởi động, trước khi firmware bắt đầu -- cắm camera vào USB và bootloader đang lắng nghe trong chốc lát.

  • Từ IDE (bất kỳ camera nào). Với camera đã cắm vào, Tools -> Force enter OpenMV Cam bootloader khởi động lại vào chế độ bootloader.

  • Nút reset Arduino. Trên các bo mạch Arduino, nhấp đúp nút reset để vào chế độ bootloader.

14.1.1.3.5. Nạp firmware dòng lệnh theo dòng camera

Các trang dưới đây cho thấy những gì OpenMV IDE thực hiện bên dưới cho từng dòng camera, dành cho khi bạn muốn tự chạy quá trình nạp -- trong các tập lệnh, trong CI, hoặc trên dây chuyền sản xuất. Để nạp firmware hàng ngày chúng tôi khuyến nghị OpenMV IDE.