[分享] RT105X烧录RAM APP到qspi flash image实例分析
638 查看
1 回复
 楼主 | 发布于 2020-09-21 | 只看楼主
分享到:
一,文档介绍

        相信大家在看了痞子衡关于RT启动的文档之后,对RT代码启动结构已经比较熟悉 ,具体可以查看如下原文链接:


  本文为了更清晰的显示RT外部flashboot image的结构,以实例代码下载后读出memory形式来说明内存结构。

根据NXPRT相关文档可以知道实际的flash memory分块情况如下:

 

1 boot image

   下面我们使用IDE生成一个放在RAMapp代码,然后通过MCUBootUtility工具烧录之后,具体分析相关的内存块以及启动情况,希望能够更加清楚的帮助大家理解RT的外部memory启动。

    本文使用涉及到的工具有:MCUBootUtilitySRecordizer

二,MCUXPressoIDE 生成RAM app代码

     首先准备一个基于MCUXpressoIDERAM app代码,代码偏移地址为0XA000。当然其他的RAM地址也是可以的,这里仅仅以0XA000为例。

代码可以使用官方的SDK代码,如果要生成放到RAMcode,可以做如下配置。

 
2 mcuxpress IDE memory配置


 
3 RAM image 配置 

配置好后,编译工程,然后选择.axf文件右击可以生成相关的image 这里我们选择S-record格式文件,也就是srec/s19文件。

生成app srec文件

点击之后,可以在相应的debug或者release文件夹下看到自己的.s19 app文件。生成的可执行文件可以改为其他名字,为了便于识别,我们这里名称改为

evkbimxrt1050_led_softwarereset_0xa000.s19,本代码功能为:RT1050-EVKB板上LED闪烁,启动之后打印信息,按键按下WAKEUP引脚,可以实现代码的软件复位。这里打开生成的evkbimxrt1050_led_softwarereset_0xa000.s19,第一行S0SREC文件格式中用于记录类型的,没有地址场,只是表示程序的开始,不需要烧录memory中,S1类型带有地址场和数据场,是真正的app image开始,可以看到代码的起始地址已经被放到0XA000之前定义的RAM目标地址。



 
5 s19 image查看

三,MCUBootUtility烧录的image分析

下面使用MCUBootUtility烧录到MIMXRT1050-EVKB QSPI 版本的nor flash中,然后开始分析相关image分区的代码以及信息。

从第一章的图1,可以看到,普通不带加密的app image烧录到外部norflash后,大致分为7块:FDCB,BLANK,IVT,BOOTDATA, DCD,APP,BLANK.

 


6 app imageflash中查看

由于RAM烧录到外部flash的代码并不是XIP的,所以会在启动之后把所有代码拷贝到内部的RAM 根据上面的代码信息,可以知道启动之后内部ITCM的最终地址映射情况如下:


 
7 app imageITCM中映射情况


1IVT: hdr IVT的头,具体见hab_hdr

2:   IVT: entry app entrypointAddress, 一般设为复位中断地址。图中连线到APP     0XA004即复位中断地址,可以看到数据的确为0X00A2DD.

3:  IVT: reserved

4:  IVT: DCD 用于SDRAM SEMC的配置,如果没有用SDRAM,则没有。

5:  IVT: BOOT_DATA 指定BOOT_DATA的起始地址0X9020

6:  IVT: self, ivt本身的起始地址为0X9000

7:  IVT:CSF,指定CSF的起始地址,无加密则无CSF

8:  IVT:reserved

9:BOOT_DATA: startimage的起始地址,这里最终为ITCM0X80000XA000-0X2000=0X8000

10:BOOT_DATA: size, APP的总size大小,可以图5看到,0Xf244-0xa000=0x7244

11: APP 结尾地址,可以用于算app代码大小。

到这里,可以看到具体的实例数据对应情况已经非常明显。

本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (0 )
回复 举报

回复于 2020-09-25 沙发

(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部