OTA y DFU¶
DFU v2 es el middleware de SiFli-SDK para flujos de actualización de firmware DFU y OTA. Ofrece tres canales de transporte: USB-CDC, BLE y Bluetooth PAN. Cada canal incluye una aplicación de usuario y un subproyecto de cargador correspondiente.
Empiece por elegir el transporte que coincida con la ruta de actualización del producto. Después, utilice el ejemplo de aplicación correspondiente; el cargador asociado se incorpora automáticamente a la compilación.
Estructura de DFU v2¶
dfu_v2/
├── cdc/ USB-CDC channel
│ ├── app/ User application and PC update tool
│ └── loader/ CDC DFU loader
├── ble/ BLE channel
│ ├── app/ BLE peripheral application
│ └── loader/ BLE DFU loader
└── bt_pan/ Bluetooth PAN channel
├── app/ Application that downloads firmware from a server
└── loader/ PAN DFU loader
La aplicación de cada canal está diseñada para funcionar con su cargador correspondiente. Al compilarla, el SDK incorpora automáticamente ese cargador como subproyecto mediante la lógica AddDFU_* de building.py; no lo compile por separado. En el ejemplo BLE, la aplicación en ejecución puede actualizar imágenes distintas de la imagen de HCPU; para actualizar la imagen de HCPU, hay que pasar al cargador.
Compatibilidad y configuración¶
DFU v2 está deshabilitado de forma predeterminada; habilite explícitamente USING_DFU_V2 en la configuración del middleware. Solo está disponible en HCPU (BF0_HCPU) y no se puede habilitar junto con las opciones DFU heredadas BSP_USING_DFU o USING_DFU_PAN. Al habilitar DFU v2, la configuración selecciona FlashDB (PKG_USING_FLASHDB) para admitir transferencias reanudables.
USB CDC y BLE son transportes push mutuamente excluyentes: elija DFU_V2_USE_CDC_TRANSPORT o DFU_V2_USE_BLE_TRANSPORT. Bluetooth PAN usa un transporte pull; habilite DFU_V2_USE_PAN_TRANSPORT y el modo iniciado por el dispositivo (DFU_V2_USE_DEVICE_MODE), además de WebClient. Antes de definir la arquitectura de actualización del producto, confirme las opciones disponibles en la versión de SDK de destino.
Elegir un canal de actualización¶
| Canal | Ruta de actualización documentada | Uso habitual |
|---|---|---|
| USB-CDC | Un PC actualiza el dispositivo mediante un puerto serie virtual USB. | Producción, laboratorio y mantenimiento por cable. |
| BLE | Una aplicación BLE en modo periférico recibe la actualización. | Una aplicación móvil actualiza un producto conectado. |
| Bluetooth PAN | El dispositivo utiliza la red Bluetooth PAN para descargar una actualización desde un servidor HTTP. | Productos conectados que descargan su propia imagen de actualización. |
Revisión de la actualización del producto¶
- El transporte elegido coincide con las vías de conexión disponibles en el producto.
- La aplicación y el cargador correspondiente se compilan y prueban como un único flujo de actualización.
- Se ha confirmado que la placa de destino es compatible según el README del ejemplo.
- Se han definido el comportamiento ante interrupciones, la recuperación y el procedimiento de servicio en fábrica.
- Para la versión del producto, se revisan la autenticidad e integridad de la imagen de firmware, la política de versiones y la capacidad de las particiones.
- Se pueden recopilar registros de una actualización fallida sin depender de que la aplicación funcione correctamente.
Compilar un ejemplo DFU v2¶
Desde el directorio project/ del ejemplo, compile con:
El README de cada ejemplo indica las placas compatibles. La configuración del middleware DFU v2 se encuentra en middleware/dfu_v2 de SiFli-SDK.
Ejemplos DFU v2 del SDK¶
| Canal | Aplicación de usuario | Subproyecto del cargador |
|---|---|---|
| USB-CDC | cdc/app |
cdc/loader |
| BLE | ble/app |
ble/loader |
| Bluetooth PAN | bt_pan/app |
bt_pan/loader |
Para ver el índice completo del código fuente y la navegación actual del SDK, consulte los ejemplos DFU v2 de SiFli-SDK.
Última actualización: