OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9911|回复: 6

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

[复制链接]

2

主题

15

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
365
金钱
365
注册时间
2017-12-14
在线时间
12 小时
发表于 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, 下载次数: 242

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165353
金钱
165353
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-5-30 17:59:33 | 显示全部楼层
66666
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手上路

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

使用道具 举报

11

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
460
金钱
460
注册时间
2014-11-23
在线时间
191 小时
发表于 2018-10-25 10:35:23 | 显示全部楼层
大神 只能用这种方法吗,不能用DAP下载吗?
菜鸟不可怕,就怕菜鸟不愿飞 | | | -===+=====_/(T)\_=====+===- | |/.\| | `-|\_/|-'
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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