在KEIL中生成bin文件的方法
生成hex文件
KEIL中默认生成的是axf文件。
如果想要生成hex文件,则只需要简单地勾一下:
生成bin文件
要生成bin文件,则需要用到fromelf。
Keil自带了一个小工具,可以通过执行指令来将AXF文件转换为BIN文件这就需要调用一个外部程序fromelf.exe来将AXF文件转换为BIN格式文件。
fromelf.exe
文件的位置在安装目录 Keil_v5\ARM\ARMCC\bin
或者 Keil_v5\ARM\ARMCLANG\bin
目录下。
在Options -> User -> After Build/Rebuild -> Run#1中输入:
C:\Keil_v5\ARM\ARMCLANG\bin\fromelf.exe --bin -o ./Objects/Demo.bin ./Objects/Demo.axf
其中-o后面的要输出目标bin文件的路径和文件名;最后面的是生成的axf文件的路径及文件名。
这个方法网上有很多例子可以参考。
fromelf详解
首先参考KEIL官网的手册:
fromelf Command-line Options
http://www.keil.com/support/man/docs/armutil/armutil_pge1362128884798.htm
主要内容如下:
ARM 映像转换工具
fromelf [options] input_file
选项:
--help 显示帮助信息
--vsn 显示版本信息
--output file 输出文件名. (默认输出 -text 格式)
--nodebug 不要输出调试信息到映像文件中
--nolinkview 不要输出段信息到映像文件中
二进制输出格式:
--bin 普通二进制
--m32 摩托罗拉32位Hex码
--i32 英特尔32位Hex码
--vhx 定向字节的 Hex 格式
--base addr 为 m32,i32设置基地址(可选的)
输出格式要求的调试信息
--fieldoffsets Structures/Classes的汇编描述
--expandarrays Arrays inside and outside structures are expanded
其他输出格式:
--elf ELF格式
--text 文本信息
文本信息的标志
-v 详细信息
-a 打印数据的地址信息 (得到的.axf映像文件)
-c 汇编码
-d 打印数据的段内容
-e 打印例表
-g 打印调试表
-r 打印重定位信息
-s 打印符号表
-t 打印字符表
-y 打印段内容分析
-z 打印代码与数据的大小信息
可移植的方法
上述方法有一个不好的问题,就是在一个项目组里面多人同时开发一个项目时,如果大家安装KEIL开发环境时的路径不一样,则无法共享同一个配置。另外,当完成一个项目的开发后,再开始一个新的项目时,生成的axf文件的文件名也需要重新配置。为了解决这个问题,可以使用以下的命令行:
fromelf --bin -o "$L@L.bin" "#L"
或者
$K\ARM\ARMCC\bin\fromelf.exe --bincombined --output=@L.bin !L
自动生成跟工程名称相同的bin文件。
说明:
符号代号(Key Code) | |
$ | 扩展为 指定文件的路径名 |
@ |
表示 Output -> Name of Exectable:定义的工程名,比如test1 build工程后,最终生成的bin文件名称将是test1.bin |
! |
当前目录下的扩展路径 !L 编译(Build)后,就是 .\obj\xx.axf文件 |
文件代号(File Code) | |
K | keil develop chaintool 工具链(fromelf.exe) |
L |
Linker output file L.bin 编译后,生成的就是最终的xx.bin文件 |
参考:
Key Sequence for Tool Parameters
http://www.keil.com/support/man/docs/uv4/uv4_ut_keysequence.htm
Use Key Sequences to pass arguments from µVision to external user programs. Key Sequences are combinations of a Key Code and a File Code. Key sequences can be used, for example, in the dialogsTools, SVCS, Options for Target — User, or from the command line. The following rules apply:
- Certain Key Codes have to be duplicated when used from the command line.
To use the symbols $, #, %, @, ~, ^
escape them with $$, ##, %%, @@, ~~, ^^. - Enclose Key Sequences within quotes (" ") when using folder names that might contain special characters (space, ~, or #).
Key Codes and File Codes are listed in the tables below:
Key Code | Description |
---|---|
% | File name with extension (PROJECT1.UVPROJ) |
# | File name with extension and complete path specification (C:\MYPROJECT\PROJECT1.UVPROJ) |
@ | File name without extension or path specification (PROJECT1) |
$ | Path name of a file. Path names get extended with a backslash. For example, $P could generate C:\MYPROJECT\. |
! | File name with extension and relative path specification to the current folder (.\SRC\TEST.C) |
~ 1 | Line number of the current cursor position |
^ 1 | Column number of the current cursor position |
File Code | Description |
---|---|
$D | Device name as selected from the Device Database. |
E | Editor file name currently in focus. |
F |
Depending on the context, this File Code returns:
|
H | Application HEX file name (PROJECT1.H86). |
$J | Absolute compiler system include folder. Compiler base folders are listed in the fieldProject — Manage — Project Items — Folder/Extensions - ARMCC Folder. The include path depends on the compiler selected in Options for Target - Code Generation - ARM Compiler. |
K | Absolute root folder of the development toolchain, regardless of the Key Code used. |
L | Linker output file. Typically the executable file used for debugging (PROJECT1). |
$M | CPU mask revision number. |
P | Current project file name. |
X | µVision executable program file (..\UV4\UV4.EXE). Works for For Key Code %, # @. |
$X | XTAL clock frequency in MHz as specified in Options for Target — Target — XTAL. |
^X | XTAL clock frequency in kHz as specified in Options for Target — Target — XTAL. |
在KEIL中生成bin文件的方法相关推荐
- KEIL / MDK生成BIN文件的两种方式
KEIL / MDK生成BIN文件的两种方式 1 KEIL工程配置入口 点击"魔术棒"图标(Option for Target) 在After Build/Rebuild选项卡中, ...
- keil5生成bin文件配置方法
KEIL / MDK生成BIN文件的两种方式 1 KEIL工程配置入口 点击"魔术棒"图标(Option for Target) 在After Build/Rebuild选项卡中, ...
- Keil如何生成bin文件 - 附详细操作图文
Keil如何生成bin文件 第一步:生成axf输入文件 点击魔术棒"Options for Target" → 单击" Output " → 按下面截图所示配置 ...
- Keil MDK5生成bin文件时生成了*.bin文件夹
在Keil魔术棒中通过以下方式生成bin文件时,看提示命令执行成功,却生成了一个*.bin文件夹,文件夹内部是两个bin文件,当时感觉很奇怪,第一次遇到这种情况. 使用的命令:fromelf.exe ...
- Keil如何生成bin文件【Keil生成Bin文件的方法】
使用过Keil的同鞋都知道,现在Keil中默认可以输出.axf的调试文件和可以通过钩选输出的.hex可执行文件,没有bin(二进制)文件的输出选项.可是偏偏某些时候需要或者习惯性的使用.bin文件来进 ...
- 利用MDK软件生成bin文件的简单方法
一.缘由: 之前学习Keil MDK-ARM软件,找了好久生成bin文件的方法,这次分享最简单的,所以写了此篇博文 二.操作步骤: 1.打开"Keil MDK-ARM软件" -找到 ...
- .axf文件_Keil开发环境如何生成BIN文件
为什么需要BIN文件呢? 有些烧录器只支持BIN文件. 进行OTA远程升级时,只能使用BIN文件. 使用JLink脚本文件进行一键烧录时,只支持BIN文件. BIN文件要比HEX和AXF文件小的多. ...
- keil 生成bin找不到afx文件_【学习笔记】Keil不能正确生成.bin文件的解决办法
前段时间我写过如何利用CW.IAR和Keil生成image文件,效果还不错,有些用户反馈挺有帮助的,毕竟待项目开发到最后是需要生成image文件用来量产烧写,我们总不至于到最后使用调试下载吧(不过还别 ...
- 国民单片机通过Keil生成bin文件
大部分单片机通过Keil生成bin文件的操作如下: Option–Output–Select Folder for Objects找到.axf文件,并且将Name of Executable填入和.b ...
最新文章
- Zookeeper分布式一致性原理(六):Zookeeper开源客户端zkClient
- python创建脚本文件_python创建文件备份的脚本
- 初识NIO之Java小Demo
- 关于如何破坏单例我说了好几种方式,面试官却说:我其实随便问问,没想到你真会...
- tomcat配置mysql数据源_Tomcat中配置mysql数据源
- Hadoop(十二)MapReduce概述
- 最快的Java序列化框架Protostuff简介
- 不同行业的软件都爱用什么编程语言开发?
- 遥感影像预处理流程及基本概念介绍(辐射校正、辐射定标、大气校正、正射校正等)
- 关于计算机动画制作的过程,关于计算机制作动画的过程
- DTCC技术大会来了
- 外贸业务员询盘处理方法技巧 Google开发客户方法找网址和邮箱
- 2022 年最有前景的 5 个 Web IDE
- 亚声速 – 超声速等熵喷管流动 数值模拟(文字)
- java中unicode编码和utf8编码相互转换
- BFS、DFS复杂度分析(时间、空间)
- 计算机管理服务修复,电脑提示“部署映像服务和管理工具错误87”的修复步骤...
- 现代企业管理-组织与领导
- 初识YUV,实战NV21格式数据转换为Bitmap
- win11耳机和扬声器怎么分开控制音量?
热门文章
- 关于手机话费充值的方法
- 家用宽带的上传和下载速度
- html如何大小写转换键,怎么把26键变成大写 26键拼音小写怎么转换大写?
- php天下第一的梗,DNF中那些怪梗盘点,最后一个已经被99%的玩家遗忘了
- xshell文件传输乱码_在Xshell中使用rz命令上传文件出现乱码且文件无法删除的解决办法...
- WSL下的NeoVim安装与配置
- Paper:《The Illustrated Word2vec》翻译与解读
- 手机的九宫格图案解锁总共能绘出多少种图案?LeetCode 351. Android Unlock Patterns
- 浅谈关于油麦菜的特性与如何种植优质品种的油麦菜
- ubuntu 16.04 更改 ipv6、numa、thp、io scheduler