CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!

升级速率比较

通过Bluetooth LE传输时,GR5xx SDK提供普通模式和快速模式两种升级速率模式。快速模式的升级速率高于普通模式,两者的对比如下表所示。

表 3 普通模式与快速模式比较
模式 固件传输方式 RAM占用 耗时 说明

普通

每传输一帧数据,设备端都会回复一帧当前数据的校验值。

需要2 KB Buffer接收固件

在固件尚未发送完时如果出现一帧数据错误,可立即发现并终止升级流程。

快速

所有固件写入完毕再回复校验值。

最大带宽配置下需要8 KB Buffer接收固件

较少

升级大固件时可显著缩短升级时间,但不存在每一帧数据的校验,固件传输完成才会进行校验。

在最大带宽的情况下,快速模式的升级速度可达到普通模式的6倍左右,虽然理论上快速模式在传输过程中可能会出现错误,在最后校验过程中才会被发现,出错后时间成本比较高。但在实际测试过程中,出错的概率较低,因此在升级体积较大的固件时,可使用快速模式,提升效率。

为减少RAM占用,默认情况下的Buffer配置(位于SDK_Folder\components\libraries\dfu_port\dfu_port.c)如下:

#ifndef DFU_BUFFER_SIZE
#define DFU_BUFFER_SIZE                 2048
#endif
#ifndef ONCE_WRITE_DATA_LEN
#define ONCE_WRITE_DATA_LEN             1024
#endif                                                    

如需快速模式达到最大升级速率,可将DFU_BUFFER_SIZE配置为8192、ONCE_WRITE_DATA_LEN配置为4096。

快速模式和普通模式下的数据交互流程如下图所示。

图 10 普通模式
图 11 快速模式

在普通模式下,主机端每发送一帧固件数据,设备端就需要回复一帧,而快速模式只有在数据全部发送完成之后才会进行回复,所以快速模式比普通模式速率高。

扫描关注

打开微信,使用“扫一扫”即可关注。