查看: 11871|回复: 14

[求助] 1052Flash可烧录程序但无法从flash启动

[复制链接]
  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
    发表于 2021-4-14 14:38:10 | 显示全部楼层 |阅读模式
    新人求助!


    用的是1052系列芯片,
    boot引脚悬空boot mode为0,Boot From Fuses启动;通过片内RAM可以运行程序,将BT_FUSE_SEL写为1,BOOT_CFG默认为0,此时从外部Flash启动!



    使用的16mB的spi nor flash,新写的Flash下载算法,可以正常烧录(通过仿真可以查看到0x60000000数据类容与hex文件一致);
    通过片内RAM调试点灯例子可正常运行,现在下载到外部Flash中运行不起来(通过)!


    求教三个问题:
    1.boot mode为0,BT_FUSE_SEL=1,BOOT_CFG1[4,7]=0是否能从外部spi nor flash启动?
    2.外部Flash的配置是不是只需要更改evkbimxrt1050_flexspi_nor_config.c中flexspi_nor_config_t结构体即可?
    3.新人调试1052自研发板,感觉比较费劲,有没有比较好的调试方法,快速走一遍硬件调试?
    路漫漫其修远兮 吾将上下而求索
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-15 11:42:41 | 显示全部楼层
    有没有人呀:'
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    38

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    382
    最后登录
    2025-3-3
    发表于 2021-4-15 13:45:02 | 显示全部楼层

    回帖奖励 +5 NXP金币

    第二点的话,程序下对了的话,软件方面只需要修改flexspi_nor_config_t就行了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-15 14:06:59 | 显示全部楼层
    emmmmmmmmmmm 发表于 2021-4-15 13:45
    第二点的话,程序下对了的话,软件方面只需要修改flexspi_nor_config_t就行了

    仿真看了下下载到Flash的内容应该没啥问题。现在怀疑下面的LUT配置有问题,使用的W25Q128JV 16mB的Flash,能否指教下怎么配置这个?
    FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18),
    FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04),
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8

    主题

    38

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    382
    最后登录
    2025-3-3
    发表于 2021-4-15 18:00:07 | 显示全部楼层
    xujw 发表于 2021-4-15 14:06
    仿真看了下下载到Flash的内容应该没啥问题。现在怀疑下面的LUT配置有问题,使用的W25Q128JV 16mB的Flash ...

    0xEB、0X06和flash数据手册对上的话,感觉没啥问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24866
    最后登录
    2025-7-18
    发表于 2021-4-16 15:43:27 | 显示全部楼层
    楼主你好!
    你W25Q128JV 的QE位使能没有?
    你LUT使用quad模式,所以你的外部芯片QE位一定要使能的。
    你有没有去debug:
    SDK_2.9.1_EVKB-IMXRT1050\boards\evkbimxrt1050\driver_examples\flexspi\nor\polling_transfer
    放内部TCM的debug看看,是不是都可以运行?
    还有,你如果有外部的JLINK, 可以用JLINK command看看,halt之后,代码PC停在哪里,看看是不是还在ROM没boot起来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-21 17:13:50 | 显示全部楼层
    emmmmmmmmmmm 发表于 2021-4-15 18:00
    0xEB、0X06和flash数据手册对上的话,感觉没啥问题

    谢谢回复!用nor flash的例子验证是正确的
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-21 17:30:36 | 显示全部楼层
    小恩GG 发表于 2021-4-16 15:43
    楼主你好!
    你W25Q128JV 的QE位使能没有?
    你LUT使用quad模式,所以你的外部芯片QE位一定要使能的。

    谢谢小恩回复!使用的是winbond的W25Q128JVSIQ,QE默认是使能的;
    debug了polling_transfer可以正常运行,读写都是正常的;
    通过Jlink,PC停在了0x00215E8A,出现一次停在0x20003xxx位置;

    另外我通过demo板,去掉boot_mode的两个电阻使其悬空,写efuse可以正常运行电灯程序!
    现在很是迷茫不知道继续往哪里查问题了,请小恩再指教下,谢谢!
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-21 17:52:56 | 显示全部楼层
    小恩GG 发表于 2021-4-16 15:43
    楼主你好!
    你W25Q128JV 的QE位使能没有?
    你LUT使用quad模式,所以你的外部芯片QE位一定要使能的。

    补充一点:
    通过keil仿真,PC指针可以进入到0x60000000,但是while1执行一遍后,就卡死了;再去通过keil读取0x60000000地址数据均变为0了,再通过Jflash去连接读取0x60000000地址类容和hex文件保持一致;
    个人认为:芯片通过烧录的efuse应该可以加载到外部flash运行,但不知道什么原因中断了程序的运行?代码为官方demo代码。
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-29 16:57
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2021-9-8
     楼主| 发表于 2021-4-21 17:54:26 | 显示全部楼层
    xujw 发表于 2021-4-21 17:52
    补充一点:
    通过keil仿真,PC指针可以进入到0x60000000,但是while1执行一遍后,就卡死了;再去通过keil ...

    仿真卡死时,Jlink报错:***JLink Error: Could not start CPU core. (ErrorCode: -1)
    路漫漫其修远兮 吾将上下而求索
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-19 09:50 , Processed in 0.161876 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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