东芝TMPM369FDFG芯片 Cortes-M3内核
用keil5编译后:Program Size: Code=160046 RO-data=7518 RW-data=2968 ZI-data=33664296
而实际生成的bin文件却有452k:
生成的hex文件 有1M多 ,用hex装bin工具转后,也是452k。
用ue把bin文件打开后,
在0x0028540行之后 就全是0了 这里刚好差不多是 161k左右的数据。
一直到0x0070000之后到0x0070D90有3472个字节的数据是用于远程升级的一段代码数据 中间这一段全是0。
stm32的远程升级 我了解过 是两个工程 两个bin文件分别下载到不同flash地址里 程序内部实现跳转。
这个系统的远程升级我就看不懂了 升级程序跟实际用的主程序 放在同一个bin文件里,而且中间还添加了那么多0。现在导致452k的数据 远程升级会失败。希望有大神能帮我指点一二。
还有keil5能设置生成的bin文件为固定大小么? 回到最开始的问题,怎么实现bin文件大小 > code+ RO_data + RW_data.
应该是你升级代码定位的地址是0x0070000,这样就是每次编译用户代码与boot代码直接就是空白的,所以定位升级代码位置很关键。
不过对应升级只要升级用户代码就行,所以将还得看你升级擦除方式,如果自升级用户代码区,那升级代码就只升级前面的区域。
一周热门 更多>