关于6410中4bit s3c_nand_read_page_4bit函数疑问

本文探讨了6410芯片在使用4bit s3c_nand_read_page_4bit函数进行NAND读取时的一个不解之处,即在读取数据后为何会执行write_buf操作。该操作在s3c2410和6410的NAND ECC处理中显得与众不同,引发思考。
摘要由CSDN通过智能技术生成

对于s3c2410/6410都是大家所熟习的开发板和学习板,最近看nand的ecc,看了6410的硬件ecc,其它没有什么问题,我之前看的2410的没有多大的区别,可是对于读,

就是一直不明白为什么在读完data后,有一个write_buf的操作,如下:


static int s3c_nand_read_page_4bit(struct mtd_info *mtd, struct nand_chip *chip,
		uint8_t *buf, int page)
{
	int i, stat, eccsize = chip->ecc.size;//这个eccsize就是每一组ecc所校验的data的长度。
	int eccbytes = chip->ecc.bytes;
	int eccsteps = chip->ecc.steps;
	int col = 0;
	uint8_t *p = buf;	
	uint32_t *mecc_pos = chip->ecc.layout->eccpos;

	/* Step1: read whole oob */
	col = mtd->writesize;
	chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
	chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);//读取所的oob区中的数据。这其中就包含data区的和spare区的数据

	col = 0;
	for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
		chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1);
		chip->ecc.hwctl(mtd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值