首页 > 其他分享 >Keil5深度探索:高效生成hex、bin与lib文件全攻略

Keil5深度探索:高效生成hex、bin与lib文件全攻略

时间:2024-07-11 16:58:29浏览次数:12  
标签:bin 文件 lib fromelf 生成 Keil5 全攻略

前言

Keil5是一款非常强大的嵌入式开发工具,它支持多种处理器和开发板,包括ARM Cortex-M系列。在嵌入式开发中,生成hex、bin和lib文件是非常常见的需求。本文将详细介绍如何使用Keil5高效生成这些文件。

原因

1.用到IAP升级,需要bin文件

2.给别人分享源代码,不想让别人看到源代码,需要lib库文件

3.hex文件用于烧录到芯片中

如果觉得对您有所帮助,请可以点个关注收藏一下,谢谢!
墨小羽ovo

一. 生成hex文件

1.选择魔术棒图标,选择Output选项卡

2.勾选Create Hex File
3.勾选完成后

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二. 生成bin文件

bin文件是二进制文件,它仅包含原始的机器码,不包含地址信息或其他元数据。在Keil5中,您可以通过修改项目设置或编写自定义脚本来生成bin文件:

1.使用fromelf工具:Keil提供了fromelf.exe工具,可以将编译生成的axf文件转换为bin文件。您可以在“Options for Target…”的“User”选项卡中,添加自定义的编译后命令来调用fromelf工具。

在这里插入图片描述

在这里插入图片描述

这是我的fromelf.exe工具路径以及输出
路径,您需要根据您的实际情况进行修改。

C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output …\MDK-ARM\SXD-FBJC\SXD-FBJC.bin …\MDK-ARM\SXD-FBJC\SXD-FBJC.axf

2.编写自定义脚本:您也可以编写自定义的编译后脚本,使用fromelf工具来生成bin文件。例如,您可以使用以下脚本来生成bin文件:

C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin --output …\OBJ\Farm.bin …\OBJ\Farm.axf

注意

1.bin文件的生成注意(要跟你这里输出的文件名一致),跟输出hex文件的路径一致

在这里插入图片描述

2.fromelf.exe工具路径,您需要根据您的实际情况进行修改。

C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe (这个是在Keil5安装目录下的ARMCC文件夹下)

3.输出路径,您需要根据您的实际情况进行修改。

注意最前面是两个点
的…代表上一级目录,即这个工程文件夹的上一级目录。
…\OBJ\Farm.bin

4.输入路径,您需要根据您的实际情况进行修改。

…\OBJ\Farm.axf

三. 生成lib文件

lib文件是静态库文件,它包含了编译后的机器码和符号信息,可以用于链接到其他项目中。在Keil5中,您可以使用以下步骤来生成lib文件:
可以把不想让别人看到源代码的文件,生成lib库文件,给别人分享源代码,不想让别人看到源代码,需要lib库文件
操作步骤:
1.选择魔术棒图标,选择Output选项卡
2.勾选Create Library
在这里插入图片描述

在这里插入图片描述

3.点击对应分组,屏蔽当前文件,不参与lib库生成
在这里插入图片描述

在这里插入图片描述

4.操作完,编译生成,如图所示
在这里插入图片描述

四.lib库文件使用

1.将屏蔽掉的文件重新参与编译
2.将你不想让别人看到的代码删掉
示例:
本项目是HARDWARE文件夹下的文件,我这里演示就先只屏蔽掉就行
在这里插入图片描述

3.将生成的lib库文件,添加到需要使用lib库文件的项目中
在这里插入图片描述

4.勾选Output中的Create Executable这个选项,重新生成编译
在这里插入图片描述

5.完成,正常使用
在这里插入图片描述

五.总结

本文详细介绍了如何使用Keil5生成hex、bin和lib文件。通过修改项目设置或编写自定义脚本,您可以轻松地生成这些文件,以满足您的嵌入式开发需求。希望本文对您有所帮助!。最后呢,在编写博客的过程中,我尽量保持内容的准确性和完整性,但也难免会有疏漏或错误之处。欢迎各位读者指出其中的问题,帮助我不断进步。谢谢大家的阅读,祝大家学习愉快!

标签:bin,文件,lib,fromelf,生成,Keil5,全攻略
From: https://blog.csdn.net/m0_47673526/article/details/140342222

相关文章

  • [Python基础] matplotlib绘图的深入浅出学习
    matplotlib 是Python中最常用的绘图库之一,它提供了丰富的绘图功能,非常适合数据可视化。下面我将从整体逻辑开始,逐步深入到具体的例子matplotlib绘图整体逻辑:1、创建图像对象: plt.figure()2、绘制数据:plt.plot()等函数绘制数据 3、设置坐标轴、标签、图表标题等;现在,......
  • python urllib 基础 5
    ajax的post请求importurllib.requestimporturllib.parse#url='https://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'##headers={#'user-agent':"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTM......
  • [1028] Creating your very own Python library
    Ah,creatingyourveryownPythonlibrary—howexciting!......
  • python urllib 基础 get ajax
    get请求豆瓣电影下载importurllib.parseimporturllib.requestimportjson#url='https://movie.douban.com/j/chart/top_list?type=19&interval_id=100%3A90&action=&start='+page+'&limit=20'headers={"User-Agent"......
  • python urllib 基础之 3
    ##post请求百度之详细翻译#importurllib.request#importurllib.parse#url='https://fanyi.baidu.com/sug'#data={#'kw':"spide"#}#print(data)#data=urllib.parse.urlencode(data).encode('utf-8')#print(d......
  • python urllib 基础2
    请求对象的定制importurllib.requesturl=("https://www.baidu.com")heards={'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/128.0.0.0Safari/537.36'}request=urlli......
  • 洛谷CF1342B Binary Period题解
    原题解和原题。这道题比较水。这道题分两种情况,分别为$t$由一种字符构成和由两种字符构成两种情况。$t$只有$0$或$1$。此时的$k$就是$1$,直接输出$t$就是最好的选择。$t$既有$0$又有$1$。此时的$k$为$2$,字符串由01或10构成。我们设$a_i$为字符串......
  • 【libevent】bufferevent的并发访问问题
    一、问题在使用libevent实现websocket服务器时,发生了并发访问的问题。服务器程序功能主要包括实时响应Websocket客户端的控制请求,同时发送温度到客户端。现象:不加上温度发送功能时,程序正常运行加上温度发送功能后,就会出现段错误,而且检查后发现bufferevent并不为空二、原因......
  • 【基于R语言群体遗传学】-16-中性检验Tajima‘s D及连锁不平衡 linkage disequilibriu
    Tajima'sDTest已经开发了几种中性检验,用于识别模型假设的潜在偏差。在这里,我们将说明一种有影响力的中性检验,即Tajima'sD(Tajima1989)。Tajima'sD通过比较数据集中的两个......
  • matplotlib绘制拟合大象曲线
    通过十个参数绘制大象曲线importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlib.animationasanimationnum=101k=np.arange(1,6)t=np.linspace(0,2*np.pi,num)Ax=[0,0,12,0,-14]Bx=[50,18,0,0,0]Ay=[-60,0,0,0,0]By=[-30,8,-10,0,0]eye=20x=(np......