完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我们刚刚获得了自己设计的第一个原型,其中包含以下组件: - MCU 是 MIMXRT1061CVL5B - 闪存是连接到 QSPI1 的微芯片 SST26VF064B - J-link SWD 用于调试 项目是用 MCUXpresso IDE 构建的。 构建的基础知识取自 MIMXRT1060-EVKB-DEVKIT 示例,设备更改为 1061,evkmimxrt1060_flexspi_nor_config.c 如下所示: const flexspi_nor_config_t qspiflash_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldtime = 3u, .csSetupTime = 3u, .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_4pads, .serialClkFreq = kFlexSpiSerialClk_80MHz, .sflashA1Size = 8u * 1024u * 1024u, .lookupTable = { // Read LUTs [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18), // SPI Quad I/O Read: EBH, 24bit address [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x04), // 6 dummy cycles, read data in 4 bit blocks // Read Status LUTs [4 * 1 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x05, READ_SDR, FLEXSPI_1PAD, 0x04), // Read-Status Register : 05H, // Write Enable LUTs [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP, FLEXSPI_1PAD, 0x0), // Write-Enable: 06H // Erase Sector LUTs [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x20, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Sector-Erase:20H, 24bit address // Erase Block LUTs [4 * 8 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xD8, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Block-Erase: D8H, 24bit address // Pape Program LUTs [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x02, RADDR_SDR, FLEXSPI_1PAD, 0x18), // Page-Program: 02H, 24bit address [4 * 9 + 1] = FLEXSPI_LUT_SEQ(WRITE_SDR, FLEXSPI_1PAD, 0x04, STOP, FLEXSPI_1PAD, 0x0), // Write bytes. Stop. // Erase Chip LUTs [4 * 11 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xC7, STOP, FLEXSPI_1PAD, 0x0), // Chip-Erase: C7H }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .ipcmdSerialClkFreq = 1u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, }; MCU 启动并运行,我们可以使用 J-link 调试器运行链接在 SRAM 中的测试软件。 J-link 将位于 FLASH 的应用程序下载到设备,但问题开始了: - 在调试器配置中,我们选择 NOT to reset the target before running。 - 调试器进入 main 中的断点,我们可以执行几个第一次调用,直到我们结束“deadbeef”。 复位后 MCU 不启动到 FLASH 应用程序。 当运行稍微修改过的evkmimxrt1060_flash_component_nor示例时,我们可以看到至少应用程序的第一段已正确加载到 FLASH。 这证明 FLASH 接口的写入/读取是有效的。 在选择Generate unsigned Bootable image时使用NXP MCU Boot Utility工具,该工具显示警告“ Invalid vector address found in image file: gen\user_file\proto0.srec ”,但这实际上并没有告诉我们那里出了什么问题。我们无法测试通过 USB 加载应用程序,因为 USB 连接似乎存在一些问题,仍在检查原因。 欢迎任何好的提示,无法从 FLASH 运行应用程序确实会停止我们的测试工作。NXP MCU Boot Utility 警告是什么意思?查看映射文件,至少二进制文件开头的地址似乎与从 SDK 示例生成的地址相同。 提前谢谢你, 朱卡 顺便说一句:从来没有真正理解NXP MCU 启动实用程序的FlexSPI NOR 设备配置窗口应该如何工作:如果我在那里选择 Microchip_SST26VFxxxB ,任何地方都没有改变,文件夹gen\bootable_image中生成的二进制映像的开头看起来仍然与它们最初是由 MCUXpresso 生成的。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36414 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4796 浏览 1 评论
6100 浏览 1 评论
6807 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4244 浏览 0 评论
641浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
638浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
639浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
725浏览 2评论
836浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 14:11 , Processed in 1.225706 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号