亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ecc sample source code for 512 byte.txt

?? ECC Sample Source Code for 512 Byte
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
#if (XMODE == 8)
	tmp = parityColTot & 0xF0F0F0F0 ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp << 2) ^ tmp;
	ecc |= ((tmp << 1) ^ tmp) & 0x800000;	// p4
#else
	tmp = parityColTot & 0xF0F0F0F0 ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp >> 2) ^ tmp;
	ecc |= ((tmp << 1) ^ tmp) & 0x200000;	// p4
#endif
#if (XMODE == 8)
	tmp = parityColTot & 0xCCCCCCCC ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp << 4) ^ tmp;
	tmp = (tmp >> 2);
	ecc |= ((tmp << 1) ^ tmp) & 0x200000;	// p2
#else
	tmp = parityColTot & 0xCCCCCCCC ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp >> 4) ^ tmp;
	ecc |= ((tmp << 1) ^ tmp) & 0x80000;	// p2
#endif
#if (XMODE == 8)
	tmp = parityColTot & 0xAAAAAAAA ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp >> 4) ^ tmp;
	tmp = (tmp << 2) ^ tmp;
	ecc |= (tmp & 0x80000);	// p1
#else
	tmp = parityColTot & 0xAAAAAAAA ;
	tmp = (tmp << 16) ^ tmp;
	tmp = (tmp >> 8) ^ tmp;
	tmp = (tmp >> 4) ^ tmp;
	tmp = (tmp >> 2) ^ tmp;
	ecc |= (tmp & 0x20000);	// p1
#endif
#if (XMODE == 8)
	ecc |= (uiparity & 0x01) <<11;	
	ecc |= (uiparity & 0x02) <<12;	
	ecc |= (uiparity & 0x04) <<13;
	ecc |= (uiparity & 0x08) <<14;
#else
	ecc |= (uiparity & 0x01) <<9;
	ecc |= (uiparity & 0x02) <<10;
	ecc |= (uiparity & 0x04) <<11;
	ecc |= (uiparity & 0x08) <<12;
#endif

	if (Xorbit)
	{
		ecc |= (ecc ^ 0x00AAAAAA)>>1;
	}
	else
	{
		ecc |= (ecc >> 1);
	}
#if (XMODE == 8)
	ecc = ~ecc;
	*(ecc_buf + 2) = (uint8_t) (ecc >> 16);
	*(ecc_buf + 1) = (uint8_t) (ecc >> 8);
	*(ecc_buf + 0) = (uint8_t) (ecc);
#else	// X16
	ecc = ( ~ecc ) | 0xFF000000;
	*(ecc_buf + 1) = (uint16_t) (ecc >> 16);
	*(ecc_buf + 0) = (uint16_t) (ecc);
#endif
}

/*****************************************************************************/
/*                                                                           */
/* NAME                                                                      */
/*		compare_ecc_512                                                      */
/* DESCRIPTION                                                               */
/*		This function compares two ECCs and indicates if there is an error.  */
/* PARAMETERS                                                                */
/*		ecc_data1		one ECC to be compared                               */
/*		ecc_data2		the other ECC to be compared                         */
/*		page_data		content of data page                                 */
/*		offset			where the error occurred                             */
/*		corrected		correct data                                         */
/* RETURN VALUES                                                             */
/*		Upon successful completion, compare_ecc returns SSR_SUCCESS.         */
/*      Otherwise, corresponding error code is returned.                     */
/*                                                                           */
/*****************************************************************************/
#if (XMODE == 8)
eccdiff_t compare_ecc_512(uint8_t *iEccdata1, uint8_t *iEccdata2, 
          uint8_t *pPagedata, int32_t pOffset, uint8_t pCorrected)
#else	// X16
eccdiff_t compare_ecc_512(uint16_t *iEccdata1, uint16_t *iEccdata2, 
          uint16_t *pPagedata, int32_t pOffset, uint16_t pCorrected)
