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

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

?? patch-u-boot-at91rm9200-dataflash.dat

?? 使用DataFlash自動引導U-boot的程序源碼
?? DAT
?? 第 1 頁 / 共 3 頁
字號:
 	pDataFlash->pDataFlashDesc->tx_data_pt = dataBuffer; 	pDataFlash->pDataFlashDesc->tx_data_size = sizeToRead; +	status = AT91F_DataFlashSendCommand (pDataFlash, DB_CONTINUOUS_ARRAY_READ, 8, src); 	/* Send the command to the dataflash */-	return(AT91F_DataFlashSendCommand (pDataFlash, DB_CONTINUOUS_ARRAY_READ, 8, src));+	return(status); }  @@ -259,13 +272,17 @@ AT91S_DataFlashStatus AT91F_DataFlashPag 	unsigned int dest, 	unsigned int SizeToWrite) {+	int cmdsize; 	pDataFlash->pDataFlashDesc->tx_data_pt = src ; 	pDataFlash->pDataFlashDesc->tx_data_size = SizeToWrite ; 	pDataFlash->pDataFlashDesc->rx_data_pt = src; 	pDataFlash->pDataFlashDesc->rx_data_size = SizeToWrite; +	cmdsize = 4; 	/* Send the command to the dataflash */-	return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_PGM_BUF1, 4, dest));+	if (pDataFlash->pDevice->pages_number >= 16384)+		cmdsize = 5;+	return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_PGM_BUF1, cmdsize, dest)); }  @@ -282,14 +299,17 @@ AT91S_DataFlashStatus AT91F_MainMemoryTo 	unsigned char BufferCommand, 	unsigned int page) {+	int cmdsize; 	/* Test if the buffer command is legal */ 	if ((BufferCommand != DB_PAGE_2_BUF1_TRF) && (BufferCommand != DB_PAGE_2_BUF2_TRF)) 		return DATAFLASH_BAD_COMMAND;  	/* no data to transmit or receive */ 	pDataFlash->pDataFlashDesc->tx_data_size = 0;--	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, 4, page*pDataFlash->pDevice->pages_size));+	cmdsize = 4;+	if (pDataFlash->pDevice->pages_number >= 16384)+		cmdsize = 5;+	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize, page*pDataFlash->pDevice->pages_size)); }  @@ -310,6 +330,7 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 	unsigned int bufferAddress, 	int SizeToWrite ) {+	int cmdsize; 	/* Test if the buffer command is legal */ 	if ((BufferCommand != DB_BUF1_WRITE) && (BufferCommand != DB_BUF2_WRITE)) 		return DATAFLASH_BAD_COMMAND;@@ -324,14 +345,25 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 	/* Send first Write Command */ 	pDataFlash->pDataFlashDesc->command[0] = BufferCommand; 	pDataFlash->pDataFlashDesc->command[1] = 0;-	pDataFlash->pDataFlashDesc->command[2] = (unsigned char)(((unsigned int)(bufferAddress &  pDataFlash->pDevice->byte_mask)) >> 8) ;-	pDataFlash->pDataFlashDesc->command[3] = (unsigned char)((unsigned int)bufferAddress  & 0x00FF) ;-+	if (pDataFlash->pDevice->pages_number >= 16384)+	{+	    	pDataFlash->pDataFlashDesc->command[2] = 0;+	    	pDataFlash->pDataFlashDesc->command[3] = (unsigned char)(((unsigned int)(bufferAddress &  pDataFlash->pDevice->byte_mask)) >> 8) ;+	    	pDataFlash->pDataFlashDesc->command[4] = (unsigned char)((unsigned int)bufferAddress  & 0x00FF) ;+		cmdsize = 5;+	}+	else+	{+	    	pDataFlash->pDataFlashDesc->command[2] = (unsigned char)(((unsigned int)(bufferAddress &  pDataFlash->pDevice->byte_mask)) >> 8) ;+	    	pDataFlash->pDataFlashDesc->command[3] = (unsigned char)((unsigned int)bufferAddress  & 0x00FF) ;+	    	pDataFlash->pDataFlashDesc->command[4] = 0;+		cmdsize = 4;+	}  	pDataFlash->pDataFlashDesc->tx_cmd_pt 	 = pDataFlash->pDataFlashDesc->command ;-	pDataFlash->pDataFlashDesc->tx_cmd_size = 4 ;+	pDataFlash->pDataFlashDesc->tx_cmd_size = cmdsize ; 	pDataFlash->pDataFlashDesc->rx_cmd_pt 	 = pDataFlash->pDataFlashDesc->command ;-	pDataFlash->pDataFlashDesc->rx_cmd_size = 4 ;+	pDataFlash->pDataFlashDesc->rx_cmd_size = cmdsize ;  	pDataFlash->pDataFlashDesc->rx_data_pt 	= dataBuffer ; 	pDataFlash->pDataFlashDesc->tx_data_pt 	= dataBuffer ;@@ -341,6 +373,51 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 	return AT91F_SpiWrite(pDataFlash->pDataFlashDesc); } +/*------------------------------------------------------------------------------*/+/* Function Name       : AT91F_PageErase                                        */             +/* Object              : Erase a page 						*/+/* Input Parameters    : DataFlash Service					*/+/*                     : Page concerned						*/+/*                     : 							*/+/* Return value		: State of the dataflash				*/+/*------------------------------------------------------------------------------*/+AT91S_DataFlashStatus AT91F_PageErase(+	AT91PS_DataFlash pDataFlash,+	unsigned int page)+{+	int cmdsize;+	/* Test if the buffer command is legal */	+	/* no data to transmit or receive */+    	pDataFlash->pDataFlashDesc->tx_data_size = 0;+	+	cmdsize = 4;+	if (pDataFlash->pDevice->pages_number >= 16384)+		cmdsize = 5;+	return(AT91F_DataFlashSendCommand (pDataFlash, DB_PAGE_ERASE, cmdsize, page*pDataFlash->pDevice->pages_size));+}+++/*------------------------------------------------------------------------------*/+/* Function Name       : AT91F_BlockErase                                       */             +/* Object              : Erase a Block 						*/+/* Input Parameters    : DataFlash Service					*/+/*                     : Page concerned						*/+/*                     : 							*/+/* Return value		: State of the dataflash				*/+/*------------------------------------------------------------------------------*/+AT91S_DataFlashStatus AT91F_BlockErase(+	AT91PS_DataFlash pDataFlash,+	unsigned int block)+{+	int cmdsize;+	/* Test if the buffer command is legal */	+	/* no data to transmit or receive */+    	pDataFlash->pDataFlashDesc->tx_data_size = 0;+	cmdsize = 4;+	if (pDataFlash->pDevice->pages_number >= 16384)+		cmdsize = 5;+	return(AT91F_DataFlashSendCommand (pDataFlash, DB_BLOCK_ERASE,cmdsize, block*8*pDataFlash->pDevice->pages_size));+}  /*------------------------------------------------------------------------------*/ /* Function Name       : AT91F_WriteBufferToMain				*/@@ -355,6 +432,7 @@ AT91S_DataFlashStatus AT91F_WriteBufferT 	unsigned char BufferCommand, 	unsigned int dest ) {+	int cmdsize; 	/* Test if the buffer command is correct */ 	if ((BufferCommand != DB_BUF1_PAGE_PGM) && 	    (BufferCommand != DB_BUF1_PAGE_ERASE_PGM) &&@@ -365,8 +443,11 @@ AT91S_DataFlashStatus AT91F_WriteBufferT 	/* no data to transmit or receive */ 	pDataFlash->pDataFlashDesc->tx_data_size = 0; +	cmdsize = 4;+	if (pDataFlash->pDevice->pages_number >= 16384)+		cmdsize = 5; 	/* Send the command to the dataflash */-	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, 4, dest));+	return(AT91F_DataFlashSendCommand (pDataFlash, BufferCommand, cmdsize, dest)); }  @@ -391,10 +472,19 @@ AT91S_DataFlashStatus AT91F_PartialPageW  	/* Read the contents of the page in the Sram Buffer */ 	AT91F_MainMemoryToBufferTransfert(pDataFlash, DB_PAGE_2_BUF1_TRF, page);-	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000);+	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY); 	/*Update the SRAM buffer */ 	AT91F_DataFlashWriteBuffer(pDataFlash, DB_BUF1_WRITE, src, AdrInPage, size);-	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000);++	AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);+	+	/* Erase page if a 128 Mbits device */+	if (pDataFlash->pDevice->pages_number >= 16384)+	{+		AT91F_PageErase(pDataFlash, page);+		/* Rewrite the modified Sram Buffer in the main memory */+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);+	}  	/* Rewrite the modified Sram Buffer in the main memory */ 	return(AT91F_WriteBufferToMain(pDataFlash, DB_BUF1_PAGE_ERASE_PGM, (page*pDataFlash->pDevice->pages_size)));@@ -402,7 +492,7 @@ AT91S_DataFlashStatus AT91F_PartialPageW   /*------------------------------------------------------------------------------*/-/* Function Name       : AT91F_DataFlashWrite_Overloaded			*/+/* Function Name       : AT91F_DataFlashWrite					*/ /* Object              :							*/ /* Input Parameters    : <*src> = Source buffer					*/ /*                     : <dest> = dataflash adress				*/@@ -415,6 +505,8 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 	int size ) { 	unsigned int length;+	unsigned int page;+	unsigned int status;  	AT91F_SpiEnable(pDataFlash->pDevice->cs); @@ -431,7 +523,7 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 		if(!AT91F_PartialPageWrite(pDataFlash,src, dest, length)) 			return DATAFLASH_ERROR; -		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000);+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);  		/* Update size, source and destination pointers */ 		size -= length;@@ -441,10 +533,21 @@ AT91S_DataFlashStatus AT91F_DataFlashWri  	while (( size - pDataFlash->pDevice->pages_size ) >= 0 ) { 		/* program dataflash page */-		if(!AT91F_DataFlashPagePgmBuf(pDataFlash, src, dest, pDataFlash->pDevice->pages_size ))+		page = (unsigned int)dest / (pDataFlash->pDevice->pages_size);++		status = AT91F_DataFlashWriteBuffer(pDataFlash, DB_BUF1_WRITE, src, 0, pDataFlash->pDevice->pages_size);+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);++		status = AT91F_PageErase(pDataFlash, page);+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);+		if (!status)+			return DATAFLASH_ERROR;+	+		status = AT91F_WriteBufferToMain (pDataFlash, DB_BUF1_PAGE_PGM, dest);+		if(!status) 			return DATAFLASH_ERROR; -		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000);+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY);  		/* Update size, source and destination pointers */ 		size -= pDataFlash->pDevice->pages_size ;@@ -458,7 +561,7 @@ AT91S_DataFlashStatus AT91F_DataFlashWri 		if(!AT91F_PartialPageWrite(pDataFlash, src, dest, size) ) 			return DATAFLASH_ERROR; -		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000);+		AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY); 	} 	return DATAFLASH_OK; }@@ -480,13 +583,13 @@ int AT91F_DataFlashRead(  	AT91F_SpiEnable(pDataFlash->pDevice->cs); -	if(AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000) != DATAFLASH_OK)+	if(AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY) != DATAFLASH_OK) 		return -1;  	while (size) { 		SizeToRead = (size < 0x8000)? size:0x8000; -		if (AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, 1000) != DATAFLASH_OK)+		if (AT91F_DataFlashWaitReady(pDataFlash->pDataFlashDesc, AT91C_TIMEOUT_WRDY) != DATAFLASH_OK) 			return -1;  		if (AT91F_DataFlashContinuousRead (pDataFlash, addr, buffer, SizeToRead) != DATAFLASH_OK)diff -purN u-boot-1.0.0.orig/drivers/dataflash.c u-boot-1.0.0.test/drivers/dataflash.c--- u-boot-1.0.0.orig/drivers/dataflash.c	Fri Jun 27 23:32:37 2003+++ u-boot-1.0.0.test/drivers/dataflash.c	Fri Nov  7 15:46:59 2003@@ -31,22 +31,33 @@ int cs[][CFG_MAX_DATAFLASH_BANKS] = { 	{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3} }; +/*define the area offsets*/	+dataflash_protect_t area_list[NB_DATAFLASH_AREA]={+{0, 0x7fff, FLAG_PROTECT_SET},		/* ROM code */+{0x8000, 0x1ffff, FLAG_PROTECT_SET},	/* u-boot code*/+{0x20000, 0x27fff, FLAG_PROTECT_CLEAR},	/* u-boot environment */+{0x28000, 0x1fffff, FLAG_PROTECT_CLEAR},/* data area size to tune */+};+ extern void AT91F_SpiInit (void); extern int AT91F_DataflashProbe (int i, AT91PS_DataflashDesc pDesc); extern int AT91F_DataFlashRead (AT91PS_DataFlash pDataFlash, 				unsigned long addr, 				unsigned long size, char *buffer);-+extern int AT91F_DataFlashWrite( AT91PS_DataFlash pDataFlash,+				    unsigned char *src,+			            int dest,+				    int size );  int AT91F_DataflashInit (void) {-	int i, j;+	int i,j; 	int dfcode;-+		 	AT91F_SpiInit ();  	for (i = 0; i < CFG_MAX_DATAFLASH_BANKS; i++) {-+		dataflash_info[i].Desc.state = IDLE; 		dataflash_info[i].id = 0; 		dataflash_info[i].Device.pages_number = 0; 		dfcode = AT91F_DataflashProbe (cs[i][1], &dataflash_info[i].Desc);@@ -84,22 +95,39 @@ int AT91F_DataflashInit (void)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区三区不卡| 欧美日韩精品一区二区在线播放 | 精品国产一区二区在线观看| 国产午夜亚洲精品理论片色戒 | 91精品国产综合久久久久久| 欧美国产日韩精品免费观看| 日韩精品欧美精品| 99久久久精品| 精品久久久久久最新网址| 国产精品久久久久7777按摩| 麻豆精品视频在线观看视频| 欧美性xxxxx极品少妇| 国产精品久久久久久一区二区三区| 婷婷开心久久网| 国产盗摄精品一区二区三区在线| 欧美日韩亚洲另类| 一区二区三区免费在线观看| 国产99久久久国产精品免费看| 日韩一区二区视频在线观看| 亚洲国产综合在线| 精品久久久三级丝袜| 日韩电影在线免费| 欧美剧情电影在线观看完整版免费励志电影| 国产精品女人毛片| 成人一区在线看| 久久精品亚洲精品国产欧美| 久久不见久久见免费视频7| 欧美挠脚心视频网站| 亚洲国产精品久久不卡毛片| 91福利社在线观看| 一级特黄大欧美久久久| 日本韩国欧美国产| 亚洲综合色视频| 欧美午夜影院一区| 亚洲成人黄色小说| 91精品国产综合久久国产大片| 亚洲电影视频在线| 日韩午夜在线播放| 久久成人免费网| 久久久亚洲精华液精华液精华液| 韩国在线一区二区| 国产精品视频线看| 91丨porny丨国产入口| 亚洲激情自拍视频| 欧美日本不卡视频| 激情综合色综合久久| 国产亚洲制服色| 成人不卡免费av| 亚洲综合清纯丝袜自拍| 欧美日韩国产大片| 韩日精品视频一区| 国产清纯白嫩初高生在线观看91 | 日韩欧美一区电影| 国产福利电影一区二区三区| 欧美经典三级视频一区二区三区| 91一区二区三区在线观看| 亚洲一区二区综合| 精品久久久久久久久久久久久久久 | 久久伊人蜜桃av一区二区| 国产盗摄一区二区三区| 亚洲美女精品一区| 日韩午夜激情视频| 成人一区二区三区在线观看| 樱桃视频在线观看一区| 日韩欧美国产三级| 91片黄在线观看| 天堂久久一区二区三区| 久久久久国产精品厨房| 91久久线看在观草草青青| 免费成人深夜小野草| 中文字幕欧美国产| 欧美久久久久久久久中文字幕| 激情综合色丁香一区二区| 国产精品毛片高清在线完整版 | 日本韩国欧美在线| 男女男精品视频| 国产精品高潮呻吟久久| 欧美日韩一区二区欧美激情| 国产精品69毛片高清亚洲| 亚洲欧美区自拍先锋| 麻豆成人免费电影| 伊人开心综合网| 精品国产百合女同互慰| 在线一区二区视频| 成人午夜大片免费观看| 日韩成人伦理电影在线观看| 国产亚洲va综合人人澡精品| 91精选在线观看| 色欧美日韩亚洲| 国产成人免费av在线| 日韩精品1区2区3区| 亚洲人成小说网站色在线| 2023国产精品自拍| 337p亚洲精品色噜噜| 99re在线视频这里只有精品| 国产一区二区成人久久免费影院| 日韩一区精品字幕| 亚洲自拍偷拍综合| 亚洲色大成网站www久久九九| 久久久午夜精品理论片中文字幕| 欧美喷潮久久久xxxxx| 99国产精品一区| 国产乱码精品一区二区三区五月婷 | 亚洲日本在线看| 国产亚洲一区二区三区四区| 日韩欧美一级在线播放| 91精品国产日韩91久久久久久| 在线观看中文字幕不卡| 色88888久久久久久影院按摩| 成人免费视频视频| 成人夜色视频网站在线观看| 久久国内精品视频| 久久99精品网久久| 六月丁香婷婷色狠狠久久| 日韩精品乱码免费| 日韩中文字幕一区二区三区| 日韩精品一二三区| 免费在线观看一区二区三区| 欧美aa在线视频| 麻豆精品新av中文字幕| 久久国产成人午夜av影院| 韩国精品在线观看| 国产精品亚洲视频| 国产mv日韩mv欧美| 成人va在线观看| 色综合久久中文综合久久97| 在线视频国内自拍亚洲视频| 欧美天天综合网| 7777精品伊人久久久大香线蕉经典版下载| 欧美日韩国产首页在线观看| 欧美一级一区二区| 久久综合色8888| 成人欧美一区二区三区在线播放| 亚洲欧洲制服丝袜| 亚洲风情在线资源站| 日韩av电影天堂| 丰满岳乱妇一区二区三区| 99国产精品久| 777午夜精品视频在线播放| 日韩欧美国产不卡| 国产精品国产精品国产专区不片| 亚洲欧美精品午睡沙发| 日韩经典中文字幕一区| 国产一区二区三区免费在线观看| 丁香激情综合五月| 欧美体内she精视频| 精品三级av在线| 国产精品国产三级国产三级人妇| 亚洲一区免费观看| 激情国产一区二区| 色欧美88888久久久久久影院| 欧美一卡在线观看| 国产精品久久久久婷婷二区次| 五月婷婷激情综合网| 国产精品乡下勾搭老头1| 色域天天综合网| 久久综合一区二区| 亚洲乱码日产精品bd| 美女视频网站久久| 日本韩国欧美在线| 久久九九99视频| 日韩av在线发布| 波多野洁衣一区| 日韩精品一区二区三区三区免费| 亚洲日本护士毛茸茸| 久久成人羞羞网站| 欧美日本在线观看| 国产精品卡一卡二卡三| 激情深爱一区二区| 欧美日韩免费一区二区三区 | 欧美精品成人一区二区三区四区| 国产亚洲自拍一区| 日韩电影在线看| 在线亚洲一区观看| 国产精品丝袜一区| 国产一区二区三区观看| 欧美专区在线观看一区| 国产精品三级在线观看| 免费视频最近日韩| 欧美日韩高清影院| 有坂深雪av一区二区精品| 国产精品18久久久久久vr| 91精品国产高清一区二区三区蜜臀| 亚洲视频图片小说| 国产**成人网毛片九色 | 欧美视频在线不卡| 成人欧美一区二区三区小说| 国产精品系列在线观看| 欧美白人最猛性xxxxx69交| 青椒成人免费视频| 在线成人av网站| 三级久久三级久久久| 欧美少妇bbb| 亚洲福中文字幕伊人影院| 欧美主播一区二区三区| 亚洲自拍偷拍av| 欧美日韩综合色| 偷拍一区二区三区四区| 欧美乱妇20p| 免费观看在线综合|