nRF51 SDK
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
04 - DFU Transport Layers

Modules

 BLE
 
 Serial (HCI)
 

Detailed Description

DFU Transport Layers

DFU itself is designed to be transport agnostic, and assumes the transport to be reliable. Since all transports have fix a maximum data unit, it is possible for DFU to reassemble the binary firmware in smaller fragments. The transport may create multiple logical channels, for example in BLE, two logical end points are created one for control packets (DFU messages) and the other for data packets (Init Data and Binary Firmware fragments). However, the DFU expects the transport to submit it one Data Unit at time. For example, if the transport has multiple DFU Packets, the transport should ensure that only one packet is submitted to the DFU at any given point of time and in the correct chronological order. DFU does not detect out-of-sequence packets. It expects the transport to ensure this.

The Bootloader/DFU example supports two transport layers

The BLE Transport Layer is described in DFU Service Specification and DFU Profile Specification.

The Serial (HCI) Transport Layer is described in Serial (HCI)

The DFU module supports only binary data images on transferring. This means that an application in HEX or AXF (ELF) file format must be converted into a binary file for the DFU to be able to process the image.

The binary image can be transferred in multiple data packets over Serial or BLE.