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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? k9f1g08.c

?? s3c6400(ARM11)的JTAG燒寫軟件
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):

    Delay(1);		// wait tWB(100ns)
    
    NF_WAITRB();	// Wait tR(max 12us)
    
    rdata=NF_RDRDATA();

    NF_nFCE_H();    

    if(rdata!=0xff)
    {
    	printf("[block %d:bad block(%x)]\n",block,rdata);
    	return 1;
    }
    else
    {
	printf(".");
    	return 0;
    }
}


static int NF_MarkBadBlock(U32 block)
{
    int i;
    U32 blockPage=(block<<6);
 
    seBuf[0]=0x44;
    seBuf[1]=0xff;    
    seBuf[2]=0xff;    
    seBuf[5]=0xff;   // Bad blcok mark=0
    
    NF_nFCE_L(); 
    //NF_CMD(0x50);   
    NF_CMD(0x80);   // Write 1st command
    
    NF_RADDR( (U8)((1024+0) & 0xff) );		    // The mark of bad block is 
    NF_RADDR( (U8)(((1024+0)>>8) & 0xff) );	    // marked 5th spare array 
    NF_RADDR( (U8)(blockPage & 0xff) );   // in the 1st page.
    NF_RADDR( (U8)((blockPage>>8) & 0xff) );  
    
    for(i=0;i<64;i++)
    {
	NF_WRRDATA(seBuf[i]);	// Write spare array
    }

   
	NF_CMD(0x10);   // Write 2nd command
    
    Delay(1);  //tWB = 100ns. 

    NF_WAITRB();      // Wait tPROG(200~500us)
  
    NF_CMD(0x70);
    
    Delay(1);	 //twhr=60ns//
    
    if (NF_RDRDATA()&0x1) // Spare arrray write error
    {	
    	NF_nFCE_H();
    	printf("[Program error is occurred but ignored]\n");
    }
    else 
    {
    	NF_nFCE_H();
    }

    printf("[block #%d is marked as a bad block]\n",block);
    return 1;
}


static int NF_ReadPage(U32 block,U32 page,U8 *buffer,U8 *spareBuf)
{
    int i;
    unsigned int blockPage;
    U8 *bufPt=buffer;
    
    page=page&0x1f;
    blockPage=(block<<6)+page;
        
    NF_nFCE_L();    
    NF_CMD(0x00);   // 1st Read command
    NF_RADDR(0);	    // Column A[7:0]= 0
    NF_RADDR(0);     // Column A[11:8] = 0
	NF_RADDR( (U8)(blockPage & 0xff) ); // A[19:12]
    NF_RADDR( (U8)((blockPage>>8)&0xff) );  // A[27:20]

	NF_CMD(0x30);   // 2nd Read command

    Delay(1);	    //wait tWB(100ns)/////??????
    
    NF_WAITRB();    // Wait tR(max 12us)
    
    for(i=0;i<(2048);i++)
    {
    	*bufPt++=NF_RDRDATA();	// Read one page
    }

    if(spareBuf!=NULL)
    {
	for(i=0;i<64;i++)
	    spareBuf[i]=NF_RDRDATA();	// Read spare array
    }

    NF_nFCE_H();    

    return 1;
}


static int NF_WritePage(U32 block,U32 page,U8 *buffer,U8 *spareBuf)
{
    int i;
    U32 blockPage=(block<<6)+page;
    U8 *bufPt=buffer;

    NF_nFCE_L(); 
    NF_CMD(0x0);
    NF_CMD(0x80);		    // Write 1st command
    NF_RADDR(0);			    // Column A[7:0]=0
	NF_RADDR(0);			    // Column A[11:8]=0
    NF_RADDR( (U8)(blockPage&0xff) );	    // A[19:12]
	NF_RADDR( (U8)((blockPage>>8)&0xff) );	// A[27:20]    //
    

    for(i=0;i<2048;i++)
    {
	NF_WRRDATA(*bufPt++);	// Write one page to NFM from buffer
    }  

    if(spareBuf!=NULL)
    {
	for(i=0;i<64;i++)
	{
	    NF_WRRDATA(spareBuf[i]);	// Write spare array(ECC and Mark)
	}
    }

    NF_CMD(0x10);   // Write 2nd command
    
    Delay(1);	    //tWB = 100ns. 

    NF_WAITRB();    //wait tPROG 200~500us;
 
    NF_CMD(0x70);   // Read status command   
    
    Delay(1);	    //twhr=60ns
    
    if (NF_RDRDATA()&0x1) // Page write error
    {	
    	NF_nFCE_H();
	printf("[PROGRAM_ERROR:block#=%d]\n",block);
	NF_MarkBadBlock(block);
	return 0;
    }
    else 
    {
    	NF_nFCE_H();
    #if (WRITEVERIFY==1)
	//return NF_VerifyPage(block,page,pPage);	
    #else
	return 1;
    #endif
    }
}



