打印

请教对flash编程的校验算法

[复制链接]
2549|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
江陵龙少|  楼主 | 2010-9-13 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mcuisp| | 2010-9-13 23:55 | 只看该作者
最普通的做法就是读出,比对了。
专业编程器会采用更复杂的算法。

使用特权

评论回复
板凳
江陵龙少|  楼主 | 2010-9-14 13:26 | 只看该作者
谢谢2楼的回答,最普通的办法说道我的心坎里去了,现在就会这个了,但还是有一点不懂,
目前的这个flash,用它的专用软件校验的时候,是以1024字节(2个扇区)来读出数据,在所有数据读完后,它计算出了一个Checksum  有36位,即4字节半,如0099adec8,不知这个是怎么得出的,请mcuisp及诸位大侠指教!

使用特权

评论回复
地板
江陵龙少|  楼主 | 2010-9-16 18:14 | 只看该作者
顶一下,期待大家的指点

使用特权

评论回复
5
ar_dong| | 2010-9-16 20:17 | 只看该作者
是不是累加啊

使用特权

评论回复
6
mohanwei| | 2010-9-17 11:41 | 只看该作者
其实既然都读出来了,那么直接对比是最可靠也是最快的(Flash那点容量对于电脑或者编程器主机来说也就一瞬间搞定),代码也简洁,一个memcmp()搞定

使用特权

评论回复
7
江陵龙少|  楼主 | 2010-9-19 20:30 | 只看该作者
感谢大家的回答。终于找到了答案,5楼说对了,的确是累加和!
这是XILINX的一片PROM,校验时,读出全部可编程空间的数据,然后,按字节累加,校验和就得出来了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

279

帖子

2

粉丝