在弄STM32的DFU升级应用程序,首先刷入官方的DFU的代码,略改了下按键的判断方式和跳转地址,改到偏移0X4000。使用JLINK烧写OK。
应用程序设置IROM1设置为:0x8004000,向量VECT_TAB_OFFSET改为0x4000后,初始化里也增加了
void NVIC_Configuration(void)
{
/* Set the Vector Table base location at 0x3000 */
NVIC_SetVectorTable(0x08000000, 0x04000);
}
。也使用JLINK烧写。
情况就是能进入DFU模式,DFUSE DEMO能识别,按住指定KEY。启动进入应用程序。一切正常。
问题是,如果应用程序不用JLINK烧写,而先用DFU FILE MANAGER转换成DFU格式,然后使用DFUSE DEMO烧写,能写入,但是校验失败,点击推出DFU模式,会卡在49%.网上看到几个人有这么个问题。都没看到解决办法。特来求助~
现在很迷茫,都通过JLINK写,分别写入APP和BOOTLOAD都可以正常。看来BOOTLOAD跳转那里是没问题。现在不知道问题是在USB通信那里有问题呢?还是别的地方~~ |