在将Discovery的工程移植到Mini-STM32F4x9BI开发板时,使用ULINK2下载程序可能会出现如下图所示的“Invalid ROM Table”这个错误。
可能原因是使用Mini-STM32F4x9BI开发板时(STM32F429BITx)外部晶振为25M,而使用Discovery的工程(STM32F429ZITx),其外部晶振为8M,晶振频率修改错误导致程序超频锁死了。因此除了将Option for Target选项里面的device修改成STM32F429BITx和做一些必要的其它修改,若程序第一次下载后导致芯片不能继续下载,该错误解决办法:
1.先断电,把Discovery工程将stm32f4xx.h和system_stm32f4xx.c的晶振频率进行了修改,如下所示:
stm32f4xx.h:
system_stm32f4xx.c:
2.把BOOT0置1,BOOT1置0,keil配置修改一下:进入Debug--Settings--Flash Download页面,把Program、Verify、Reset and Run前面的勾干掉,然后按复位键,再点击下载,下载程序进行芯片的擦除。恢复BOOT0接地。再把刚才修改过的Debug配置改回来,就可以正常使用了。目的就是一开始让芯片进入bootloader程序,此时就可以进行下载程序了。如果没有复位按键,那么就可以先将BOOT0接入高电平(默认BOOT0,BOOT1一般是通过电阻接低电平的,所以此时只需将BOOT0引出接入高电平),然后上电(相当于复位了),最后点击下载,当程序正在下载时就可以不接高电平了。
【来源】