Edit online

镜像格式和工具

11 Nov 2024
Read time: 1 minute(s)

镜像格式

ArtInChip 的烧录镜像文件由组件 (FirmWare Component, FWC) 以及对应的组件元信息组成。 数据分布如下图所示:


../../_images/image_format1.png

1. 烧录镜像格式

其中一些需要打包的数据文件,都被当做组件 (FWC) 进行处理,包括 SPLosrodatadata 等数据。

  • Image Header 的具体格式如下:
    struct artinchip_fw_hdr{
        char magic[8];              // 固定为 "AIC.FW"
        char platform[64];          // 该镜像文件适用的芯片平台
        char product[64];           // 该镜像文件适用的产品型号
        char version[64];           // 该镜像的版本
        char media_type[64];        // 该镜像文件可烧录的存储介质
        u32  media_dev_id;          // 该镜像文件可烧录的存储介质 ID
        u8   nand_array_org[64];    /* NAND Array Organization */
        u32  meta_offset;           /* Meta Area start offset */
        u32  meta_size;             /* Meta Area size */
        u32  file_offset;           /* File data Area start offset */
        u32  file_size;             /* File data Area size */
    };
  • FWC Meta 的格式如下:
    struct artinchip_fwc_meta {
        char magic[8];      // 固定为 "META"
        char name[64];      // 对应组件的名字
        char partition[64]; // 该组件要烧录的分区名字
        u32  offset;        // 该组件数据在镜像文件中的偏移
        u32  size;          // 该组件数据的大小
        u32  crc32;         // 该组件数据的 CRC32 校验值
        u32  ram;           // 当组件要下载到平台 RAM 时,要下载的地址
        char attr[64]       // 该组件的属性,字符串表示
    };

制作工具

mk_image.py 可用于以下用途:
  • 制作 AIC 格式的启动镜像,包括签名和加密

  • 打包固件组件,生成用于升级的固件镜像文件 scripts/tools/mk_image.py