完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
说明
因为公司规定不能使用盗版软件,而正点原子提供的开发例程又都是基于keil开发的,所以只能放弃使用多年的老朋友,老老实实的开始倒腾免费开源的 MCUXpresso IDE。因为有用过 RT-Thread Studio 的经验,本来以为换上这个同类型的套壳 IDE 会是信手拈来的事,结果经历了无数翻车,惨不忍睹呀。好在是刚入职新公司,也是第一次用 NXP 平台,没有被领导 K 死。 但是,好处是在被拆腾的过程中,也基本了解了 分散加载, J-Link, J-Flash 下载的一些知识。想当年这些都是被 Keil 包装好,基本没去了解过,开发也是拿来就用了。 资料准备 一切就绪,搞他 安装 IDE 及生成基本工程
const flexspi_nor_config_t qspiflash_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClkSrc = kFlexSPIReadSampleClk_LoopbackInternally, //kFlexSPIReadSampleClk_LoopbackFromDqsPad, .csHoldTime = 3u, .csSetupTime = 3u, .columnAddressWidth = 0u, .configCmdEnable = 0u, // Enable SDR mode, Wordaddassable, Safe configuration, Differential clock .controllerMiscOption = 0u, .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_4Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, .lutCustomSeqEnable = 0u, .sflashA1Size = 8u * 1024u * 1024u, //8MB .lookupTable = { // Fast read sequence [0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0xEB, RADDR_SDR, FLEXSPI_4PAD, 0x18), [1] = FLEXSPI_LUT_SEQ(DUMMY_SDR, FLEXSPI_4PAD, 0x06, READ_SDR, FLEXSPI_4PAD, 0x02), [2] = FLEXSPI_LUT_SEQ(STOP, 0, 0, STOP, 0, 0), [3] = FLEXSPI_LUT_SEQ(STOP, 0, 0, STOP, 0, 0), }, }, .pageSize = 512u, .sectorSize = 4u * 1024u,/*扇区大小为4k字节*/ }; 更改如下 /*! @brief The hyper flash size */#define BOARD_FLASH_SIZE (0x800000U) //8M Flash, (0x4000000U) 重新编译并执行debug, 调试已经正常启动了,并且停在了 main() 入口 点击 运行 按钮,见证奇迹的时刻 重要知识点补充说明 为什么第一次Debug时程序没有跑来 因为 IDE 在下载完程序后,并没有让 MCU 跳转到指定的地址开始运行,而是让 MCU reset 后跑起来,那么 1052 就会首先执行片内ROM引导程序去读取 Flash 起始位置存放的 Flash Configurate 信息,然后配置相应的 Flash 寄存器。但当前程序里面存放的是 HyperFlash 的配置信息,所以ROM调用的驱动信息就错误了,导致程序没有跑起来. IDE 烧录程序的流程猜想 当点击 Debug 按键或者点击下载按键 时,IDE 会调用 JLinkGDBServerCL.exe 下载程序,并将下载结果返回给 IDE。所以要确保 IDE 设置的 J-Link 地址正确,具体位置如下: 所以当 IDE 调试出错时,可能通过 J-Flash.exe 程序帮忙验证是烧录出问题了,还是运行出问题了 双击 *.lanuch 文件调出 Debug 的更详细设置 更改 Flash 或者 RAM 的配置 更改 分散加载 的方法 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3458 浏览 1 评论
9000 浏览 16 评论
4051 浏览 18 评论
1110浏览 3评论
572浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
569浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2302浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 18:10 , Processed in 1.114782 second(s), Total 78, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号