[STM32F1] STM32 DFU升级失败求助

[复制链接]
3170|3
 楼主| lh2011 发表于 2015-5-22 00:42 | 显示全部楼层 |阅读模式

在弄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通信那里有问题呢?还是别的地方~~
 楼主| lh2011 发表于 2015-5-22 01:00 | 显示全部楼层
runningwzf 发表于 2015-5-22 08:27 | 显示全部楼层
我没用过DFU,但是我的产品全部用了IAP,建议楼主直接在APP的main函数里面:
        __set_PRIMASK(1);
        NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);
runningwzf 发表于 2015-5-22 08:27 | 显示全部楼层
我们以前出现的问题是:
如果用把NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);放在一个函数里面就会出问题,后来直接放在main的最前面,问题搞定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部