static U16 NF_CheckId(void)
{
    U16 id;
    
    NF_nFCE_L();
    
    NF_CMD(0x90);
    NF_RADDR(0x0);
    
    Delay(1);	//wait tWB(100ns)
    
    id=NF_RDRDATA()<<8;	// Maker code(K9f1g08V:0xec)
    id|=NF_RDRDATA();	// Devide code(K9f1g08V:0x76)
    
    NF_nFCE_H();
    
    return id;
}


static void NF_Reset(void)
{
    NF_nFCE_L();

    NF_CMD(0xFF);   //reset command

    Delay(1);	    //tWB = 100ns. 

    NF_WAITRB();    //wait 200~500us;
     
    NF_nFCE_H();    
}


static void NF_Init(void)
{
    NF_Reset();

    //NF_nFCE_L();
    NF_CMD(READ_1_1);        
    //NF_nFCE_H();
}


//*************************************************
//*************************************************
//**     JTAG dependent primitive functions      **
//************************************************* 
//*************************************************
void K9f1g08_JtagInit(void)
{
    JTAG_RunTestldleState();
    JTAG_ShiftIRState(EXTEST);

	//Added to SJF6400 
	S6400_SetPin(Xm0RDY1_CLE_CON,LOW);
    S6400_SetPin(Xm0RDY0_ALE_CON,LOW);
	S6400_SetPin(Xm0CSn2_CON,LOW); 
    S6400_SetPin(Xm0INTsm1_FREn_CON,LOW); 
    S6400_SetPin(Xm0INTsm0_FWEn_CON,LOW); 
	
	S6400_SetPin(Xm0RDY1_CLE_OUT,LOW); 
    S6400_SetPin(Xm0RDY0_ALE_OUT,LOW); 
}


static void NF_CMD(U8 cmd)
{   
    
    //Command Latch Cycle
	S6400_ContRDataBus(LOW); //RD[15:0]=output
    
	S6400_SetPin(Xm0CSn2_OUT,LOW); 
    S6400_SetPin(Xm0INTsm1_FREn_OUT,HIGH); 
    S6400_SetPin(Xm0INTsm0_FWEn_OUT,LOW); //Because tCLS=0, CLE & nFWE can be changed simultaneously.
    
	S6400_SetPin(Xm0RDY0_ALE_OUT,LOW); 
    S6400_SetPin(Xm0RDY1_CLE_OUT,HIGH); 
    
	S6400_SetRDataByte(cmd);
    JTAG_ShiftDRStateNoTdo(outCellValue); 

    S6400_SetPin(Xm0INTsm0_FWEn_OUT,HIGH);
    JTAG_ShiftDRStateNoTdo(outCellValue); 

    S6400_SetPin(Xm0RDY1_CLE_OUT,LOW);	
	S6400_ContRDataBus(HIGH); //RD[15:0]=input
    JTAG_ShiftDRStateNoTdo(outCellValue); 
}


static void NF_RADDR(U8 raddr)
{
    //rNFRADDR=raddr;
	S6400_ContRDataBus(LOW); //RD[15:0]=output
    S6400_SetPin(Xm0CSn2_OUT,LOW); 
    S6400_SetPin(Xm0INTsm1_FREn_OUT,HIGH); 
    S6400_SetPin(Xm0INTsm0_FWEn_OUT,LOW);
    S6400_SetPin(Xm0RDY0_ALE_OUT,HIGH);
    S6400_SetPin(Xm0RDY1_CLE_OUT,LOW);
    S6400_SetRDataByte(raddr);
    JTAG_ShiftDRStateNoTdo(outCellValue); 
    
    S6400_SetPin(Xm0INTsm0_FWEn_OUT,HIGH);
    JTAG_ShiftDRStateNoTdo(outCellValue); 
    
#if 1
    S6400_SetPin(Xm0RDY0_ALE_OUT,LOW);	
	S6400_ContRDataBus(HIGH); //RD[15:0]=input
    JTAG_ShiftDRStateNoTdo(outCellValue); 
#endif
}


