询问RT685 SD卡启动问题

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

询问RT685 SD卡启动问题

跳至解决方案
10,951 次查看
Felix3
Contributor II

之前调试 使用的MCUXpresso IDE进行在线debug,目前我想制作SD卡启动版本,请问是否有资料可以参考下

0 项奖励
回复
1 解答
10,719 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 

  非常好!下载地址必须要控制一部分出来,通常我会控制0X1000以上,flash,我是控制0X2000。

  恭喜你了。

关于.bin生成非常简单,按下图:

kerryzhou_0-1650429873745.png

kerryzhou_1-1650429887576.png

 

希望能帮到你!

Best Regards

Kerry

 

在原帖中查看解决方案

17 回复数
10,936 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 

   代码就像我和你说过的,要放到RAM里面,所以你准备个RAM代码就好了:

SDK代码把下面黄色块勾上

kerryzhou_0-1648889859277.png

然后后面烧录的,你就用UM里面说的命令去烧,进入ISP模式去烧,然后再转到从SD卡boot就可以了。

还有,你下次问问题,用公司邮箱,否则第三方邮箱等级太低,我们忙的时候可能会较迟回复你,但是公司邮箱优先级就相对较高。

Best Regards,

Kerry

 

0 项奖励
回复
10,901 次查看
Felix3
Contributor II

Hi KerryZhou :

非常感谢回复,

我梳理了一下目前我的理解和实验,我觉得不太完整,请指教下。

1. 首先我将ISP0 ISP1 ISP2 置位成low high high ,按照UM介绍他应该处在ISP模式下,此时我通过设备管理器查看新增了三个设备:JLINK CDC UART PORT(COM14)  J-LINK driver USB Composite Device。(ISP的拨码,ON端是LOW,反之是HIGH,目前是按照这样的方式来设置的)

2. 我在SDK代码包中导入了sdcard polling 这部分代码。勾选了LINK TO RAM选项,然后build,build完之后 我感觉只能选择debug。这时debug是会将application 加载进RAM中吗?

3. 接下来我下载了blhost.exe 。在命令行里运行命令blhost -p <COM 14> - fill-memory 0x1c000 0x4 0xd0082100  但是会提示系统找不到指定文件。

    我试了下运行blhost.exe -p COM14 -- reset

    提示“Successful generic response to command 'reset' ”

以上的流程 我有疑问:

1)我现在编译的是demo,但是我看UM中提供的命令里要用到image.bin。这个bin文件就是demo吗?

2)我通过debug 是否就将 application加载进RAM中了。然后blhost是将目前ram中的版本文件烧录进SDCARD?

3)以上的操作步骤 是否还缺少什么?

0 项奖励
回复
10,897 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

   你搞错了,用一个很简单的代码,比如helloworld, 或者LED翻转的。

  因为你现在跑boot的代码在SD 卡,你再下载SD 卡代码不是冲突嘛?

1)我现在编译的是demo,但是我看UM中提供的命令里要用到image.bin。这个bin文件就是demo吗?

Answer: 你RAM代码,位置偏移下,比如:led_blinky_0x0001c000

 

2)我通过debug 是否就将 application加载进RAM中了。然后blhost是将目前ram中的版本文件烧录进SDCARD?

Answer: 对,先下载到SD卡,然后启动从SD 卡拷贝到RAM并且运行。

你现在ISP是烧录,烧录成功后,启动还要调成SD卡启动。

3)以上的操作步骤 是否还缺少什么?

Answer: 代码不对,偏移地址不对。

其他的照着UM去做。

 

Best Regards,

Kerry

0 项奖励
回复
10,893 次查看
Felix3
Contributor II

Hi KerryZhou:

感谢回复:

我更换了demo ,使用helloworld demo进行试验,在导入了hello word demo后我发现workspace中是有helloworld.bin文件的。但这个文件并不是我编译生成。

1)我现在编译的是demo,但是我看UM中提供的命令里要用到image.bin。这个bin文件就是demo吗?

Answer: 你RAM代码,位置偏移下,比如:led_blinky_0x0001c000

Question: 这个Answer 我不太理解。我其实想问,image.bin如何编译出来。

2)以上的操作步骤 是否还缺少什么?

Answer: 代码不对,偏移地址不对。

Question: 我已经更换了helloword demo。Hlhost命令也做了调整:

blhost -p COM14 fill-memory 0x1c000 0x4 0xd0082100

这条命令执行success。

blhost -p COM14 configure-memory 0x120 0x1c000

Response status = 4(0x4) KStatus_InvalidArgument 这里貌似错了。

 

 

0 项奖励
回复
10,880 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

   你用MCUBootUtility里面的led_blinky的吧。

