RA6的bootloader中app划分为两个部分,头和内容。如果没有头的话,就无法使用MCUBOOT功能进行升级。
头:Flash Layout|Image 1 Header Size (Bytes) 大小为0x80从0开始
0地址存储:0x96f3b83d特殊标识
8地址存储header 本身大小0x80
0x0c地址存储app本身文件大小 我的为0xfc6c,不包含Header Size
0x14地址存储APP版本
内容:Flash Layout|Image 1 Flash Area Size (Bytes) 大小为0x20000从0x80开始
0x80开始存放的是中断向量表,第一个为SP,第二个为PC共112个,每个4字节
另外:
已注册的bin和标准bin文件相比,
1.多了image Header
2.文件大小为0x20000
3.以下列boot_magic = bytes([
0x77, 0xc2, 0x95, 0xf3,
0x60, 0xd2, 0xef, 0x7f,
0x35, 0x52, 0x50, 0x0f,
0x2c, 0xb6, 0x79, 0x80, ])字节结尾。
4和标准文件相接地方不一致,多了40个字节,含义为TLV(type,length,value)。
TLV 地址 ih_hdr_size + ih_img_size)以固定0x6907开始 标识TLV_INFO_MAGIC
然后是长度0x28也就是TLV的总长度
最后是数据 可以是一串RSA或者ec值