天天无bug 2021-09-23 16:02 采纳率: 0%
浏览 416

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,而且数据的长度也不一样。
我不知道为什么会产生这种现象,不知大家有没有遇到过,求帮忙指点下,谢谢

  • 写回答

3条回答 默认 最新

  • 嵌入式单片机实验室 优质创作者: 嵌入式与硬件开发技术领域 2021-09-23 21:36
    关注

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

    评论

报告相同问题?

问题事件

  • 修改了问题 9月23日
  • 创建了问题 9月23日