The purpose of the DFU middleware library is to provide an SDK for updating firmware images. The middleware allows creating two types of projects:
- An application loader receives the program and switch to the new application.
- A loadable application to be transferred and programmed.
A project can contain features of both first and second type.
- Read firmware images from a host through a number of transport interfaces, e.g. BLE, USB, UART, I2C, SPI.
- Program a firmware image to the specified address in internal flash, XIP region, or any external memory that supports the DFU API.
- Copy applications.
- Validate applications.
- Safe Update: updates at a temporary location, validates, and if valid, overwrites a working image.
- Switches applications. Passes parameters in RAM when switching applications.
- Supports encrypted image files. Transfers encrypted images without decrypting in the middle.
- Supports many application images, the number of which is limited by the metadata size. Each image can be an application loader. For example, 512-byte metadata supports up to 63 applications.
- Supports customization.
- Supports the CRC-32 checksum to validate data.
The DFU middleware requires configuration files located in the /config directory. The directory /config is skipped from a build process, so copy the configuration files manually. The application loader requires dfu_user.h/c, transport files (e.g. for loading with UART - transport_uart.c/h). The loadable application requires dfu_user.h file. For a build, use the dfu linker scripts located in the linker_script directory.
The Quick Start section of the DFU Middleware API Reference Guide describes step-by-step instructions to set up a DFU application.
For more information, refer to the following links:
- Cypress DFU Middleware Library Release Notes
- DFU Middleware API Reference Guide
- AN213924 DFU SDK User Guide
- CE213903 DFU SDK Basic Communication Code Examples
- CE216767 DFU SDK BLE OTA Code Example
- CAT1 Peripheral Driver Library API Reference
- CAT2 Peripheral Driver Library API Reference
- Cypress USB Device Middleware Library API Reference
- BLE Middleware API Reference Guide
- ModusToolbox Software Environment, Quick Start Guide, Documentation, and Videos
- PSoC 6 SDK Examples
- ModusToolbox Device Configurator Tool Guide
- ModusToolbox Device Firmware Update Host Tool
- ModusToolbox USB Configurator Tool Guide
- ModusToolbox BT Configurator Tool Guide
- CySmart - BLE Test and Debug Tool
- CySmart – Mobile App
- PSoC 6 BLE Pioneer Kit
- PSoC 6 WiFi-BT Pioneer Kit
- PSoC 6 Wi-Fi BT Prototyping Kit
- PSoC 6 MCU Datasheets
- PSoC 6 MCU Application Notes
- PSoC 6 MCU Technical Reference Manuals
- PSoC 4 Technical Reference Manuals
- PSoC 4 MCU Datasheets
- Cypress Semiconductor
© Cypress Semiconductor Corporation, 2019.