完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在2410的NAND控制器里有硬件ECC模块,看2410的手册中是这么介绍的:
ECC generator block executes the followings: 1. When MCU writes data to NAND, the ECC generator block generates ECC code. 2. When MCU reads data from NAND, the ECC generator block generates ECC code and compares it with prewritten ECC code. 现在的问题是关于上面的第二点,按照手册的说明,我的理解是ECC每传输512字节后就校验出3字节的ECC数据,但在使用连续读取时(K9F1208U0B),Flash芯片会连续输出528字节(包括了16字节的OOB),此时是不是ECC数据又更新了(512字节结束后又重新计算ECC)?还有就是按照他的说明,compares it with prewritten ECC code,ECC模块根谁比得呢? |
|
相关推荐
2个回答
|
|
我自己做的试验,写512字节至K9F1208U0B,ECC由硬件生成,生成的code是ECC[0]0x99, ECC[1]0x99, ECC[2]0xA5, 但通过回读产生的是ECC[0]0xf, ECC[1]0xfc, ECC[2]0xf0.
通过printf输出数据没有问题,还是ECC模块问题。 |
|
|
|
第2点指是用硬件ECC部件,
我只用它来产生过ECC码,没用来较验过。 硬件ECC是这样产生的: 1. 启动ECC 2. 每传输一个字节,硬件会自动计算ECC 3. 传完数据后,你自己停止ECC,读出ECC值 这表明: ECC码可以是任意字节数据的ECC码,当ECC只有3字节时,通常是以512为单位来产生ECC码的 较验的过程如下: 一.写flash 1. 启动ECC 2. 写512字节数据,这时ECC自动产生 3. 停止ECC 4. 把3字节ECC写入OOB 二.读flash 1. 启动ECC 2. 读512字节数据,这时ECC自动产生 3. 停止ECC, 把3字节ECC记录下来 4. 读OOB中保存的3字节ECC 5. 两个ECC比较 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2160 浏览 6 评论
1968 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4523 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 11:18 , Processed in 0.763313 second(s), Total 72, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号