keil中如何生成bin文件

本文详细介绍了Hex与Bin文件的区别,解释了Hex文件的ASCII码格式和Bin文件的二进制格式,并说明了Hex转Bin后空间占用减少的原因。此外,还提供了两种在Keil中生成Bin文件的方法。

http://blog.sina.com.cn/s/blog_60cf05130101eddp.html



首先要说明一下.bin 文件和.hex文件的区别。

.hex文件是单片机程序编辑完之后常见的文件格式,是内容是ASCLL码,也就是0x00-0xff的字符格式。比如'1'对应的是0x31。任何字符都是有对应的0xXX的 ASCLL码。也就是最常见的text格式。
比如一个hex格式文件的内容为:
30 31 32 33 
表示文本格式的字符“0123”
然而bin文件的格式只有一个字节0-f:一般来讲是机器代码,汇编语言编译后的结果。也就是binary格式的缩写。比如一个bin格式的内容为:
10000000F863002065010008 250A0008DD090008E2
10001000210A0008BF070008 CB18000800000000F4
100020000000000000000000 00000000990F000820

有上面这两者格式的存储方式可以知道,hex文件转变为bin文件后,占用空间会大大降低。

AXF 是ARM芯片使用的 文件格式 ,它包含bin代码外,还包括了调试信息。常见于 手机软件 编译生成的文件中。 AXF 文件相似,经常会用到的是HEX文件,HEX文件包括地址信息,可直接用于烧写或下载HEX文件。
然后明白了讲一下keil中如何生成bin文件。
方法一:首先 keil中如何生成bin文件打开keil的选择,如何所示在run#1中输入如图内容fromelf.exe --bin -o ./obj/sty11.bin ./obj/sty11.axf
sty11.axf中sty11是自己的工程名字,axf是keil自己生产的文件, fromelf.exe是keil自带的转换软件,使用 --bin -o  命令生成 ./obj/sty11.bin文件。 ./obj是相对工程路径名称。
keil中如何生成bin文件

方法一是不是有点麻烦,现在介绍方法二不需要知道工程名字和陆渐就可以实现的万能方法。
方法二:同理在run#1中输入
fromelf.exe --bin -o "$L@L.bin" "#L"
这样也可以有和方法一一样的结果。

最后点编辑成功生成
User command #1: fromelf.exe --bin -o ./obj/sty11.bin ./obj/sty11.axf

