14.1. Desarrollo de firmware

Estas páginas son para desarrolladores de firmware – personas que quieren modificar el código C que se ejecuta en la OpenMV Cam, no solo escribir scripts de MicroPython. Cubren todo el ciclo: configurar un editor, instalar la cadena de herramientas de compilación, compilar el firmware para cada placa compatible, grabar tu compilación en una cámara y depurarla en hardware real con una sonda J-Link y depuración paso a paso a nivel de código fuente en VS Code.

Al final deberías ser capaz de tomar una máquina limpia, compilar el firmware, ponerlo en una cámara, establecer un punto de interrupción en el código fuente C y avanzar el procesador paso a paso.

Nota

El firmware de OpenMV es un fork de MicroPython con la biblioteca de visión artificial, los controladores y los ports de placas de OpenMV añadidos. El código fuente está en github.com/openmv/openmv. Los módulos de Python image / ml / csi que usas en los scripts son código C en este repositorio.

14.1.1. Cómo funciona la compilación

Vale la pena entender dos cosas antes de empezar, porque explican todas las instrucciones siguientes:

  • La compilación está dirigida por el SDK. No instalas el compilador ARM, CMake, Python ni las herramientas de ST tú mismo. El repositorio fija una versión exacta del SDK de OpenMV (el archivo SDK_VERSION1.6.0 al momento de escribir esto), y make sdk descarga y descomprime ese SDK en ~/openmv-sdk-<version>/. La compilación entonces antepone los directorios de gcc, llvm, cmake, python y las herramientas de ST del SDK al PATH. Esto significa que todos compilan con la misma cadena de herramientas, y la configuración del host es mínima.

  • No hay compilación nativa para Windows. La cadena de herramientas y los scripts de compilación solo están dirigidos a Linux (x86-64) y macOS (arm64). En Windows compilas dentro de WSL (Subsistema de Windows para Linux), que es un entorno Linux real – así que una vez instalado WSL, los usuarios de Windows siguen exactamente las instrucciones de Linux. También son opciones una compilación basada en Docker y una máquina virtual Linux.

La secuencia de alto nivel en cualquier sistema compatible es siempre:

  1. Instalar un editor (VS Code).

  2. Conseguir un shell similar a Linux (Linux nativo, macOS o WSL en Windows).

  3. Clonar el repositorio y sus submódulos.

  4. make sdk – instalación única de la cadena de herramientas.

  5. make -C lib/micropython/mpy-cross – compilar el compilador de bytecode.

  6. make TARGET=<board> – compilar el firmware.

  7. Grabarlo (OpenMV IDE o dfu-util).

  8. Opcionalmente, conectar un J-Link y depurarlo.

Las páginas siguientes recorren cada paso en orden.