打印
[STM32F1]

STM32 DFU升级失败求助

[复制链接]
2831|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

粉丝