当前位置: 首页 > 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


相关文章:

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

使用Keil-MDK生成*.bin格式可执行文件 文章目录 使用Keil-MDK生成*.bin格式可执行文件前言一、fromelf.exe工具二、使用方法1.配置输出2.输出格式 前言 在使用Keil MDK的集成开发环境中,默认情况下可以生成*.axf格式的调试文件和*.hex格式的可执行文件。虽然文件可…...

基于springboot+vue篮球联盟管理系统源码

🍅 简介:500精品计算机源码学习 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 文末获取源码 目录 一、以下学习内容欢迎交流: 二、文档资料截图: 三、项目技术栈 四、项目运行图 背景: 篮球运…...

分页助手入门以及小bug,报sql语法错误

导入坐标 5版本以上的分页助手 可以不用手动指定数据库语言&#xff0c;它会自动识别 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.3.2</version> </dependency&g…...

Java中的并发编程:深入理解CountDownLatch

Java中的并发编程&#xff1a;深入理解CountDownLatch 本文将深入探讨Java中的并发编程&#xff0c;重点关注CountDownLatch的使用。通过理解这些概念和技术&#xff0c;我们可以编写出更高效、稳定的Java程序。 一、CountDownLatch简介 CountDownLatch是Java中的一个同步工具…...

Windows 安装 flash-attention 和 bitsandbytes

首先保证cuda版本为12.1&#xff0c;torch版本为2.1.0及以上&#xff0c;python版本3.10以上 从此处下载最新版的whl&#xff0c;https://github.com/jllllll/bitsandbytes-windows-webui/releases/tag/wheels&#xff0c;通过whl来安装bitsandbytes 从此处下载最新版的whl&a…...

AHB 与 DMA

AHB&#xff08;先进高性能总线&#xff09; 随着深亚微米工艺技术日益成熟&#xff0c;集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法&#xff0c;发展到基于IP核复用的设计方法&#xff0c;并在SOC设计中得到了广泛应用。在基于IP核复用的SoC&#xff08;Syst…...

React使用echarts并且修改echarts图大小

