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

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

?? shell.c

?? 最新的BOOTLOADER,供大家參考使用。
?? C
?? 第 1 頁 / 共 3 頁
字號:
	
	void (*fp)(void) = (void (*)(void))DFT_DOWNLOAD_ADDR;
	
	if(argc>1)
	{
		int	p = strtoul((unsigned char *)argv[1]);
		if(p>0)
			fp = (void (*)(void))p;			
	}
	
	Uart_Printf("Run program from 0x%x, are you sure? [y/n]", fp);
	
	while(1)
	{
		key = Uart_GetKey();
		if(key)
		{
			if(key=='y'||key=='Y')
			{
				Uart_SendByte(key);
				Uart_SendByte('\n');
				break;
			}
			if(key=='n'||key=='N')
			{
				Uart_SendByte(key);
				Uart_SendByte('\n');
				return 0;
			}				
		}
	}
	
	(*fp)();
	
	return 0;		
}


int ProgFlash(int argc, char *argv[])
{
	unsigned char key;
	unsigned int size = ~0;
	unsigned int data_begin = ~0;
	unsigned int prog_begin = ~0;
	unsigned int cache_cfg;

	if(argc!=4)
	{		
		Uart_Printf("Arguments error!\n");
		Uart_Printf("Usage:	prog a1 a2 size\na1 = program begin address\na2 = data pointer to ram\nsize = program size(Bytes)\n");
		return -1;
	}	
		
	prog_begin = strtoul((unsigned char *)argv[1]);			
	data_begin = strtoul((unsigned char *)argv[2]);
	size       = strtoul((unsigned char *)argv[3]);
	
	if(size==0)
	{
		Uart_Printf("Write 0 Bytes!\n");
		return -1;
	}
	
	if(prog_begin==-1||data_begin==-1)		//
	{
		Uart_Printf("Arguments error\n");
		return -1;
	}	
	
	Uart_Printf("program flash begin @0x%x, from ram data @0x%x, size = %dBytes\nAre you sure? [y/n]", prog_begin, data_begin, size);
	while(1)
	{
		key = Uart_GetKey();
		if(key)
		{
			if(key=='y'||key=='Y')
			{
				Uart_SendByte(key);
				Uart_SendByte('\n');
				break;
			}
			if(key=='n'||key=='N')
			{
				Uart_SendByte(key);
				Uart_SendByte('\n');
				return 0;
			}				
		}
	}		

	cache_cfg = rNCACHBE0;
	rNCACHBE0 = 0x20000000;
	SectorProg(prog_begin, (unsigned short *)data_begin, size);
	
	rNCACHBE0 = cache_cfg;
	
	return 0;
}
//*****************************************************************************

/******************************************************************************
【功能說明】通過TFTP軟件,將目標代碼通過以太網下載到SDRAM,然后
將下載的目標代碼原原本本燒寫到Flash中去,不對代碼進行任何修改,適合于燒寫BIOS
******************************************************************************/
int Bios_Auto_Prog_Flash(int argc, char *argv[])
{
	unsigned char key;
	char ch_tmp[4][10];
	char *para_ptr[4];	

	download_addr = DFT_DOWNLOAD_ADDR;

	ResetNic();
	Uart_Printf("Now begin address for download, use address 0x%x\n", download_addr);
	Uart_Printf("Load image file from host\n");
	Uart_Printf("Type tftp -i %d.%d.%d.%d put filename at the host PC\n", (IP_ADDRESS>>24)&0xff, (IP_ADDRESS>>16)&0xff, (IP_ADDRESS>>8)&0xff, IP_ADDRESS&0xff);
	Uart_Printf("Press ESC key to exit\n");	

	download_begin = 1;
	download_end = 0;
	
	while (1) 
	{
		NetSever();
		if ((key=Uart_GetKey())==ESC_KEY)
		{
			Uart_SendByte('\n');
			download_begin = 0;
			return 0 ;
		}
		if(download_end)
		{
			download_begin = 0;
			download_end = 0;
			goto Next_Program_Flash ;
		}
	}
		
	//*********************************************************************
Next_Program_Flash:
	ultostr((unsigned char *)ch_tmp[0], 0);	
	ultostr((unsigned char *)ch_tmp[1], DFT_DOWNLOAD_ADDR);	 	
	ultostr((unsigned char *)ch_tmp[2], download_len);		


	para_ptr[1] = ch_tmp[0];
	para_ptr[2] = ch_tmp[1];
	para_ptr[3] = ch_tmp[2];	
	//將直接將下載的目標代碼原原本本燒寫到Flash中去,不作任何改動
	
	ProgFlash(4, para_ptr);
	return	0;	
}
//*****************************************************************************

