当前位置: 首页 > news >正文

debug - MCUXpresso - 导入NXP工程做的makefile工程并单步调试

文章目录

    • debug - MCUXpresso - 导入NXP工程做的makefile工程并单步调试
    • 概述
    • 笔记
    • 前置
      • 从nxp向导生成的工程中导出内存配置
    • 如何导入makefile工程,配置,单步调试?
      • 导入makefile工程
      • 配置
      • 去看看本地正常的调试配置
    • 备注
    • END

debug - MCUXpresso - 导入NXP工程做的makefile工程并单步调试

概述

想研究一个开源工程(基于arm-gcc工具链的makefile工程),想试试能不能导入MCUXpresso进行单步调试。
实验分2步,现在第一步完成了一半,准备完成第一步的另一半。
现在已经从NXP向导做的工程中,抠出了一个makefile工程(debug - MCUXpresso - 从NXP工程做一个makefile工程出来), 现在就将这个nxp工具链的makefile工程导入MCUXpresso, 看看能不能单步调试。

如果能单步调试,实验的第一步就完成了。
当然,我既然写这个笔记,当然是已经能单步调试了,实验的第一步已经完成。
在此,仅是记录实验过程和要点。

笔记

前置

需要从nxp向导做的工程中,将memory设置导出来。在导入makefile工程后,需要导入这个配置,否则无法单步调试。
为啥不能在NXP的UI中选择正确的内存调试配置?答案是不能。MCUXpresso有bug, 即使是选了和MCU对应的内存配置和FLASH下载算法文件,只能是内存配置改了,但是FLASH算法文件始终都是旧的或者默认的,只能用导入正确的内存配置文件来解决这个问题。

从nxp向导生成的工程中导出内存配置

这个工程一定要是正常工程(nxp向导生成的c++工程),已经正常编译过,可以对自己的板子进行单步调试了。
一般,nxp向导生成的c++工程,不需要进行啥设置,就可以直接对板子进行单步调试。调试目标和调试选项都是根据MCU预先设置好的。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
打开导出的内存配置文件,可以看到里面有FLASH算法文件的名称,这在导入makefile工程后,无法设置的(是MCUXpresso的bug).
如果自己熟悉MCUXpresso, 也可以从不好使的导入后的工程,导出内存配置,然后将FLASH算法文件名称改成正确的,再导入,就可以单步调试了。

如何导入makefile工程,配置,单步调试?

导入makefile工程

先确认自己的makefile工程,是可以通过nxp工具链正常编译通过的。然后清掉工程输出。
在这里插入图片描述

开一个新的工作区(磁盘目录没有这个工作区目录),我们从头做实验。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我这个makefile工程是nxp工具链整理出来的,所以导入的时候,也选择nxp工具链,点击完成。

配置

在这里插入图片描述
刚导入完成,MCU,内存,库这些都是空的,如果单步调试,必然失败。因为MCUXpresso的Linkserver都不知道用什么FLASH算法下载程序,也不知道目标MCU和内存布局。

但是,现在我们也设置不了,没有菜单可以设置。
因为现在工程的配置文件格式都不对,即使去设置,也会报错,导致无法设置。
实验了一下,只能是强行假装单步调试,等失败后,关掉MCUXpresso, 再启动MCUXpresso, 再进入工程时,工程配置文件就有了。此时,就可以设置了。

现在就按照上面那这行实验记录来一遍。
在MCUXpresso中,先将程序编译一下,此时,也是调用的我们自己工程的makefile来编译的。
在这里插入图片描述
在这里插入图片描述
现在,先来一次失败的单步调试。
在这里插入图片描述
MCUXPresso支持3种硬件调试器,CMSIS-DAP是其中一种,我们不用选板子上是哪种硬件调试器,MCUXPresso会自己侦测。
在这里插入图片描述
如果自己清楚,也可以将不是的那2种勾掉,然后确定。
在这里插入图片描述
这次是必然失败的,因为什么都没有设置。默认设置的参数和我们的板子大概率不一样。
点击确定,关闭报错框。
在这里插入图片描述
在控制台里面看报错信息,往上翻,可以看到,是因为FLASH下载算法文件不对,因为程序下载失败。
现在去工程树中去看,已经看到MCUXpresso已经帮我们填了错误的MCU型号。
在这里插入图片描述
这时,我们就可以自己用菜单去改了(改成我们板子的MCU, 导入正确的内存配置文件)
在这里插入图片描述
去除勾选(保留内存配置),然后选MCU为自己板子的MCU,点击应用。
在这里插入图片描述
因为MCUXpresso的bug, 我们无法通过选择FLASH算法文件,来更改工程实际要使用的算法文件。(即使选了,应用,关掉对话框,再打开对话框,还是旧的FLASH算法文件,导致单步调试失败)。

