Skip to content

Latest commit

 

History

History
80 lines (66 loc) · 4.66 KB

README.md

File metadata and controls

80 lines (66 loc) · 4.66 KB

Device Firmware Update (DFU) Middleware Library

Overview

The purpose of the DFU middleware library is to provide an SDK for updating firmware images. The middleware allows creating two types of projects:

  1. An application loader receives the program and switch to the new application.
  2. A loadable application to be transferred and programmed.

A project can contain features of both first and second type.

Features

  • 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.

DFU Specific Instructions

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.

Quick Start

The Quick Start section of the DFU Middleware API Reference Guide describes step-by-step instructions to set up a DFU application.

More information

For more information, refer to the following links:


© Cypress Semiconductor Corporation (an Infineon company), 2021.