/******************************************************************************
【功能說明】通過TFTP軟件,將目標代碼通過以太網下載的SDRAM,然后將下載的代碼燒寫
到Flash中去,不過在Flash最低地址放置了跳轉到BIOS的跳轉指令,適合于燒寫應用程序
******************************************************************************/
int APP_Auto_Prog_Flash(int argc, char *argv[])
{
	unsigned char key;
	char ch_tmp[3][10];
	char *para_ptr[4];	

	download_addr = DFT_DOWNLOAD_ADDR;

	ResetNic();
	Uart_Printf("Now begin address for download, use address 0x%x\n", download_addr);
	Uart_Printf("Load image file from host\n");
	Uart_Printf("Type tftp -i %d.%d.%d.%d put filename at the host PC\n", (IP_ADDRESS>>24)&0xff, (IP_ADDRESS>>16)&0xff, (IP_ADDRESS>>8)&0xff, IP_ADDRESS&0xff);
	Uart_Printf("Press ESC key to exit\n");	

	download_begin = 1;
	download_end = 0;
	
	while (1) 
	{
		NetSever();
		if ((key=Uart_GetKey())==ESC_KEY)
		{
			Uart_SendByte('\n');
			download_begin = 0;
			return 0 ;
		}
		if(download_end)
		{
			download_begin = 0;
			download_end = 0;
			goto Next_Program_Flash ;
		}
	}
		
	//*********************************************************************
Next_Program_Flash:
	ultostr((unsigned char *)ch_tmp[0], 0x10000);	
	ultostr((unsigned char *)ch_tmp[1], DFT_DOWNLOAD_ADDR);	 	
	ultostr((unsigned char *)ch_tmp[2], download_len);		

	para_ptr[1] = ch_tmp[0];
	para_ptr[2] = ch_tmp[1];
	para_ptr[3] = ch_tmp[2];	
	
	ProgFlash(4, para_ptr);
	return	0;	
}
//*****************************************************************************

int CopyFlash(int argc, char *argv[])
{
	unsigned int src, dst, size;
	unsigned int cache_cfg;
	char tmp[10];
	
	if(argc<4)
	{
		Uart_Printf("Usage : copy a1 a2 size\n");
		Uart_Printf("a1 = src address, a2 = dst address, size = copy bytes (all in hex)\n");
		return -1;
	}
	
	src  = strtoul((unsigned char *)argv[1]);
	dst  = strtoul((unsigned char *)argv[2]);
	size = strtoul((unsigned char *)argv[3]);
	if(src==-1||dst==-1||size==-1)
	{
		Uart_Printf("give error address\n");
		return	-1;
	}	

	cache_cfg = rNCACHBE0;
	rNCACHBE0 = 0x20000000;
	FlashRead(src, (unsigned short *)DFT_DOWNLOAD_ADDR, size);
	rNCACHBE0 = cache_cfg;

	argv[1] = argv[2];
	argv[2] = tmp;
	ultostr((unsigned char *)tmp, DFT_DOWNLOAD_ADDR);
	
	ProgFlash(4, argv);

	return 0;
}


//int BootLoader(int argc, char *argv[])
//{
//	unsigned char key;
//	
//	Uart_Printf("boot from flash, are you sure? [y/n]");
//	while(1)
//	{
//		key = Uart_GetKey();
//		if(key)
//		{
//			if(key=='y'||key=='Y')
//			{
//				void (*fp)(void) =(void (*)(void))BIOS_LOAD;
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				(*fp)();							
//			}
//			if(key=='n'||key=='N')
//			{
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				break;	
//			}
//		}			
//	}
//	
//	return 0;
//}


//int BackupBios(int argc, char *argv[])
//{
//	unsigned char key;
//	unsigned int cache_cfg;
//
//	Uart_Printf("move bios to the top of rom,are you sure? [y/n]");
//
//	while(1)
//	{
//		key = Uart_GetKey();
//		if(key)
//		{
//			if(key=='y'||key=='Y')
//			{
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				break;
//			}
//			if(key=='n'||key=='N')
//			{
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				return 0;
//			}				
//		}
//	}		
//
//	cache_cfg = rNCACHBE0;
//	rNCACHBE0 = 0x20000000;
//	FlashRead(0, (unsigned short *)DFT_DOWNLOAD_ADDR, 0xf000);
//	SectorProg(BIOS_BASE, (unsigned short *)DFT_DOWNLOAD_ADDR, 0xf000);
//	rNCACHBE0 = cache_cfg;
//
//	return 0;
//}