static void NF_nFCE_L(void)
{
    S6400_SetPin(Xm0CSn2_CON,LOW);
	S6400_SetPin(Xm0CSn2_OUT,LOW); 
    JTAG_ShiftDRStateNoTdo(outCellValue); 
}


static void NF_nFCE_H(void)
{
    S6400_SetPin(Xm0CSn2_OUT,HIGH); 
    JTAG_ShiftDRStateNoTdo(outCellValue); 
}


static U8 NF_RDRDATA(void)
{
	S6400_ContRDataBus(HIGH); //RD[15:0]=input
    S6400_SetPin(Xm0INTsm1_FREn_OUT,LOW);
    JTAG_ShiftDRStateNoTdo(outCellValue); 
    
    S6400_SetPin(Xm0INTsm1_FREn_OUT,HIGH);
    JTAG_ShiftDRState(outCellValue,inCellValue); 
    return S6400_GetRDataByte();
}

static void NF_WRRDATA(U8 rdata)
{   
	S6400_ContRDataBus(LOW); //RD[15:0]=output
    S6400_SetPin(Xm0INTsm0_FWEn_OUT,LOW);
    S6400_SetRDataByte(rdata);
    JTAG_ShiftDRStateNoTdo(outCellValue); 
    
    S6400_SetPin(Xm0INTsm0_FWEn_OUT,HIGH);
    JTAG_ShiftDRStateNoTdo(outCellValue); 
}


