|
RTL 8711AF flash分为bootloader、校验信息区、系统信息区、默认固件区,可升级固件区,用户区,默认固件区存放通过烧录方式更新的固件,可升级固件区存放通过ota升级方式更新的固件。这两个区只有可升级固件区是可以用于ota升级的。ota固件升级其实就是IAP(In ApplicationProgramming)应用编程,一般包含两个程序:Bootloader程序和APP程序。以RTL8711AF为例,芯片上电后固定从Bootloader启动。
Bootloader主要负责:
(1)读取每个区应用程序签名信息;
(2)判断应用程序该从哪个区启动;
(3)把对应的falsh区的应用程序拷贝到SRAM,跳转到SRAM运行应用程序。
APP程序负责:
(1)定期发送http请求向服务器获取最新固件信息;
(2)和当前固件对比,确定是否需要更新,如果需要更新从服务器下载最新固件到用于ota的flash区;
(3)更新flash区签名,软件复位。
固件下载的过程中会对固件进行校验检查以确认下载的固件是完整正确的包。
8711 bootloader 程序流程如下图,从系统参数中获取到两个存固件的flash区的地址后,去读取这两个区的签名,在看哪个区的签名是“81958711”便从哪个区启动。
|
|