OTA e DFU¶
DFU v2 é o middleware do SiFli-SDK para fluxos de atualização de firmware por DFU e OTA. Ele oferece três canais de transporte: USB-CDC, BLE e Bluetooth PAN. Cada canal inclui um aplicativo de usuário e o subprojeto de carregador correspondente.
Comece escolhendo o transporte compatível com o caminho de atualização do produto. Em seguida, use o exemplo de aplicação correspondente; o carregador associado é incluído automaticamente na compilação.
Estrutura do 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
O aplicativo e o carregador de cada canal foram projetados para funcionar em conjunto. Ao compilar o aplicativo, o SDK usa a lógica AddDFU_* de building.py para incluir o carregador correspondente como subprojeto; não o compile separadamente. No exemplo BLE, o aplicativo em execução pode atualizar imagens que não sejam de HCPU; para atualizar o HCPU, é preciso alternar para o carregador.
Compatibilidade e configuração¶
O DFU v2 vem desabilitado por padrão; habilite explicitamente USING_DFU_V2 na configuração do middleware. Ele está disponível somente na HCPU (BF0_HCPU) e não pode ser habilitado junto com as opções legadas de DFU BSP_USING_DFU ou USING_DFU_PAN. Ao habilitar o DFU v2, a configuração seleciona o FlashDB (PKG_USING_FLASHDB) para permitir a retomada de transferências.
USB CDC e BLE usam transporte push e são mutuamente exclusivos; escolha DFU_V2_USE_CDC_TRANSPORT ou DFU_V2_USE_BLE_TRANSPORT. O Bluetooth PAN usa transporte pull; habilite DFU_V2_USE_PAN_TRANSPORT junto com o modo iniciado pelo dispositivo (DFU_V2_USE_DEVICE_MODE) e o WebClient. Antes de definir a arquitetura de atualização do produto, confirme as opções disponíveis na versão do SDK de destino.
Escolher um canal de atualização¶
| Canal | Caminho de atualização documentado | Aplicação típica |
|---|---|---|
| USB-CDC | Um PC atualiza o dispositivo por uma porta serial virtual USB. | Produção, laboratório e manutenção com conexão cabeada. |
| BLE | Um aplicativo BLE no papel de periférico recebe a atualização. | Um aplicativo móvel atualiza um produto conectado. |
| Bluetooth PAN | O dispositivo usa a rede Bluetooth PAN para baixar a atualização de um servidor HTTP. | Produtos conectados que obtêm a própria imagem de atualização. |
Revisão da atualização do produto¶
- O transporte escolhido corresponde às opções de conexão disponíveis no produto.
- O aplicativo e o carregador correspondente são compilados e testados como um único fluxo de atualização.
- A compatibilidade com a placa de destino foi confirmada no README do exemplo.
- Foram definidos o comportamento em caso de interrupção, a recuperação e o procedimento de assistência em fábrica.
- Para a versão do produto, foram revisadas a autenticidade e a integridade da imagem de firmware, a política de versões e a capacidade das partições.
- É possível coletar os registros de uma atualização malsucedida sem depender de um aplicativo funcional.
Compilar um exemplo DFU v2¶
No diretório project/ do exemplo, compile com:
O README de cada exemplo lista as placas compatíveis. A configuração do middleware DFU v2 fica em middleware/dfu_v2 no SiFli-SDK.
Exemplos DFU v2 do SDK¶
| Canal | Aplicativo de usuário | Subprojeto do carregador |
|---|---|---|
| USB-CDC | cdc/app |
cdc/loader |
| BLE | ble/app |
ble/loader |
| Bluetooth PAN | bt_pan/app |
bt_pan/loader |
Para consultar o índice completo do código-fonte e a navegação atual do SDK, acesse os exemplos DFU v2 do SiFli-SDK.
Última atualização: