OTA et DFU¶
DFU v2 est le middleware de mise à jour du firmware de SiFli-SDK, destiné aux opérations DFU et OTA. Il propose trois canaux de transport : USB-CDC, BLE et Bluetooth PAN. Chacun dispose d'une application utilisateur et d'un sous-projet de chargeur correspondant.
Choisissez d'abord le mode de transfert adapté au processus de mise à jour du produit, puis partez de l'exemple d'application correspondant. Le chargeur associé est intégré automatiquement à la compilation.
Structure 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
L'application de chaque canal est conçue pour fonctionner avec le chargeur correspondant. Lors de la compilation de l'application, le SDK ajoute automatiquement ce chargeur comme sous-projet au moyen de la logique AddDFU_* de building.py ; il n'est donc pas nécessaire de le compiler séparément. Dans l'exemple BLE, l'application en cours d'exécution peut mettre à jour les images de firmware autres que celles du HCPU ; la mise à jour du HCPU nécessite de passer par le chargeur.
Compatibilité et configuration¶
DFU v2 est désactivé par défaut ; activez explicitement USING_DFU_V2 dans la configuration du middleware. Il est disponible uniquement sur le HCPU (BF0_HCPU) et ne peut pas être activé avec les anciennes options DFU BSP_USING_DFU ou USING_DFU_PAN. L'activation de DFU v2 sélectionne FlashDB (PKG_USING_FLASHDB) pour permettre la reprise des transferts interrompus.
USB CDC et BLE sont des transports en mode push mutuellement exclusifs : choisissez DFU_V2_USE_CDC_TRANSPORT ou DFU_V2_USE_BLE_TRANSPORT. Bluetooth PAN utilise un transport en mode pull ; activez DFU_V2_USE_PAN_TRANSPORT avec le mode initié par l'appareil (DFU_V2_USE_DEVICE_MODE) et WebClient. Avant de définir l'architecture de mise à jour du produit, vérifiez les options disponibles dans la version du SDK cible.
Choisir un canal de mise à jour¶
| Canal | Chemin de mise à jour documenté | Cas d'usage type |
|---|---|---|
| USB-CDC | Un PC met à jour l'appareil via un port série virtuel USB. | Production, laboratoire et maintenance filaire. |
| BLE | Une application BLE en mode périphérique reçoit une mise à jour. | Une application mobile met à jour un produit connecté. |
| Bluetooth PAN | L'appareil utilise le réseau Bluetooth PAN pour télécharger une mise à jour depuis un serveur HTTP. | Produits connectés qui téléchargent eux-mêmes leur image de mise à jour. |
Vérifier le plan de mise à jour du produit¶
- Le transport sélectionné correspond au chemin de connexion disponible du produit.
- L'application et le chargeur correspondant sont compilés et testés dans le cadre d'un même parcours de mise à jour.
- La prise en charge de la carte cible est confirmée dans le README de l'exemple.
- Le comportement en cas d'interruption, les mécanismes de récupération et la procédure d'intervention en usine sont définis pour le produit.
- L'authenticité et l'intégrité de l'image de firmware, la politique de gestion des versions et la capacité des partitions sont vérifiées pour la version du produit.
- Les journaux d'échec de mise à jour restent récupérables même si l'application ne fonctionne plus.
Compiler un exemple DFU v2¶
Depuis le répertoire project/ d'un exemple, lancez la compilation suivante :
La liste des cartes prises en charge figure dans le README de chaque exemple. La configuration du middleware DFU v2 se trouve dans middleware/dfu_v2 du SiFli-SDK.
Exemples SDK DFU v2¶
| Canal | Application utilisateur | Sous-projet du chargeur |
|---|---|---|
| USB-CDC | cdc/app |
cdc/loader |
| BLE | ble/app |
ble/loader |
| Bluetooth PAN | bt_pan/app |
bt_pan/loader |
Pour l'index source complet et la navigation SDK actuelle, voir les exemples DFU v2 dans SiFli-SDK.
Dernière mise à jour: