你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 22769|回复: 35

[STM32F3] 【STM32F303开发】+使用fromelf反汇编keil生成的AXF文件

  [复制链接]

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2015-7-5 18:23:48 | 显示全部楼层 |阅读模式
本帖最后由 creep 于 2019-5-29 21:56 编辑


昨天我在另一个帖子里谈到了怎么样找到程序跑飞的原因:【STM32F303开发】+如何找到导致程序出现HardFault的代码     贴子的最后我们使用直接在debug模式下汇编窗口中输入LR的值来定位有问题的代码,有的时候可能会感觉这样不是很方便,或许我们想看看其他的汇编代码。下面我们就使用fromelf命令来将keil生成的axf文件反汇编成汇编代码。

从fromelf这个名字上我们就能看到它是用来处理elf文件的,elf 全称 Executable and Linking Format ,这种文件是gcc编译出来的,而我们使用的axf全称 Arm executable File ,是由keil或者ads编译出来的,两者在格式上有些区别,但里面包含的符号表,调试信息,汇编基本是相同的。keil生成的hex就是调用的fromelf将axf转换而来的,所以你编译后可以在输出文件中同时看到axf和hex文件。

fromelf有2种模式:常用的生成的bin文件是使用的format conversion mode,还有一种text mode模式就是用来生成反汇编的text文件的。
fromelf.jpg
text模式介绍如下:值得注意的是如果我们不指定输出格式的话,那么默认就是--text格式,也就是说如果我们给--text 指定几个options的话我们可以省掉--text 而只使用相应的[options就可以,我下面的处理中将会省掉--text。
fromelf.jpg
--text的几个options介绍:下面要使用的反汇编是-c
fromelf.jpg

用fromelf把axf反汇编有2中方法,一种直接在windows环境中使用,一种和生成bin文件那样在keil编译后调用。
1)windows 窗口下进行:
❶:将我们生成的axf文件复制到keil安装目录的下ARM\ARMCC\bin目录下,
fromelf.jpg
❷:在这个窗口中不要选中任何文件的前提下按下键盘的Shift键然后单击鼠标的右键选中“在此处打开命令窗口”,
fromelf.jpg
❸:在打开的CMD窗口中输入下面的命令并回车,
  1. fromelf -c F303RE.axf -o F303RE.txt
复制代码
❹:然后就可以生成反汇编文件F303RE.txt文件,
fromelf.jpg
2)在keil里面直接调用和生成bin文件差不多,我们可以使用下面的命令:
  1. fromelf -c -o "$L@L.txt" "#L"
复制代码
fromelf.jpg
如果你感觉上面的命令比较难懂,也可以使用下面的稍微好理解的命令,不过一定要注意你生成的axf的文件的路径和工程文件所在路径的对应关系,否则可能会调用失败,
  1. fromelf -c  .\output\F303RE.axf  -o  .\output\F303RE.txt
复制代码
fromelf.jpg

好了,现在我们已经得到反汇编文件F303RE.txt,使用notepad++打开这个文件,你就可以看到我们的c语言汇编成的代码,我们还是使用上面提到的昨天的那个帖子的LR的值0x080002bd,因为M3/M4内核使用的Thumb指令会要求最低bit0为1,所以我们此处的LR 应该为 0x080002bc  在notepad++里面ctrl+f打开查询窗口输入0x080002bc  然后回车,我们发现定位的代码和昨天定位的一样,就是那句对0地址赋值0的代码,至此,我们也就通过反汇编axf找到导致程序跑飞程序的代码了。
fromelf.jpg

formelf 命令的功能相当强大,平常我使用到只是生成bin反汇编axf这些基本的,由于人比较懒用不到的就不想看这些英文文档,下面附件中的fromelf的说明文档详细介绍了它的其他的功能,希望那位兄弟有兴趣研究了分享下。

测试代码:
F303RE_Fromelf.rar (476.66 KB, 下载次数: 299)
回复

使用道具 举报

47

主题

1210

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-8-13
发表于 2015-7-5 18:46:21 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

47

主题

3404

回帖

30

蝴蝶豆

版主

最后登录
2020-12-7
发表于 2015-7-5 19:14:00 | 显示全部楼层
多谢分享,支持。。
回复 支持 反对

使用道具 举报

3

主题

56

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-12-15
发表于 2015-7-5 20:42:34 | 显示全部楼层
赞一个,
回复 支持 反对

使用道具 举报

77

主题

1927

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-11-18
发表于 2015-7-5 20:47:15 | 显示全部楼层
拜见橙子哥
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-7-5 22:11:09 | 显示全部楼层

QianFan版主好,周末大好时光不去泡妹子来泡论坛!
回复 支持 反对

使用道具 举报

77

主题

1927

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-11-18
发表于 2015-7-6 10:20:07 | 显示全部楼层
creep 发表于 2015-7-5 22:11
QianFan版主好,周末大好时光不去泡妹子来泡论坛!

马上考试了,准备突击啊
回复 支持 反对

使用道具 举报

77

主题

1927

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-11-18
发表于 2015-7-6 10:20:09 | 显示全部楼层
creep 发表于 2015-7-5 22:11
QianFan版主好,周末大好时光不去泡妹子来泡论坛!

马上考试了,准备突击啊
回复 支持 反对

使用道具 举报

18

主题

668

回帖

0

蝴蝶豆

金牌会员

最后登录
2017-4-9
发表于 2015-7-6 11:00:40 | 显示全部楼层
回复 支持 反对

使用道具 举报

47

主题

1636

回帖

7

蝴蝶豆

论坛元老

最后登录
2020-10-28
发表于 2015-7-6 11:28:45 | 显示全部楼层
支持,学习了。
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版