xilinx SDK生成的BOOT.bin的结构

在boot.bin中从地址0-0x8BF可以分成17个部分,每个部分都有一定的含义:

1. 0x000  中断向量表

2. 0x020  固定值 0xaa995566

3. 0x024  固定值 0x584c4e58  ASCII: XLNX

4. 0x028  如果是0xa5c3c5a3或者0x3a5c3c5a为加密的

5. 0x02C  bootrom头版本号,不用管

6. 0x030  从bootrom开始到app地址的总数(bytes)

7. 0x034  从loadimage拷到OCM的长度 【上电后BootRom会主动把FSBL拷贝到OCM中执行】

8. 0x038  目的地址到哪儿拷贝FSBL

9. 0x03C  开始执行的地址

10. 0x040  同7 【此处代码逻辑中其实是把该字段的值赋给FSBL的size】

11. 0x044  0x01为固定值

12. 0x048  校验和(从0x020-0x047)按32-bit word 相加取反

13. 0x04C  bootgen相关

14. 0x098  image头的表指针

15. 0x09C  partition头的表指针

16. 0x0A0  寄存器初始化的参数

17. 0x8A0  fsbl user defined

18. 0x8C0  fsbl开始的地方

对应的FSBL.h文件中的宏定义:

/* Boot ROM Image defines */

#define IMAGE_WIDTH_CHECK_OFFSET        (0x020)    /**< 0xaa995566 Width Detection word */

#define IMAGE_IDENT_OFFSET              (0x024) /**< 0x584C4E58 "XLNX" */

#define IMAGE_ENC_FLAG_OFFSET           (0x028) /**< 0xA5C3C5A3 */

#define IMAGE_USR_DEF_OFFSET            (0x02C)      /**< undefined  could be used as  */

#define IMAGE_SOURCE_ADDR_OFFSET        (0x030)   /**< start address of image  */

#define IMAGE_BYTE_LEN_OFFSET           (0x034)      /**< length of image> in bytes  */

#define IMAGE_DEST_ADDR_OFFSET          (0x038)     /**< destination address in OCM */

#define IMAGE_EXECUTE_ADDR_OFFSET       (0x03c)    /**< address to start executing at */

#define IMAGE_TOT_BYTE_LEN_OFFSET       (0x040)      /**< total length of image in bytes */

#define IMAGE_QSPI_CFG_WORD_OFFSET      (0x044)    /**< QSPI configuration data */

#define IMAGE_CHECKSUM_OFFSET           (0x048) /**< Header Checksum offset */

#define IMAGE_IDENT                     (0x584C4E58) /**< XLNX pattern */

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值