14.1. 韌體開發¶
這些頁面是為韌體開發者所準備的 — 也就是想要修改在 OpenMV Cam 上執行的 C 程式碼,而不只是撰寫 MicroPython 指令碼的人。內容涵蓋整個流程:設定編輯器、安裝組建工具鏈、為每一款支援的開發板編譯韌體、將你的組建燒錄到相機上,以及在真實硬體上使用 J-Link 探針進行除錯並在 VS Code 中進行單步原始碼層級的除錯。
讀完之後,你應該能夠拿一台乾淨的機器、組建韌體、將其放上相機、在 C 原始碼中設定中斷點,並對處理器進行單步執行。
備註
OpenMV 韌體是 MicroPython 的一個分支,加入了 OpenMV 機器視覺函式庫、驅動程式與開發板移植。原始碼位於 github.com/openmv/openmv。你在指令碼中使用的 Python image / ml / csi 模組,正是此儲存庫中的 C 程式碼。
14.1.1. 組建的運作方式¶
在開始之前,有兩件事值得先了解,因為它們能解釋以下所有的說明:
組建由 SDK 驅動。 你不需要自行安裝 ARM 編譯器、CMake、Python 或 ST 工具。儲存庫釘選了一個確切的 OpenMV SDK 版本(
SDK_VERSION檔案 — 撰寫本文時為1.6.0),而make sdk會下載該 SDK 並解壓縮到~/openmv-sdk-<version>/。組建接著會將 SDK 的gcc、llvm、cmake、python與 ST 工具目錄加到PATH的最前面。這表示每個人都使用完全相同的工具鏈進行組建,且主機的設定極為簡單。沒有原生的 Windows 組建。 工具鏈與組建指令碼僅針對 Linux(x86-64)與 macOS(arm64)。在 Windows 上,你需在 WSL(Windows Subsystem for Linux)中進行組建,那是一個真正的 Linux 環境 — 因此一旦安裝好 WSL,Windows 使用者就能完全照著 Linux 的說明操作。以 Docker 為基礎的組建以及 Linux 虛擬機也是可選方案。
在任何受支援的系統上,高階流程始終如下:
安裝編輯器(VS Code)。
取得一個類 Linux 的 shell(原生 Linux、macOS,或 Windows 上的 WSL)。
複製儲存庫及其子模組。
make sdk— 一次性的工具鏈安裝。make -C lib/micropython/mpy-cross— 組建位元組碼編譯器。make TARGET=<board>— 組建韌體。燒錄它(OpenMV IDE 或
dfu-util)。可選擇性地接上 J-Link 並進行除錯。
下方頁面將依序逐步說明每個步驟。