首页 论坛 原厂专区 NXP(freescale) MCU MCUXPresso JLINK仿真RT1050从QSPI启动问题
分享到:
一,文档介绍
在使用MIMXRT1050-EVKB修改为从外部QSPI flash启动,代码使用官方的SDK代码,IDE使用官方的MCUXpress IDE, 具体的硬件以及代码修改可以参考之前写过的经验分享:
如果使用IAR和MDK结合JLINK下载,可能没有什么问题,但是使用MCUXpresso IDE的工程,经过如下修改:
1.代码
Evkbimxt1050_flexspi_nor_config.c,把hyperflash_config代码屏蔽掉,添加如下代码:
const flexspi_nor_config_t qspiflash_config = {
.memConfig =
{
.tag = FLEXSPI_CFG_BLK_TAG,
.version = FLEXSPI_CFG_BLK_VERSION,
.readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackFromDqsPad,
.csHoldTime = 3u,
.csSetupTime = 3u,
// Enable DDR mode,Wordaddassable, Safe configuration, Differential clock
.sflashPadType =kSerialFlash_4Pads,
.serialClkFreq =kFlexSpiSerialClk_100MHz,
.sflashA1Size = 8u * 1024u *1024u,
.lookupTable =
{
// Read LUTs
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),
},
},
.pageSize = 256u,
.sectorSize = 4u * 1024u,
.blockSize = 256u * 1024u,
.isUniformBlockSize =false,
};
2. cfx文件修改
修改之后,使用JLINK仿真,会出现如下问题:
-
外部qspi flash被擦除的情况下进入仿真之后,指针无法进入到main,退出debug之后,程序功能不运行。
-
外部qspi flash已经有代码的情况下进入仿真之后,指针可以进入main,但是运行起来,会发现还是上一次flash里面的代码。举例,上次烧录的是helloworld的代码,当前是Ledblinky的代码,看似仿真已经进去了,但是运行或者退出仿真,跑的均是之前的helloworld代码。
关键这个问题,只有在MCUXPresso IDE中使用JLINK 仿真器才会出现这个问题,但是使用CMSIS DAP仿真,就没有问题。
二,问题解决
这里也不多说废话,直接上解决方案。
到Segger 官网下载最新的JLINK 驱动:
下载之后,打开路径: C:\Program Files(x86)\SEGGER\JLink_V644i\
文件:JLinkDevices.xml
搜索:MIMXRT105, 会找到跟RT105X相关的代码,可以看到所有的Flash用的都是Hyperflash,使用的loader也是Hyperflash的,所以将MIMXRT105X的代码修改为如下代码:
附件中,会给出对应的修改后的segger JLinkDevices.xml,也可以直接替换C:\Program Files(x86)\SEGGER\JLink_V644i\路径下的文件。
修改之后,再次使用JLINK仿真,可以看到就算把外部QSPI flash擦除掉,也能够准确进入到debug模式:
这里几个注意点:
-
如果在MIMXRT1050-EVKB板子上使用外部JLINK,并且使用J21 作为SWD仿真口,需要断开J33,也就是断开板载的仿真器,保证不会两个仿真冲突。
-
实际上,MCUXpresso IDE工程中,不需要修改对应的.cfx,因为这个驱动是给CMSIS DAP仿真器用的,如果用JLINK,是Segger自己导入的loader, 就是我们看到的segger JLinkDevices.xml中的Devices/NXP/iMXRT105x/NXP_iMXRT105x_QSPI.elf可以在路径:C:\Program Files(x86)\SEGGER\JLink_V644i\Devices\NXP\iMXRT105x中看到
(0 )
(0 )
回复
举报
发表回复
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