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

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

?? u2440mon.c

?? 這是三星2440潛入式系統(tǒng)上USB的驅(qū)動下載程序,比較精簡.
?? C
?? 第 1 頁 / 共 3 頁
字號:
			Uart_Printf("\n");

			progSize+=PAGES_PER_BLOCK*SECTOR_SIZE;//0x4000;
			if(progSize>=downloadFileSize)
			    break;	// Exit while loop
			blockIndex++;
		}
	}
}
extern int PrintToTerminal;
int SERAfterRcvFirstDataPacket()
{
	U32 i;
	U32 j;
	U16 cs;
	U32 temp;
	U16 dnCS;
	float time;
	char buf[64];
	int posx,posy;
	U32 systime;
//	Timer_InitEx();	  
//	Timer_StartEx();  
	systime=OSTimeGet ();
	OSSchedLock();
	PrintToTerminal=0;
	Uart_Printf("\nNow, Downloading [ADDRESS:%xh,TOTAL:%d]\n",
			downloadAddress,downloadFileSize);
//	sprintf(buf,"RECEIVED FILE SIZE:%8d",0);
//	posx=GUI_GetDispPosX();
//	posy=GUI_GetDispPosY();
//	GUI_DispStringAt(buf,posx,posy);
	Uart_Printf("RECEIVED FILE SIZE:%8d",0);
//    GUI_Exec();

	j=0x10000;

	while(((U32)downPt-downloadAddress)<(downloadFileSize-4))
	{
	if( ((U32)downPt-downloadAddress)>=j)
	{
	//	Uart_Printf("\b\b\b\b\b\b\b\b%8d",j);
		Uart_SendByte('p');
   		j+=0x10000;
//		GUI_Exec();
	}
	}

	time = OSTimeGet();
	OSSchedUnlock();
	Uart_Printf("\b\b\b\b\b\b\b\b%8d",downloadFileSize);	
//	sprintf(buf,"RECEIVED FILE SIZE:%8d",j);
//		GUI_DispStringAt(buf,posx,posy);
	Uart_Printf("\n(%5.1fKB/S,%3.1fS)\n",(float)(downloadFileSize/((time-systime)/OS_TICKS_PER_SEC)/1000.),(time-systime)/OS_TICKS_PER_SEC);
	
	//checkSum was calculated including dnCS. So, dnCS should be subtracted.
	checkSum=checkSum - *((unsigned char *)(downloadAddress+downloadFileSize-4-2))
		 - *( (unsigned char *)(downloadAddress+downloadFileSize-4-1) );	
	
	dnCS=*((unsigned char *)(downloadAddress+downloadFileSize-4-2))+
	(*( (unsigned char *)(downloadAddress+downloadFileSize-4-1) )<<8);

	if(checkSum!=dnCS)
	{
	Uart_Printf("Checksum Error!!! MEM:%x DN:%x\n",checkSum,dnCS);
//	GUI_Exec();
//	return -1;
	}

	Uart_Printf("Download O.K.\n\n");
	while(!(rUTRSTAT1 & 0x4)); //Wait until tx shifter is empty.
	Init_Uart0 ();
	PrintToTerminal=1;
//	MMU_Init();	
//	Uart_Printf("EnableDCache:\n");
//	GUI_Exec();
	return 0;
}


