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

debug - MDK - arm-none-eabi - 同样的工具链,源码,编译参数,elf是一样的

文章目录

    • debug - MDK - arm-none-eabi - 同样的工具链,源码,编译参数,elf是一样的
    • 概述
    • 笔记
    • 备注
    • 备注
    • END

debug - MDK - arm-none-eabi - 同样的工具链,源码,编译参数,elf是一样的

概述

同样的源码(*.cpp, *.s, *.ld), 都是用arm-gcc工具链(同一个位置的arm-gcc)进行编译。
不同的是,用2种IDE进行编译。

  1. 用MDK5建立的工程,采用arm-gcc工具链
  2. 将MDK5工程的工具链参数抠出来,做了一个makefile工程来编译。

相当于,虽然是在2个IDE中编译,但是用的工具链都是同一个(位置都一样),编译的命令和参数都一摸一样。

用BC4比较2个elf, 有点区别。但是不知道含义。
用IDA打开后,生成2个版本的elf的db, 再用bindiff比较,没有不同。
binddiff是权威工具,没在bindiff中看出区别,那基本就是一样的。

笔记

用的bindiff7, 需要设置IDA路径才行。否则比较时报错,说找不到反汇编器。
在这里插入图片描述
在这里插入图片描述
可知,函数比较是完全相同的。
2进制比较,有2%不同。具体哪不同就不知道了。
估计是debug版有调试信息,因为工程不一样,那么调试信息中的文件路径信息就不同(文件的位置,输出文件的位置)。但是无法确认。
现在从bindiff的比较结果看,2个elf的函数的2进制代码是一样的。
在这里插入图片描述

备注

从比较结果来看,只要是采用相同工具链,相同数量的gcc命令,相同的gcc参数,那么编译出来的东西(.elf)就是相同的。
也就是说,我已经从MDK5的工程,做了一个相同效果的makefile工程出来。

那就可以将这个makefile工程引入基于eclipse的IDE(e.g. MCUXPresso), 看看是不是板载调试器版本低?
如果不行,还可以从MCUXPresso中,将gcc命令行参数抠出来(可以看看编译参数是否有区别?),再作为makefile引入,看看是否可以单步调试。

反正最后可以逐步缩小问题范围。

备注

用和MDK5-arm-gcc工程中一样的makefile-arm-gcc工程,导入MCUXPressoIDE, 不能单步调试,那问题就不是说elf生成的有问题。
用MCUXPressoIDE生成了一个最小化的工程,可以单步调试。板子是一样的。
看了一眼MCUXPressoIDE生成的.mk, 编译参数好像是NXP家特有的。应该NXP的arm-gcc不是标准的arm-gcc. 而是和NXP Linkserver配套的编译参数,否则就不能在MCUXPressoIDE中调试。不是板载调试器的问题。

用标准的arm-gcc, 无法编译MCUXPressoIDE生成的.mk.

那下一步,还是用调试工具,将MCUXPressoIDE编译他自己生成的最小化工程,将每个编译指令的参数都抠出来,再做一个makefile.
应该这个makefile就是能在MCUXPressoIDE中单步调试的makefile工程。应该是这样,让实验来验证这个想法。

END

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

相关文章:

  • 前端-配置Prettier与ESLint9
  • 中企动力网站建设公司百度指数下载手机版
  • 蚂蚁 S21 XP+ HYD 500T矿机评测:SHA-256算法与高效液冷系统
  • 蚂蚁 S19 XP Hyd 3U 512T矿机评测:高效水冷设计,适合BTC/BCH挖矿
  • 【Win32 多线程程序设计基础第四章笔记】
  • 2024.6卷一阅读短语
  • 企业营销推广型网站建设怎么创造软件app
  • Rust 的错误处理:别拿类型系统当护身符
  • 用栈实现记忆存储——C++语言自制时间计算器
  • 实验二 呼吸灯功能实验
  • 动力 网站建设珠海专业网站建设费用
  • 博客系统测试
  • 高德地图电子围栏/地图选区/地图打点
  • 自己动手建设网站过程dede珠宝商城网站源码
  • Git的分支
  • 基础拓展
  • 手机微网站建设河南网站建设的详细策划
  • 剧本杀小程序系统开发:内容生态与商业模式的双轮驱动
  • 网站备案表不会写引流网站怎么做
  • 【系统分析师】写作框架:数据灾务技术与应用
  • 香港云服务器域名无法访问的原因
  • 荆门网站建设服务上海网站制作网络推广方法
  • 系统那个网站好什么是网站平台开发
  • 网站管理后台地址深圳做网站排名
  • 软件测试及 AI+测试
  • oj字符串,求助讨论帖
  • 鸿蒙app开发中 class类中的 访问修饰符和静态修饰符 等这些命名的含义 以及用法
  • 大模型-AIGC技术在文本生成与音频生成领域的应用
  • 国内产品网站1688利用腾讯云建设网站
  • 下载免费网站模板下载移动网站建设机构