当前位置: 首页 > news >正文

使用Keil-MDK生成*.bin格式可执行文件

使用Keil-MDK生成*.bin格式可执行文件


文章目录

  • 使用Keil-MDK生成*.bin格式可执行文件
  • 前言
  • 一、fromelf.exe工具
  • 二、使用方法
    • 1.配置输出
    • 2.输出格式


前言

在使用Keil MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然文件可以直接使用仿真器的下载和调试,但是出于用户需求或使用IAP升级, ∗ * .bin格式的文件更简约也更有优势,所以在Keil下将*.axf格式文件或*.hex格式文件转换成*.bin格式的文件的方法是必须掌握的,本文所述就是这种转换方法。


一、fromelf.exe工具

转换之前,先了解一下ARM公司的RVCT开发套件中的fromelf.exe转换工具,在MDK-Keil中生成*.bin格式文件的工具正是它。

fromelf.exe转换工具的语法格式如下:fromelf [options] input_file
其中[options]包括的选项及详细描述见下表:

选项描述
–bin生产Plain Binary格式文件(所说的bin文件)
–help显示帮助信息
–vsn显示版本信息
–output file输出文件,默认输出文件为文本文件
–nodebug生成的镜像不包含调试信息
–nolinkview生成的镜像不包含段信息
–m32生成Motorola 32位十六进制格式文件
–i32生成Intel 32位十六进制格式文件
–vhx面向字节的位十六进制格式文件
–base addr设置m32、i32格式文件的基地址
–text显示文本信息
-v打印详细信息
-a打印数据地址(针对带调试信息的镜像)
-d打印数据段的内容
-e打印表达式表:print exception tables
-f打印消除虚函数的信息
-g打印调试表:print debug tables
-r打印重定位信息
-t打印字符串表
-y打印动态段的内容
-z打印代码和数据大小的信息

二、使用方法

1.配置输出

打开Keil工程,点击Opitons for Target…,然后点击output设置如图:
在这里插入图片描述
Led_V3_00为生成的可执行文件名,(即编译后会生成一个Led_V3_00.axf的文件)生成的bin文件就是从这个文件生成的,注意不要带有.hex后缀,否则可能出现不能正常调试等问题

2.输出格式

然后点击user设置如图,在Run #1后输入以下内容:

D:\keil\ARM\ARMCC\bin\fromelf.exe --bin -o . . .. ../Output/Led_V3_00.bin . . .. ../Output/Led_V3_00.axf

在这里插入图片描述

D:\keil\ARM\ARMCC\bin\fromelf.exe --bin -o :命令表示从fromelf.exe所在路径执行fromelf工具程序,按照–bin选项执行生成bin文件
. . .. ../Output/Led_V3_00.bin :生产的bin文件的路径和文件名,
. . .. ../Output/Led_V3_00.axf :可执行文件的路径和文件名,

. . .. ../表示相对路径,相对的的工程文件所在目录,此处表示工程文件所在目录上一级目录下的Output目录下,也可改为绝对路径

最终得到:
在这里插入图片描述

可以看出hex文件大小是bin文件大小的两倍多,
关于hex文件和bin文件区别可以参见:https://blog.csdn.net/Yin_w/article/details/131606027?spm=1001.2014.3001.5502


http://www.lryc.cn/news/254111.html

相关文章:

  • 基于springboot+vue篮球联盟管理系统源码
  • 分页助手入门以及小bug,报sql语法错误
  • Java中的并发编程:深入理解CountDownLatch
  • Windows 安装 flash-attention 和 bitsandbytes
  • AHB 与 DMA
  • React使用echarts并且修改echarts图大小
  • 【Q6-30min】
  • C++之类和对象(下)
  • 微服务开发:断路器详解
  • Leetcode—383.赎金信【简单】
  • 爬虫-xpath篇
  • Oracle初始化参数文件pfile和spfile
  • zookeeper 客户端常用命令简单记录(实操课程系列--watcher功能测试)(发布订阅功能测试)
  • Scrapy爬虫数据存储为JSON文件的解决方案
  • 计算机设计大赛 选题推荐
  • 基于springboot,vue高校图书馆管理系统
  • 如何打造更高效、安全、灵活的企业网络组网方案
  • MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试
  • Kubernetes Service控制器详解以及切换为ipvs代理模式
  • 搭建samba服务
  • 总结vue3 的一些知识点:MySQL 排序
  • 从零开始:PHP实现阿里云直播的简单方法!
  • 【数据结构】——二叉树特点
  • C++的类和对象(一)
  • 基于单片机自动饮料混合机控制系统设计
  • react-route-dom 实现简单的嵌套路由
  • 万界星空科技灯具行业MES介绍
  • 16进制字符串转字符串
  • pymysql.err.InternalError: (1054, “Unknown column ‘nan‘ in ‘field list‘“
  • SQL 错误 [1476] [22012]: ORA-01476: 除数为 0