NXP-MCUBootUtility-3.4.0\apps\NXP_MIMXRT685-EVK_Rev.E

 bin 文件我上传到附件了。

你连接之前,先 连接下看看能不能成功:

blhost -t 50000 -p COM49,115200 -j -- get-property 1 0

COM用你板子ISP的串口。

如果能够成功,你在往下做。

代码你就用我的代码。image.bin 换成led_blinky_0x0001c000.bin

  Set the boot ROM in ISP mode via ISP pins.
Use the blhost commands below to write the boot image into the SD card.
blhost -p <COM XX> - fill-memory 0x1c000 0x4 0xd0082100
blhost -p <COM XX> - configure-memory 0x120 0x1c000
blhost -p <COM XX> - flash-erase-region 0x0 0x2000 0x120
blhost -p <COM XX> - write-memory 0x1000 image.bin 0x120

 

如果还有问题,你把hlhost的所有log给我。

由于上海疫情,我在家办公,手里没有板子没法测试,所以还请你多测,多给我结果。

 

Best Regards

Kerry

 

 

0 项奖励
回复
10,873 次查看
Felix3
Contributor II

Hi KerryZhou:

     感谢回复,按照你的回复我做了如下实验:

     1)blhost -t 50000 -p COM49,115200 -j -- get-property 1 0 先进行连接测试

           测试状态OK 

           进行烧录命令测试

          blhost -p <COM XX> - fill-memory 0x1c000 0x4 0xd0082100 此时会报错 提示ERROR

      2) 若不进行连接测试 会在第二条烧录指令时报出ERROR。

     我所下载的blhost 版本号是2.6.2 附件中是我所做实验的完整blhost log,以及调试版拨码器

     状态,请帮忙看一下。

     谢谢。

0 项奖励
回复
10,866 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 

  我们重来,发现有好东西,信息有点滞后了。

https://www.cnblogs.com/henjay724/p/16001983.html

参考这个,然后你直接下载MCUBootUtility工具,你再接个USB口,用USB去下载。

https://github.com/JayHeng/NXP-MCUBootUtility/releases/tag/v3.5.0
the related user manual is:
https://github.com/JayHeng/NXP-MCUBootUtility

kerryzhou_0-1650009584237.png

 

然后你可以参考那个log,UM的好像不是很一样。咱用这个。

你再测试看看。

 

Best Regards,

Kerry

 

0 项奖励
回复
10,804 次查看
Felix3
Contributor II

Hi KerryZhou

    感谢回复,我今天实验了两种方法,结果如下:

    1) 实验blhost 命令配置,再configure memory阶段出错,提示电压错误 LOG如下:

           

D:\MCU\NXP-MCUBootUtility-master\tools\blhost2_3\win>blhost -p COM3 -- fill-memory 0x1C000 0x4 0xD0082100
Ping responded in 1 attempt(s)
Inject command 'fill-memory'
Successful generic response to command 'fill-memory'
Response status = 0 (0x0) Success.

D:\MCU\NXP-MCUBootUtility-master\tools\blhost2_3\win>blhost -p COM3 -- configure-memory 0x120 0x1c000
Ping responded in 1 attempt(s)
Inject command 'configure-memory'
Response status = 1829 (0x725) invaild voltage

        2)利用你回复的 这个MCUBootUtility 工具,我实验了一下 ,这块链接都报错

Felix3_0-1650262852426.png

     请帮忙看下 ,应该怎么操作?

0 项奖励
回复
10,795 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

   你参考这个文章了吗?

https://www.cnblogs.com/henjay724/p/16001983.html

   你把MCUBootUtility 的log全部拷贝出来给我看看。

  还有你点开,看看配置怎么样?

kerryzhou_0-1650282974049.png

 

Best Regards,

Kerry

 

0 项奖励
回复
10,768 次查看
Felix3
Contributor II

Hi KerryZhou:

    感谢回复,我今天重新做了下实验,配置BOOT DEVICE CONFIG 配置完成后,我点击Connect to Rom 是可以连接上SD卡,并且会显示SD卡大小,29GB。LOG如下:

Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 5242000 -p COM14,115200 -j -- fill-memory 1097728 4 3490193664 word
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- configure-memory 288 1097728
'Connect to xxx' button is clicked
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- get-property 1 0
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- get-property 1 0
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- get-property 24 0
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- efuse-read-once 96
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- efuse-read-once 97
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- efuse-read-once 98
Executing F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost2_3\win\blhost -t 50000 -p COM14,115200 -j -- efuse-read-once 99

我记录了一下软件配置SD卡时的参数,然后断开连接后 利用blhost命令烧录,我这边看烧录已经成功了 LOG如下:

