dev image layout guide - XradioTech/xradiotech-wiki GitHub Wiki

中文 | EN

主页 | 产品 | 下载 | 开发指南 | FAQ | 联系我们 | 购买样品


开发指南 > image.cfg


目录


XR871 Image Layout V1.0

image_layout_v1.0

XR871 Image Layout V2.0

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 - 该文件为压缩文件

image.cfg

  • 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文件的修改。

image-overlapped

  • Set User cfg File 项目工程在默认时使用的cfg文件是/appos/project/image_cfg/xr871/路径下的某个cfg文件,如果用户想要使用自己修改的cfg文件,可以在对应的项目工程目下的/gcc/Makefile中添加自定义cfg路径。

set-user-cfg-file

XR871 Image Relationship

image_relation

XR871 Image Reference Documents