在將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引出接入高電平),然后上電(相當於復位了),最后點擊下載,當程序正在下載時就可以不接高電平了。
【來源】