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

2019-12-23 18:36发布

本帖最后由 蜗牛蜗牛 于 2017-9-14 13:45 编辑

stm32 keil  hex转bin不好用 ,谁有好用小软件发下
如题:问题解决,其他方法没有试过,感觉从稳定来说还是用自带的,并且不用指定路径,所以这个是可取,所以选这个,估计其他网友方案也可行,所以这个设置为最佳
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
WM_CH
1楼-- · 2019-12-25 23:45
SkyGz 发表于 2017-9-14 13:46
http://www.keil.com/support/man/docs/armutil/armutil_pge1362128886407.htm

谢谢你给的文档,
是不是加了--combined=0x3000,就不用在IROM里填起始地址是0x8003000了
SkyGz
2楼-- · 2019-12-26 00:06
 精彩回答 2  元偷偷看……
WM_CH
3楼-- · 2019-12-26 00:07
SkyGz 发表于 2017-9-14 14:28
要填..................

兄台麻烦了...

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

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



WM_CH
4楼-- · 2019-12-26 02:34
SkyGz 发表于 2017-9-14 14:28
要填..................

QQ图片20170914154025.jpg (58.01 KB, 下载次数: 0)

下载附件

2017-9-14 15:40 上传



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



SkyGz
5楼-- · 2019-12-26 04:47
本帖最后由 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,   才能正确将烧写到指定位置上.
redworlf007
6楼-- · 2019-12-26 06:41
keil这种烂软件,就不能做个地方,打个勾就可以输出bin么。。。