int AfterRcvFirstDataPacket()
{
	U32 i;
	U32 j;
	U16 cs;
	U32 temp;
	U16 dnCS;
	float time;
	char buf[64];
	int posx,posy;
	U32 systime;
//	Timer_InitEx();	  
//	Timer_StartEx();  
	systime=OSTimeGet ();
	OSSchedLock();
#if USBDMA	
//	WM_SelectWindow(0);
//	if(download_run == 1)
//		WM_DeleteWindow(_usbhFrameWin);
//	GUI_SetBkColor(GUI_BLUE);
//	GUI_Clear();
	rINTMSK&=~(BIT_DMA2);  

	ClearEp3OutPktReady(); 
		// indicate the first packit is processed.
		// has been delayed for DMA2 cofiguration.

	if(downloadFileSize>EP3_PKT_SIZE)
	{
		if(downloadFileSize<=(0x80000))
		{
	  		ConfigEp3DmaMode(downloadAddress+EP3_PKT_SIZE-8,downloadFileSize-EP3_PKT_SIZE);	
 
	  		//will not be used.
		}
	  	else
	  	{
	  		ConfigEp3DmaMode(downloadAddress+EP3_PKT_SIZE-8,0x80000-EP3_PKT_SIZE);
	   		
			if(downloadFileSize>(0x80000*2))//for 1st autoreload
			{
				rDIDST2=(downloadAddress+0x80000-8);  //for 1st autoreload.
			 rDIDSTC2=(1<<2)|(0<<1)|(0<<0);  
				rDCON2=rDCON2&~(0xfffff)|(0x80000);			  

  		while(rEP3_DMA_TTC<0xfffff)
  		{
  			rEP3_DMA_TTC_L=0xff; 
  			rEP3_DMA_TTC_M=0xff;
  			rEP3_DMA_TTC_H=0xf;
  		}
			}	
 		else
 		{
 			rDIDST2=(downloadAddress+0x80000-8);  //for 1st autoreload.
	  			rDIDSTC2=(1<<2)|(0<<1)|(0<<0);  
 			rDCON2=rDCON2&~(0xfffff)|(downloadFileSize-0x80000); 		

  		while(rEP3_DMA_TTC<0xfffff)
  		{
  			rEP3_DMA_TTC_L=0xff; 
  			rEP3_DMA_TTC_M=0xff;
  			rEP3_DMA_TTC_H=0xf;
  		}
		}
	}
 	totalDmaCount=0;
	}
	else
	{
	totalDmaCount=downloadFileSize;
	}
#endif
	Uart_Printf("\nNow, Downloading [ADDRESS:%xh,TOTAL:%d]\n",
			downloadAddress,downloadFileSize);
//	sprintf(buf,"RECEIVED FILE SIZE:%8d",0);
//	posx=GUI_GetDispPosX();
//	posy=GUI_GetDispPosY();
//	GUI_DispStringAt(buf,posx,posy);
	Uart_Printf("RECEIVED FILE SIZE:%8d",0);
    GUI_Exec();
#if USBDMA	
	j=0x10000;

	while(1)
	{
		if( (rDCDST2-(U32)downloadAddress+8)>=j)
	{
	//	sprintf(buf,"RECEIVED FILE SIZE:%8d",j);
	//	GUI_DispStringAt(buf,posx,posy);
		Uart_Printf("\b\b\b\b\b\b\b\b%8d",j);
   		j+=0x10000;
   		GUI_Exec();
		}
	if(totalDmaCount>=downloadFileSize)break;
	}

#else
	j=0x10000;

	while(((U32)downPt-downloadAddress)<(downloadFileSize-8))
	{
	if( ((U32)downPt-downloadAddress)>=j)
	{
		Uart_Printf("\b\b\b\b\b\b\b\b%8d",j);
   		j+=0x10000;
	}
	}
#endif
//	for(j=0;j<1000000;j++);
//	time=Timer_StopEx();
	time = OSTimeGet();
	OSSchedUnlock();
	Uart_Printf("\b\b\b\b\b\b\b\b%8d",downloadFileSize);	
//	sprintf(buf,"RECEIVED FILE SIZE:%8d",j);
//		GUI_DispStringAt(buf,posx,posy);
	Uart_Printf("\n(%5.1fKB/S,%3.1fS)\n",(float)(downloadFileSize/((time-systime)/OS_TICKS_PER_SEC)/1000.),(time-systime)/OS_TICKS_PER_SEC);
	
#if USBDMA	
	/*******************************/
	/*	 Verify check sum		*/
	/*******************************/

	Uart_Printf("Now, Checksum calculation\n");
//	GUI_Exec();
	cs=0;	
	i=(downloadAddress);
	j=(downloadAddress+downloadFileSize-10)&0xfffffffc;
//	for(;i<j;i++)
//		cs+=*((U8 *)i++);
	#if 1
	while(i<j)
	{
		temp=*((U32 *)i);
		i+=4;
		cs+=(U16)(temp&0xff);
		cs+=(U16)((temp&0xff00)>>8);
		cs+=(U16)((temp&0xff0000)>>16);
		cs+=(U16)((temp&0xff000000)>>24);
	}

	i=(downloadAddress+downloadFileSize-10)&0xfffffffc;
	j=(downloadAddress+downloadFileSize-10);
	while(i<j)
	{
  	cs+=*((U8 *)i++);
	}
	#endif
	checkSum=cs;
#else
	//checkSum was calculated including dnCS. So, dnCS should be subtracted.
	checkSum=checkSum - *((unsigned char *)(downloadAddress+downloadFileSize-8-2))
		 - *( (unsigned char *)(downloadAddress+downloadFileSize-8-1) );	
#endif	  

	dnCS=*((unsigned char *)(downloadAddress+downloadFileSize-8-2))+
	(*( (unsigned char *)(downloadAddress+downloadFileSize-8-1) )<<8);

	if(checkSum!=dnCS)
	{
	Uart_Printf("Checksum Error!!! MEM:%x DN:%x\n",checkSum,dnCS);
//	GUI_Exec();
	return -1;
	}

	Uart_Printf("Download O.K.\n\n");
	while(!(rUTRSTAT1 & 0x4)); //Wait until tx shifter is empty.
//	MMU_Init();	
//	Uart_Printf("EnableDCache:\n");
//	GUI_Exec();
	return 0;
}


