使用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
安装上就好啦~
完成!