查看: 8227|回复: 0

[原创] 【经验分享】RT1050 SDRAM APP代码从SD卡启动

[复制链接]

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25213
最后登录
2025-8-18
发表于 2020-4-9 09:39:15 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2020-4-9 09:42 编辑

【经验分享】RT1050 SDRAM APP代码从SD卡启动


一 ,文档说明
      本文主题是关于RT系列app跑在外部SDRAM,但是代码从SD卡启动的方式,如何使用flashloader, MCUBootUtility Tool 以及我们最新的MCUXPresso Secure Provisioning软件实现上述功能的烧录。

       本文基于官方RT1050 SDK使用MCUXpress IDE 工程生成一个从SDRAM执行的app image,然后分别通过flashloader 结合MFGToolMCUBootUtility toolMCUXPresso Secure Provisioning 三个工具详细配置以及下载到外部SD卡的过程。

软硬件平台:


二,RT1050 SDRAM app image生成

      MCUXpresso IDE中导入SDK_2.7.0_EVKB-IMXRT1050中的iled_blinky工程,为了生成位于SDRAM的代码,配置作如下修改:

2.1代码拷贝到RAM
1.jpg

                             
2.2修改imageSDRAM映射地址0X80002000开始

SD卡启动SDRAM运行的代码属于Non-XIP, 所以IVT offset0X400 这里测试我们把image0X80002000开始放,配置如下:
2.jpg

2.3 修改如下宏定义
3.jpg


2.4 生成s19文件

      编译没有问题之后,如下图生成image对应的s19文件:
4.jpg 5.jpg
重新命名.s19文件为evkbimxrt1050_iled_blinky_sdram_0x2000.s19,并拷贝flashloader路径:Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb\win


三,Flashloader配置及下载

本章讲解如何使用flashloader配置并下载SDRAM的代码到外部SD卡。

需要再准备如下几个文件:

  • SDRAM接口配置文件CFG_DCD.bin
  • imx-sdram-unsigned-dcd.bd
  • program_sdcard_image.bd


3.1 SDRAMDCD 文件准备

    MIMXRT1050-EVKB板载SDRAM型号为 IS42S16160J,可以通过附件中的dcd_model\ISSI_IS42S16160J\dcd.cfg文件以及dcdgen.exe工具生成CFG_DCD.bin文件,命令为:dcdgen -inputfile=dcd.cfg -bout -cout
6.jpg


拷贝CFG_DCD.bin文件到flashloader路径:

Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb\win

3.2imx-sdram-unsigned-dcd.bd文件

准备imx-sdram-unsigned-dcd.bd文件内容为:

  1. options {
  2.    flags = 0x00;
  3.    startAddress = 0x80000000;
  4.    ivtOffset = 0x400;
  5.    initialLoadSize = 0x2000;
  6.    DCDFilePath = "CFG_DCD.bin";
  7.    # Note: This is required if the default entrypoint is not theReset_Handler
  8.    #       Please set theentryPointAddress to Reset_Handler address
  9.    entryPointAddress = 0x800022f1;
  10. }

  11. sources {
  12.    elfFile = extern(0);
  13. }

  14. section (0)
  15. {
  16. }
复制代码


上面的entrypointAddress取值为S19reset handler
7.jpg


将该文件拷贝到flashloader路径:

Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb\win

打开cmd,运行如下命令:

elftosb.exe-f imx -V -c imx-sdram-unsigned-dcd.bd -oivt_evkbimxrt1050_iled_blinky_sdram_0x2000.binevkbimxrt1050_iled_blinky_sdram_0x2000.s19

运行之后会发现多了两个添加了IVT的文件:


8.jpg

3.3program_sdcard_image.bd文件