React使用echarts 引入 npm install --save echarts-for-react npm install --save echarts使用 <ReactEChartsoption{option}notMerge{true}lazyUpdate{true}style{{"width": "100%","height": "800px"}}theme{"theme_nam…...

【Q6-30min】

1. ifndef/define/endif的作用&#xff1a;避免头文件被重复引用。 2.堆栈溢出主要的原因是&#xff1a; &#xff08;1&#xff09;函数调用层次太深。函数递归调用时&#xff0c;系统要在栈中不断保存函数调用时的现场和产生的变量&#xff0c;如果递归调用太深&#xff0c;…...

C++之类和对象(下)

目录 初始化列表 static成员 C11对于非静态成员变量初始化 友元 友元函数 友元类 总结 初始化列表 我们知道&#xff0c;在学习构造函数时&#xff0c;我们知道对象的成员变量的初始化我们是在构造函数函数体内进行初始化的&#xff0c;还有没有其它初始化成员变量的方…...

微服务开发:断路器详解

微服务是目前业界使用的最重要的实现方面。通过使用微服务架构&#xff0c;开发人员可以消除他们以前在单体应用程序中遇到的许多问题。展望未来&#xff0c;人们开始在微服务中搜索和采用各种模式。大多数时候&#xff0c;新模式的产生是为了解决另一个模式中出现的常见问题。…...

Leetcode—383.赎金信【简单】

2023每日刷题&#xff08;五十&#xff09; Leetcode—383.赎金信 实现代码 class Solution { public:int arr[26] {0};int arr2[26] {0};bool canConstruct(string ransomNote, string magazine) {int len ransomNote.size();int len2 magazine.size();for(int i 0; i …...

爬虫-xpath篇

1.xpath的基础语法 表达式描述nodename选中该元素/从根节点选取、或者是元素和元素间的过渡//从匹配选择的当前节点选择文档中的节点&#xff0c;而不考虑它们的位置.选取当前节点…选取当前节点的父节点选取属性text()选取文本 举例&#xff1a; 路径表达式结果html选择html元…...

Oracle初始化参数文件pfile和spfile

pfile &#xff1a;Oracle 9i之前&#xff0c;ORACLE一直采用PFILE方式存储初始化参数&#xff0c;该文件为文本文件&#xff0c;可以在操作系统级别修改。当spfile文件修改出现错误导致oracle无法启动时&#xff0c;可以使用 pfile文件启动数据库 spfile&#xff1a;从Oracle…...

zookeeper 客户端常用命令简单记录(实操课程系列--watcher功能测试)(发布订阅功能测试)

本系列是zookeeper相关的实操课程&#xff0c;课程测试环环相扣&#xff0c;请按照顺序阅读测试来学习zookeeper。阅读本文之前&#xff0c;请先阅读----zookeeper 单机伪集群搭建简单记录&#xff08;实操课程系列&#xff09; 1、命令行工具切换到zookeeper的bin目录下面&am…...

Scrapy爬虫数据存储为JSON文件的解决方案

什么是JSON文件 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人们阅读和编写&#xff0c;同时也易于机器解析和生成。它基于JavaScript Spark语言的一个子集&#xff0c;但独立于Smashing语言&#xff0c;因此在许多中…...

计算机设计大赛 选题推荐

0 前言 比赛介绍 中国大学生计算机设计大赛是中国高等教育学会“全国普通高校大学生竞赛排行榜”竞赛之一。自2008年开赛至2019年&#xff0c;一直由教育部高校与计算机相关教指委等或独立或联合主办。2023年&#xff08;第16届&#xff09;中国大学生计算机设计大赛是由、中…...

基于springboot,vue高校图书馆管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;gradle-5.6.4 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatisred…...

如何打造更高效、安全、灵活的企业网络组网方案

随着互联网的快速发展&#xff0c;企业对于网络的需求也变得越来越高。然而&#xff0c;企业规模不断扩大&#xff0c;分布式办公越来越普遍&#xff0c;如何保证数据安全传输和网络稳定运行是每一家企业都需要面对的问题。因此&#xff0c;合理构建企业组网架构已经成为了现代…...

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 &#xff08;HIL&#xff09;实现例程测试 &#x1f4cd;相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程&#xff08;在Simulink 中不是选择的STM32xxxbased类型的&#xff09;。 &#x1f516;STM32xxx…...

Kubernetes Service控制器详解以及切换为ipvs代理模式

文章目录 一、Service 存在的意义二、Pod与Service的关系三、Service定义与创建四、Service三种常用类型五、Service代理模式六、切换Service代理模式七、service总体工作流程八、kube-proxy ipvs和iptables的异同九、Service DNS名称 一、Service 存在的意义 service的引入主…...

搭建samba服务

公司内部需要文件共享&#xff0c;自建samba服务&#xff0c;满足功能 在搭建过程中&#xff0c;踩了一些坑&#xff0c;如windows无法访问、macos无法访问、账号添加、权限控制 分享一下实现过程&#xff0c;内容不详细的地方&#xff0c;可评论或私聊 前置准备 服务器 阿里…...

总结vue3 的一些知识点:MySQL 排序

MySQL 排序 我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。 如果我们需要对读取的数据进行排序&#xff0c;我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序&#xff0c;再返回搜索结果。 语法 以下是 SQL SELECT 语句使用 ORDER B…...

从零开始:PHP实现阿里云直播的简单方法!

1. 配置阿里云直播的推流地址和播放地址 使用阿里云直播功能前&#xff0c;首先需要在阿里云控制台中创建直播应用&#xff0c;然后获取推流地址和播放地址。 推流地址一般格式为&#xff1a; rtmp://{Domain}/{AppName}/{StreamName}?auth_key{AuthKey}-{Timestamp}-{Rand…...

【数据结构】——二叉树特点

前言&#xff1a;我们前面已经了解了二叉树的一些概念&#xff0c;那么我们今天就来了解下二叉树的遍历实现和一些性质。 二叉树的遍历方式有三种&#xff1a;前序&#xff0c;中序&#xff0c;后序。 前序&#xff1a;先根节点&#xff0c;再左子树&#xff0c;最后右子树。 中…...

C++的类和对象(一)

目录 1、面向过程和面向对象初认识 2、为什么要有类 3、类的定义 类的两种定义方式 4、类的访问限定符 5、类的作用域 5.1 为什么要有作用域&#xff1f; 5.2类作用域 6、类的实例化 6.1类的实例化的定义 6.2类的实例化的实现 6.3经典面试题 7、类对象 7.1类对…...

基于单片机自动饮料混合机控制系统设计

**单片机设计介绍&#xff0c;基于单片机自动饮料混合机控制系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机自动饮料混合机控制系统设计是一个涉及多个领域的复杂项目&#xff0c;包括单片机技术、传感器技术…...

react-route-dom 实现简单的嵌套路由

最终效果 点击 to test1 点击to test2 > to test21 点击to test2 > to test22 代码如下 path: "page",element: <父组件 />,children: [{ path: "test1", element: <Test1 /> },{path: "test2",element: <Test2 />…...

万界星空科技灯具行业MES介绍

中国是LED照明产品最大的生产制造国&#xff0c;如今&#xff0c;我国初步形成了包括LED外延片的生产、LED芯片的制备、LED芯片的封装以及LED产品应用在内的较为完超为产业链&#xff0c;随着LED照明市场渗诱率的快速警升&#xff0c;LED下游应用市场将会越来越广阔。这也将推动…...

16进制字符串转字符串

一、浏览器上 function hexToUtf8(hexString) {const hexArray hexString.match(/.{1,2}/g) || [];const uint8Array new Uint8Array(hexArray.map(hex > parseInt(hex, 16)));const textDecoder new TextDecoder(GB2312); //可以切换字符编码return textDecoder.decode…...

pymysql.err.InternalError: (1054, “Unknown column ‘nan‘ in ‘field list‘“

记录在本地环境通过&#xff0c;然后在云环境&#xff0c;解决问题的过程&#xff1b; 最近两天遇到一个bug&#xff0c;具体就是在本地Pyhon环境运行成功&#xff0c;但是当放在云服务跑的时候&#xff0c;去屡屡报错&#xff0c;具体报错信息如下&#xff1a; pymysql.err.I…...

淘宝卖东西如何在网站做宣传/网络营销相关工作岗位

随着伊士曼柯达(Eastman Kodak)及美国西屋电气(Westinghouse)等大型企业的消亡&#xff0c;年轻的天才们将创业视为未来的发展方向。有些人甚至完全放弃学业&#xff0c;一头扎进商 业大军&#xff0c;微软创始人比尔盖茨&#xff08;Bill Gates&#xff09;、苹果联合创始人史…...

win7版本wordpress/爱站网备案查询

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《分布式机器学习实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录自然语言处理系列二词频-逆文档频率(TF-IDF)Java代码实现TFIDF》总结自…...

网站建设合同 完整版/百度seo排名培训

填写了Name 还是没有 修改步骤如下&#xff1a;...

上海cms模板建站/销售策略和营销策略

所谓隔代通信就是A 与C的通信 A -> B -> C代码实例 A.vue <template><div id"app"><!-- 此处监听了事件&#xff0c;可以在C组件中直接触发 --><b-childnameToB"nameToB" nameToC"nameToC" buttonClick"butto…...

学校网站建设方案论文/网站权重是什么意思

我们不常用但是比较实用的SHELL脚本&#xff1a;1、apt-get install sl 这时候忘记了sudo &#xff0c;那么只要执行sudo !!&#xff0c;!!表示上一条命令2、vi hello.c 退出后&#xff0c;如果想打开刚才的hello.c文件&#xff0c;只需要!vi3、man ascii 来查看ascii码表4、ec…...

乌鲁木齐公司网站建设/网页设计收费标准

https://zhuanlan.zhihu.com/p/259993570...