0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Keil不能正确生成.bin文件的解决办法

2oON_changxuemc 来源:lq 2018-12-07 16:40 次阅读

前段时间我写过如何利用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文件,具体用法如下:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    795

    浏览量

    41645
  • keil
    +关注

    关注

    68

    文章

    1212

    浏览量

    166853

原文标题:Keil不能正确生成.bin文件的解决办法

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    keil如何生成带有编译日期的BIN文件

    【求助】keil 如何生成带有编译日期的 BIN 文件
    发表于 04-18 08:13

    为什么stm32怎么生成不了bin文件

    哪位大神看看mdk怎么生成不了bin文件路径错了吗还是 格式不正确??我设的是:C:\Keil\ARM\ARMCC\
    发表于 09-14 09:39

    如何使用Keil中的fromelf工具为PSoC6生成bin文件

    有人知道在Keil中用FulMelf工具生成PSOC6的正确bin文件的方法吗?Keil中的默
    发表于 10-29 11:38

    Keil使用生成bin文件问题分析与解决办法

    比较好的文章加密驱动开发使用CCMRAM内存串口网口USB虚拟串口在线升级官方资源博客资源推荐资源重要总结Keil使用生成bin文件问题分析与解决JTAG与串口本人STM32开发过程中
    发表于 08-06 06:09

    如何使用Keil生成Bin文件

    如何使用Keil生成Bin文件使用Keil 生成Bin
    发表于 10-19 07:08

    用MDK生成bin格式的可执行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默
    发表于 08-02 10:52 71次下载

    开机allegro不能正常启动解决办法(1)

    本问介绍了CADENCE软件组件Allegro开机不能正常启动的问题的解决办法
    发表于 08-18 17:26 0次下载

    MDk如何生成bin文件

    介绍了MDk生成bin文件的详细过程。
    发表于 11-02 17:20 1次下载

    如何用Keil生成bin、汇编、C与汇编混合文件

    1、话题引入 在使用Keil集成开发环境中大伙使用频率高的文件大概就是.hex吧,如果考虑内存布局等会使用到.map文件,如果遇到了疑难bug还会在仿真过程中看一看汇编窗口栏。 然而bin
    的头像 发表于 03-09 13:59 5079次阅读
    如何用<b class='flag-5'>Keil</b><b class='flag-5'>生成</b><b class='flag-5'>bin</b>、汇编、C与汇编混合<b class='flag-5'>文件</b>?

    Access数据库不能写问题解决办法

    Access数据库不能写问题解决办法(开关电源威廉希尔官方网站 讲座)-文档为Access数据库不能写问题解决办法详解文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
    发表于 09-17 15:37 7次下载
    Access数据库<b class='flag-5'>不能</b>写问题<b class='flag-5'>解决办法</b>

    关于老师发的keil软件报错如下: --- Error: failed to execute 'd:\Keil\C51\BIN\C51.EXE' Target not created

    配置文件仍然保留了他电脑的路径,与你放置Keil的实际路径不符。解决办法:找到自己的keil安装目录,下面有个TOOLS.INI文件。用记事
    发表于 12-03 20:21 33次下载
    关于老师发的<b class='flag-5'>keil</b>软件报错如下: --- Error: failed to execute 'd:\<b class='flag-5'>Keil</b>\C51\<b class='flag-5'>BIN</b>\C51.EXE' Target not created

    一种Keil MDK生成BIN文件的简易方法。

    一种Keil MDK生成BIN文件的简易方法。
    发表于 01-13 10:18 2次下载

    Keil开发环境如何生成BIN文件

    作者:王超首发:电子电路开发学习为什么需要BIN文件呢?有些烧录器只支持BIN文件。进行OTA远程升级时,只能使用BIN
    发表于 01-26 19:29 6次下载
    <b class='flag-5'>Keil</b>开发环境如何<b class='flag-5'>生成</b><b class='flag-5'>BIN</b><b class='flag-5'>文件</b>

    学威廉希尔官方网站 | Keil &amp;amp; IAR 生成bin文件的N种方法

    写在前面:有些情况下需要bin文件直接传输下载数据,比如在应用编程(IAP),那么Keil5是如何生成bin
    的头像 发表于 11-02 16:46 6224次阅读
    学威廉希尔官方网站
 | <b class='flag-5'>Keil</b> &amp;amp; IAR <b class='flag-5'>生成</b><b class='flag-5'>bin</b><b class='flag-5'>文件</b>的N种方法

    keil如何生成bin文件

    Keil是一种集成开发环境(IDE),专为ARM架构的嵌入式系统开发而设计。在Keil生成bin文件是将代码编译并转换为可执行
    的头像 发表于 12-15 13:43 1.2w次阅读