搜索
bottom↓
回复: 28

stm32 keil hex转bin不好用 ,谁有好用小软件发下

[复制链接]

出0入0汤圆

发表于 2017-9-14 11:57:06 | 显示全部楼层 |阅读模式
本帖最后由 蜗牛蜗牛 于 2017-9-14 13:45 编辑

stm32 keil  hex转bin不好用 ,谁有好用小软件发下
如题:问题解决,其他方法没有试过,感觉从稳定来说还是用自带的,并且不用指定路径,所以这个是可取,所以选这个,估计其他网友方案也可行,所以这个设置为最佳

出0入8汤圆

发表于 2017-9-14 11:59:59 来自手机 | 显示全部楼层
jflash就能转

出0入0汤圆

 楼主| 发表于 2017-9-14 12:00:47 | 显示全部楼层

试试谢谢

出0入0汤圆

发表于 2017-9-14 12:03:51 | 显示全部楼层
在项目选项中设置,直接编译时,就可以生成bin,怎会不好用!

出0入0汤圆

 楼主| 发表于 2017-9-14 12:22:56 | 显示全部楼层
KongQuan 发表于 2017-9-14 12:03
在项目选项中设置,直接编译时,就可以生成bin,怎会不好用!

请截图证明拿出证据,

出0入59汤圆

发表于 2017-9-14 12:30:25 | 显示全部楼层
一直在用,很好用,keil的手册写的很清楚

出0入0汤圆

发表于 2017-9-14 12:34:51 | 显示全部楼层
Keil自己就能生成Bin文件没必要用软件转

出0入0汤圆

发表于 2017-9-14 12:37:55 | 显示全部楼层




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入70汤圆

发表于 2017-9-14 11:57:07 | 显示全部楼层
本帖最后由 SkyGz 于 2017-9-14 13:49 编辑

编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$L@L.bin" "#L"


如果有改向量表的, 用这个
fromelf.exe --bincombined --bincombined_base=0x00003000 -o "$L@L.bin" "#L"

出0入4汤圆

发表于 2017-9-14 12:46:43 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

正解,直接在软件里生成,最稳当可靠了

出0入0汤圆

 楼主| 发表于 2017-9-14 12:47:28 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

谢谢我试试

出0入0汤圆

发表于 2017-9-14 13:00:39 | 显示全部楼层
蜗牛蜗牛 发表于 2017-9-14 12:22
请截图证明拿出证据,

如果不想看手册,随便网上搜索就有!

出0入0汤圆

发表于 2017-9-14 13:10:28 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

我做iap程序里面的app。

生成bin文件的时候,没加--bincombined_base=0x00003000这个选项也能用啊??


出0入0汤圆

发表于 2017-9-14 13:18:33 | 显示全部楼层
fromelf.exe --bin Objects/Project.axf --output TargetFile/Mcu.bin
我一直在用的

出0入0汤圆

发表于 2017-9-14 13:32:51 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

改天试试看这个方法

出0入0汤圆

发表于 2017-9-14 13:41:57 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

还有这种操作,腻害,谢谢分享~

出0入0汤圆

 楼主| 发表于 2017-9-14 13:43:23 | 显示全部楼层
SkyGz 发表于 2017-9-14 12:45
编译设置中  user页面,  after build设置 run #1 输入框 输入如下
fromelf.exe --bin -o "$" "#L"

这个是基本算是最简单方法,但是你写的多写了-,是-o 不是--o,至于那些指定路径的是不可取得,因为路径不好指定对,设置太麻烦

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-9-14 13:44:55 | 显示全部楼层
蜗牛蜗牛 发表于 2017-9-14 12:22
请截图证明拿出证据,

bin是默认的,如果你要生成hex,需要√下选项

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入70汤圆

发表于 2017-9-14 13:46:19 | 显示全部楼层
WM_CH 发表于 2017-9-14 13:10
我做iap程序里面的app。

生成bin文件的时候,没加--bincombined_base=0x00003000这个选项也能用啊??

