码迷,mamicode.com
首页 > 其他好文 > 详细

i.MX RT1XXX 通过sdphost加载到SRAM区域

时间:2021-02-22 11:57:01      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:闪烁   ext   启动   命名   win   demo   加载   alt   mamicode   

        设置i.MXRT1xxx的BOOT_MODE[1:0]为01可进入Serial Downloader模式。此模式下,BootROM通过USB1或者UART1来接收来自Host(恩智浦提供了上位机工具sdphost.exe或者mfgtool)的Flashloader数据,并将数据存储在SRAM中执行,Flashloader程序可以用来将你的Application下载进i.MXRT1xxx支持的所有外部非易失性存储器中,为后续从外部存储器启动做准备。

一、使用elftosb生成含IVT的image

        查阅sdphost的命令表,jump-address只能跳转到含IVT头的image,这里需要通过elftosb工具。这个工具就在\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb目录下,这个工具可以用来生成含ivt的image,命令格式固定如下:

        elftosb.exe -f imx -V -c config_application.bd -o ivt_application.bin application.out

其中ivt_application.bin就是最终生成的Bootable image,命令所需要的2个输入文件分别是application.out、config_application.bd。

application.out就是你的Application工程编译链接生成的ELF文件

         修正SDK_2.7.0_EVKB-IMXRT1050\boards\evkbimxrt1050\demo_apps\led_blinky的工程获取iled_blinky_a000.out文件并拷贝到Flashloader_RT1050_1.1\Tools\elftosb\win路径下,同时查阅map文件得到Reset_Handler的地址为0x0000a415备用。工程主要修改了分散加载文件.scf:

技术图片技术图片

config_application.bd是用户配置文件,这个.bd文件主要是指示elftosb工具如何在Application binary基础上添加IVT、BD等其他信息数据从而形成Bootable image,所以编写.bd文件是关键步骤,bd文件有专门语法格式,但\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\bd_file\imx10xx目录下给了很多bd文件示例,我们只需要在某一个bd文件基础上修改即可

       拷贝Flashloader_RT1050_1.1\Tools\bd_file\imx10xx\imx-itcm-unsigned.bd文件到Flashloader_RT1050_1.1\Tools\elftosb\win路径,重命名为iled_blinky_a000.bd,并修正文件内容如下:

技术图片

      ivtOffset和initialLoadSize不用改,分别代表IVT和Application在Bootable image中的偏移地址,startAddress即BOOT_DATA_T.start,这个是可以修改的,牢记下面公式

startAddress + initialLoadSize = Application只读段起始链接地址

led_blinky_a000.out是链接在0xa000地址处的,0x8000 + 0x2000 = 0xa000,所以此处startAddress也无需改,唯一需要确认的是entryPointAddress,这个我们已经通过查阅map文件获取到。bd文件修改完成之后,让我们试着执行下面命令:

PS C:\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\elftosb\win> elftosb.exe -f imx -V -c iled_blinky_a000.bd -o ivt_iled_blinky_a000.bin iled_blinky_a000.out

二、sdphost加载image到SRAM区域

        前面我们通过elftosb工具获取到ivt_iled_blinky_a000.bin文件,可以直接将ivt_led_blinky_a000.bin下载进SRAM即可:

PS C:\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\sdphost\win> sdphost.exe -u 0x1fc9,0x0130 -- write-file 0x8000 ivt_iled_blinky_a000.bin

技术图片

 到这里IVT和image均已经下载进SRAM了,可以跳转去执行led_blinky程序了,使用jump-address命令:

PS C:\Flashloader_i.MXRT1050_GA\Flashloader_RT1050_1.1\Tools\sdphost\win> sdphost.exe -u 0x1fc9,0x0130 -- jump-address 0x8400

技术图片

led_blinky就算启动完成了,jump-address命令执行完成之后,你会发现小灯闪烁。

至此,i.MX RT1XXX 通过sdphost加载到SRAM区域何其乐便介绍完毕了,掌声在哪里~~

i.MX RT1XXX 通过sdphost加载到SRAM区域

标签:闪烁   ext   启动   命名   win   demo   加载   alt   mamicode   

原文地址:https://www.cnblogs.com/technology-jingxinwen/p/14421738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!