【超级详细!】Keil生成hex/bin/map/sct/dis文件详解步骤

目录

一、概述

1、hex文件简述

2、bin文件简述

3、map文件简述

4、sct文件简述

5、axf文件简述

6、dis文件简述

二、生成步骤

1、hex文件生成

2、map文件生成

3、sct文件生成

4、axf文件生成

5、bin文件生成

6、dis文件生成

一、概述

1、hex文件简述

        作用十六进制编码的可执行文件,包含地址、校验和等信息。这个文件比bin文件大,可以直接通过文本编辑器查看。烧录程序时候可以用hex文件或者bin文件,bin文件比较精小,OTA升级等操作使用bin更合适。效果如下图:

2、bin文件简述

        纯二进制机器码,无地址信息,仅包含程序的可执行代码和数据。只提供烧录作用,纯二进制机器码,阅读效果不好,如下图:

3、map文件简述

        又名链接映射文件,作用记录所有符号(函数、变量)的地址、占用的内存段(如CODE、DATA)及总内存使用量。这个文件作用很大,对于调试阶段,可以看到全局变量、函数所在的地址以及大小等。在【超级详细!!】Keil编译下的.map文件详解与实战有详细解读,效果如下图:

4、sct文件简述

        又名分散加载脚本,作用定义代码和数据的存储位置(如Flash、RAM分区),控制内存布局。通俗一点讲可以把特定的变量或者函数指定到固定地址,用于优化复杂存储架构的代码分布。效果如下图:

5、axf文件简述

        又名ARM可调试文件,作用包含完整的可执行代码、调试信息(符号表、源码行号等)及内存布局信息。调试时加载到芯片,支持单步执行、变量监视等功能 ,效果图下图:

6、dis文件简述

        又名:反汇编文件,作用逆向分析代码逻辑,可以更深入的排查硬件异常,常用于调试场景。效果如下图:

二、生成步骤

1、hex文件生成

2、map文件生成

3、sct文件生成

sct文件是自动生成的。

4、axf文件生成

axf文件也是keil编译时自动生成的

5、bin文件生成

bin文件生成和dis反汇编文件生成差不多。Run#1和Run#1一个可以用来生成bin文件,一个可以用来生成dis反汇编文件。我们现在查看bin文件。

结构如下图,首先找到fromelf.exe文件存放的路径,然后查找如下图所示的路径,这里是.\Objects\project,有的会因为文件名字不同。

fromelf可执行文件的地址 --bin -o .\Objects\project.bin .\Objects\project.axf

示例如下,D:\keil\keil_v5\ARM\ARMCC\bin\fromelf.exe是存放这个文件的路径,直接搜索全文即。其余只需要查看如上图所示.\Objects\文件名,中的文件名即可。

D:\keil\keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o .\Objects\project.bin .\Objects\project.axf

模板如下示例

fromelf.exe路径 --bin -o .\Objects\文件名.bin .\Objects\文件名.axf

路径如下

6、dis文件生成

dis反汇编文件和bin文件生成方式类似,只是其中结构有一点点改变。

格式如下:

fromelf.exe路径 --text -a -c --output=文件名.dis  .\Objects\文件名.axf

示例如下

D:\keil\keil_v5\ARM\ARMCC\bin\fromelf.exe --text  -a -c --output=project.dis  .\Objects\project.axf

路径如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值