#endif
{

	uint32_t  iCompecc = 0, iEccsum = 0;
    uint32_t  iFindbyte   = 0;
    uint32_t  iIndex;
    uint32_t  nT1 = 0, nT2 =0;

#if (XMODE == 8)
	uint8_t   iNewvalue;
    uint8_t   iFindbit    = 0;

    uint8_t   *pEcc1 = (uint8_t *)iEccdata1;
    uint8_t   *pEcc2 = (uint8_t *)iEccdata2;

	for ( iIndex = 0; iIndex <2; iIndex++)
    {
        nT1 ^= (((*pEcc1) >> iIndex) & 0x01);
        nT2 ^= (((*pEcc2) >> iIndex) & 0x01);
    }

    for (iIndex = 0; iIndex < 3; iIndex++)
        iCompecc |= ((~(*pEcc1++) ^ ~(*pEcc2++)) << iIndex * 8);
    
    for(iIndex = 0; iIndex < 24; iIndex++) {
        iEccsum += ((iCompecc >> iIndex) & 0x01);
    }

#else	// X16
	uint16_t   iNewvalue;
    uint16_t   iFindbit    = 0;
	
	uint16_t   *pEcc1 = (uint16_t *)iEccdata1;
    uint16_t   *pEcc2 = (uint16_t *)iEccdata2;

	for ( iIndex = 0; iIndex <2; iIndex++)
    {
        nT1 ^= (((*pEcc1) >> iIndex) & 0x01);
        nT2 ^= (((*pEcc2) >> iIndex) & 0x01);
    }

	for (iIndex = 0; iIndex < 2; iIndex++)		// 2 word of ECC data
		iCompecc |= (((~*pEcc1++) ^ (~*pEcc2++)) << iIndex * 16);
	
	for(iIndex = 0; iIndex < 24; iIndex++) {
		iEccsum += ((iCompecc >> iIndex) & 0x01);
	}
#endif
    
    switch (iEccsum) {
    case 0 :
		printf("RESULT : no error\n");
        return ECC_NO_ERROR;

	case 1 :
		printf("RESULT : ECC code 1 bit fail\n");
        return ECC_ECC_ERROR;

    case 12 :
        if (nT1 != nT2)
        {
#if (XMODE == 8)
            iFindbyte = ((iCompecc >> 17 & 1) << 8) + ((iCompecc >> 15 & 1) << 7) + ((iCompecc >> 13 & 1) << 6)
                      + ((iCompecc >> 11 & 1) << 5) + ((iCompecc >> 9 & 1) << 4) + ((iCompecc >> 7 & 1) << 3)
                      + ((iCompecc >> 5 & 1) << 2) + ((iCompecc >> 3 & 1) << 1) + (iCompecc >> 1 & 1);
            iFindbit =  (uint8_t)(((iCompecc >> 23 & 1) << 2) + ((iCompecc >> 21 & 1) << 1) + (iCompecc >> 19 & 1));
            iNewvalue = (uint8_t)(pPagedata[iFindbyte] ^ (1 << iFindbit));
#else // CASE_X16
            iFindbyte = ((iCompecc >> 15 & 1) << 7) + ((iCompecc >> 13 & 1) << 6)
                      + ((iCompecc >> 11 & 1) << 5) + ((iCompecc >> 9 & 1) << 4) + ((iCompecc >> 7 & 1) << 3)
                      + ((iCompecc >> 5 & 1) << 2) + ((iCompecc >> 3 & 1) << 1) + (iCompecc >> 1 & 1) ;
            iFindbit =  (uint16_t)(((iCompecc >> 23 & 1) << 3) + ((iCompecc >> 21 & 1) << 2) + ((iCompecc >> 19 & 1) << 1) 
                      + (iCompecc >> 17 & 1) );
			iNewvalue = (uint16_t)(pPagedata[iFindbyte] ^ (1 << iFindbit));
#endif
			printf("iCompecc = %d\n",iCompecc);
            printf("RESULT : one bit error\r\n");
            printf("byte = %d, bit = %d\r\n", iFindbyte, iFindbit);
            printf("corrupted = %x, corrected = %x\r\n", pPagedata[iFindbyte], iNewvalue);

            if (pOffset != NULL) {
                pOffset = iFindbyte;
            }
            if (pCorrected != NULL) {
                pCorrected = iNewvalue;
            }
            
            return ECC_CORRECTABLE_ERROR;
        }
        else
            return ECC_UNCORRECTABLE_ERROR;

    default :
		printf("RESULT : unrecoverable error\n");
        return ECC_UNCORRECTABLE_ERROR;
    }   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu久久天堂性欧美| 天堂一区二区在线免费观看| 日韩精品福利网| 色婷婷久久久综合中文字幕| 亚洲女女做受ⅹxx高潮| 国产成人自拍在线| 国产精品麻豆欧美日韩ww| 极品少妇xxxx精品少妇| 欧美成人三级在线| 粉嫩嫩av羞羞动漫久久久| 精品1区2区在线观看| 久久se精品一区精品二区| 欧美一级在线视频| 蜜桃视频免费观看一区| 日韩一区二区精品在线观看| 国产一区二区成人久久免费影院| 日韩欧美一区二区视频| 国产a久久麻豆| 国产精品乱码久久久久久| 粗大黑人巨茎大战欧美成人| 亚洲自拍与偷拍| 欧美综合欧美视频| 蜜桃91丨九色丨蝌蚪91桃色| 日韩欧美国产高清| 久久97超碰国产精品超碰| 国产精品日产欧美久久久久| 成人动漫一区二区在线| 午夜免费欧美电影| 日韩欧美黄色影院| 成人av集中营| 亚洲一区中文日韩| 91精品国产综合久久福利| 成人美女视频在线观看18| 国产精品福利一区二区| 欧美人牲a欧美精品| 久久美女艺术照精彩视频福利播放 | 日本一区二区综合亚洲| 国产成人精品在线看| 亚洲午夜在线观看视频在线| 欧美一区二区日韩| 国产不卡视频一区二区三区| 亚洲国产sm捆绑调教视频 | 欧美电影免费观看完整版| 成人午夜激情在线| 一区二区不卡在线视频 午夜欧美不卡在| 欧美肥妇毛茸茸| 高清不卡一区二区在线| 蜜桃精品在线观看| 国产风韵犹存在线视精品| 91网站在线观看视频| 欧美成人a在线| 亚洲美女精品一区| 91在线观看地址| 国产亚洲短视频| 三级欧美在线一区| 色欧美片视频在线观看在线视频| 精品少妇一区二区三区在线视频 | 99国产精品久久久久久久久久| 91豆麻精品91久久久久久| 国产午夜精品一区二区| 另类小说色综合网站| 91麻豆精品国产91久久久更新时间| 国产精品对白交换视频| 粉嫩蜜臀av国产精品网站| 91精品国产91久久久久久最新毛片| 国产一区二区美女诱惑| 美腿丝袜亚洲综合| 亚洲国产精品人人做人人爽| 欧美一区二区视频在线观看2022 | 大尺度一区二区| 日韩欧美国产三级| 欧美久久久久免费| 成年人网站91| 94色蜜桃网一区二区三区| 欧美揉bbbbb揉bbbbb| 伊人开心综合网| 精品sm捆绑视频| 奇米色一区二区三区四区| 成人激情校园春色| 亚洲啪啪综合av一区二区三区| 日韩午夜av电影| 欧美日韩在线播放三区四区| 丁香另类激情小说| 国产在线播放一区三区四| 亚洲一区在线观看网站| 国产片一区二区三区| 国产亚洲女人久久久久毛片| 在线成人高清不卡| 99麻豆久久久国产精品免费优播| 成人激情综合网站| 丰满岳乱妇一区二区三区| 国产成人在线免费观看| 另类小说欧美激情| 一区二区三区不卡视频| 亚洲影院久久精品| 国产精品久久久久久福利一牛影视| 中文字幕不卡在线播放| 久久精品日韩一区二区三区| 久久综合九色综合久久久精品综合| 欧美一区二区三区小说| 欧美成人三级在线| 精品粉嫩超白一线天av| 欧美变态tickle挠乳网站| 久久久不卡网国产精品一区| 欧美va亚洲va香蕉在线| 欧美激情一区二区三区在线| 国产拍揄自揄精品视频麻豆| 久久精品日产第一区二区三区高清版| 中文欧美字幕免费| 国产精品嫩草影院com| 亚洲一区二区在线视频| 一区二区久久久久| 亚洲美女一区二区三区| 日本一区二区综合亚洲| 91久久久免费一区二区| 欧美日韩国产精选| 日韩欧美一级二级三级久久久| 日韩欧美成人激情| 亚洲视频综合在线| 亚洲高清不卡在线| 国产一区二区看久久| 成人夜色视频网站在线观看| 国内不卡的二区三区中文字幕 | eeuss鲁片一区二区三区| 99热这里都是精品| 在线观看免费视频综合| 26uuu亚洲婷婷狠狠天堂| 国产丝袜欧美中文另类| 亚洲自拍偷拍麻豆| 轻轻草成人在线| 久久99日本精品| 波多野结衣视频一区| 在线免费观看日韩欧美| 2023国产一二三区日本精品2022| 国产视频一区二区在线| 亚洲成人www| 狠狠色2019综合网| 国产成人在线观看| 91黄视频在线观看| 日韩免费观看高清完整版| 国产亚洲一区二区在线观看| 亚洲精品久久7777| 奇米色777欧美一区二区| 国产自产2019最新不卡| 色狠狠av一区二区三区| 精品嫩草影院久久| 一区二区三区四区亚洲| 精东粉嫩av免费一区二区三区| av在线不卡观看免费观看| 欧美日韩一区二区三区四区| 中文字幕欧美日韩一区| 爽好多水快深点欧美视频| 9人人澡人人爽人人精品| 日韩精品影音先锋| 中文字幕综合网| 风间由美一区二区三区在线观看| 欧美剧在线免费观看网站| 亚洲精品自拍动漫在线| 精品一区二区三区的国产在线播放| 欧美日高清视频| 亚洲视频在线观看一区| 日韩精品免费专区| 欧美日韩精品一区二区在线播放| 亚洲国产精品精华液ab| 麻豆91精品视频| 欧美日韩高清一区二区不卡 | 亚洲一区二区三区四区在线观看| 国产精品123区| 欧美色综合久久| 亚洲色图欧洲色图婷婷| 国产电影一区二区三区| 精品免费视频.| 青青草伊人久久| 97久久精品人人澡人人爽| 色视频成人在线观看免| 久久这里只精品最新地址| 国模一区二区三区白浆| 制服丝袜亚洲色图| 另类专区欧美蜜桃臀第一页| 欧美亚洲国产一区二区三区va | 久久精品一二三| 乱中年女人伦av一区二区| 欧美日韩免费电影| 日本午夜一本久久久综合| 欧美日免费三级在线| 天天综合色天天综合| 欧美日韩午夜在线| 天天射综合影视| 欧美一卡2卡3卡4卡| 亚洲成人av在线电影| 欧美日韩一卡二卡三卡 | 欧美精品一区二区三区蜜臀| 国产美女娇喘av呻吟久久| 精品久久久网站| 日韩电影在线观看电影| 精品美女一区二区| 久久国产精品区| 国产精品第一页第二页第三页| 成人午夜激情片| 亚洲444eee在线观看|