int MemoryDisplay(int argc, char*argv[])
{
	unsigned int sys_cfg;
	unsigned int src;
	unsigned int i, j;
	unsigned int *data;
	
	if(argc < 2)
		src = 0;
	else
	{
		src  = strtoul((unsigned char *)argv[1]);
		if(src%4 != 0) src-=src%4;
	}
	
	data = (unsigned int *)src;
	Uart_Printf("0x%8.8x: ",data);
	
	sys_cfg = rSYSCFG;
	rSYSCFG = 0x08;
	
	for(i=0;i<22;i++)
	{
		for(j=0;j<4;j++)
			Uart_Printf("%8.8x ",*data++);
		if(i<21)
			Uart_Printf("\n0x%8.8x: ",data);
	}
	Uart_SendByte('\n');

	rSYSCFG = sys_cfg;

	return 0;
}


int Flash2Mem(int argc, char*argv[])
{
	unsigned int src, dst, size, i;
	unsigned int cache_cfg;
	unsigned int *data_src, *data_dst;
	
	if(argc<4)
	{
		Uart_Printf("Usage : move a1 a2 size\n");
		Uart_Printf("a1 = src address, a2 = dst address, size = copy bytes (all in hex)\n");
		return -1;
	}

	src  = strtoul((unsigned char *)argv[1]);
	dst  = strtoul((unsigned char *)argv[2]);
	size = strtoul((unsigned char *)argv[3]);

	if(src==-1||dst==-1||size==-1||(dst-size)<src)
	{
		Uart_Printf("give error address\n");
		return	-1;
	}	
	data_src = (unsigned int *)src;
	data_dst = (unsigned int *)dst;

	cache_cfg = rNCACHBE0;
	rNCACHBE0 = 0x20000000;
	size = size%4 ? size/4+1 : size/4;
	for(i=0;i<size;i++)
		*data_dst++ = *data_src++;
	rNCACHBE0 = cache_cfg;

	Uart_Printf("move finished!\n");

	return 0;
}


