OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 465|回复: 5

号令者RT1052开发板代码烧录到外部flash,启动时把代码加载到ITCM运行的方法

[复制链接]

  离线 

2

主题

15

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2017-12-14
在线时间
9 小时
发表于 2018-5-30 11:10:37 | 显示全部楼层 |阅读模式
正点原子公众号
本帖最后由 xufeixueren 于 2018-5-30 11:19 编辑

买了号令者RT1052的开发板回来,由于在外部flash用XIP模式执行代码有点慢,就参考网上其他人的讲解,实验验证了一种解决该问题的可行方法,这里记录下来:
一、编译生成从ITCM运行的固件
     (1) 打开一个可用的RT1052工程,修改分散加载文件MIMXRT1052xxxxx_ram.scf里的加载地址如下:
             #define m_interrupts_start             0x00002000
             #define m_interrupts_size              0x00000400

            #define m_text_start                   0x00002400
            #define m_text_size                    0x0001DC00
      (2)生成*.srec格式的可执行文件
            在MDK的User中添加如下代码
            fromelf.exe --m32combined  --output  "$[url=mailto@L.srec]L@L.srec[/url]"  "#L"
            QQ图片20180530103559.png
     (3)修改执行地址
          在MDK的Linker中添加如下代码
          --entry=Reset_Handler
          QQ图片20180530103910.png
    经过以上配置,就可以生成*.srec格式的可执行文件了。
二、使用flashloader工具生成*.sb格式文件,flashloader工具见附件
   (1)使用Flashloader_RT1050_1.1\Tools\elftosb\win\elftosb.exe工具把*.srec生成*_nopadding.bin,使用Flashloader_RT1050_1.1\Tools\bd_file\imx10xx\imx-itcm-unsigned.bd文件,具体的命令如下:
           elftosb.exe -f imx -V -c ../../bd_file/imx10xx/imx-itcm-unsigned.bd -o interpolation.bin ../../../../../code/project/Objects/interpolation.srec
          注意,在执行命令前需要修改imx-itcm-unsigned.bd文件里的地址,用记事本打开文件,修改后的地址如下所示:
          startAddress = 0x0;
          ivtOffset = 0x1000;
          initialLoadSize = 0x2000;
   (2)使用elftosb.exe工具把*_nopadding.bin生成*.sb,使用Flashloader_RT1050_1.1\Tools\bd_file\program_flexspinor_image_qspinor.bd文件,具体的命令如下:
          elftosb.exe -f kinetis -V -c ../../bd_file/imx10xx/program_flexspinor_image_qspinor.bd -o boot_image.sb interpolation_nopadding.bin
    这样就生成了boot_image.sb文件,用于烧录到外部flash中
三、使用flashloader工具烧录文件到外部flash中
   (1)开发板上P10跳线帽接到USB2D-和USB2D+,实际上内部用的是USB1,这里是开发板的丝印错了;
   (2)BOOT跳线帽跳到3V3;
   (3)USB线连接USB_SLAVE接口和电脑,电脑上发现HID设备
   (4)打开Flashloader_RT1050_1.1\Tools\mfgtools-rel\MfgTool2.exe,如下图所示:
         QQ图片20180530105933.png    
       一般USB线插在USB hub上,即电脑最好外接一个USB hub,然后开发板插在hub上,这样更容易识别出hid设备
    (5)把boot_image.sb文件拷贝到Flashloader_RT1050_1.1\Tools\mfgtools-rel\Profiles\MXRT105X\OS Firmware目录下,点击上图工具里的Start按钮,等待烧录完成
         QQ图片20180530110346.png
四、从外部flash启动代码
     开发板BOOT跳线帽跳到NC,复位开发板,USB_232串口输出调试信息,说明烧录成功,由于编译时分散加载文件里的中断向量定位在0x2000处,即在ITCM的空间,能正常运行,说明代码已经从外部flash搬运到内部ITCM中执行了,这样代码的执行速度比在外部flash更快。


Flashloader_i.MXRT1050_GA.zip

8.71 MB, 下载次数: 42

回复

使用道具 举报

  离线 

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2018-5-19
在线时间
24 小时
发表于 2018-5-30 14:05:58 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

  离线 

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2016-11-20
在线时间
21 小时
发表于 2018-5-30 16:35:15 | 显示全部楼层
一堆看不懂,但是表示支持,肯定很有技术含量。
回复 支持 反对

使用道具 举报

  离线 

65

主题

6459

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
12878
金钱
12878
注册时间
2013-11-13
在线时间
1453 小时
发表于 2018-5-30 17:56:58 | 显示全部楼层
厉害了,不错,顺带着也把flashloader也讲解了,顶!
回复 支持 反对

使用道具 举报

  离线 

497

主题

9万

帖子

31

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
128316
金钱
128316
注册时间
2010-12-1
在线时间
1136 小时
发表于 2018-5-30 17:59:33 | 显示全部楼层
正点原子公众号
66666
回复 支持 反对

使用道具 举报

  离线 

0

主题

8

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-6-9
在线时间
0 小时
发表于 2018-6-9 20:35:22 | 显示全部楼层
厉害了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-6-24 22:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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