码迷,mamicode.com
首页 > 其他好文 > 详细

nand flash ECC实战

时间:2015-02-11 14:39:41      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

nand flash ECC实战

2015-1-31

实战平台:

硬件环境:S3C2440

软件环境:裸机



static u8 ecc_t(const unsigned char *pData)
{

	unsigned int Line,Column;
	unsigned char ecc[8],ecc_tmp,ecc_column,ecc_line[256];
	


	// _CP_ //_LP_

	ecc_column = 0;
	for(Line = 0 ;  Line < 256; Line ++ ){
		ecc_column ^= pData[Line];
		ecc_line[Line] = 0;
		for(Column = 0 ; Column < 8 ; Column ++ ){
			ecc_line[Line] ^= (pData[Line] & (1<<Column))>>Column;
		}
	}
	
	//CP0:0,2,4,6
	ecc[0]= ((ecc_column) & (1<<0)>>0) ^ 
			((ecc_column) & (1<<2)>>2) ^
			((ecc_column) & (1<<4)>>4) ^
			((ecc_column) & (1<<6)>>6);

	//CP1:1,3,5,7
	ecc[1] =((ecc_column) & (1<<1)>>1) ^ 
			((ecc_column) & (1<<3)>>3) ^
			((ecc_column) & (1<<5)>>5) ^
			((ecc_column) & (1<<7)>>7);	

	//CP2:0,1,4,5
	ecc[2]= ((ecc_column) & (1<<0)>>0) ^ 
			((ecc_column) & (1<<1)>>1) ^
			((ecc_column) & (1<<4)>>4) ^
			((ecc_column) & (1<<5)>>5);

	//CP3:2,3,6,7
	ecc[3] =((ecc_column) & (1<<2)>>2) ^ 
			((ecc_column) & (1<<3)>>3) ^
			((ecc_column) & (1<<6)>>6) ^
			((ecc_column) & (1<<7)>>7);	

	//CP4:0,1,2,3
	ecc[4]= ((ecc_column) & (1<<0)>>0) ^ 
			((ecc_column) & (1<<1)>>1) ^
			((ecc_column) & (1<<2)>>2) ^
			((ecc_column) & (1<<3)>>3);

	//CP5:4,5,6,7
	ecc[5] =((ecc_column) & (1<<4)>>4) ^ 
			((ecc_column) & (1<<5)>>5) ^
			((ecc_column) & (1<<6)>>6) ^
			((ecc_column) & (1<<7)>>7);		
}


nand flash ECC实战

标签:

原文地址:http://blog.csdn.net/lr2131/article/details/43344321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!