nRF51 SDK - S210 SoftDevice
|
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.
Section | Description |
---|---|
DFU Serial Transport | Description of the DFU Serial Wire transport layer |
DFU BLE Transport | Description of the DFU BLE transport layer |