stm32用MDK生成的bin文件内容与直接烧录到单片机内的内容不同

stm32用MDK生成的bin文件内容与直接烧录到单片机内的内容不同
在用stm32l496芯片做bootloader时遇到了这个问题,bin文件是按照网上的方法设置生成的,设置状态如下。

img

img

img

按照这个方式设置后用STM32 ST-LINK Utility软件将bin文件下载到0x8004000区域,但bootloader每次跳过去后就会卡住(bootloader采用的时延时一段时间后自动跳转)。
但如果直接用mdk下载到0x8004000区域的时候,bootloader就可以正常跳转并执行这段程序里的内容。
通过对比发现生成的bin文件和直接下载到单片机里的数据并不一样,这是生成的bin文件前几行的内容

img


c807 0020 4d02 0008 c31c 0008 671b 0008
c11c 0008 4304 0008 d125 0008 0000 0000
0000 0000 0000 0000 0000 0000 791f 0008
4504 0008 0000 0000 c51c 0008 7b1f 0008
6702 0008 6702 0008 6702 0008 6702 0008

这是下载到单片机flash内的数据

img

对比可以看到数据并不完全一致,比如第一行第6和第10个字节,bin文件生成的分别是0x02和0x1c,而单片机flash内却是0x42和0x5c,而且数据的长度也不一样。
我不知道为什么会产生这种现象,不知大家有没有遇到过,求帮忙指点下,谢谢

芯片配置截图看看,设置地址的地方

用ST-LINK烧录hex文件看看会发生什么

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^