当前位置:首页 > 公众号精选 > wenzi嵌入式软件
[导读]今天跟大家详细聊聊如何在Keil中生成bin文件、汇编文件、以及C与汇编混合文件,并且详细介绍一下生成fromelf.exe工具的使用。


1、聊一聊


一首《Five Hundred Miles》送给跟bug菌一样深漂的伙伴们! 今天跟大家详细聊聊如何在Keil中生成bin文件、汇编文件、以及C与汇编混合文件,并且详细介绍一下生成fromelf.exe工具的使用。

2、正文部分

1

话题引入

在使用Keil集成开发环境中大伙使用频率高的文件大概就是.hex吧,如果考虑内存布局等会使用到.map文件,如果遇到了疑难bug还会在仿真过程中看一看汇编窗口栏。 然而bin文件作为嵌入式最为直接的固件,同样也是我们非常需要获得的文件,比如进行远程升级等等,一方面可以直接通过其他hex转bin工具转化,另一方面通过集成开发环境自带的功能进行转化即可。 同样有时候我们不想通过debug状态下的汇编栏进行汇编查看,而是想直接分析每个源文件编译所生成的汇编文件来定位问题和优化性能,集成开发环境能够有生成汇编文件的功能就再方便不过了。

2

生成bin文件

1

formelf.exe介绍

fromelf.exe即keil下的一个处理elf文件的工具,elf文件英文名为Executable and Linking Format ,该文件包括符号表,调试信息,汇编等等,所以通过使用fromelf.exe可以输出较多信息文件,比如hex、bin、asm等。 对于此工具详细的说明文件可以参考: using_the_fromelf_utility.pdf


该文档网上很容易搜索到,这里就不板书了。 如果你想省点事,可以直接使用cmd输出formelf.exe的帮助信息,过程如下。

2

formelf.exe详细说明

1、首先在windows运行栏中找到cmd命令输入。


2、输入命令行 .\fromelf.exe --help


bug菌对上面的输出简单的注释了下。
 1ARM image conversion utility  2fromelf [options] input_file  3  4Options:  5 --help         display this help screen //【显示帮助信息】  6 --vsn          display version information//【显示版本信息】  7 --output file  the output file. (defaults to stdout for -text format)//【输出文件。(-text格式默认为stdout)】  8 --nodebug do not put debug areas in the output image//【不在输出映像中放置调试域】  9 --nolinkview do not put sections in the output image//【不在输出映像中放置段信息】 10 11Binary Output Formats: 12 --bin          Plain Binary//【bin文件】 13 --m32          Motorola 32 bit Hex//【motol格式的hex文件】 14 --i32          Intel 32 bit Hex//【Intel格式的hex文件】 15 --vhx          Byte Oriented Hex format//【面向字节的hex格式】 16 17 --base addr    Optionally set base address for m32,i32 18 19Output Formats Requiring Debug Information 20 --fieldoffsets Assembly Language Description of Structures/Classes 21 --expandarrays Arrays inside and outside structures are expanded 22 23Other Output Formats: 24 --elf         ELF 25 --text        Text Information 26 27 Flags for Text Information 28 -v          verbose 29 -a          print data addresses (For images built with debug)//【打印数据地址信息】 30 -c          disassemble code//【输出汇编代码】 31 -d          print contents of data section//【打印数据域内容】 32 -e          print exception tables//【打印异常表】 33 -g          print debug tables//【打印调试表】 34 -r          print relocation information//【打印重定位信息】 35 -s          print symbol table//【打印符号表】 36 -t          print string table//【打印字符串表】 37 -y          print dynamic segment contents//【打印动态段内容】 38 -z          print code and data size information//【打印代码与数据大小信息】 

3

‍‍‍‍‍

输出bin和汇编

在keil中进行如下配置 ,表示在工程编译以后所执行的命令行。 命令行如下,方便大伙copy:
  • fromelf --text -c -o "$L@L.asm" "#L"

  • fromelf --bin -o "$L@L.bin" "#L"

确定配置好以后重新编译,最终编译器输出如下信息。

从输出信息来可以了解到bin文件和asm文件均由.axf文件通过fromelf工具转化而来,相信转化命令的通配符大家也可以理解了,输出结果如下:

这样看来.axf文件所包含的信息非常之多,其 全称为:Arm executable File,其实.axf文件与gcc中的elf文件是类似的,Keil默认生成.axf文件

如果在Keil中没有勾选hex文件的生成,那么就用.axf文件来进行烧录。 而如果勾选 了Hex文件生成,其实就是Keil通过调用fromelf将axf转换为hex文件,所以编译后可以在输出文件中同时看到axf和hex文件。

3

C与汇编混合展示

我们打开前面的.asm文件如下图所示:

零零散散我们可以看到几个C函数,不过阅读起来稍微有点吃力,大伙应该还是比较喜欢阅读debug时候汇编框中C语言与汇编语言一一对应的形式,这样也更好理解汇编语言。

1

生成.txt和.i文件

我们在keil中勾选如下几项,然后进行重新编译


其中在工程目录的 *.txt即为汇编与C混合文件 ,而 *.i为经过了预处理的文件

2

对比.c和.i文件

对于预处理过程主要是去掉注释和展开宏等,下面我们对比一下源文件与.i文件。

3

查看.txt文件

生成的.txt即为C代码与汇编的混合文件。


2、最后

好了,本文到此结束,enjoy,持续的输出都需要一定的动力,大家懂的!

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