准备program_sdcard_image.bd文件内容为:

  1. # The source block assign file name toidentifiers
  2. sources {
  3. myBootImageFile = extern (0);
  4. }

  5. # The section block specifies thesequence of boot commands to be written to the SB file
  6. section (0) {
  7.    #1. Prepare SDCard option block
  8.    load 0xd0000000 > 0x100;
  9.    load 0x00000000 > 0x104;
  10.    #2. Configure SDCard
  11.    enable sdcard 0x100;
  12.    #3. Erase blocks as needed.
  13.    erase sdcard 0x400..0x14000;
  14.    #4. Program SDCard Image
  15.    load sdcard myBootImageFile > 0x400;
  16.    #5. Program Efuse for optimal read performance (optional)
  17.    # Note: It is just a template, please program the actual Fuse requiredin the application
  18.    # and remove the # to enable the command
  19.    #load fuse 0x00000000 > 0x07;
  20. }
复制代码


将该文件拷贝到flashloader路径:

Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb\win

打开cmd,运行如下命令:

elftosb.exe -f kinetis -V -c program_sdcard_image.bd -oboot_image.sb ivt_evkbimxrt1050_iled_blinky_sdram_0x2000_nopadding.bin
9.jpg


将生成好的boot_image.sb放到如下目录:

\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\mfgtools-rel\Profiles\MXRT105X\OSFirmware

3.4 MFGTool 烧录代码到外部SD

    准备一张SD卡,插入板上J20卡槽,板子进入serial download mode,SW7:1-ON 2-OFF 3-OFF 4-ON.两根USB口分别插入J28 J9,使用HID下载。

打开MFGTool.exe, 并且点击start
10.jpg


下面修改启动模式为internal boot模式,并且从SD卡启动, SW7:1-ON 2-OFF 3-ON 4-OFF.
11.jpg


重新上电或者复位,可以看到板上D18闪烁,说明SDRAMapp代码成功从SD卡启动。

四,MCUBootUtility配置及下载

本节讲解如何使用图形化界面MCUBootUtility去配置并下载代码,其实该软件是将flash的相关命令都做到图形化界面里面,便于大家使用。

     首先,RT芯片进入serial download模式,即SW7:1-ON 2-OFF 3-OFF 4-ON.两根USB口分别插入J28 J9,使用HID下载。当然也可以直接使用一根USB,并用串口去下载。

     配置boot device SD卡:
12.jpg


        选择DCD文件,可以选择软件自带的DCD文件,该文件在MCUBootUtility的路径为:NXP-MCUBootUtility-2.2.0\src\targets\MIMXRT1052\evkbmimxrt1050_xip_boot_header_dcd.bin

或者选择为3.1 SDRAM DCD 文件准备 章节生成好的文件,这里使用我们自己生成好的CFG_DCD.bin
13.jpg


配置好后,选择image为前面生成好的.s19文件,点击all-in-one-Action按键,实现代码下载:
14.jpg


下载之后,还可以看到SD卡的image,可以发现0X400开始是IVT, BD,DCD代码,0X1000开始和原烧录.s19一样的image

烧录成功后,修改启动模式为internal boot模式,并且从SD卡启动, SW7:1-ON 2-OFF 3-ON 4-OFF. 重新上电或者复位,可以看到板上D18闪烁,说明SDRAM app代码成功从SD卡启动


五,MCUXPresso Secure Provisioning配置及下载

该软件作为NXP正式推出的官方GUI版本,可以实现普通代码以及加密代码的下载,功能和MCUBootUtility类似,不过是一个正式的官方版本,不像MCUbootutility直接开源,但是并没有在官方网站发布。

下面使用这个软件来下载SDRAMapp代码到外部SD卡,具体步骤如下:
15.jpg
16.jpg



可以发现,新软件也是非常容易操作并且方便下载,只需要提供原文件.19, dcd.bin, 并且给与相关的boot device配置即可。

烧录成功后,修改启动模式为internal boot模式,并且从SD卡启动, SW7:1-ON 2-OFF 3-ON 4-OFF. 重新上电或者复位,可以看到板上D18闪烁,说明SDRAM app代码成功从SD卡启动

目前为止,已经完成了三种方法的烧录下载说明,flashloader是最原始的方法,MCUBootUtility以及MCUXPresso Secure Provisioning都是基于flashloaderGUI软件,更加方便客户使用。

dcdcfg.rar (38.51 KB, 下载次数: 38)
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-20 03:45 , Processed in 0.086179 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表