Giter Site home page Giter Site logo

dfu's Introduction

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.

dfu's People

Contributors

jimtrudeau avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.