keil5怎么设置生成固定大小的bin文件

2019-10-14 22:59发布

东芝TMPM369FDFG芯片  Cortes-M3内核  
用keil5编译后:Program Size: Code=160046 RO-data=7518 RW-data=2968 ZI-data=33664296  


而实际生成的bin文件却有452k:

WVKRW4IM)PI4HV@2U5Y.M.png


生成的hex文件 有1M多 ,用hex装bin工具转后,也是452k。

用ue把bin文件打开后,

{)O1OTT5MO(%LSZPU}Z)@{W.png



在0x0028540行之后 就全是0了  这里刚好差不多是 161k左右的数据。

一直到0x0070000之后到0x0070D90有3472个字节的数据是用于远程升级的一段代码数据  中间这一段全是0。   

ZSN[WA%@TJCMMJ9CO~9]EYR.png


stm32的远程升级 我了解过 是两个工程 两个bin文件分别下载到不同flash地址里 程序内部实现跳转。

这个系统的远程升级我就看不懂了  升级程序跟实际用的主程序 放在同一个bin文件里,而且中间还添加了那么多0。现在导致452k的数据 远程升级会失败。希望有大神能帮我指点一二。
还有keil5能设置生成的bin文件为固定大小么?  回到最开始的问题,怎么实现bin文件大小 > code+ RO_data + RW_data.


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
tivonliu
1楼-- · 2019-10-15 02:07
 精彩回答 2  元偷偷看……
DongInker
2楼-- · 2019-10-15 05:47
正常像boot代码是放在API代码之前,因为boot代码大小波动不大,用户代码波动比较大,这样整合的bin就会接近用户代码。
应该是你升级代码定位的地址是0x0070000,这样就是每次编译用户代码与boot代码直接就是空白的,所以定位升级代码位置很关键。
不过对应升级只要升级用户代码就行,所以将还得看你升级擦除方式,如果自升级用户代码区,那升级代码就只升级前面的区域。
outmanlol
3楼-- · 2019-10-15 10:55
顶3楼。

一周热门 更多>