加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

nand flash ECC实战

发布时间:2020-12-15 17:26:09 所属栏目:百科 来源:网络整理
导读: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 ;

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,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,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,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,7
	ecc[5] =((ecc_column) & (1<<4)>>4) ^ 
			((ecc_column) & (1<<5)>>5) ^
			((ecc_column) & (1<<6)>>6) ^
			((ecc_column) & (1<<7)>>7);		
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读