所以,我们现在就要导入前面从正常工程导出的内存配置文件。
在这里插入图片描述

在这里插入图片描述
现在FLASH算法和内存配置,都对了。点击应用,应用并关闭。关掉对话框。
在这里插入图片描述
根据自己需要,将库设置为Newlib(nohost)
现在将工程再重新编译一遍。
开始调试。
在这里插入图片描述
这次单步调试是失败的,关掉报错框。
杀掉可能存在的调试器进程。
在这里插入图片描述
去调试配置中,删除可能存在的旧调试配置。
在这里插入图片描述
在这里插入图片描述
关闭调试配置对话框。
再开始单步调试。
在这里插入图片描述
因为我们已经删除了所有的调试配置,调试开始后,会让我们自己来选。
选择侦测到的CMSIS-DAP调试器,点击确定。
在这里插入图片描述
现在单步调试就正常了,按F6就可以单步调试,美美的 😛

去看看本地正常的调试配置

中止单步调试。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
主要是这2个页。
一个页指定要调试的是哪个elf
一个页指定是使用SWD调试方式和reset和断开连接时发出的信号,是否支持半主机方式。
如果上述调试配置还不能正常调试(我没遇到过),可以看看具体的调试配置和NXP向导正常工程的区别,如果有区别,就能比对出来。

备注

这个实验不是我最终要的效果。
因为谁没事也不会从一个正常的nxp工程中,导出makefile工程,再导入MCUXpresso当作makefile工程来用。这不是脱裤子放屁么?
这个实验只是验证我的调试想法: 导入最理想的makefile工程(MCUXpressso向导生成工程的等价makefile工程,源码,工具链都相同),是否能在MCUXpresso中单步调试,这只是第一步。

下一步实验,将普通的arm-gcc工具链的makefile工程导入MCUXpresso,是否能单步调试?
这才是我要的效果。等下一步来做这个实验.
因为开源工程,如果不采用IDE来编程,那么大概率用的都是arm-gcc工具链的makefile(CMAKE)工程。

通过本实验,验证了MCUXpresso确实支持导入makefile工程并单步调试。心里踏实多了。
是否普通的arm-gcc的makefile固件工程,也能导入MCUXpresso, 这要通过实验来验证。预期大概率是可以的(原因:MCUXpresso导入makefile工程后,只是加了调试配置,别的和原来的makefile工程都无关。所以导入普通的makefile工程到MCUXpresso, 大概率也是能单步调试的)。

END

http://www.dtcms.com/a/501672.html

相关文章:

  • 网站建设 投资预算怎么在广告联盟接广告
  • 网站备案 2016wordpress divi主题
  • 毕设做网站答辩一般问什么itmc平台seo优化关键词个数
  • 绍兴中交水利水电建设有限公司网站高端网站制作网站建设
  • 电商网站硬件配置厦门高端网站建设定制
  • 做微信商城网站哪家好wordpress数据备份插件
  • 品牌手表网站科研院所网站建设
  • 4k视频素材网站专业网站建设平台
  • php网站伪静态宝安品牌网站制作
  • kesioncms企业网站蓝色模板哈尔滨自助建站模板
  • 做地接的网站wordpress如何修改代码
  • 特色的南昌网站制作深州市住房保障和城乡建设局网站
  • 建设银行网站钓鱼11号在线 网站开发
  • 好看简单易做的网站新乡市工程建设信息网
  • 闵行区网站设计长春建设招标网
  • 抚松网站建设网页游戏排行榜开服表
  • ASP Session管理详解
  • 如何加强旅游电子商务网站的建设网站类型定位分析
  • 网站权重提升工具蓬莱做网站
  • 网站技术外包公司企业工商信息查询单在哪打印
  • 为什么访问外国网站速度慢网站建设 中小企业
  • 各大网站做推广广告如何做外卖网站app
  • 好看的旅游网站模版如何将自己做的网页做成网站
  • 单品网站怎么建设福田响应式网站建设服务
  • 网站转微信小程序四川招标投标网
  • 建网站开发费用网站等级保护测评必须做吗
  • 二分搜索树的特性
  • wordpress 网站小模块计算机应用技术移动互联网开发
  • 湖北微网站建设报价伪静态 多个网站
  • 网站空间数据企业名称登记管理规定