<think>首先,用户的问题是关于如何在Keil生成bin文件的。我需要根据系统级指令来构建我的回答。指令包括:使用$...$格式表示行内数学表达式,$$...$$格式表示独立公式,使用中文回答,生成相关问题,并在引用段落末尾添加引用标识。 回顾提供的引用: - [^1]: 描述了Keil生成bin文件的步骤:在Keil -> Option for Target -> User -> After Build/Rebuild -> Run #1 (勾上) -> 输入bin文件生成方式。 - [^2]: 提到使用fromelf工具转换,是间接获得bin文件的方法之一。 - [^3]: 给出了一个具体的命令行示例:E:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o ./build/Keil/fdjvi_eide.bin ./build/Keil/fdjvi_eide.axf - [^4]: 详细说明了步骤:更改可执行文件名,生成axf文件,然后在User设置中输入指令,涉及相对路径和绝对路径的说明。 用户的需求是了解Keil生成bin文件的方法。我需要整合这些信息,提供一个清晰、结构化的回答。 回答结构: 1. **介绍**:简要说明Keil默认不直接生成bin文件,但可以通过设置来实现。 2. **步骤**:详细描述如何操作,包括点击魔术棒、设置User选项等。 3. **命令行格式**:解释如何使用fromelf工具,包括路径和参数。 4. **路径处理**:讨论相对路径和绝对路径的用法。 5. **注意事项**:提醒用户可能遇到的问题,如路径错误。 6. **生成相关问题**:在最后添加相关问题部分,如§§相关问题§§。 确保使用中文回答。 引用标识:在引用段落末尾添加[^1]、[^2]等。例如,如果描述一个步骤来自引用[^1],就在末尾加[^1]。 数学表达式:这个问题可能不涉及数学,但如果提到任何公式或变量,使用$...$。例如,如果提到文件路径中的变量,但这里可能不需要。 现在,构建回答: - **开头**:直接回答问题,解释方法。 - **主体**:分步指南。 - **结尾**:添加相关问题。 相关问题建议: 1. 如何验证生成bin文件是否正确? 2. Keil生成bin文件的其他工具有哪些? 3. bin文件在嵌入式开发中的用途是什么? 4. 如何自动化Keil的构建过程以包括bin文件生成? 确保回答真实可靠:基于提供的引用。</think>### Keil生成bin文件的方法 在Keil MDK(Microcontroller Development Kit)中,默认无法直接生成.bin格式的二进制文件,因为Keil通常输出.hex或.axf文件。但您可以通过配置Keil的“After Build”选项,使用ARM编译器自带的`fromelf.exe`工具将.axf文件转换为.bin文件。以下是详细步骤,基于引用信息整理而成。整个过程分为几个简单步骤,确保操作可靠。 #### 步骤1: 准备项目并生成.axf文件 - 打开Keil工程,确保项目已编译成功,生成.axf文件(这是Keil的默认输出格式)。 - 如果未生成.axf文件,需先设置输出路径:点击“魔术棒”(Option for Target),在“Output”选项卡中,确认“Name of Executble”字段已命名(例如`your_project`),并勾选“Create Executable”,然后重新编译项目[^4]。 #### 步骤2: 配置After Build选项 - 在Keil中,点击“魔术棒”(Option for Target)。 - 切换到“User”选项卡。 - 在“After Build/Rebuild”区域,勾选“Run #1”复选框。 - 在“Run #1”的输入框中,输入`fromelf.exe`的转换命令。命令格式如下: ``` <fromelf_path> --bin -o <output_bin_path> <input_axf_path> ``` 其中: - `<fromelf_path>` 是`fromelf.exe`的完整路径(通常在Keil安装目录下,例如`E:\Keil_v5\ARM\ARMCC\bin\fromelf.exe`)。 - `<output_bin_path>` 是生成的.bin文件的输出路径。 - `<input_axf_path>` 是输入的.axf文件的路径。 - **示例命令**(根据您的实际路径调整): - 使用绝对路径(推荐,避免路径错误): ``` E:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o C:\your_project\Output\your_project.bin C:\your_project\Output\your_project.axf ``` - 使用相对路径(以.uvprojx文件为基准): ``` ..\..\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o .\Output\your_project.bin .\Output\your_project.axf ``` 注意:相对路径中`.\`表示当前目录,`..\`表示上级目录。如果相对路径无效,切换到绝对路径[^4][^3]。 #### 步骤3: 编译项目生成.bin文件 - 保存设置后,点击Keil的“Rebuild”按钮重新编译项目。 - 编译完成后,Keil会自动执行`fromelf.exe`命令,在指定路径生成.bin文件(例如在`Output`文件夹内)。 - 验证:检查输出目录,确认.bin文件生成。如果失败,检查命令中的路径是否正确(路径错误是常见问题)[^1][^4]。 #### 注意事项 - **路径处理**:确保`fromelf.exe`路径正确(Keil版本不同可能导致路径差异)。如果Keil安装在非默认位置,需替换为您的实际路径[^3]。 - **工具依赖**:`fromelf.exe`是ARM编译器的一部分,如果未安装完整工具链,可能导致命令失败。引用中提到,这是Keil生成.bin文件的推荐方法[^2]。 - **性能**:此方法在构建过程中自动转换,不影响编译速度,适用于嵌入式开发[^1]。 通过以上步骤,您可以在Keil中高效生成.bin文件,用于固件烧录或调试[^1][^2][^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值