野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15525|回复: 12

如何使用MDK生成bin文件

[复制链接]
发表于 2016-7-29 10:00:37 | 显示全部楼层 |阅读模式
————如何使用MDK生成bin文件——摘自《零死角玩转stm32- MDK的编译过程及文件类型全解》 (F4版本)
  经常有用户询问如何生成bin文件,现把教程里的内容摘录出来,大家一起来学习。
       先把已配置可用的工程附件放上来: 如何生成bin文件.zip (688.87 KB, 下载次数: 59)

  在实际生产中经常会把程序生成bin文件格式再用工具烧录到芯片中,但mdk默认并没有生成bin文件的配置,使用MDK生成bin文件需要使用fromelf命令,

  可在MDK的“Options ForTarget->Users”中加入 48‑35中的命令。

在mdk中加入指令.jpg
图 48‑35 使用fromelf指令生成bin文件
  图中的指令内容为:
  1. fromelf  --bin --output  ..\..\Output\多彩流水灯.bin   ..\..\Output\多彩流水灯.axf
复制代码

  该指令是根据本机及工程的配置而写的,在不同的系统环境或不同的工程中,指令内容都不一样
  我们需要理解它,才能为自己的工程定制指令,首先看看fromelf的帮助,见 48‑36。(fromelf是MDK编译链的其中一个工具,只要你的电脑安装了mdk,就可以在mdk的安装目录找到它,如:D:\keil5\ARM\ARMCC\bin,以下命令行能运行是因为我的电脑已配置好环境变量

fromelf命令.jpg
图 48‑36 fromelf的帮助
我们在MDK输入的指令格式是遵守fromelf帮助里的指令格式说明的,其格式为:
fromelf    [options]      input_file
  其中optinos是指令选项,一个指令支持输入多个选项,每个选项之间使用空格隔开,我们的实例中使用“--bin”选项设置输出bin文件使用“--output file”选项设置输出文件的名字为“..\..\Output\多彩流水灯.bin,这个名字是一个相对路径格式,如果不了解如何使用“..\”表示路径,可使用MDK命令输入框后面的文件夹图标打开文件浏览器选择文件,在命令的最后使用“..\..\Output\多彩流水灯.axf”作为命令的输入文件。具体的格式分解见 48‑37
fromelf命令格式说明.jpg

图 48‑37 fromelf命令格式分解
  fromelf需要根据工程的*.axf文件输入来转换得到bin文件,所以在命令的输入文件参数中要选择本工程对应的*.axf文件,在MDK命令输入栏中,我们把fromelf指令放置在“After Build/Rebuild(工程构建完成后执行)一栏也是基于这个考虑,这样设置后,工程构建完成生成了最新的*.axf文件,MDK再执行fromelf指令,从而得到最新的bin文件。
  设置完成生成hex的选项或添加了生成bin的用户指令后,点击工程的编译(build)按钮,重新编译工程,成功后可看到 48‑38中的输出。打开相应的目录即可找到文件,若找不到bin文件,请查看提示输出栏执行指令的信息,根据信息改正fromelf指令。
命令执行输出.jpg

图 48‑38 fromelf生成hxe及bin文件的提示



本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2016-7-29 10:03:06 | 显示全部楼层
赞,非常实用,之前只是用来正常在MDK中下载程序和在线仿真,没想到还有这么强大的功能啊
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:03:25 | 显示全部楼层
好用,不用自己装任何的驱动,插上就可以用了
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:04:48 | 显示全部楼层
之前有了解过如何生成bin文件,只会照抄指令,可是完全不懂为什么,这下好了,解释这么清楚

不过关于fromelf这工具还是不太了解,能不能详细介绍下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-29 10:06:44 | 显示全部楼层
随风 发表于 2016-7-29 10:04
之前有了解过如何生成bin文件,只会照抄指令,可是完全不懂为什么,这下好了,解释这么清楚

不过关于fro ...

MDK的编译工具目录下有 armcc、armasm、armlink、armar及fromelf这几个工具,专门有不同的功能,了解这些工具很有意思,在我们的教程里也有介绍,等下我再把这文章做成帖子
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:08:34 | 显示全部楼层
flyleaf 发表于 2016-7-29 10:06
MDK的编译工具目录下有 armcc、armasm、armlink、armar及fromelf这几个工具,专门有不同的功能,了解这些 ...

同样的问题,fromelf这工具可以详细介绍下吗
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:08:59 | 显示全部楼层
赞,野火的这个仿真器不错,小巧方便
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:10:58 | 显示全部楼层
之前已经看了《零死角玩转stm32》文档里的相关章节,真的收获很大,看了之后对MDK就非常熟悉了,妈妈再也不用担心我不知道MDK文件的作用了。

还了解到这个fromelf工具真的非常牛x,火哥教程里直接用这个工具反汇编查代码,查o文件的信息等等,

看到视频里火哥顺手拈来,功力深厚啊
回复 支持 反对

使用道具 举报

发表于 2016-7-29 10:12:34 | 显示全部楼层
汪曼丽 发表于 2016-7-29 10:08
同样的问题,fromelf这工具可以详细介绍下吗

快去看看文档,视频也有了,真心推荐。这个章节放在文档的最后,但真的觉得比其它摄像头什么的章节都有意思
回复 支持 反对

使用道具 举报

发表于 2016-7-29 11:59:08 | 显示全部楼层
谢谢,终于找到了
回复 支持 反对

使用道具 举报

发表于 2016-7-29 11:59:50 | 显示全部楼层
好资料,公司总会奇葩要求这样那样下载程序!!!还是外包给人家的,又不给源码,也是醉了。这份资料我拷贝了
回复 支持 反对

使用道具 举报

发表于 2016-7-29 14:12:12 | 显示全部楼层
很好的资料,不错不错,教程详细
回复 支持 反对

使用道具 举报

发表于 2016-7-29 14:17:50 | 显示全部楼层
8错8错,用心的技术帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-4 01:21 , Processed in 0.059241 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表