这周工作终于不太忙了,可以写点笔记总结一下了。

之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次我们再来介绍一下如何将elf文件转换为hex文件。

如何将elf文件转换为hex文件

elf(Executable and Linkable Format)文件一般是由gcc编译器生成的,在Linux开发环境使用较多,但Windows一般情况下需要使用hex文件来进行烧录,那么如何将elf格式转换为hex格式呢?elf转hex有两种方式,一个是使用Keil环境自带的fromelf.exe工具,第二个是使用arm-gcc编译器下的arm-none-eabi-objcopy.exe工具。

先看一下我电脑上的文件路径

测试文件路径

D:\ELF
|-- arm-none-eabi-objcopy.exe
|-- arm_file.hex
|-- formelf_file.hex
|-- output.elf

fromelf文件路径

E:\Keil_v5\ARM\ARMCC_505u2\bin\fromelf.exe

arm-none-eabi-objcopy.exe文件路径

D:\ELF\arm-none-eabi-objcopy.exe

使用formelf工具将elf文件转换为hex文件

"E:/Keil_v5/ARM/ARMCC_505u2/bin/fromelf.exe" --i32combined --output="D:/ELF/formelf_file.hex" "D:/ELF/output.elf"

命令说明:

--i32combined表示生成hex文件

--output=指定输出hex文件的存储路径和文件名

"D:/ELF/output.elf"指定输入elf文件的路径

使用arm-none-eabi-objcopy工具将elf文件转换为hex文件

"D:/ELF/arm-none-eabi-objcopy.exe" -O ihex "D:/ELF/output.elf" "D:/ELF/arm_file.hex"

-O ihex表示生成hex文件,这里要注意是大写的O。

注意

  • 从两种方法生成的hex文件来看,还是有一些区别的,但程序运行都是一样的。
  • fromelf.exe不能拿出来单独运行,它还依赖于Keil安装目录下的其他文件
  • arm-none-eabi-objcopy可以拿出来单独运行

arm-none-eabi-objcopy及测试文件下载地址:ELF.rar


历史精选文章:


欢迎大家关注我的个人博客

或微信扫码关注我的公众号

elf格式转换为hex格式文件的两种方法的更多相关文章

  1. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

  2. [转载]C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...

  3. MySQL命令执行sql文件的两种方法

    MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...

  4. C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...

  5. spring 配置文件 引入外部的property文件的两种方法

    spring  的配置文件 引入外部的property文件的两种方法 <!-- 引入jdbc配置文件    方法一 --> <bean id="propertyConfig ...

  6. 合并BIN文件的两种方法(转)

    源:http://blog.chinaunix.net/uid-20745340-id-1878803.html 合并BIN文件的两种方法 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一 ...

  7. Linux下查看alert日志文件的两种方法

    --linux下查看alert日志文件的两种方法: --方法1: SQL> show parameter background_dump_dest; NAME TYPE VALUE ------ ...

  8. oracle rename数据文件的两种方法

    oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不 ...

  9. C#读写txt文件的两种方法介绍[转]

    C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...

随机推荐

  1. Implemented the “Importance Sampling of Reflections from Hair Fibers”

      Just the indirect specular pass by importance sampling. With all layers. Manually traced by 3D Ham ...

  2. 【linux】Can't connect to local MySQL server through socket和Plugin 'auth_socket' is not loaded报错

    真的是一次吐血的经历,弄了两个多小时才弄好. 问题1:直接登陆root用户报错 ERROR 2002 (HY000): Can't connect to local MySQL server thro ...

  3. Python MySQL事务、引擎、索引及第三方库sqlalchemy

    本节内容 1.数据库介绍2.事务3.引擎4.索引5.ORM sqlalchemy 1.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一 ...

  4. spring4笔记----常见的java的字符类型与xml匹配

    private List<String> schools; <property name="schools"> <list> <value ...

  5. 洗礼灵魂,修炼python(80)--全栈项目实战篇(8)—— 计算器

    用正则表达式开发一个计算器,计算用户给定的一串带有加减乘除的公式. 要求:不能使用eval转换字符串 分析: 要求简单,就是计算混合运算,但是不能使用eval直接转换,主要就是把整个式子中的小括号优先 ...

  6. 从零开始的cve分析- cve-2016-0095 简易记录

    0x00 前言 看k0shl大佬的SSCTF pwn450 Windows Kernel Exploitation Writeup一文,试着写一个x64下的poc. poc地址:https://git ...

  7. Win10家庭版-添加[组策略]

    win10家庭版有很多功能都不能用,这一次就碰到了一个找不到‘组策略’的问题,在网上搜索到了一个方法,记录一下: 新建一个txt,将下面内容复制到文本中: =====分隔符====== @echo o ...

  8. MacBook Pro维修过程

    上个月买了2016款无touchbar的MacBook Pro,这款的键盘跟15年版本的很不一样. 在用了三周左右,就发现有个键按着不灵活了,像是进了水一样,黏住感觉,必须要大力按才会出来.思来想去, ...

  9. nodejs前后分离

    proxy: { '/api': { target: 'http://localhost:3000/', pathRewrite: {'^/api' : ''}, changeOrigin: true ...

  10. Zookeeper运维小结--CancelledKeyException

    https://www.jianshu.com/p/73eec030db86 项目中用到storm+kafka+zookeeper,在实际应用中zk和kafka常出问题,这里记录下在使用zk过程中的问 ...