2. AD24N 设备升级
AD24N SDK从V1.1.0版本开始提供了设备升级功能,目前仅支持SD卡升级。
- 本章还介绍了:
2.1. AD24N设备升级流程
2.1.1. SDK配置流程
1:根据使用的是哪一种设备升级,在app_modules.h里 打开对应设备使能;
![]()
设备使能
2:根据使用的是哪一种设备升级,在app_config.h里 打开对应的设备升级使能;
![]()
升级方式使能
2.1.2. 用户操作流程
用户将升级文件(下载目录中以ufw为后缀的升级文件)拷贝到SD卡等升级设备中。然后将升级设备接入样机,样机识别到接入的升级设备,然后开始运行升级相关流程。代码相关流程如下
2.1.3. 代码运行流程
打开设备,检查文件 -> 2. 检查文件成功,跳转到toy_update模式运行升级函数 –> 3. 校验ufw文件 –> 4. 进入loader升级
2.2. 升级资源复用问题
升级过程中,需要一些缓存buff,这些缓存buff在SDK里是放在了overlay区域,即会与其他资源重叠;![]()
升级缓存区域
用户需要关心的是:在进入升级前,是否已经关闭了相关与升级复用的模块。为此,SDK提供了一个device_update函数,在运行应用时,设备上线,SDK相应设备上线消息check升级文件,![]()
设备上线时先检查ufw文件
check确认文件可升级后,将退出当前应用,跳转到toy_update模式来进行设备升级。以此确保升级前所有使用overlay代码的功能均已关闭。
2.3. 升级前堆栈切换
设备进入升级之前,由于升级流程需要消耗较多的堆栈,因此升级前会将堆栈指针切换到overlay的ram,新的堆栈约占用3K byte,注意使用时不允许升级和其他overlay相关的代码一起运行。
用户可根据代码中带有stack_change_step的注释逐步了解其运行步骤。
![]()
升级前切换堆栈流程