//int SaveEnv(int argc, char*argv[])
//{
//	unsigned int * pdata;
//	unsigned int cache_cfg;
//
//	cache_cfg = rNCACHBE0;
//	rNCACHBE0 = 0x20000000;
//	pdata = (unsigned int*)(DFT_DOWNLOAD_ADDR+ENV_ADD);
//
//	FlashRead(FlashSector(BIOS_LOAD), (unsigned short *)(DFT_DOWNLOAD_ADDR), SECTOR_SIZE);			
//	*pdata++ = IP_ADDRESS;
//	*pdata++ = GATE_ADDRESS;
//	*pdata++ = MASK_ADDRESS;
//	*pdata++ = SERIAL_BAUD;
//	*pdata++ = MCLK_M;
//	*pdata++ = MCLK_P;
//	*pdata++ = MCLK_S;
//	SectorProg(FlashSector(BIOS_LOAD), (unsigned short *)(DFT_DOWNLOAD_ADDR), SECTOR_SIZE);	
//
//	rNCACHBE0 = cache_cfg;
//
//	return 0;	
//}
//
//
//int LoadEnv(int argc, char*argv[])
//{
//	unsigned int * pdata;
//	unsigned int cache_cfg;
//	unsigned int t_ip, t_gate, t_mask, t_baud, t_mclk;
//	unsigned char t_m, t_p, t_s, tt_s;
//	unsigned char key;
//	int i = 1;
//	
//	cache_cfg = rNCACHBE0;
//	rNCACHBE0 = 0x20000000;
//	pdata = (unsigned int*)(DFT_DOWNLOAD_ADDR+ENV_ADD);
//	FlashRead(FlashSector(BIOS_LOAD), (unsigned short *)(DFT_DOWNLOAD_ADDR), SECTOR_SIZE);			
//	rNCACHBE0 = cache_cfg;
//
//	t_ip = *pdata++;
//	t_gate = *pdata++;
//	t_mask = *pdata++;
//	t_baud = *pdata++;
//	t_m = *pdata++;
//	t_p = *pdata++;
//	t_s = *pdata++;
//
//	tt_s = t_s;
//	while(tt_s--)
//		i *= 2;	
//	t_mclk= (EXT_OSC_CLK*(t_m+8))/((t_p+2)*i);		
//
//	Uart_Printf("IP address : %u.%u.%u.%u\n", (t_ip>>24)&0xff, (t_ip>>16)&0xff, (t_ip>>8)&0xff, t_ip&0xff);
//	Uart_Printf("IP address : %u.%u.%u.%u\n", (t_gate>>24)&0xff, (t_gate>>16)&0xff, (t_gate>>8)&0xff, t_gate&0xff);
//	Uart_Printf("IP address : %u.%u.%u.%u\n", (t_mask>>24)&0xff, (t_mask>>16)&0xff, (t_mask>>8)&0xff, t_mask&0xff);
//	Uart_Printf("Serial baud : %d\n", t_baud);
//	Uart_Printf("Clock : %dHz\n", t_mclk);	
//
//	Uart_Printf("Load enviroment value from flash [y/n]");
//	
//	while(1)
//	{
//		key = Uart_GetKey();
//		if(key)
//		{
//			if(key=='y'||key=='Y')
//			{
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				break;
//			}
//			if(key=='n'||key=='N')
//			{
//				Uart_SendByte(key);
//				Uart_SendByte('\n');
//				return 0;
//			}				
//		}
//	}
//
//	locnode.ip = IP_ADDRESS = t_ip;
//	locnode.gate = GATE_ADDRESS = t_gate;
//	locnode.mask = MASK_ADDRESS = t_mask;
//	MCLK_M = t_m; MCLK_P = t_p; MCLK_S = t_s;
//	SERIAL_BAUD = t_baud;
//
//	i = 8000;
//	while(i--);
//	ChangePllValue(MCLK_M, MCLK_P, MCLK_S);
//
//	i = 8000;
//	while(i--);		
//	Uart_Init(0,SERIAL_BAUD);
//	Uart_Getch();
//	
//	return 0;
//
//}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区av| 午夜精品影院在线观看| 亚洲444eee在线观看| 91电影在线观看| 洋洋av久久久久久久一区| 91国内精品野花午夜精品 | 久久久久88色偷偷免费| 久久国产欧美日韩精品| 亚洲精品在线三区| 成人免费观看男女羞羞视频| 国产欧美日韩亚州综合| 波波电影院一区二区三区| 亚洲欧美国产毛片在线| 欧美美女黄视频| 国产一区二区三区国产| 中文字幕中文乱码欧美一区二区| 白白色亚洲国产精品| 亚洲精品高清在线观看| 久久99国产精品久久| 久久精品一区四区| 色菇凉天天综合网| 日本视频一区二区| 日本一区二区在线不卡| 在线视频国内一区二区| 蜜臀久久99精品久久久久宅男| 久久一区二区视频| 91视频91自| 免费成人深夜小野草| 国产精品女主播av| 欧美福利视频一区| 亚洲丝袜精品丝袜在线| 欧美一级日韩一级| www.性欧美| 老司机免费视频一区二区三区| 国产精品视频观看| 欧美精品色综合| 岛国精品一区二区| 日日夜夜免费精品| 国产精品久久久久久久岛一牛影视| 欧美性猛片xxxx免费看久爱| 国产剧情av麻豆香蕉精品| 夜夜操天天操亚洲| 国产精品乱码人人做人人爱| 激情五月播播久久久精品| 亚洲人精品一区| 精品三级在线观看| 一本色道久久综合狠狠躁的推荐| 麻豆成人91精品二区三区| 亚洲精品高清视频在线观看| xnxx国产精品| 欧美一卡二卡三卡| 欧美亚洲国产一区二区三区 | 中文字幕第一页久久| 狠狠狠色丁香婷婷综合激情 | 亚洲欧美日韩国产一区二区三区| 久久影院电视剧免费观看| 正在播放一区二区| 99re免费视频精品全部| 国产九九视频一区二区三区| 日韩中文字幕亚洲一区二区va在线 | 91精品国产91久久久久久一区二区| 亚洲综合色区另类av| 国产欧美日韩综合精品一区二区| 91精品国产综合久久国产大片| 91成人网在线| 91丝袜高跟美女视频| 成人黄色免费短视频| 国产一区在线精品| 精品中文字幕一区二区小辣椒| 日本不卡一区二区三区| 亚洲国产成人av网| 亚洲第一电影网| 一区二区三区资源| 有坂深雪av一区二区精品| 国产精品成人午夜| 日韩一区欧美一区| 一区二区中文字幕在线| 国产精品久久二区二区| 国产日韩欧美一区二区三区综合| 欧美成人精品二区三区99精品| 3751色影院一区二区三区| 欧美日韩在线观看一区二区| 色美美综合视频| 精品1区2区3区| 欧美高清hd18日本| 欧美xxxxx牲另类人与| 欧美变态口味重另类| 精品嫩草影院久久| 国产亚洲综合性久久久影院| 久久久五月婷婷| 中文字幕av一区二区三区| 国产喷白浆一区二区三区| 国产精品午夜免费| 一区二区三区四区蜜桃| 一区二区三区**美女毛片| 亚洲五码中文字幕| 免费看日韩a级影片| 极品尤物av久久免费看| 国产.精品.日韩.另类.中文.在线.播放| 国产成人鲁色资源国产91色综 | 免费日韩伦理电影| 国内精品久久久久影院一蜜桃| 久久精品国产免费| 国产精品成人免费在线| 有码一区二区三区| 老司机午夜精品| 成人av手机在线观看| 欧洲一区在线观看| 韩国欧美国产一区| 99久久精品国产毛片| 日本高清不卡一区| 日韩一区二区三区精品视频| 久久精品视频在线免费观看| 亚洲欧美日韩精品久久久久| 天天操天天综合网| 国产成人精品1024| 欧美日韩在线播放三区四区| 欧美精品一区二区三区一线天视频| 国产精品另类一区| 香蕉久久夜色精品国产使用方法| 精品国产青草久久久久福利| 欧美国产精品专区| 午夜精品久久久久久久久久久 | 国产精品一区二区久久不卡| 色视频欧美一区二区三区| 9191国产精品| 国产精品久久久久久久久免费桃花| 午夜成人在线视频| 成人免费观看男女羞羞视频| 8v天堂国产在线一区二区| 91视频在线观看| 久久久影院官网| 亚洲成av人**亚洲成av**| 国产精品88av| 欧美亚洲国产怡红院影院| 欧美经典一区二区| 日本不卡在线视频| 欧洲激情一区二区| 国产精品卡一卡二| 国产精品一区二区免费不卡| 91精品国产入口| 亚洲午夜一区二区| 99精品久久99久久久久| 欧美成人在线直播| 日韩国产成人精品| 成人国产精品免费观看视频| 日韩免费高清av| 午夜不卡在线视频| 91搞黄在线观看| 国产精品久线观看视频| 国产乱码精品一品二品| 91精品国产综合久久久蜜臀图片| 亚洲女同女同女同女同女同69| 激情综合色播五月| 欧美一区二区三区不卡| 亚洲gay无套男同| 欧美午夜寂寞影院| 亚洲视频免费看| 91视频免费观看| 亚洲精品国产第一综合99久久| av中文字幕亚洲| 国产精品国产三级国产专播品爱网 | 蜜臀va亚洲va欧美va天堂| 在线成人高清不卡| 三级影片在线观看欧美日韩一区二区| 91美女片黄在线观看| 亚洲视频综合在线| 99久久夜色精品国产网站| 中文字幕国产一区| 99久精品国产| 一区二区三区在线观看欧美| av成人免费在线| 亚洲少妇30p| 在线亚洲高清视频| 亚洲国产综合视频在线观看| 日本高清无吗v一区| 亚洲成人资源在线| 欧美丰满少妇xxxxx高潮对白| 日韩激情一二三区| 欧美一区二区黄色| 麻豆国产欧美日韩综合精品二区| 精品91自产拍在线观看一区| 国产精品888| 亚洲视频在线一区| 欧美影院一区二区三区| 欧美剧情电影在线观看完整版免费励志电影 | 日韩国产一二三区| 欧美理论电影在线| 老司机免费视频一区二区三区| 日韩美女视频在线| 国产成a人亚洲| 亚洲另类一区二区| 91麻豆精品国产91久久久久久久久| 秋霞午夜av一区二区三区| 久久夜色精品国产噜噜av| 成人aaaa免费全部观看| 亚洲国产视频在线| 欧美大白屁股肥臀xxxxxx| 六月丁香婷婷久久| 久久久久国产精品麻豆|