OTA и DFU¶
DFU v2 — это промежуточное ПО SiFli-SDK для сценариев обновления прошивки по DFU и OTA. Оно поддерживает три транспортных канала: USB-CDC, BLE и Bluetooth PAN. Для каждого канала предусмотрены пользовательское приложение и соответствующий подпроект загрузчика.
Сначала выберите транспортный канал, соответствующий способу обновления продукта. Затем возьмите за основу пример приложения для этого канала: соответствующий загрузчик автоматически включается в сборку.
Структура 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
Приложение и загрузчик каждого канала рассчитаны на совместное использование. При сборке приложения SDK использует логику AddDFU_* из building.py, чтобы добавить соответствующий загрузчик как подпроект; собирать загрузчик отдельно не нужно. В примере BLE работающее приложение может обновлять образы прошивки, кроме образа прошивки HCPU; для обновления последнего необходимо переключиться на загрузчик.
Совместимость и настройка¶
DFU v2 по умолчанию отключён; явно включите USING_DFU_V2 в конфигурации промежуточного ПО. Он доступен только на HCPU (BF0_HCPU) и не может быть включён вместе с устаревшими параметрами DFU BSP_USING_DFU или USING_DFU_PAN. При включении DFU v2 конфигурация выбирает FlashDB (PKG_USING_FLASHDB) для поддержки возобновляемой передачи.
USB CDC и BLE используют передачу типа push и являются взаимоисключающими каналами: выберите DFU_V2_USE_CDC_TRANSPORT или DFU_V2_USE_BLE_TRANSPORT. Bluetooth PAN использует передачу типа pull; включите DFU_V2_USE_PAN_TRANSPORT вместе с режимом, инициируемым устройством (DFU_V2_USE_DEVICE_MODE), и WebClient. Прежде чем определять архитектуру обновления продукта, проверьте доступные параметры в целевой версии SDK.
Выбор канала обновления¶
| Канал | Описанный способ обновления | Типичный сценарий |
|---|---|---|
| USB-CDC | ПК обновляет устройство через виртуальный USB-последовательный порт. | Производство, лабораторные работы и проводное обслуживание. |
| BLE | Обновление принимает приложение BLE в роли периферийного устройства. | Мобильное приложение обновляет подключённый продукт. |
| Bluetooth PAN | Устройство использует сеть Bluetooth PAN, чтобы загрузить обновление с HTTP-сервера. | Подключённые продукты, самостоятельно получающие образ обновления. |
Проверка плана обновления продукта¶
- Выбранный транспорт соответствует доступным способам подключения продукта.
- Приложение и соответствующий загрузчик собираются и тестируются как единый процесс обновления.
- Поддержка целевой платы подтверждена по README соответствующего примера.
- Для продукта определены поведение при прерывании обновления, восстановление и порядок заводского обслуживания.
- Для выпуска продукта проверены подлинность и целостность образа прошивки, политика версий и ёмкость разделов.
- Сбои обновления можно диагностировать по журналам, даже если приложение не работает.
Сборка примера DFU v2¶
Перейдите в каталог project/ примера и выполните сборку:
Список поддерживаемых плат приведён в README каждого примера. Конфигурация промежуточного ПО DFU v2 находится в middleware/dfu_v2 SiFli-SDK.
Примеры DFU v2 для SDK¶
| Канал | Пользовательское приложение | Подпроект загрузчика |
|---|---|---|
| USB-CDC | cdc/app |
cdc/loader |
| BLE | ble/app |
ble/loader |
| Bluetooth PAN | bt_pan/app |
bt_pan/loader |
Полный индекс исходников и актуальную навигацию SDK см. в разделе примеры DFU v2 в SiFli-SDK.
Последнее обновление: