最正宗的方法,如何生成单片机程序的bin文件(基于keil)

最权威的生成单片机程序的bin文件的方法(基于keil)

搞单片机开发的朋友,有一些应该接触过bin文件吧,像孔丙火(微信公众号:孔丙火)开发的一些传感器,有时候需要对传感器内单片机的程序进行升级更新,但传感器已经安装在现场,拿着编程器挨个烧录程序,着实很麻烦,但传感器一般都有现场总线接口,于是就采用总线对单片机程序进行IAP升级,这时,孔丙火(微信公众号:孔丙火)用到的就是bin文件。

这篇文章就讲一下用keil生成bin文件的方法,且是最权威的方法,为什么这么说呢,因为方法来自于keil的帮助文件,官方的,当然最权威。如图1所示,这是keil的帮助文件的截图,大段的文字大略看一下即可,只要按照给的例子做就可以了。

图1

还是以孔丙火(微信公众号:孔丙火)前面文章中的FreeModbus从站设计的单片机程序做为例子,如图2所示,在生成bin文件的fromelf指令要写在“After Build/Rebuild”里面。图2是完全按照帮助文件里的格式写的,FreeModbus.axf文件是编译默认生成的文件,不仅包含代码数据,而且还包含着调试信息,fromelf就是通过axf文件来生成bin文件。其实hex文件也是通过fromelf方法生成的,只不过用户操作简单,在选项中勾选一下就可以了。

图2

按照图2设置好后,Rebuild,但提示如图3所示的错误,显示找不到FreeModbus.axf文件,这个应该是路径的问题,但跟帮助文件里写的是一样的啊。在这张图中,也可以看出hex文件也是通过FromELF生成的。后来经过试验发现,keil MDK工程里默认的路径是MDK-ARM,这个从图4的设置选项里可以看出。在图4中,如果选中MDK-ARM文件夹,Create Executable显示的是.\FreeModbus,FreeModbus是生成的目标文件的名字,./表示相对路径,说明默认路径是MDK-ARM文件夹。

图3

图4

图5

如5所示,FreeModbus.axf文件其实是在MDK-ARM下的FreeModbus文件夹下,所以图2中的指令应该写成:fromelf --bin --output=outfile.bin .\FreeModbus\FreeModbus.axf,就可以正常生成bin文件了,如图6所示。outfile.bin生成在MDK-ARM文件夹下,也说明了MDK-ARM文件夹是默认路径。

图6

文章在公众号(孔丙火)同步推出,欢迎查看更多系列文章。

单片机、ARM、现场总线、PLC、嵌入式软硬件的设计经验分享,秉承“点点滴滴皆智慧”的理念,以实际项目为单元阐述知识点,一起分享,共同交流。

(0)

相关推荐

  • 基础很重要!elf和map文件有不同?

    事情的起因 在做MCU开发的过程中,我们以Keil MDK为例简单介绍一下,通常我们会看到一些后缀的文件名,比如.bin文件,.hex文件,.axf文件,.map文件,.elf文件,当然还有很多其他的 ...

  • Keil软件的介绍

    1.1.IDE概念      IDE就是集成开发环境,就是一套用来开发的完整的软件系统. 1.2.Keil uvision介绍      keil software公司出品的51系列兼容单片机c语言软 ...

  • STM32串口IAP分享

    什么是IAP? IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通 ...

  • 【玩转MDK】MDK编译过程解析

    注:本文主要内容来自野火STM32教程 1.MDK编译过程 在MDK工程下,点击编译按钮,MDK将会完成整个编译过程,如下图所示 编译,MDK 软件使用的编译器是 armcc 和 armasm,它们根 ...

  • 【STM32F303开发】+使用fromelf反汇编keil生成的AXF文件

    昨天我在另一个帖子里谈到了怎么样找到程序跑飞的原因:[STM32F303开发]+如何找到导致程序出现HardFault的代码     贴子的最后我们使用直接在debug模式下汇编窗口中输入LR的值来定 ...

  • 你了解单片机程序的hex文件吗?它包含哪些信息

    https://m.toutiao.com/is/etkYYex/ 图1 图2 (1)每行都是以冒号开始,这只是一个规范格式. (2)第1行:02表示这一行有两个字节的数据,0800是真正的数据,00 ...

  • 解决单片机程序丢失的方法有哪些?

    改善电源 尽量改善电源.这是老话了.并不是说单片机能工作就行,电源要设计好,加上104去耦电容改进电路布局等措施. 使用带电压监测的复位芯片. 防止上电/下电时,单片机电压处于工作和不工作的临界时,单 ...

  • 单片机程序加解密方法和注意事项

    嵌入式专栏 1 单片机解密是什么? 单片机解密又叫单片机破解.芯片解密.IC解密等,但是这严格说来这几种称呼都不科学,但已经成了习惯叫法,我们把CPLD解密,DSP解密都习惯称为单片机解密,单片机只是 ...

  • 干货!单片机程序加解密方法和注意事项

    干货!单片机程序加解密方法和注意事项

  • 单片机程序烧录的3种方式(ISP、ICP、IAP)是什么

    说起给单片机烧录程序,大家应该都不陌生吧,我最早接触单片机是从51单片机开始的,型号是STC89C52RC,当时烧录程序就是用的下面这种烧录软件--STC-ISP. 这种方式,通过串口连接单片机,选择 ...

  • 家庭自制桑葚酒的做法,桑葚酒正宗制作方法(七步骤)

    桑葚酒是桑椹果酿造而成的,属于一种果酒,具有非常高的营养价值有补血.强身.养身等功效,不可多得的好果酒,而且桑葚酒的制作方法很麻烦,当中需要很多步骤,那么家庭自制桑葚酒的做法,桑葚酒正宗制作方法是什么 ...

  • [js] 第74天 写一个方法随机生成指定位数的字符串解决?

    今日试题: 写一个方法随机生成指定位数的字符串解决? 此开源项目四大宗旨:勤思考,多动手,善总结,能坚持 <论语>,曾子曰:"吾日三省吾身"(我每天多次反省自己). 前 ...

  • 远程升级单片机程序怎么设计?

        之前的文章中介绍过串口和U盘的IAP程序设计.在物联网应用中,远程IAP升级MCU的程序是一项非常有用的功能.当设备出现程序问题或者需要更新程序时,只需要在服务器上对设备进行升级,不需要在有专 ...

  • 酒店做正宗红烧肉方法不同,值得学习

    链接 1,腰部肉大整块,直接入蒸箱蒸20分钟,取出放凉.整理成矩形,以便切成标准块.然后按要求切定型块. 2,花椒八角桂皮香叶小茴香白芷,注意:每一种只要一点点,一斤肉只要食指前两节那么多,千万不要多 ...