Skip to content
/ dfu Public

The Device Firmware Update (DFU) library provides a low-level API for updating firmware images.

License

Notifications You must be signed in to change notification settings

Infineon/dfu

Repository files navigation

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

Features

  • Reads firmware images from a host through a number of transport interfaces, e.g. USB, UART, I2C, SPI 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.

DFU Specific Instructions

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.

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), 2023.

About

The Device Firmware Update (DFU) library provides a low-level API for updating firmware images.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages