DFU控制点特性用于控制DFU过程的状态。 通过写入该特征来请求所有DFU程序。 标记过程结束的响应将作为通知收到。


BLE传输

Transfer of an init packet

DFU控制器首先检查init数据包是否已成功传输。 如果没有,DFU控制器检查它是否已部分转移。 如果已经传输了一些数据,则继续传输。 否则,DFU控制器发送Create命令以创建新数据对象,然后传输init数据包。 当init数据包可用时,DFU控制器发出Execute命令以启动init数据包的验证。

Transfer of a firmware image

固件映像被分成几个连续传输的数据对象。 如果数据对象的传输失败(例如,由于断电),则可以继续传输而不是重新启动。 因此,DFU控制器首先选择发送的最后一个数据对象,然后检查它是否完整且有效。 如果是,则控制器发出Execute命令,然后继续使用下一个数据对象进行传输。 否则,DFU控制器发送Create命令以在需要时创建新的数据对象(因此,如果此数据对象的传输尚未启动或接收的数据已损坏),然后传输下一个数据对象。

传输所有数据包后,DFU控制器会发出Execute命令以触发实际的固件更新。

DFU控制器负责跟踪进度。 对每个Select命令的响应包含有关最大对象大小,当前偏移量和CRC的信息。 例如,如果图像大小为10 kB且最大对象大小为4 kB,则必须传输3个数据对象。 如果返回的偏移量为6 kB,则DFU控制器知道当前对象是要传输的第二个对象,并且尚未完全传输。

Data reliability

BLE DFU服务旨在处理序列化对象。 但是,传输和验证序列化数据是抽象的,并且在BLE传输层之外是不可见的。

为了确保接收所有数据包,即使它们是使用WriteWithoutResponse传输的,DFU控制器必须执行循环冗余校验(CRC)以在发出执行命令之前验证对象。

nRF5 SDK Bootloader and DFU moudles(3)的更多相关文章

  1. nRF5 SDK Bootloader and DFU moudles(1)

    在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境. 在嵌 ...

  2. nRF5 SDK Bootloader and DFU moudles(2)

    镜像的验证 在执行设备固件更新之前,应验证新映像. 在传输实际固件(预验证)之前,可以检查某些信息(例如,兼容性). 其他信息,例如图像的散列,应在传输(验证后)后进行验证. Init packet ...

  3. nRF5 SDK for Mesh(三) Installing the mesh toolchain 安装编译工具链

    Installing the mesh toolchain To build the example applications, a toolchain based on either CMake o ...

  4. nRF5 SDK for Mesh(二) Getting started 快速开始

    Getting started To get started, take a look at the Light switch demo. It shows how a simple applicat ...

  5. nRF5 SDK软件架构及softdevice工作原理

    本文将介绍Nordic nRF5 SDK软件架构以及softdevice工作原理,以加深大家对Nordic产品开发的理解,这样开发过程中碰到问题时,大家也知道如何去调试. 如果你刚开始接触nRF5 S ...

  6. Nordic nRF5 SDK和softdevice介绍

    SDK和Softdevice的区别是什么?怎么选择SDK和softdevice版本?芯片,SDK和softdevice有没有版本兼容问题?怎么理解SDK目录结构?SDK帮助文档在哪里?Softdevi ...

  7. nRF5 SDK for Mesh(四) 源码编译

    官方文档教程编译源码: http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk%2Fdita%2Fs ...

  8. nRF5 SDK for Mesh(一) 介绍和下载源码

    一: 官网介绍地址:http://www.nordicsemi.com/Products/Bluetooth-low-energy/nRF5-SDK-for-Mesh Nordic offers a ...

  9. 如何调试nRF5 SDK

    本文将讲述Nordic nRF5 SDK的主要调试手段,以帮助大家快速定位问题,并解决问题.一般来说,你可以通过打log方式,IDE的debug模式,SDK自带的app_error_check函数,以 ...

随机推荐

  1. mysql慢查询配置(5.7)

    刚装了Windows版mysql,想开启慢查询日志. 修改D:\mysql-5.7.23-winx64下my.ini配置文件,添加: [mysqld]slow_query_log = onslow_q ...

  2. Failed to start MariaDB database server. (已解决) 之前配过主从

    [root@linux-node1 /var/log/mariadb]# systemctl status mariadb.service● mariadb.service - MariaDB dat ...

  3. 查看nginx服务器状态

    编译安装时使用--with-http_stub_status_module开启状态页面模块 [root@proxy ~]# yum -y install gcc pcre-devel openssl- ...

  4. UnhandledExceptionPolicy

    winform程序未捕获异常解决方法  EventType clr20r3 P1 http://blog.csdn.net/chichaodechao/article/details/8294922

  5. asp.net实现浏览器大文件分片上传

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...

  6. SCOI2014 bzoj3594 方伯伯的玉米田(二维树状数组+dp)

    3594: [Scoi2014]方伯伯的玉米田 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 1971  Solved: 961[Submit][St ...

  7. 透彻tarjan

    tarjan 求强连通分量: #include<cstdio> #include<iostream> #include<cstdlib> #define N 100 ...

  8. Http协议三次握手和四次挥手

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示: SYN(synchronous建立联机) ACK(acknowledgemen ...

  9. Ioc容器与laravel服务容器初探

    一.Ioc容器 某天,小J心血来潮,决定建造一艘星舰,这艘星舰要搭载"与众不同最时尚,开火肯定棒"的电磁炮.于是他写了一个星舰类: class ElectromagneticGun ...

  10. hadoop patch

    ERROR org.apache.hadoop.hdfs.server.blockmanagement.BlockManager: ReplicationMonitor thread received ...