[技术讨论]【Keil使用记录】Part1:使用Keil生成内部和外部BIN文件

1.介绍
最近的项目上使用内部Flash存储程序代码,外部Flash储存图片文字等数据,无线更新的时候只更新内部Flash,那么就需要从程序中将内部Flash的二进制文件生成出来,接下来就开始操作吧!
2.工程建立
首先我选择TouchGFX生成工程,这里选择了STM32L4R9I_DISCOVERY这个开发套件,然后选择官方提供的Demo,最终界面图如下图1。


图1

然后生成代码,点击图1的【Generate Code】,这个软件的使用等后面有机会出一个连载教程,这里就不多说明了,然后生成代码成功后,打开分散加载文件,打开方式如图2。


图2

通过图3可以看到程序部分存储在内部Flash,图片和文字数据存储在外部Flash。


图3

3.生成BIN文件
这时候添加一串生成BIN文件的命令。

fromelf --bin --output STM32L4R9I_DISCOVERY\BIN_Data.BIN STM32L4R9I_DISCOVERY\STM32L4R9I_DISCOVERY.axf

添加在如图4所示位置,这个位置是编译通过之后会执行的命令。


图4

编译一下,查看生成的BIN文件,可以看到一个奇怪的现象,生成了一个为【Bin_Data.BIN】的文件夹,如图5所示。


图5

进入文件夹之后可以看到两个文件,分别是【ER_EROM1】和【ER_IROM1】两个文件,如图6但是文件类型未知。


图6

虽然这个文件也是一个BIN文件,只是后缀名不正确,我们用【WinHex】软件打开其中一个文件如图7,可以看到文件是可以被正常打开的,内容也是正确的。


图7

但是这个文件后缀不太如意,这时候我发现了一件事,文件名与分散加载文件中的某一些名字一样,那么我如果修改这个名字是不是可以达到我想要的以BIN为后缀的文件,说做就做,把文件中的名称加上【.BIN】后缀,如图8所示。


图8

然后将生成的文件夹名字中的【.BIN】删除,如图9,修改后的代码如下。

fromelf --bin --output STM32L4R9I_DISCOVERY\BIN_Data.BIN STM32L4R9I_DISCOVERY\STM32L4R9I_DISCOVERY.axf


图9

编译一下,可以看到生成的了一个新的【BIN_Data】的文件夹,如图10。


图10

点击进去后可以看到这两个文件名有了【.BIN】的后缀如图11,说明我猜想的没有问题。


如图11

4.总结
生成BIN文件的整体操作其实很简单,但是在网上找不到相关的教程,所以就写了一篇,对于文中提到的【分散加载文件】的教程网上也比较少,网上都是一些官方的说明,下一篇我写一下【分散加载文件】的使用,让你灵活分配内存。当然对于这篇**有任何问题欢迎拍砖,有困难的童鞋也可以【查看我的资料】联系我,顺便提一下我接外包,谢谢!!!!
---------------------
作者:二哲科技
链接:https://bbs.21ic.com/icview-3061148-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值