void Isr_Init(void)
{
	pISR_UNDEF=(unsigned)HaltUndef;
	pISR_SWI  =(unsigned)HaltSwi;
	pISR_PABORT=(unsigned)HaltPabort;
	pISR_DABORT=(unsigned)HaltDabort;
	rINTMOD=0x0;	  // All=IRQ mode
//	rINTMSK=BIT_ALLMSK;	  // All interrupt is masked.

	//pISR_URXD0=(unsigned)Uart0_RxInt;	
	//rINTMSK=~(BIT_URXD0);   //enable UART0 RX Default value=0xffffffff

#if 1
	pISR_USBD =(unsigned)IsrUsbd;
	pISR_DMA2 =(unsigned)IsrDma2;
#else
	pISR_IRQ =(unsigned)IsrUsbd;	
		//Why doesn't it receive the big file if use this. (???)
		//It always stops when 327680 bytes are received.
#endif	
	ClearPending(BIT_DMA2);
	ClearPending(BIT_USBD);
	//rINTMSK&=~(BIT_USBD);  
   
	//pISR_FIQ,pISR_IRQ must be initialized
}


void HaltUndef(void)
{
	Uart_Printf("Undefined instruction exception!!!\n");
	while(1);
}

void HaltSwi(void)
{
	Uart_Printf("SWI exception!!!\n");
	while(1);
}

void HaltPabort(void)
{
	Uart_Printf("Pabort exception!!!\n");
	while(1);
}

void HaltDabort(void)
{
	Uart_Printf("Dabort exception!!!\n");
	while(1);
}


void ClearMemory(void)
{
	int i;
	U32 data;
	int memError=0;
	U32 *pt;
	
	//
	// memory clear
	//
	Uart_Printf("Clear Memory (%xh-%xh):WR",_RAM_STARTADDRESS,HEAPEND);

	pt=(U32 *)_RAM_STARTADDRESS;
	while((U32)pt < HEAPEND)
	{
		*pt=(U32)0x0;
		pt++;
	}
	
	if(memError==0)Uart_Printf("\b\bO.K.\n");
}

