dev image layout guide - XradioTech/xradiotech-wiki GitHub Wiki
中文 | EN
主页 | 产品 | 下载 | 开发指南 | FAQ | 联系我们 | 购买样品
开发指南 > image.cfg
目录
- XR871 Image Layout V1.0
- XR871 Image Layout V2.0
- XR871 Image Layout Elements
- XR871 Image Configuration File
- XR871 Image Relationship
- XR871 Image Reference Documents
XR871 Image Layout V1.0
XR871 Image Layout V2.0
XR871 Image Layout Elements
-
Bootloader
Bootloader用于将image0或image1的app.bin加载到ram中,并执行应用程序的入口处理程序。OTA升级过程中,Bootloader不会更新 -
Image0
Image0是一个固件包,其中包括应用系统,网络系统和其他相关二进制文件。其起始位置位于bootloader区域结束处,默认为32K。 -
SysInfo Area
sysinfo是一个数据结构,包含了诸如WLAN MAC地址之类的信息,并存储在flash上的sysinfo区域- Sysinfo区域的起始地址定义在每一个工程目录下的prj_config.h文件中。sysinfo的数据结构定义在sysinfo.h(project/common/framework/sysinfo.h)中
- Sysinfo是基于FDCM实现的,FDCM的具体原理和使用方法可参考《XR871_FDCM_Developer_Guide-CN.pdf》。
-
OTA Area
OTA区域用来存储OTA配置信息,并引导Bootloader加载最新的固件文件。- OTA区域的起始地址以及大小都在image.cfg中定义
{ "magic" :"AWIH", "version" :"0.3", "OTA" :{"addr": "1024K", "size": "32K"}, "count" :7, "section" :[ {"id": "0xa5ff5a00", "bin" :"boot.bin", ...}, ......
-
Image1
Image1是一个固件备份区,用于存储OTA升级期间刻录的固件。其起始位置位于OTA区域的结束处。Image0和Image1区域在OTA升级时会交替使用,互做备份,升级成功后,OTA Area中的配置信息将同步更新。
XR871 Image Configuration File
- File Content
- magic - image魔数, AWIH
- version - image.cfg版本号
- OTA - OTA信息的起始地址,大小
- count - 打包的文件数量
- section - 打包的文件详细信息
- id - 文件IDinclude/sys/image.h
- bin - 文件名
- cert - 用于安全启动,指定证书的名字
- flash_offs - 该文件在flash上的位置,单位KB.
- sram_offs - 该文件被加载到sram中的位置,单位Byte
- ep - 执行入口地址
- attr - 该文件属性
- 0x00000001 - 普通文件
- 0x00000002 - 该文件为XIP段文件
- 0x00000011 - 该文件为压缩文件
-
Flash Offset Configuration Boot.bin固定需要设置为0地址,app.bin固定需要设置为image0 area的起始地址(一般默认为32KB),其他bin文件的地址并没有强制性的要求,只要没有互相重叠并且不超过image area范围就可以。
-
Bin overlapp 如果bin文件出现了互相重叠的情况,打包工具会进行自动计算,然后生成一个“image_auto_cal.cfg”文件(默认位置在工程目录/image/xr871/下),用户可以直接使用该cfg文件重新进行打包。需要注意的是,如果全部的bin文件在经过自动计算后,其大小依然超过OTA area的起始地址,则不会生成“image_auto_cal.cfg”文件。此时,用户重新规划flash布局,并手动进行cfg文件的修改。
- Set User cfg File 项目工程在默认时使用的cfg文件是/appos/project/image_cfg/xr871/路径下的某个cfg文件,如果用户想要使用自己修改的cfg文件,可以在对应的项目工程目下的/gcc/Makefile中添加自定义cfg路径。