14.1. Phát triển firmware

Các trang này dành cho các nhà phát triển firmware -- những người muốn thay đổi mã C chạy trên OpenMV Cam, không chỉ viết các tập lệnh MicroPython. Chúng bao gồm toàn bộ chu trình: thiết lập trình soạn thảo, cài đặt chuỗi công cụ build, biên dịch firmware cho mọi bo mạch được hỗ trợ, nạp bản build lên camera và debug nó trên phần cứng thực với đầu dò J-Link và debug ở cấp độ nguồn từng bước trong VS Code.

Khi hoàn thành, bạn sẽ có thể bắt đầu từ máy sạch, build firmware, đưa nó lên camera, đặt điểm dừng trong mã nguồn C và thực thi từng bước bộ xử lý.

Ghi chú

Firmware OpenMV là một nhánh của MicroPython với thư viện thị giác máy OpenMV, các driver và các cổng bo mạch được thêm vào. Mã nguồn nằm tại github.com/openmv/openmv. Các module Python image / ml / csi bạn dùng trong các tập lệnh là mã C trong kho này.

14.1.1. Cách build hoạt động

Có hai điều đáng hiểu trước khi bắt đầu, vì chúng giải thích mọi hướng dẫn dưới đây:

  • Build được điều khiển bởi SDK. Bạn không cần tự cài compiler ARM, CMake, Python hay các công cụ ST. Kho lưu trữ ghim một phiên bản OpenMV SDK chính xác (file SDK_VERSION -- 1.6.0 tại thời điểm viết), và make sdk tải xuống và giải nén SDK đó vào ~/openmv-sdk-<version>/. Sau đó build thêm các thư mục gcc, llvm, cmake, python và công cụ ST của SDK vào đầu PATH. Điều này có nghĩa là mọi người build với đúng cùng một chuỗi công cụ, và việc thiết lập host rất nhỏ gọn.

  • Không có build Windows gốc. Chuỗi công cụ và các tập lệnh build chỉ nhắm đến Linux (x86-64) và macOS (arm64). Trên Windows bạn build trong WSL (Windows Subsystem for Linux), đây là môi trường Linux thực -- vì vậy sau khi cài WSL, người dùng Windows làm theo hướng dẫn Linux y hệt. Build dựa trên Docker và VM Linux cũng là các lựa chọn.

Chuỗi cấp cao trên bất kỳ hệ thống được hỗ trợ nào luôn là:

  1. Cài trình soạn thảo (VS Code).

  2. Lấy một shell kiểu Linux (Linux gốc, macOS hoặc WSL trên Windows).

  3. Clone kho lưu trữ và các submodule của nó.

  4. make sdk -- cài chuỗi công cụ một lần.

  5. make -C lib/micropython/mpy-cross -- build trình biên dịch bytecode.

  6. make TARGET=<board> -- build firmware.

  7. Nạp nó (OpenMV IDE hoặc dfu-util).

  8. Tùy chọn, gắn J-Link và debug nó.

Các trang dưới đây hướng dẫn từng bước theo thứ tự.