查看: 7625|回复: 10

[求助] RT1176 使用FlexSPI2外挂flash作为启动设备,无法烧录程序

[复制链接]

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
105
最后登录
2023-8-10
发表于 2021-10-13 11:33:58 | 显示全部楼层 |阅读模式
本帖最后由 落叶遍地 于 2021-10-13 11:44 编辑

本人最近在开发一个项目,所用芯片是RT1176,flash接到了FlexSPI2 (Primary Pin Group)上面,已经按照手册说明将 FLEXSPI_INSTANCE boot pin 设为 1(即BT_CFG11/GPIO_DISP_B2_05上拉),其他启动引脚下拉到GND,和开发板保持一致,没有烧写efuse,现在可以直接在RAM中调试运行,说明芯片和JLINK通信应该没问题,但是无法烧录程序到flash和XIP调试,烧录时提示:         Writing target memory failed.
         Script processing completed.
         Unable to perform operation!
         Command failed with exit code 1

还有一点,因为我使用的是FlexSPI2,所以将MCU settings里面的flash地址从0x30000000改为了0x60000000,然后发现编译出来的文件没有IVT头(前8k字节),查看ld文件,发现ld文件没有以下这部分,这一点也让我感到很疑惑???
                                    .boot_hdr : ALIGN(4)
                                    {
                                        FILL(0xff)
                                        . = 0x400 ;
                                        __boot_hdr_start__ = ABSOLUTE(.) ;
                                        KEEP(*(.boot_hdr.conf))
                                        . = 0x1000 ;
                                        __boot_hdr_ivt_loadaddr__  =  ABSOLUTE(.) ;
                                        KEEP(*(.boot_hdr.ivt))
                                        . = 0x1020 ;
                                        __boot_hdr_boot_data_loadaddr__ = ABSOLUTE(.) ;
                                        KEEP(*(.boot_hdr.boot_data))
                                        . = 0x1030 ;
                                        __boot_hdr_dcd_loadaddr__ = ABSOLUTE(.) ;
                                        KEEP(*(.boot_hdr.dcd_data))
                                        __boot_hdr_end__ = ABSOLUTE(.) ;
                                        . = 0x2000 ;
                                    } >BOARD_FLASH

然后我尝试不直接在MCU setting 上修改flash地址,而是取消选中 manage linker script 这个选项,直接在原有ld文件上修改flash地址,这时编译出来的应该没问题了,但还是无法烧录。。。


最后,我将编译好的文件使用NXP-MCUBootUtility工具烧录程序,发现可以烧录进去,也能正常启动。。。

不知道是否还有其他需要配置的地方,为什么使用IDE无法烧录和调试?


回复

使用道具 举报

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25169
最后登录
2025-8-12
发表于 2021-10-15 10:21:48 | 显示全部楼层
楼主你好!
你这个问题和debugger的烧录算法有关,默认应该是走FlexSPI1的。
你的MCUBootUtility配置是什么样的,也就是能够下载的情况。 3.jpg
是否做了什么修改?
你MCUbootUtility 下载之后是否能够直接boot起来,也就是APP代码能够工作呢?
还有你的debugger用的是什么,因为不同的debugger,烧录算法文件不一样。比如CMSIS DAP, MCUXpresso中用的是.cfx。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
105
最后登录
2023-8-10
 楼主| 发表于 2021-10-15 14:08:07 | 显示全部楼层
小恩GG 发表于 2021-10-15 10:21
楼主你好!
你这个问题和debugger的烧录算法有关,默认应该是走FlexSPI1的。
你的MCUBootUtility配置是什么 ...

你好,我在MCUbootUtility中通过:tools->FlexSPI XIP Region选择了1(默认是0),其他保持默认,可以烧录并正常启动

我在IDE中使用的调试器是JLINK,现在感觉是烧录算法写死了flash引脚,没有根据boot配置使用对应的引脚,因为这款flash我接到FlexSPI1时是可以烧录调试的
回复 支持 反对

使用道具 举报

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25169
最后登录
2025-8-12
发表于 2021-10-18 13:39:57 | 显示全部楼层
落叶遍地 发表于 2021-10-15 14:08
你好,我在MCUbootUtility中通过:tools->FlexSPI XIP Region选择了1(默认是0),其他保持默认,可以烧 ...

楼主你好!
你把boot pin改下试试:
BOOT_CFG2[3]=1. 这个会选择FlexSPI2.
GPIO_DISP_B2_05 是BOOT_CFG2[3]。
看看这样能否直接烧写了。

回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
105
最后登录
2023-8-10
 楼主| 发表于 2021-10-18 13:45:58 | 显示全部楼层
小恩GG 发表于 2021-10-18 13:39
楼主你好!
你把boot pin改下试试:
BOOT_CFG2[3]=1. 这个会选择FlexSPI2.

你好,这个设计板子时就改好了,现在我怀疑是不是烧写算法的问题,是不是要单独写个flexSPI2的烧写算法
回复 支持 反对

使用道具 举报

该用户从未签到

715

主题

6374

帖子

0

超级版主

Rank: 8Rank: 8

积分
25169
最后登录
2025-8-12
发表于 2021-10-18 16:27:56 | 显示全部楼层
落叶遍地 发表于 2021-10-18 13:45
你好,这个设计板子时就改好了,现在我怀疑是不是烧写算法的问题,是不是要单独写个flexSPI2的烧写算法 ...

应该和烧录算法有关,你使用的是JLINK,对吧?
你试试这个超级下载算法:
https://www.cnblogs.com/henjay724/p/14942574.html
然后设备就选择MIMXRT1170_UFL_L0,你再试试是否直接可以下载。 4.jpg
这个超级下载算法会自动识别,你先试试看。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

9

帖子

0

注册会员

Rank: 2

积分
105
最后登录
2023-8-10
 楼主| 发表于 2021-10-19 10:34:07 | 显示全部楼层
小恩GG 发表于 2021-10-18 16:27
应该和烧录算法有关,你使用的是JLINK,对吧?
你试试这个超级下载算法:
https://www.cnblogs.com/henja ...

这个超级下载算法我试过了,也不行,它的flash基地址也是从0x30000000开始的,看来我得抽时间写一个

谢谢!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2022-6-15 09:23
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    0

    主题

    14

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    419
    最后登录
    2025-1-23
    发表于 2021-10-19 17:19:14 | 显示全部楼层
    markmark
    加油加油加油
    回复

    使用道具 举报

    该用户从未签到

    715

    主题

    6374

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25169
    最后登录
    2025-8-12
    发表于 2021-10-21 13:51:36 | 显示全部楼层
    落叶遍地 发表于 2021-10-19 10:34
    这个超级下载算法我试过了,也不行,它的flash基地址也是从0x30000000开始的,看来我得抽时间写一个

    谢 ...

    烧录算法的源代码都已经提供了,如果基地址不一样,你可以直接去修改烧录算法的源代码。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    注册会员

    Rank: 2

    积分
    96
    最后登录
    2025-3-13
    发表于 2024-6-28 17:19:40 | 显示全部楼层
    楼主  有进展吗?
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-16 02:57 , Processed in 0.095918 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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