你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

usb dfu升级,传输数据错误,校验失败!!!

[复制链接]
lihan519 提问时间:2018-5-6 18:24 /
最近在做usb dfu进行iap升级,固件下载完成后,校验不过,very失败,有人遇到过吗???

比如在0x08020240位置,提示:
          File byte is 0x5c
          Read byte is 0x00
我在线调试看,0x08020240位置确实和源文件数据对不上,但是后面位置上仍然有数据,而且目测了部分数据是对的,并且写入的空间大小和文件大小是一致的!!!
收藏 评论19 发布时间:2018-5-6 18:24

举报

19个回答
King生007 回答时间:2019-1-8 17:46:38
xuhx 发表于 2018-5-13 14:40
#define FLASH_DESC_STR     "@Internal Flash /0x08000000/06*01Ka,122*01Kg"//"@Internal Flash   /0x080 ...

这位大佬说的对,可以看下详细的解释
// Interface 0: "@Internal Flash /0x08000000/12*001Ka,500*001Kg",这就是这个接口描述符的所表达的信息,我们接下去就详细介绍接口描述符的数组内容的信息:
—— @:表示这是一个特殊的映射描述符(避免按照标准描述符解码)
—— /:表示不同区之间的分隔符
—— 最大8位的地址,以“0X”开头
—— 最大两位的扇区编号
—— *:扇区数量和扇区大小之间的分隔符
—— 最大3位的扇区大小(0~999)
—— 1位扇区大小单位:有效输入是:B(字节),K(千),M(兆)
—— 1位的扇区类型:
a(0x41):可读
b(0x42):可擦除
c(0x43):可读可擦写
d(0x44):可写
e(0x45):可读可写
f (0x46):可写可擦除
g(0x47):可读可写可擦除
如上面的” @Internal Flash /0x08000000/12*001Ka,500*001Kg"表示的意思是:存储器的名字为"Internal Flash",起始地址是0x08000000,12*1K的空间可读,500*1K的空间可读可写可擦除。顺便说明下我是用的芯片是STM32F103ZET6,flash空间是512K.
x5y4z3 回答时间:2018-5-16 10:35:02
lihan519 发表于 2018-5-7 15:57
可能性不大,而且中断优先级设置最高,也无别的中断了!

那我最后只能提出这些建议了,您找台别的电脑,新的 IDE 等工作环境,将下载工具也给换新,最后...再换另一批号的芯片吧!芯片来源最好是原厂较可靠些。不然真的会让人开始怀疑人生了!哈~

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

lihan519 回答时间:2018-5-6 18:49:26
x5y4z3 发表于 2018-5-6 18:46
这个用法貌似有在其他论坛上看到过,含源码等都免费开放下载,在 STM32F10x 上用得妥妥的。
...

我下的源码,在stm32f4上用的,就是遇到这个问题,也没头绪怎么解决!!!
也下载完成了,大小也对,写进去了,就是中间数据出了问题,校验不过!
x5y4z3 回答时间:2018-5-6 18:46:13
这个用法貌似有在其他论坛上看到过,含源码等都免费开放下载,在 STM32F10x 上用得妥妥的。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

七哥 回答时间:2018-5-6 19:50:32
先擦除一下看看,flash的写入前,必须先擦除,否则原来是0的位,不能够变为1。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-5-6 23:37:11
要详细理解,可参考资料【STM32 USB DFU固件升级必读】【STM32 USB DFU设备固件升级 工程讲解】

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

五哥1 回答时间:2018-5-7 01:36:25
flash的写入前,必须先擦除

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

Cortexxx 回答时间:2018-5-7 08:12:31
换个位置写一下呢? 写在page的起始位置

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

butterflyspring 回答时间:2018-5-7 10:48:16
没遇到这问题,你的DFU在那里下载的?试试楼上的参考资料?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

x5y4z3 回答时间:2018-5-7 10:48:34
lihan519 发表于 2018-5-6 18:49
我下的源码,在stm32f4上用的,就是遇到这个问题,也没头绪怎么解决!!!
也下载完成了,大小也对,写进 ...

有无可能是受到了其他中断进程的影响呢?
wofei1314 回答时间:2018-5-7 12:40:49
建议检查你的Flash读写函数~(含擦除,有的Flash的页大小不一样)

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

lihan519 回答时间:2018-5-7 15:56:24
wofei1314 发表于 2018-5-7 12:40
建议检查你的Flash读写函数~(含擦除,有的Flash的页大小不一样)

确认一下!
lihan519 回答时间:2018-5-7 15:57:10
x5y4z3 发表于 2018-5-7 10:48
有无可能是受到了其他中断进程的影响呢?

可能性不大,而且中断优先级设置最高,也无别的中断了!
lihan519 回答时间:2018-5-7 15:59:25
butterflyspring 发表于 2018-5-7 10:48
没遇到这问题,你的DFU在那里下载的?试试楼上的参考资料?

开源下载的,修改的,参考资料其实也看过!
lihan519 回答时间:2018-5-7 16:00:37
toofree 发表于 2018-5-6 19:50
先擦除一下看看,flash的写入前,必须先擦除,否则原来是0的位,不能够变为1。 ...

是的,是需要先擦除再写入,我确认一下flash接口!
七哥 回答时间:2018-5-7 17:40:59
lihan519 发表于 2018-5-7 16:00
是的,是需要先擦除再写入,我确认一下flash接口!

擦完后,你看一下是不是都变成FF了,如果不是全FF,那么还是没擦成功
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版