void Clk0_Enable(int clock_sel)	
{	// 0:MPLLin, 1:UPLL, 2:FCLK, 3:HCLK, 4:PCLK, 5:DCLK0
	rMISCCR = rMISCCR&~(7<<4) | (clock_sel<<4);
	rGPHCON = rGPHCON&~(3<<18) | (2<<18);
}
void Clk1_Enable(int clock_sel)
{	// 0:MPLLout, 1:UPLL, 2:RTC, 3:HCLK, 4:PCLK, 5:DCLK1	
	rMISCCR = rMISCCR&~(7<<8) | (clock_sel<<8);
	rGPHCON = rGPHCON&~(3<<20) | (2<<20);
}
void Clk0_Disable(void)
{
	rGPHCON = rGPHCON&~(3<<18);	// GPH9 Input
}
void Clk1_Disable(void)
{
	rGPHCON = rGPHCON&~(3<<20);	// GPH10 Input
}

BOOL UbootReadData(DWORD cbData, LPBYTE pbData)
{
	unsigned int temp;
	int i;
	int old_isUsbdSetConfiguration = isUsbdSetConfiguration;
Loop:
	if ( downPtIndex > readPtIndex + cbData )
	{
		memcpy(pbData, (void*)readPtIndex, cbData);
		readPtIndex += cbData;
	}
	else if (downPtIndex == DMABUFFER)
	{
		downloadFileSize=0;
//		Uart_Printf("DisableDCache:\n");
		MMU_DeInit();
		#if 0
		ChangeMPllValue(68,1,1);

	Calc_Clock(1);
	UPDATE_REFRESH(Hclk);
	#endif
//	Uart_Init(Pclk, 115200);
		if(isUsbdSetConfiguration == 0)
			Uart_Printf("USB host is not connected now,please reconnect the USB Cable.\n");
	while(downloadFileSize == 0){
		if((isUsbdSetConfiguration == 0) && (old_isUsbdSetConfiguration != 0))
		{
			Uart_Printf("USB host is not connected now,please reconnect the USB Cable.\n");
			old_isUsbdSetConfiguration = 0;
		}
		if((isUsbdSetConfiguration != 0) && (old_isUsbdSetConfiguration == 0))
		{
			Uart_Printf("USB host is connected. Waiting a download.\n");
			old_isUsbdSetConfiguration = isUsbdSetConfiguration;
		}
//		GUI_Exec();
	};
	if(AfterRcvFirstDataPacket()== 0)
	{
		downPtIndex += downloadFileSize;
		#if 0
		ChangeMPllValue(127,2,1);

		Calc_Clock(1);
		UPDATE_REFRESH(Hclk);
		#endif
		
//		MMU_Init();
//		Delay(10);	
	}
	else
		return FALSE;
	//	while (downPtIndex == DMABUFFER) {};	// first 64 bytes, get interrupt mode.
		{
			downPt = (unsigned char*)DMABUFFER;
			Uart_Printf("Dump the first packet:downPt=%x\n",downPt);
			for(i=0;i<64;i+=8)
			{
				Uart_Printf("%02X %02X %02X %02X %02X %02X %02X %02X\n",
					*(downPt+i),*(downPt+i+1),*(downPt+i+2),*(downPt+i+3),*(downPt+i+4),*(downPt+i+5),*(downPt+i+6),*(downPt+i+7));	
			}
		}
		if ( readPtIndex == DMABUFFER )
		{
			memcpy(pbData, (void*)readPtIndex, cbData);
			readPtIndex += cbData;
		}
	#if 0
		rSRCPND  = BIT_USBD;
		if (rINTPND & BIT_USBD) rINTPND = BIT_USBD;
		rINTMSK |= BIT_USBD;		// USB Interrupt disable.

		// read data with DMA operation.
		rSRCPND  = BIT_DMA2;
		if (rINTPND & BIT_DMA2) rINTPND = BIT_DMA2;
		rINTMSK &= ~BIT_DMA2;		// DMA Interrupt enable.

		rINDEX_REG=3;
		ClearEp3OutPktReady(); 

		ConfigEp3DmaMode(downPtIndex,0x80000);

		rDIDST2=(downPtIndex+0x80000);	//for 1st autoreload.
		rDIDSTC2=(1<<2)|(0<<1)|(0<<0);
		rDCON2=rDCON2&~(0xfffff)|(0x80000);

		while(rEP3_DMA_TTC<0xfffff)
		{
			rEP3_DMA_TTC_L = 0xff;
			rEP3_DMA_TTC_M = 0xff;
			rEP3_DMA_TTC_H = 0x0f;
		}
		#endif
	}
	else
	{
		temp = rEP3_DMA_TTC;
		for (i = 0; i < 60000; i++ )
		{
		}
		if ( temp == rEP3_DMA_TTC )
		{
			Uart_Printf("INFO : UbootReadData : downPtIndex(0x%x) - readPtIndex(0x%x) = 0x%x\r\n", downPtIndex, readPtIndex, downPtIndex - readPtIndex);
			downPtIndex += ((unsigned int)0xfffff - (unsigned int)rEP3_DMA_TTC);
			Uart_Printf("INFO : UbootReadData : rEP3_DMA_TTC = 0x%x\r\n", rEP3_DMA_TTC);
		}

		goto Loop;
	}

	return TRUE;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频在线播放| 美女网站色91| 欧美三区在线观看| 亚洲国产美女搞黄色| 欧美日韩一卡二卡三卡| 日本不卡高清视频| 久久久精品影视| 成人黄页在线观看| 洋洋成人永久网站入口| 91精品麻豆日日躁夜夜躁| 日本亚洲欧美天堂免费| 日韩欧美国产电影| 国产电影一区二区三区| 一区精品在线播放| 欧美日韩高清一区二区三区| 青草国产精品久久久久久| 精品久久久久久久人人人人传媒 | 欧美色图激情小说| 天堂va蜜桃一区二区三区漫画版| 欧美一区二区二区| 国产成+人+日韩+欧美+亚洲| 亚洲九九爱视频| 日韩欧美国产综合一区| av亚洲产国偷v产偷v自拍| 亚洲成人黄色影院| 国产亚洲婷婷免费| 欧美日韩在线免费视频| 国产一区二区成人久久免费影院 | 一区二区三区在线播放| 欧美丰满少妇xxxbbb| 国产激情91久久精品导航 | 日日摸夜夜添夜夜添精品视频| 欧美精品一区二| 欧洲色大大久久| 国产麻豆视频精品| 香蕉久久一区二区不卡无毒影院 | 久久精品国产999大香线蕉| 国产精品久久久久久久久久久免费看| 欧美肥胖老妇做爰| 成人精品小蝌蚪| 久久国产欧美日韩精品| 亚洲精品免费播放| 欧美精彩视频一区二区三区| 欧美精选一区二区| 91国产视频在线观看| 国产成人精品免费视频网站| 奇米精品一区二区三区在线观看| 中文字幕一区av| 久久久久久久精| 91精品国产色综合久久不卡电影 | 久久这里只有精品视频网| 欧美性色黄大片| 91在线小视频| 岛国精品在线观看| 老司机精品视频线观看86| 亚洲一区二区三区影院| 国产精品久久久久久一区二区三区| 日韩美一区二区三区| 在线电影欧美成精品| 91视频www| 99久久精品99国产精品| 国产精品影视在线观看| 精品一区二区三区香蕉蜜桃| 秋霞国产午夜精品免费视频| 亚洲综合色成人| 亚洲欧美日韩精品久久久久| 国产精品免费视频一区| 久久久久88色偷偷免费| 久久精品网站免费观看| 久久久91精品国产一区二区三区| 日韩欧美一级二级三级久久久| 666欧美在线视频| 欧美日韩一级二级三级| 欧美日韩国产一二三| 欧美性欧美巨大黑白大战| 色呦呦一区二区三区| 色诱视频网站一区| 欧美专区亚洲专区| 欧美性色aⅴ视频一区日韩精品| 日本精品一区二区三区四区的功能| www.欧美色图| 色欧美88888久久久久久影院| 91色在线porny| 欧美在线制服丝袜| 欧美肥大bbwbbw高潮| 欧美精品123区| 精品粉嫩超白一线天av| 久久久久久亚洲综合| 久久久久久久国产精品影院| 国产精品人成在线观看免费| **网站欧美大片在线观看| 亚洲欧美日韩久久精品| 亚洲mv大片欧洲mv大片精品| 奇米精品一区二区三区四区| 韩国午夜理伦三级不卡影院| 成人天堂资源www在线| 99r国产精品| 欧美日韩成人综合天天影院 | 欧美性生活久久| 日韩西西人体444www| 国产三级欧美三级日产三级99| 国产午夜精品久久久久久久| 综合亚洲深深色噜噜狠狠网站| 亚洲午夜私人影院| 免费成人在线视频观看| 国产精品 日产精品 欧美精品| 97久久超碰国产精品电影| 欧美精品777| 中文字幕欧美三区| 亚洲二区在线视频| 国产自产高清不卡| 在线视频你懂得一区| 日韩欧美国产一二三区| 亚洲天堂中文字幕| 精品制服美女久久| 99精品视频在线播放观看| 91精品国产美女浴室洗澡无遮挡| 国产亚洲美州欧州综合国| 一区二区三区不卡在线观看| 久久99九九99精品| 色欲综合视频天天天| 久久综合久色欧美综合狠狠| 一区二区欧美国产| 国产91综合一区在线观看| 欧美乱熟臀69xxxxxx| 国产精品久久久久久久蜜臀| 免费观看30秒视频久久| 色诱视频网站一区| 国产欧美精品区一区二区三区| 亚洲成人资源在线| av网站免费线看精品| 欧美精品一区在线观看| 亚洲第一综合色| 91一区二区在线| 国产亚洲精品aa| 日本不卡一区二区三区| 在线亚洲欧美专区二区| 欧美激情在线一区二区三区| 老司机免费视频一区二区三区| 91国内精品野花午夜精品| 欧美激情在线看| 狠狠色丁香久久婷婷综| 7777精品伊人久久久大香线蕉经典版下载 | 日韩欧美电影一二三| 亚洲二区视频在线| 色吧成人激情小说| 日韩一区在线看| 成人一区二区三区在线观看| 欧美大片日本大片免费观看| 亚洲va欧美va国产va天堂影院| 91小视频免费观看| 国产日韩欧美不卡| 黑人巨大精品欧美一区| 日韩美女视频在线| 麻豆国产精品官网| 欧美男男青年gay1069videost | 亚洲精品国产品国语在线app| 欧美日韩三级一区| 国产成人亚洲综合色影视| 日韩欧美一区中文| 蜜桃免费网站一区二区三区| 欧美另类videos死尸| 亚洲国产精品久久久久秋霞影院| 91豆麻精品91久久久久久| 亚洲欧美国产三级| 91亚洲国产成人精品一区二区三| 中文字幕欧美日韩一区| 成人av网站在线观看免费| 国产精品免费视频一区| 91视频免费播放| 亚洲成人免费影院| 91麻豆精品国产91久久久更新时间| 日韩专区中文字幕一区二区| 91精品国产综合久久香蕉麻豆| 日韩影院精彩在线| 精品国产乱子伦一区| 国产一区二区三区高清播放| 国产亚洲精品aa午夜观看| 成人午夜电影网站| 一区二区三区电影在线播| 欧美人动与zoxxxx乱| 蜜桃视频一区二区三区在线观看| 26uuu亚洲| 91丝袜国产在线播放| 亚洲第一狼人社区| 日韩欧美一区二区不卡| 国产盗摄一区二区| 一个色综合网站| 日韩一区二区电影网| 国产成人精品免费视频网站| 亚洲精品视频在线| 欧美一区二区三区免费视频| 国产麻豆视频一区| 亚洲欧美日韩国产一区二区三区| 欧美片在线播放| 国产精品538一区二区在线| 中文字幕一区三区| 91精品久久久久久久久99蜜臂| 国产精品99久久久久久久vr | 亚洲mv在线观看|