痞子衡嵌入式:MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项(i.MXRT500为例)
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项。
痞子衡前段时间写过一篇小文《为i.MXRT设计更新Segger J-Link Flash下载算法文件》,介绍了痞子衡在github上的开源i.MXRT下载算法项目,这个项目收集了几乎所有i.MXRT型号的J-Link flash下载算法源工程,基于这个源工程可以很轻松修改生成不同flash的算法文件用于各大IDE以及J-Flash。今天痞子衡就来介绍一下如何使用新生成的flash算法文件配合J-Link调试器在MCUXpresso IDE下XIP调试(基于i.MXRT500)。
1、准备测试环境
首先需要准备好测试环境,包含必要的软件和硬件,痞子衡的环境如下:
其中集成开发环境和软件开发包需要有如下版本对应关系,因为MCUXpresso IDE是恩智浦基于GCC和Eclipse而设计的免费IDE,而且主要是为恩智浦MCU设计的,所以跟恩智浦MCU SDK包有一定的捆绑关系。
2、新生成flash算法
我们测试的板卡是MIMXRT595-EVK (Rev.C1),这个板卡默认是在FlexSPI0上连接的八线Flash(MX25UM51345),J-Link驱动里如果支持i.MXRT500的话默认flash算法也是这个八线flash,为了测试新生成的flash算法,我们将板卡rework一下,FlexSPI0连接到四线Flash(IS25WP064)。
我们现在需要为这个四线Flash(IS25WP064)做一个新flash算法,打开痞子衡的github开源项目如下源工程,确保工程添加的is25wp064相关的源文件,然后编译生成新的MIMXRT5XX_FLEXSPI.FLM(即flash算法文件)。
有了新flash算法文件,将其放到 \SEGGER\JLink_V672b\Devices\NXP\iMXRT5xx 路径下,为了跟默认flash算法区分开来,可以将其重新命名为MIMXRT5XX_FLEXSPI_IS25WP064.FLM,顺便更新JLinkDevices.xml文件。
将板卡供电,连上Jlink调试器,使用JlinkCommander的loadbin命令试一下新flash算法是否有效,在确保新flash算法没问题时再进入IDE调试。
3、进入MCUXpresso IDE调试
3.1 导入SDK及打开示例工程
打开MCUXpresso IDE,默认Installed SDKs界面框里没有RT500,我们直接将下载好的SDK_2.8.0_EVK-MIMXRT595_PRC.zip包拖到Installed SDKs界面框中即可。
这时候Installed SDKs界面框里可以看到RT500,选中它然后继续操作来导入example,我们就选demo_apps下的hello_world例程,编译这个工程确保没问题。
3.2 更新J-Link Server路径
在安装MCUXpresso IDE时会同时安装一个默认Jlink驱动(一般路径在C:\Program Files (x86)\SEGGER\JLink),这个驱动版本不一定新,MCUXpresso会默认调用这个驱动,但很多时候我们都是手动安装新Jlink驱动来使用的(痞子衡装在了C:\tools_mcu\SEGGER\JLink_V672b),前面我们新生成的flash算法也是放在手动安装的Jlink驱动目录下的,因此我们需要在MCUXpresso里重设J-Link Server路径,指向手动安装的Jlink驱动。
3.3 借助J-Link在线调试
看起来一切就绪了,让我们开始在flash调试吧,点击Debug按钮,会看到MCUXpresso弹出了调试器类型选择,并且识别到了我们连接的J-Link,点击OK确认。
这时候可以看到MCUXpresso调用了J-Link驱动完成了代码烧写(这时候去读flash,里面的内容是烧录正确的),但是界面并没有停在main函数里,并且没法单步调试,这是为什么?
3.4 满足MCUXpresso调试流程
然后痞子衡去咨询了MCUXpresso IDE研发团队,得知它默认的调试流程跟一般的通用IDE(Keil,IAR)不太一样,一般的IDE可以直接引导App启动来调试,但MCUXpresso IDE不主动引导App,而是复位后让App自然启动,然后尝试Attach上去接管调试,所以根据这个流程,我们需要做两点必要的改动:
- 更新flash_config头(将hyper flash配置改为QSPI Flash配置),需要与板卡连接的flash相匹配
- 设置ISP模式为从Flash启动,保证reset之后ROM能引导App从Flash正常启动
改动完之后,我们终于可以愉快地单步调试了。
至此,MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项痞子衡便介绍完毕了,掌声在哪里~~~
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项(i.MXRT500为例)的更多相关文章
- 痞子衡嵌入式:轻松为i.MXRT设计更新Segger J-Link Flash下载算法文件
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是为i.MXRT设计更新Segger J-Link Flash下载算法文件. 想要在Flash中调试,基本是离不开Flash下载算法的,毕 ...
- 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(4)- 联合调试(vspd, sscom, PyCharm2018.2)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之联合调试. 软件开发离不开调试,调试手段分两种:一是黑盒调试,即直接从输入/输出角度测试软件功能是 ...
- 痞子衡嵌入式:在i.MXRT启动头FDCB里调整Flash工作频率也需同步设Dummy Cycle
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是Flash工作频率与Dummy Cycle的联系. 上一篇文章 <从头开始认识i.MXRT启动头FDCB里的lookupTable ...
- 痞子衡嵌入式:揭秘i.MXRTxxx系列上串行NOR Flash双程序可交替启动设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT500/600上串行NOR Flash双程序可交替启动设计. 在上一篇文章 <i.MXRT1170上串行NOR Fla ...
- 痞子衡嵌入式:揭秘i.MXRT1060,1010上串行NOR Flash冗余程序启动设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1060,1010上串行NOR Flash冗余程序启动设计. 工业产品设计里经常会有冗余程序/备份程序设计的需求,因为在工业 ...
- 痞子衡嵌入式:MCUXpresso IDE下在线调试时使用不同复位策略的现象总结
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下在线调试时使用不同复位策略的现象总结. 本篇实际上是<IAR在线调试时设不同复位类型可能会导致i.M ...
- 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.1)- 玩转板载OpenSDA,Freelink调试器
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列EVK上板载调试器的用法. 本文是i.MXRT硬件那些事系列第二篇,第一篇痞子衡给大家整体介绍了i.M ...
- 痞子衡嵌入式:MCUXpresso IDE下添加C++源文件进SDK工程编译的方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下添加C++源文件进SDK工程编译的方法. 最近有客户反映在MCUXpresso IDE下的SDK工程里添加 ...
- 痞子衡嵌入式:MCUXpresso IDE下SDK工程导入与workspace管理机制
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下SDK工程导入与workspace管理机制. MCUXpresso IDE是恩智浦软件团队倾注很大心血研发 ...
随机推荐
- Springboot整合MongoDB的Docker开发,其它应用也类似
1 前言 Docker是容器开发的事实标准,而Springboot是Java微服务常用框架,二者必然是会走到一起的.本文将讲解如何开发Springboot项目,把它做成Docker镜像,并运行起来. ...
- 如何使用CSS创建巧妙的动画提示框
当你的用户需要一些额外的上下文来放置图标,或者当他们需要一些保证来点击按钮,或者可能是一个复活节彩蛋的标题来搭配一个图片时,工具提示是一个很好的方法来增强用户界面.现在让我们来制作一些动画工具提示,只 ...
- css盒子模型的深入理解,在块级、行内元素的区别和特性
css盒子模型用于处理元素的内容.内边距.边框和外边距的方式简称.元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘是边框.边框以外是外边距,外边距默认是透明的 ...
- 洛谷 P1131 [ZJOI2007]时态同步 树形DP
题目描述 分析 我们从根节点开始搜索,搜索到叶子节点,回溯的时候进行维护 先维护节点的所有子节点到该节点最大边权(边权为叶子节点到同时到达它所需要时间) 然后维护答案,答案为最大边权减去所有到子节点的 ...
- Install-Package : 找不到程序包
将程序包源链接地址改为https://www.nuget.org/api/v2/即可.
- SpringMVC如何从默认的index.jsp页面跳转到其他页面
最近学习SpringMVC时,想要做一个登录页面Login.jsp,发现Tomcat服务器默认进入的页面是WEB-INF/index.jsp,查询资料发现如果修改默认页面,还需要修改Tomcat文件目 ...
- python3 读取chrome浏览器cookies
原文链接:https://www.cnblogs.com/gayhub/p/pythongetcookiefromchrome.html 好几年前我在做一些自动化的脚本时,脑子里也闪过这样的想法:能不 ...
- java 面向对象(三十六):泛型五 通配符
1.通配符的使用 /* 通配符的使用 通配符:? 类A是类B的父类,G<A>和G<B>是没关系的,二者共同的父类是:G<?> */ @Test public voi ...
- POJ 1057 File Mapping 最详细的解题报告
题目来源:POJ 1057 File Mapping 题目大意:像我的电脑那样显示文件夹和文件信息,其中在同一级目录内,文件夹排在文件的前面并且文件夹的顺序不变,同一级目录中文件按字母序排列.文件以‘ ...
- 如何用HMS Nearby Service给自己的App添加近距离数据传输功能
当你给朋友发送手机资料时,过了很久进度条却动也不动:当你想发送大文件给同事时,仅一个文件就用光了你所有流量:当你跟朋友乘坐飞机时想一起玩游戏时,却因没有网络无奈放弃. 们生活中似乎经常能遇到这 ...