解决keil:STM32H7 SWD烧写遇到Contents mismatch at: 0800xxxxH

it2025-10-01  5

使用keil5下载STM32H7的程序时报错:

Contents mismatch at: 08000039H  (Flash=FFH  Required=14H) !Contents mismatch at: 0800003AH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800003BH  (Flash=FFH  Required=08H) !Contents mismatch at: 0800003CH  (Flash=FFH  Required=E7H) !Contents mismatch at: 0800003DH  (Flash=FFH  Required=14H) !Contents mismatch at: 0800003EH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800003FH  (Flash=FFH  Required=08H) !Contents mismatch at: 08000040H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000041H  (Flash=FFH  Required=55H) !Contents mismatch at: 08000042H  (Flash=FFH  Required=00H) !Contents mismatch at: 08000043H  (Flash=FFH  Required=08H) !Contents mismatch at: 08000044H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000045H  (Flash=FFH  Required=55H) !Contents mismatch at: 08000046H  (Flash=FFH  Required=00H) !Contents mismatch at: 08000047H  (Flash=FFH  Required=08H) !Contents mismatch at: 08000048H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000049H  (Flash=FFH  Required=55H) !Contents mismatch at: 0800004AH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800004BH  (Flash=FFH  Required=08H) !Contents mismatch at: 0800004CH  (Flash=FFH  Required=D5H) !Contents mismatch at: 0800004DH  (Flash=FFH  Required=14H) !Contents mismatch at: 0800004EH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800004FH  (Flash=FFH  Required=08H) !Contents mismatch at: 08000050H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000051H  (Flash=FFH  Required=55H) !Contents mismatch at: 08000052H  (Flash=FFH  Required=00H) !Contents mismatch at: 08000053H  (Flash=FFH  Required=08H) !Contents mismatch at: 08000054H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000055H  (Flash=FFH  Required=55H) !Contents mismatch at: 08000056H  (Flash=FFH  Required=00H) !Contents mismatch at: 08000057H  (Flash=FFH  Required=08H) !Contents mismatch at: 08000058H  (Flash=FFH  Required=63H) !Contents mismatch at: 08000059H  (Flash=FFH  Required=55H) !Contents mismatch at: 0800005AH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800005BH  (Flash=FFH  Required=08H) !Contents mismatch at: 0800005CH  (Flash=FFH  Required=29H) !Contents mismatch at: 0800005DH  (Flash=FFH  Required=15H) !Contents mismatch at: 0800005EH  (Flash=FFH  Required=00H) !Contents mismatch at: 0800005FH  (Flash=FFH  Required=08H) !Contents mismatch at: 08000060H  (Flash=FFH  Required=EBH) !Contents mismatch at: 08000061H  (Flash=FFH  Required=14H) !Contents mismatch at: 08000062H  (Flash=FFH  Required=00H) !Contents mismatch at: 08000063H  (Flash=FFH  Required=08H) !Too many errors to display !

 

相同的工程下载正点原子的开发板一点问题都没有。

网上搜了一下,有说是复位电路设计有问题,有说是芯片型号对应错误,有说全片擦除一次就好了。以上都试了,查了,都没解决我的问题。

还有说把verify关掉就好了,确实是关掉不报错了,但是程序还是没法正常运行

我使用st官方的软件读取了一下flash内部的数据,发现在报错的位置数据都变成0xff了,而且也不是以sector为单位的,多试了几次出现0xff的位置也不固定,但一段一段长度还挺固定的。

使用st官方软件直接烧写hex文件可以正常运行。但是不行啊,我需要用keil debug程序,还得继续查。

 

最后发现原因是packs需要更新,正点原子的芯片和我采购的芯片可能不是同一批次,所以会有些不同,而旧版的DFP库的烧写策略影响了正常使用。

但是很坑的是,我在keil内置的packs install里面看不到需要更新

误认为当前是最新版,其实还要去官网下载http://www.keil.com/dd2/Pack/#/eula-container

安装上就好啦~

完成!

最新回复(0)