http://www.keil.com/support/man/ ... ge1362128886407.htm

出0入0汤圆

发表于 2017-9-14 14:23:05 | 显示全部楼层
SkyGz 发表于 2017-9-14 13:46
http://www.keil.com/support/man/docs/armutil/armutil_pge1362128886407.htm

谢谢你给的文档,
是不是加了--combined=0x3000,就不用在IROM里填起始地址是0x8003000了

出0入70汤圆

发表于 2017-9-14 14:28:40 | 显示全部楼层
WM_CH 发表于 2017-9-14 14:23
谢谢你给的文档,
是不是加了--combined=0x3000,就不用在IROM里填起始地址是0x8003000了  ...

要填..................

出0入0汤圆

发表于 2017-9-14 14:58:09 | 显示全部楼层
SkyGz 发表于 2017-9-14 14:28
要填..................

兄台麻烦了...

那个IROM的起始地址要填的话,我现在生成bin文件的时候,并没有加--combined=0x3000这个选项。但是我的app升级下载能用呀、、、

那个选项到底是啥意思啊,看英文可能我没看明白



出0入0汤圆

发表于 2017-9-14 15:41:23 | 显示全部楼层
SkyGz 发表于 2017-9-14 14:28
要填..................



您好,这是我运行了那个命令的结果,我是不是 写错啦



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入70汤圆

发表于 2017-9-14 15:55:11 | 显示全部楼层
本帖最后由 SkyGz 于 2017-9-14 16:08 编辑
WM_CH 发表于 2017-9-14 14:58
兄台麻烦了...

那个IROM的起始地址要填的话,我现在生成bin文件的时候,并没有加--combined=0x ...


晕, 看不懂?  你不知这世上有一种 叫做 翻译的软件么..........

By default, the start address of the first load region in memory is used as the base address. fromelf inserts padding between load regions as required to ensure that they are at the correct relative offset from each other. Separating the load regions in this way means that the output file can be loaded into memory and correctly aligned starting at the base address.
Use this option with --bincombined_base and --bincombined_padding to change the default values for the base address and padding.
  默认情况下,内存的起始地址第一次加载地区用作基地址。fromelf负载之间插入填充区域的要求,以确保它们在正确的相对偏移量。分离负荷地区以这种方式意味着输出文件可以加载到内存和正确对齐的底部开始地址。
  使用这个选项——bincombined_base和bincombined_padding改变默认值基地址和填充。


以STM32 为例, 基地址是从0x80000000起始的,   
HEX格式,可以指定什么地址有数据,  没指定的地址则为忽略FF空数据   
而BIN格式, 是没法定义地址,  纯进制文件,           而STM32编译出来的都是从80000000起算起,  BIN格式就只能从0开始在前段用FF填空直到0x8000000位置..........

比如JLINK 加载BIN格式数据,  会出现指定 起始地址0x80000000窗口,  就是 将BIN格式文件从0位置读取数据, 加载到0x80000000位置上....
再打个比方:   你编译没有加 bincombined_base,   出来的BIN格式文件,  如果用JLINK烧写,  那么在加载文件弹出的地址窗口,  你需要填上80003000,   才能正确将烧写到指定位置上.

出0入36汤圆

发表于 2017-9-14 23:25:05 | 显示全部楼层
keil这种烂软件,就不能做个地方,打个勾就可以输出bin么。。。

出0入0汤圆

 楼主| 发表于 2017-9-15 08:12:41 | 显示全部楼层
redworlf007 发表于 2017-9-14 23:25
keil这种烂软件,就不能做个地方,打个勾就可以输出bin么。。。

我表示+1 ,设置命令太麻烦

出0入0汤圆

发表于 2020-1-13 11:56:44 | 显示全部楼层

我表示+1 ,设置命令太麻烦

出0入0汤圆

发表于 2020-1-14 09:59:10 | 显示全部楼层
谢谢分享。。。

出0入0汤圆

发表于 2020-1-14 10:01:54 | 显示全部楼层
JFLASH,你值得拥有。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 20:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表