static void NF_WAITRB(void)
{
	while(1)
    {
		JTAG_ShiftDRState(outCellValue,inCellValue); 
	
		if( S6400_GetPin(Xm0RPn_RnB_OUT)==HIGH)
		break;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩电影| 久久精品国产**网站演员| 日韩小视频在线观看专区| 国产高清不卡一区| 无码av免费一区二区三区试看 | 精品国产三级电影在线观看| 91老师国产黑色丝袜在线| 狠狠色丁香婷综合久久| 亚洲国产精品一区二区久久| 国产精品丝袜在线| 日韩视频不卡中文| 欧美性高清videossexo| av一区二区不卡| 国产精品一区二区久久不卡| 日韩和欧美一区二区| 亚洲美女淫视频| 国产欧美日本一区二区三区| 欧美一区二区三区播放老司机| 93久久精品日日躁夜夜躁欧美| 国产乱理伦片在线观看夜一区 | 成人18精品视频| 国内精品国产成人国产三级粉色| 性做久久久久久免费观看欧美| 亚洲日本丝袜连裤袜办公室| 国产日韩欧美一区二区三区综合| 精品国产一区二区精华| 欧美一级夜夜爽| 欧美丰满美乳xxx高潮www| 色综合久久88色综合天天| 97精品国产露脸对白| 成人激情文学综合网| 成人免费福利片| 99精品一区二区三区| 91在线你懂得| 色综合久久九月婷婷色综合| 不卡的av网站| 色一情一伦一子一伦一区| 91色在线porny| 色噜噜狠狠色综合中国| 一本大道久久精品懂色aⅴ| 91同城在线观看| 色婷婷国产精品| 欧美性淫爽ww久久久久无| 欧美亚洲高清一区| 欧美久久高跟鞋激| 日韩欧美在线不卡| 久久影视一区二区| 国产精品私房写真福利视频| 国产精品三级视频| 一区二区在线免费观看| 一区二区理论电影在线观看| 午夜日韩在线观看| 蜜桃av噜噜一区二区三区小说| 蜜臀av性久久久久av蜜臀妖精| 久久av中文字幕片| 成人一级片网址| 欧美主播一区二区三区美女| 69av一区二区三区| 亚洲精品一区二区三区精华液 | 97se亚洲国产综合在线| 91麻豆免费在线观看| 欧美午夜精品久久久| 555夜色666亚洲国产免| 久久夜色精品国产噜噜av| 亚洲欧洲www| 午夜av一区二区| 国产成人在线网站| 91黄色激情网站| 欧美mv日韩mv国产网站app| 国产日产欧美一区| 亚洲第一福利视频在线| 久久精品国内一区二区三区 | 欧美精品123区| 亚洲精品一区在线观看| 亚洲欧洲国产日韩| 免费成人在线影院| 91女神在线视频| 欧美日韩卡一卡二| 国产情人综合久久777777| 亚洲综合小说图片| 国产伦精品一区二区三区免费迷 | 国产精品1024| 欧美自拍偷拍一区| 国产色一区二区| 天天影视色香欲综合网老头| 国产精品一线二线三线精华| 欧美天堂亚洲电影院在线播放| 欧美成人精品1314www| 亚洲欧美另类久久久精品2019| 丝袜美腿亚洲一区二区图片| 国产不卡视频一区| 欧美一级日韩一级| 亚洲婷婷国产精品电影人久久| 麻豆精品久久久| 欧美性生活一区| 国产精品福利影院| 男女男精品视频网| 欧美在线一二三四区| 国产午夜精品在线观看| 热久久国产精品| 色综合久久精品| 国产精品女上位| 久热成人在线视频| 69堂亚洲精品首页| 一区二区三区**美女毛片| 国产电影精品久久禁18| 日韩一区二区三区在线观看| 樱桃视频在线观看一区| 成人毛片老司机大片| 日韩欧美一级特黄在线播放| 亚洲综合成人网| eeuss鲁片一区二区三区在线观看| 日韩欧美精品在线视频| 天天影视网天天综合色在线播放| 91网上在线视频| 国产精品久久久99| 粉嫩aⅴ一区二区三区四区| 欧美不卡在线视频| 日韩精品电影一区亚洲| 欧美午夜精品免费| 亚洲综合偷拍欧美一区色| 91在线码无精品| 最新日韩av在线| 成人黄色在线看| 国产精品成人午夜| 99久久婷婷国产精品综合| 国产欧美日韩视频一区二区| 国产精品中文字幕欧美| 国产亚洲一区二区三区在线观看| 乱中年女人伦av一区二区| 欧美一级搡bbbb搡bbbb| 免费观看一级欧美片| 欧美一区二区三区视频免费播放| 天天色图综合网| 91麻豆精品国产综合久久久久久| 午夜影院久久久| 91精品欧美综合在线观看最新 | 国产精品综合网| 国产欧美一区视频| 黄网站免费久久| 国产精品免费视频观看| 美腿丝袜在线亚洲一区| 欧美写真视频网站| 视频一区中文字幕| 日韩三级av在线播放| 国内精品写真在线观看| 久久久精品免费观看| 成人av影视在线观看| 一区二区三区中文字幕在线观看| 欧美影片第一页| 日本亚洲视频在线| 日韩欧美高清在线| 国产成人免费视频网站| 亚洲摸摸操操av| 欧美日韩成人综合天天影院| 玖玖九九国产精品| 国产精品理论片在线观看| 色视频成人在线观看免| 日韩福利电影在线| 久久久精品免费观看| 91视频在线观看| 午夜精品福利在线| 久久久久国产一区二区三区四区| av午夜精品一区二区三区| 亚洲国产精品影院| www久久精品| 色婷婷激情综合| 久久精品免费观看| 亚洲视频一区二区免费在线观看| 欧美猛男超大videosgay| 蜜桃精品视频在线观看| 国产精品三级av在线播放| 欧美视频自拍偷拍| 国产精品一区二区三区99| 一区二区三区日韩| 久久久久久**毛片大全| 欧美主播一区二区三区美女| 激情六月婷婷综合| 亚洲精品久久久久久国产精华液| 日韩精品一区二区三区三区免费| 成人黄色在线网站| 久久国产三级精品| 一区二区在线免费| 久久久精品黄色| 欧美另类变人与禽xxxxx| 成人手机在线视频| 青青草一区二区三区| 日韩毛片一二三区| www成人在线观看| 欧美日韩你懂得| 99精品视频中文字幕| 免费成人小视频| 亚洲精品网站在线观看| 久久网站最新地址| 8v天堂国产在线一区二区| 99久久精品国产一区| 国产综合久久久久久鬼色| 五月婷婷欧美视频| 一区二区三区国产精品| 中文字幕巨乱亚洲|