14.1.1.3. 燒錄韌體

當你從 建置韌體 取得 firmware.bin(以及其對應的 romfs<n>.img)後,便可將其燒錄到相機上。建議使用 OpenMV IDE;命令列程序則因相機系列而異,並在頁面底部連結的各系列頁面中分別說明。開機載入程式本身則需另外復原 — 請參閱 還原開機載入程式

14.1.1.3.2. Windows:安裝 USB 驅動程式

Windows 沒有內建驅動程式可支援相機的 USB DFU、SDP 與 ISP 介面,因此命令列工具(dfu-util、NXP SPSDK 工具、Alif SE 工具)在未綁定 WinUSB 驅動程式之前無法偵測到該裝置。OpenMV IDE 的 Windows 安裝程式會安裝所有這些驅動程式,因此最簡單的做法就是先安裝一次 OpenMV IDE — 之後 IDE 與命令列工具便都能正常運作。這就是為什麼在全新的 Windows 機器上 GUI 燒錄能成功,而單獨使用 dfu-util 卻不行。

如果無法安裝 IDE,請以系統管理員身分從 OpenMV IDE 的 share/qtcreator/drivers/ 目錄執行對應的驅動程式安裝程式:

驅動程式安裝程式

其綁定的 USB 裝置

openmv\openmv.cmd

OpenMV DFU 裝置,以及 RT1062 SPSDK 介面(0x1FC9:0x0135 SDP ROM 與 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Arduino DFU 裝置(2341:03xx

ftdi\ftdi.cmd

用於 AE3 開機載入程式復原的 FTDI 0403:6015 轉接器

DFU_Driver\STM32Bootloader.bat

用於 STM32 開機載入程式復原的 ST 0483:df11 系統 DFU 裝置

或者,使用 Zadig 或 pnputil 將 WinUSB 綁定到特定的 VID:PID。若未完成此步驟,Windows 上的命令列燒錄將無法運作。Linux 與 macOS 不需安裝任何驅動程式(Linux 僅需要 udev 規則)。

14.1.1.3.3. 透過 SWD 燒錄(make deploy

如果除錯探針已連接到相機 — 就像除錯時那樣 — 最快的「編輯-組建-燒錄」循環會繞過 USB DFU,直接透過 SWD 對晶片進行編程。在 STM32 相機上:

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

這會透過所連接的探針,使用 STM32_Programmer_CLI(來自 SDK)燒錄剛組建好的韌體。過程中沒有進入開機載入程式、沒有 USB 重新列舉,也不需更換纜線:只要組建、執行 deploy,相機就會重新啟動並執行新程式碼。這是在進行韌體開發時的建議工作流程。當沒有探針可用,或要將韌體散布給他人時,再使用 DFU 或 OpenMV IDE。

14.1.1.3.4. 進入開機載入程式 / DFU 模式

燒錄需要相機處於其開機載入程式 / DFU 模式。有三種進入方式:

  • 插入時(任何相機)。 每台相機在通電啟動時,會在韌體開始前的短暫時間內執行其開機載入程式 — 將相機透過 USB 插入,開機載入程式就會短暫地處於監聽狀態。

  • 從 IDE(任何相機)。 在相機已插入的情況下,Tools -> Force enter OpenMV Cam bootloader 會將其重新啟動進入開機載入程式模式。

  • Arduino 重設按鈕。 在 Arduino 板上,連按兩下重設按鈕即可進入開機載入程式模式。

14.1.1.3.5. 依相機系列進行命令列燒錄

下方頁面說明了 OpenMV IDE 針對各相機系列在底層所執行的操作,供你想要自行進行燒錄時參考 — 例如在指令碼中、在 CI 中,或在生產線上。對於日常燒錄,我們建議使用 OpenMV IDE。