前段时间我写过如何利用CW、IAR和Keil生成image文件,效果还不错,有些用户反馈挺有帮助的,毕竟待项目开发到最后是需要生成image文件用来量产烧写,我们总不至于到最后使用调试下载吧(不过还别说,用量比较小的用户还真有可能用调试的方法来下载,当然这个只能说是小批量烧写,如果真是大批量烧写,这效率估计得把老板愁死,呵呵)。不过最近同事遇到了用keil生成bin文件时不能正确生成.bin文件而是生成.bin文件夹的问题,这个问题最开始感觉比较怪异,后来问题解决了还是豁然开朗了,Keil还是蛮有意思的,呵呵。

其实这个问题顺藤摸瓜还是比较容易找到根结的(还是那句话,授之以鱼不如授之以渔才是俺的风格,问题解决只是结果,但是我更希望跟大家说明白解决问题的方法,结果是给老板看的,但对自己来说方法和过程很重要,学会了方法会让你在处理问题上游刃有余),既然问题出在生成文件上,那我们就只能找fromelf这个文件转换工具的麻烦了(啥?不知道啥叫fromelf,咳咳,先去面壁2小时然后百度一下吧,呵呵),打开keil IDE,然后打开help->uVison Help,搜索fromelf关键字如下图1:

然后再进入到右下角的索引找到fromelf命令行的语法和选项,找到—bin的说明如下,如红色标注所说,正是症结所在,即如果链接文件中定义了多个加载段的话,fromelf会以目标文件名来创建一个文件夹并将每个加载段都生成一个相应的文件存放在该文件夹下,问题的原因是找到了,但是另外两个问题又来了(咳咳,问题咋这么多捏),一是我的工程为啥会有多个加载段,另一个问题是如果出现这种加载段我们怎么生成我们想要的bin文件呢,不要捉急,咱们一个一个聊。

第一个问题,我们打开Keil->Options->Linker选项卡如下图,可以看到本工程中没有使用Options->Target下选项卡对内存映射的配置,而是使用自己的.scf链接文件,打开该文件一看就明白了,其定义了很多个内存段因此造成上述情况的发生,如果使用Target Dialog应该不会出现此类问题(但是此时工程会编译错误,因为工程中某些原文件用了自定义.scf中某些段名)。

第二个问题,既然问题找到了,我们该使用哪种方法来正确生成想要的.bin二进制文件呢,通过查看fromelf所支持的命令集,终于找到了解决办法,即使用—bincombined命令可以实现将使用多加载段的工程生成真正的.bin文件,具体用法如下:

好吧,终于写完了,本来一个简单的小问题貌似让我给写了如此长章节的内容啊,咳咳,自己真是有成为话唠的潜力啊。不过还是希望大家能坚持把它看完,理解俺写这篇文章的宗旨,额,自己是不是有点太高尚了,算了,不能太高调了,哈哈。关电脑,睡觉。。。差点忘记说了,未完待续啊,呼…呼…呼…

keil 生成bin找不到afx文件_【学习笔记】Keil不能正确生成.bin文件的解决办法相关推荐

  1. oracle 怎么看监听文件,【学习笔记】Oracle11G关于监听文件位置与监听文件大小限制...

    [学习笔记]Oracle11G关于监听文件位置与监听文件大小限制 时间:2016-11-07 21:21   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃荷净 Oracle研究中 ...

  2. python从第二行开始读取文件_python学习笔记—— 从第二行开始读文件

    原博文 2018-04-16 16:26 − filename = info.txtf = open('info.txt') next(f) for line in f: print(line)nex ...

  3. python3上传文件_Python3学习笔记(十八):文件上传和下载

    importrequests upload_url= 'http://upload.renren.com/upload.fcgi?pagetype=addpublishersingle&hos ...

  4. python3下载文件-Python3学习笔记(十八):文件上传和下载

    importrequests upload_url= 'http://upload.renren.com/upload.fcgi?pagetype=addpublishersingle&hos ...

  5. KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记4——Directives

    KEIL 5.38的ARM-CM3/4 ARM汇编设计学习笔记4--Directives 一.若干重要的DIRECTIVE介绍 二.一些概念 三.Directives详细介绍 1,GET/INCLUD ...

  6. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  7. Python 学习笔记(3)对txt文件的读与写操作(下)

    上一章节我们讨论了如何对txt文本文件进行读写操作,这一张将讨论如何进行二进制文件的写与读.<Python 学习笔记(3)对txt文件的读与写操作(上)>的链接如下https://blog ...

  8. 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法...

    -----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...

  9. Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法

    Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法 问题描述 在Ubuntu上使用CP210x USB转UART设备时需要安装驱动程序(CP ...

最新文章

  1. android根据ip获取域名_android常用工具类 通过域名获取ip
  2. 网络不通 从“本地连接”中找问题
  3. create-react-native-app
  4. 自定义Docker容器的 hostname
  5. iOS 添加字体并使用
  6. 网站***是如何用脚本欺骗网友的
  7. 怎么用python爬取整个网站_5分钟学会Python爬取整个网站
  8. muduo网络库学习(一)对io复用的封装Poller,面向对象与基于对象
  9. micropython esp8266教程_(一)ESP8266/nodemcu如何使用MicroPython进行开发
  10. python isalpha函数用法_python中string模块各属性以及函数的用法
  11. [Java] Spring事务REQUIRES_NEW导致项目没有响应-原因DB maxActive没设置
  12. 列表 list的技巧
  13. pytorch .item_从数据到模型,你可能需要1篇详实的pytorch踩坑指南
  14. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  15. 被老程序员压榨怎么办?我不想辞职
  16. 免费思维导图mindmanager2020下载安装(附序列号)
  17. dedecms二次开发总结 变量参数
  18. Leco题目:两数相加
  19. Flutter 吐司弹框的使用 showToast弹框(插件)
  20. 快递单打印专家 免费

热门文章

  1. OpenShift - 部署基于MongoDB和NodeJS的多层应用
  2. OpenShift 4 Hands-on Lab (13) 使用持久化存储
  3. OpenShift 4 之Service Mesh教程(4)- 跟踪访问后端服务超时
  4. GitHub 公开 B 站寄来的 DMCA 删除通知
  5. 使用.NET Core 2开发部署Angular 5项目
  6. 数字能排序字符串不能排序_动图解说堆排序原理,让体育生也能看得明白
  7. 通过nginx反向代理解决跨域
  8. long 雪花算法_雪花算法(snowflake)
  9. qml 不刷新 放大还原_【显示器选择详解】你的电脑能否带动高分辨率,高刷新率显示器?...
  10. linux svn 安装信息,linux 下安装 subversion(svn) 客户端