The purpose of the DFU middleware library is to provide an SDK for updating firmware images. The middleware allows creating these 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 the features of both types.
- Reads firmware images from a host through a number of transport interfaces, e.g. USB, UART, I2C, SPI, CANFD Supports dynamic switching (during runtime) of the communication interfaces
- Provides ready-for-use transport interface templates based on HAL drivers for PDL drivers for CAT1 devices and CAT2 devices
- Supported flows: Basic bootloader and MCUBoot compatibility
- Device support: CAT1A, CAT2 (Basic bootloader flow), CAT1C (MCUBoot compatibility flow)
- Programs a firmware image to the specified address in internal flash, XIP region or any external memory that supports the DFU API
- Copies applications
- Validates applications
- Updates safely - updates at a temporary location, validates, and if valid, overwrites the 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 applications 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 which should be enabled by components in the Makefile. The application loader requires DFU_USER component, transport components (e.g. for loading with UART - DFU_UART). The loadable application does not require specific component and dfu_user.h file includes with DFU middleware. The configuration files is copies in the application and could be updated based on the specific use cases. For a build with a the basic bootloader flow, 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:
- DFU Middleware Library Release Notes
- DFU Middleware Library API Reference
- AN213924 DFU SDK User Guide
- CE213903 DFU SDK Basic Communication Code Examples
- CAT1 Peripheral Driver Library API Reference
- CAT2 Peripheral Driver Library API Reference
- USB Device Middleware Library API Reference
- Code Examples for ModusToolbox Software
- ModusToolbox Device Configurator Tool Guide
- ModusToolbox Device Firmware Update Host Tool
- ModusToolbox USB Configurator Tool Guide
- PSoC 6 BLE Pioneer Kit
- PSoC 6 WiFi-BT Pioneer Kit
- PSoC 6 Wi-Fi BT Prototyping Kit
- XMC7200 evaluation kit
- PSoC 6 MCU Datasheets
- PSoC 6 MCU Technical Reference Manuals
- PSoC 4 product page
- Infineon Technologies AG
© Cypress Semiconductor Corporation (an Infineon company), 2023-2024.