注意事项
本章介绍DFU过程中需要注意的事项。
在App bootloader跳转至App firmware之前,需将App bootloader中使用的外设反初始化
不同系列芯片使用RTOS时,应用固件DFU任务栈大小设置不同
- 原因
GR551x系列芯片与其他系列芯片在内部实现的DFU有差异,任务栈大小要求与其他系列芯片要求不同。
- 处理方法
GR551x DFU任务栈至少需要分配6 KB,其他系列芯片需要分配至少1 KB的DFU任务栈。
App bootloader查找APP固件规则
查找待跳转的APP固件时,App bootloader优先使用APP Info区域的image info,未找到对应固件时再使用SCA区域image info。SCA区域image info是由GProgrammer/GRPLT等工具根据烧录固件生成并写入;APP Info中的image info由App bootloader从SCA区域拷贝或者固件升级时写入。
当BOOTLOADER_BY_NAME_ENABLE和BOOTLOADER_BY_ADDR_ENABLE均为1时,App bootloader 按以下优先级匹配固件:优先匹配APP_FW_COMMENTS,其次匹配APP_FW_LOAD_ADDR,即优先按照名称匹配,名称无法匹配时,再匹配地址。
若用户希望APP固件位置可变,则需将BOOTLOADER_BY_NAME_ENABLE配置为1,并可使用以下任一方式进行设置:
- GProgrammer/GRPLT工具烧录的固件文件名称的前12个字符必须与APP_FW_COMMENTS相同。
- 在APP工程或custom_config.h中增加宏定义APP_INFO_COMMENTS,且其值与APP_FW_COMMENTS相同。
默认情况下,APP工程中未定义固件名称APP_INFO_COMMENTS。因此,GProgrammer/GRPLT等工具生成image info时,将使用固件文件名的前12个字符生成image info的Comments。