F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost\win>blhost
-p COM14 -- fill-memory 0x10c000 0x4 0xD0080000
Ping responded in 1 attempt(s)
Inject command 'fill-memory'
Successful generic response to command 'fill-memory'
Response status = 0 (0x0) Success.

F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost\win>blhost
-p COM14 -- configure-memory 0x120 0x10c000
Ping responded in 1 attempt(s)
Inject command 'configure-memory'
Successful generic response to command 'configure-memory'
Response status = 0 (0x0) Success.

F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost\win>blhost
-p COM14 -- flash-erase-region 0x0 0x20000 0x120
Ping responded in 1 attempt(s)
Inject command 'flash-erase-region'
Successful generic response to command 'flash-erase-region'
Response status = 0 (0x0) Success.

F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost\win>
F:\mcu\NXP-MCUBootUtility-3.5.0\NXP-MCUBootUtility-3.5.0\tools\blhost\win>blhost
-p COM14 -- write-memory 0x1000 image.bin 0x120
Ping responded in 1 attempt(s)
Inject command 'write-memory'
Preparing to send 13902 (0x364e) bytes to the target.
Successful generic response to command 'write-memory'
(1/1)100% Completed!
Successful generic response to command 'write-memory'
Response status = 0 (0x0) Success.
Wrote 13902 of 13902 bytes.

这时我将boot mode设置成sd卡启动,然后reset板子,但是我没看出来板子有任何变化,这个Image 我使用的是你发给我的led_blink。

请帮忙看下我是否有遗漏的操作。

0 项奖励
回复
10,760 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

   你这样,你先试试这个led代码烧录flash,看看启动是否能够闪灯?

   我记得是可以直接闪灯的, 你用原本的flash启动验证下。

  我看你现在是都成功了。

   你用MCUbootUtility, 把内存读出来看看,然后给我看看数据。你可以把数据都拷贝出来放文本里给我看,带地址信息的。

kerryzhou_0-1650363907003.png

 

  主要我现在没板子,没法给你直接测。

 

Best Regards,

Kerry

0 项奖励
回复
10,722 次查看
Felix3
Contributor II

Hi KerryZhou:

     感谢回复,我今天重新检查了下下载配置,后来发现我将下载时start地址写错了,在改成0x1000后重新下载,SD卡启动已经好了。启动demo 后可以发现led 闪烁。

     同样我也实验了nor flash下载,也是正确的。

     最后还有一个问题,我需要制作自己的image.bin文件。请问怎么制作呢?我使用MCUXpresso IDE 目前只是在线debug。并没有编译成bin文件。

     

0 项奖励
回复
10,720 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 

  非常好!下载地址必须要控制一部分出来,通常我会控制0X1000以上,flash,我是控制0X2000。

  恭喜你了。

关于.bin生成非常简单,按下图:

kerryzhou_0-1650429873745.png

kerryzhou_1-1650429887576.png

 

希望能帮到你!

Best Regards

Kerry

 

10,664 次查看
Felix3
Contributor II

Hi KerryZhou:

     感谢回复,实验了下,我修改的demo已经可以正常烧录进SD卡启动了。

     有个新问题:

     我目前在操作PSRAM 我看SDK代码中有flexspi_psram_dam_transfer这个demo。我看了下代码,这块操作是通过dam 一次读写一个pagesize(1024byte) 的方式进行的。

     我想了解下,是否有像arm这样不通过dma来操作memory的方式,比如一个地址一个地址的写入,或者读出呢。还是因为psram有pagesize的特性,操作上必须通过dma?

     

0 项奖励
回复
10,658 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

   如果有新问题,还请新建问题贴出来,以为一个帖子对应一个问题,谢谢。

Best Regards,

Kerry

0 项奖励
回复
10,944 次查看
kerryzhou
NXP TechSupport
NXP TechSupport

Hi @Felix3 ,

    SD卡启动代码,对吧?

    这个不难,只需要把你的代码放到内部RAM或者外部RAM,然后下载的时候下到SD卡,boot配置为从SD卡启动,这样就可以实现SD卡启动了。

   关于SD卡的启动,你需要看RT600 user manual:

kerryzhou_0-1648869320632.png

 

 

kerryzhou_1-1648869328621.png

下载你进入ISP模式,然后用blhost命令去烧。

 

Best Regards,

Kerry

 

0 项奖励
回复
10,942 次查看
Felix3
Contributor II

请问image应该如何编译呢,mcuxpresso ide 我看只是编译示例,具体的启动版本应该如何编译呢?

非常感谢

0 项奖励
回复