使用DFU升级只有烧完bootloader之后的第一次升级能成功,第二次就不行了

2019-07-20 19:12发布

本帖最后由 特朗姆斯 于 2016-6-5 17:34 编辑

用的是原子的stm32f407探索板,bootloader程序参考的官方例程,把里面把按键和闪烁的灯改成原子探索板上的KEY1和DS0。

APP程序的入口地址是0x0800C000,偏移量已经在main函数的起始位置设置好,MDK里面IROM1的起始地址也改成了APP程序的入口地址。

目前出现的问题如下图所示,校验无法通过,如果不勾选校验的话虽然提示Upgrade成功,但是APP程序也是无法运行。

1111.jpg


我在烧写bootloader的时候是擦除full chip的,所以首次使用Dfuse Demo升级的时候能成功,但是第二次升级就会提示校验虽然成功,但是data matching failed。这时候点Leave DFU Mode是可以成功的,但是APP程序无法运行,复位之后也不行。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
shanwu
1楼-- · 2019-07-21 10:51
楼主后来是如何解决的呢  我现在也遇到了同样的问题
特朗姆斯
2楼-- · 2019-07-21 12:44
shanwu 发表于 2016-10-28 22:28
楼主后来是如何解决的呢  我现在也遇到了同样的问题

后来就没有采用这个方案,如果你找到解决方法的话希望能在这里分享一下。
shanwu
3楼-- · 2019-07-21 16:59
特朗姆斯 发表于 2016-10-31 11:44
后来就没有采用这个方案,如果你找到解决方法的话希望能在这里分享一下。

那你们后来用什么方案了呢?我现在改用串口烧录了  参考原子的串口IAP但是程序不能超过120K 我的硬件是stm32F405vgt6  还要改发送协议 把bin文件分段发送  目前还没有成功  等调好了再分享
特朗姆斯
4楼-- · 2019-07-21 20:43
 精彩回答 2  元偷偷看……
shanwu
5楼-- · 2019-07-21 23:44
特朗姆斯 发表于 2016-10-31 13:19
本来想用DFU做升级可以速度快一点,现在还是用回串口了,为什么程序不能超过120K?

参考的代码 是一次串口读取程序 存下来再写入flash的,存的那部分在ram中 空间不够。你串口升级的程序大吗?
特朗姆斯
6楼-- · 2019-07-22 01:18
 精彩回答 2  元偷偷看……

一周热门 更多>