RT1060 image里面有什么?

RT1060 image里面有什么?

RT1060 image里面有什么?

RT MCU 学习有一段时间了,刚好得空,在这篇文章里面,我们一起分析一个完整的image bin文件,它有哪些部分?分别是什么作用?哪些是不可或缺的?哪些是可选的?

我们知道,RT MCU作为跨界控制器/处理器,提供了一个高性能的平台,CM7核心的主频可以达到600MHz以上,可以说单凭这个系列,就打出了NXP的差异性和易用性。原来国外原厂也可以这么有性价比😍简直是Amazing -.-

但是同时呢,由于RT的flash是外置的嘛,它的image结构也和以往的通用MCU的image有很大区别。以我们本文要研究的Flash XIP的image为例,上电之后,BootROM会先把flexspi跑起来,用一个低速时钟去读flash中的配置参数,然后拿这个flash的配置头重配flexspi,就能高效获取image中的指令和数据啦!

同时呢,因为一些加密啊,外设配置啊,的需求,image不只是包含这个flash的配置header,还分为很多个其他部分,在这里,我们就一起看一下吧!

FDCB Header

再次呢,进入正文之前,提前说明一些东西以防止读者疑惑。

  • 使用的是*.bin格式的image,相比于hex或者s-record,它没有指示物理地址,只有offset,在使用JLink烧录时,我们使用如下命令:

    jlink loadfile xxx.bin 0x6000_0000

    从这里我们可以看出来,这个bin文件的offset,实际上就是从我们的Flash首地址开始偏移的,这是最重要的前置知识,请知悉。

在MCU BootUtility中,它显示从0x6000_00000x6000_0200之前,都是FDCB段。那么它的大小就是512 Byte.

这里我们先不管,直接看对我们有用的部分。

Offset flash address 内容 小端 意义
0x0 0x6000_0000 46 43 46 42 0x42462326 FCFB
flash配置头标志
0x04-0x07 0x6000_0004 00 04 01 56 0x56010400 version
表示使用flexspi v1.4.0配置
0x40-0x43 0x6000_0040 10 00 00 00 0x10 应该是flash的page size
16
0x80-0x83 0x6000_0080 EB 04 18 0A 0x0A1804EB Flash的时钟频率
典型值133MHz
(600/43 x 19 / 2 = 133)

Image Version

在Offset 0x600的地方有个image版本号,用于双image的时候,还没用过。暂且不表。

IVT

Offset flash address 内容 小端 意义
0x1000 0x6000_1000 D1 00 20 41 0x412000D1 IVT段的起始标志
0x1004 0x6000_1004 00 20 00 60 0x60002000 程序中断向量表地址
.isr_vector 以及 g_pfnVectors
0x1008 0x6000_1008 00 00 00 00 0x0 DCD地址
表示未启用DCD
0x1010 0x6000_1010 20 10 00 60 0x60001020 BootData地址
指向偏移量0x1020的地方

Boot Data

根据IVT中 Offset 0x1010的指引,找到 Boot Data的地址是:0x6000_1020

Offset flash address 内容 小端 意义
0x1020 0x6000_1020 00 00 00 60 0x60000000 image的起始地址
在这时候就是flash的地址
0x1024 0x6000_1024 00 00 80 00 0x00800000 image的大小
这里默认是8MB

Image

终于到了光秃秃的image部分了~

根据IVT中的指示,它是程序入口,地址是0x6000_2000!

Offset flash address 内容 小端 意义
0x2000 0x6000_2000 00 00 02 20 0x2002_0000 (DTCM中的地址) 初始SP栈指针
0x2004 0x6000_2004 1D 23 00 60 0x6000231D ResetISR 的地址
作者

Gavin

发布于

2025-02-28

更新于

2025-02-28

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×