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

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

?? shell.c

?? arm9.rar
?? C
?? 第 1 頁 / 共 3 頁
字號:
	return 0;
}

/*******************************************************************************************************/
int GetDate(int argc, char *argv[])
{
	int i, error = 0;
	char *str;
	unsigned int year, month, day;
	
	RtcGetTime(&SysTime);
	printf("Current date is %x-%x-%x [%s]\n", SysTime.year, SysTime.month, SysTime.day, WeekDay[(SysTime.weekday-1U)%7U]);

	if(argc<2)
		return 0;	
		
	str = argv[1];	
	
	if(str[4]!='-')
		error=1;
	str[4]=0;
	year = strtobcd(str);	
	if((year<0x2000)||(year>0x2099)||error) {
		printf("year error!\n");
		return -1;
	}
				
	str += 5;
	i = 0;		
	if(str[++i]!='-')
		if(str[++i]!='-')
			error = 1;
	str[i] = 0;					
	month = strtobcd(str);
	if((month-1)>0x11||error) {
		printf("month error!\n");
		return -1;
	}		
		
	str += i+1;		
	i = 0;
	if(str[++i]!=0)
		if(str[++i]!=0)
			error = 1;
	str[i] = 0;		
	day = strtobcd(str);
	if((day-1)>0x30||error) {
		printf("day error!\n");
		return -1;
	}	
	
	SysTime.year  = year;
	SysTime.month = month;
	SysTime.day   = day;		
	RtcSetDay(&SysTime);

	printf("Set ");
	GetDate(0, NULL);
	
	return 0;
}

/*******************************************************************************************************/
int SetWeek(int argc, char *argv[])
{
	unsigned int i;
	int error = 0;	
	
	if(argc<2)
		error = 1;	
	
	i = strtodec(argv[1], 1);
	if((i-1)>6)		//0-1 = 0xffffffff
		error = 1;
	
	if(!error) {
		SysTime.weekday = i;	//1~7
		RtcSetWeek(&SysTime);
		//printf("Set to %s\n", WeekDay[i-1]);
		GetDate(0, NULL);
	} else {
		printf("Please enter a number to set weekday\n");
		for(i=1; i<=7; i++) {
			printf("%d : %s\n", i, WeekDay[i-1]);
		}
	}
	
	return 0;	
}

#endif
/*******************************************************************************************************/
#ifdef	SET_SYSCLK_SUPPORT

int ChgSysClk(int argc, char *argv[])
{	
	
	printf("This function is for adjust system running clock!!!\n");

	ShowSysClock(0, NULL);	
	
	if(!SetSysClock()) {
		GetSysClockPara(Env.clk_para);	
		TimerInit(TIMER_FREQ);		
		SerialChgBaud(Env.baud);
		Delay(100);
		ShowSysClock(0, NULL);
	}
	
	return 0;
}

#endif
/*******************************************************************************************************/
int ChgBaudRate(int argc, char *argv[])
{
	int i;
	
	for(i=0; BaudSet[i]; i++)
		printf("%d : %d\n", i, BaudSet[i]);
		
	printf("Please enter choice : ");
	
	while(1)
	{
		int ch = getch();
		
		if(ch<='6'||ch>='0')
		{
			Env.baud = BaudSet[ch-'0'];
			printf("Baud rate set to : %d\nPress any key to continue\n", Env.baud);
			i = 0x4000;
			while(i--);		//wait transmit end
			SerialChgBaud(Env.baud);
			getch();
			break;
		}
			
	}	

	return 0;
}


/*******************************************************************************************************/
#ifdef	TFTP_DOWNLOAD_SUPPORT

int SetIpAddr(int argc, char *argv[])
{
	int i, j, err = 0;
	char *str;
	char ch = '.';
	U32 ip[4];
	
	if(argc<2) {
		printf("IP address : %u.%u.%u.%u\n", (Env.nic_cfg.ip>>24)&0xff, (Env.nic_cfg.ip>>16)&0xff, (Env.nic_cfg.ip>>8)&0xff, Env.nic_cfg.ip&0xff);
		return 0;
	}
	
	str = argv[1];
	
	for(j=0; j<4; j++) {
		if(j==3)
			ch = 0;
		i = 0;
		if(str[++i]!=ch)
			if(str[++i]!=ch)
				if(str[++i]!=ch)
					err = 1;
		str[i] = 0;
		ip[j] = strtodec(str, i);
		if((ip[j]>=255)||err) {
			printf("IP address error\n");
			return -1;
		}					
		str += i+1;
	}
	
	printf("Set IP address : %u.%u.%u.%u\n", ip[0], ip[1], ip[2], ip[3]);					
	Env.nic_cfg.ip = (ip[0]<<24)|(ip[1]<<16)|(ip[2]<<8)|ip[3];	
	return 0;	
}

int LoadFromNet(int argc, char *argv[])
{
	if(argc<2)
		download_addr = DFT_DOWNLOAD_ADDR;
	else {
		unsigned long tmp;
		tmp = strtoul((char*)argv[1]);
		download_addr = (tmp==-1)?download_addr:tmp;
	}

	printf("Now download file from net to 0x%x...\n", download_addr);
	
	download_len = -1;
	tftp_main(download_addr, Env.nic_cfg.ip);
	if(download_len==-1) {
		puts("Tftp Download Aborted!\n");
	} else
		printf("\nReceived %x bytes success\n", download_len);
		
	return download_len;
}

int NetLoadRun(int argc, char *argv[])
{	
	if(LoadFromNet(argc, argv)>0) {
		RunProgram(0, NULL);
	}
	return 0;	
}

#endif	/*TFTP_DOWNLOAD_SUPPORT*/


//中斷入口內容不可確定,不要用中斷
int LoadFromUart(int argc, char *argv[])
{
	int i, size;
	unsigned short dnCS, CheckSum;
	unsigned char *buf = (unsigned char *)DFT_DOWNLOAD_ADDR;
	unsigned char RxTmp[8];
	
	if(argc<2)
		download_addr = DFT_DOWNLOAD_ADDR;
	else {
		unsigned long tmp;
		tmp = strtoul((char*)argv[1]);
		download_addr = (tmp==-1)?download_addr:tmp;
	}
	
	buf = (unsigned char *)download_addr;
	
	printf("Now download file from uart0 to 0x%x...\n", download_addr);
	
	i = 0;
	while(i<4)
		RxTmp[i++] = getch();
    
    i = 0;
    size = *(unsigned long *)RxTmp - 4;
	while(i<size)
		buf[i++] = getch();
	
	download_len = size-2;	
	
	dnCS = (buf[size-1]<<8)|buf[size-2];
	CheckSum = 0;
	for(size -= 3; size>=0; size--)
		CheckSum += buf[size];
	if(dnCS!=CheckSum) {
//		printf("get CS=0x%08x, cal CS=0x%08x\n", dnCS, CheckSum);
		puts("\nCheckSum error!\n");
		download_len = -1;
	} else
		printf("\nReceived %x bytes success\n", download_len);
		
	return download_len;
}

int UartLoadRun(int argc, char *argv[])
{
	if(LoadFromUart(argc, argv)>0) {
		RunProgram(0, NULL);
	}
	return 0;
}

//*****************************************************************************
int RunProgram(int argc, char *argv[])
{
	void (*fp)(U32, U32) = (void (*)(U32, U32))download_addr;
		
	if(argc>1) {
		unsigned int p = strtoul((char *)argv[1]);
		if((p!=-1)&&!(p&3))
			fp = (void (*)(U32, U32))p;			
	}	
	
	printf("Run program from 0x%x\n", fp);
	if(argc) {
		printf("are you sure?");
		if(!getyorn())
			return 0;
	}
		
	DisableInt();

	if(((U32)fp&~0xfff)!=(BOOT_PARAMS_ADDR&~0xfff)) {
		SetParams();		
		Delay(10);
	}
	
	CacheFlush();
	CacheDisable();	//!!!???,先clean DCache, 再Disable DCache
	BoardPrepareRun();	
	
	(*fp)(0, Env.machine);
	
	return 0;
}

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

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

	if(src==-1||dst==-1||size==-1) {//||(dst-size)<src) {
		printf("give error address\n");
		return	-1;
	}
		
	memcpy((char *)dst, (char *)src, size);

	printf("move finished!\n");

	return 0;
}

int MoveRun(int argc, char *argv[])
{
	unsigned long size;
	char *s, *r, *i;

	//printf("clear memory from 0x%x to 0x%x\n", DRAM_BASE, __ENTRY);
	//memset((char *)DRAM_BASE, 0, (U32)__ENTRY-DRAM_BASE);
	
	if((Env.prog_s_addr>=ROM_END)||(Env.prog_s_addr&0x3)||(Env.prog_r_addr&0x3))
	{
		puts("Bad address\n");
		return -1;
	}
	
	//SetParams();
	
	s = (char *)Env.prog_s_addr;
	r = (char *)Env.prog_r_addr;
	i = (char *)(Env.initrd_addr&~0xfff);
	size = 0x100000;//ROM_END - Env.prog_s_addr;
	
	#ifdef	NAND_FLASH_SUPPORT
		if(Env.saved_in&1)
		{
			if(RdFileFrNF(Env.prog_r_addr, (U32)s>>12))
				return -1;
			if(Env.saved_in&2)
				if( RdFileFrNF(DFT_INITRD_ADDR, (U32)i>>12) != 0 )
					return -1;
		}
		else
	#endif

	#ifdef	NOR_FLASH_SUPPORT
		{
			NorFlashRead(r, s, size);
			if(Env.saved_in&2)
				NorFlashRead(DFT_INITRD_ADDR, i, 0x100000);
		}
	#else
			return 0;
	#endif	

	download_addr = Env.prog_r_addr;
	RunProgram(0, NULL);
	
	return 0;
}

int Reset_System(int argc, char *argv[])
{	
	void (*fp)(U32) = (void (*)(U32))0;

	printf( "\tAre you sure to reset ? " ) ;
	if(!getyorn())

	DisableInt();
	CacheFlush();
	CacheDisable();	//!!!???,先clean DCache, 再Disable DCache
	
	(*fp)( 0 ) ;

	return 0;	
}

#ifdef	NOR_FLASH_SUPPORT

int ProgFlash(int argc, char *argv[])
{
	unsigned int size = ~0;
	unsigned int data_begin = ~0;
	unsigned int prog_begin = ~0;
	int overwrite0 = 1;
	int modify_a0 = 0;
	unsigned int bios_load_addr;		 

	prog_begin = Env.prog_s_addr;
	data_begin = download_addr;
	size       = download_len;
	
	if(!strncmp(argv[argc-1], "-no0", 5)) {
		overwrite0 = 0;
		argc--;
	}
	
	if(argc>1)
		prog_begin = strtoul((char *)argv[1]);
	if(argc>2)
		data_begin = strtoul((char *)argv[2]);
	if(argc>3)	
		size       = strtoul((char *)argv[3]);
	
	if((prog_begin==-1)||(data_begin==-1)||(size==-1)) {
		printf("Arguments error!\n");
		goto err_exit;
	}
	
	if(!size) {
		printf("Write 0 Bytes!\n");		
	} else {
		printf("program flash begin @0x%x, from ram data @0x%x, size = %dBytes\nAre you sure?", prog_begin, data_begin, size);

		if(!getyorn())
			return 0;
	
		if((prog_begin==0)&&overwrite0) {
			unsigned int ins;
		
			ins = *(unsigned int *)data_begin;				
			if((ins>>24)==0xea)			// instruction:	b	xxxx, now just support b instruction!!!			
				bios_load_addr = ((ins&0xffffff)<<2)+8;
			else
				bios_load_addr = 4;		// other instruction, jump to 4
													
			//bios_load_addr = (bios_load_addr-BIOS_LOAD-8)/4;
			//bios_load_addr = (bios_load_addr&0xffffff)|0xea000000;					
				
			*(unsigned int *)data_begin = 0xea000000+(BIOS_BASE-8)/4;				
		
			modify_a0 = 1;
		}
		
		NorFlashProg(prog_begin, data_begin, size);
	
		if(modify_a0)			
			NorFlashProg(BIOS_LOAD, (U32)&bios_load_addr, 4);
	}
		
	return 0;
	
err_exit:
	printf("Usage:	prog a1 a2 size [-no0]\na1 = program begin address\na2 = data pointer to ram\nsize = program size(Bytes)\n-no0 = don't overwrite address 0\n");
	return -1;
}
//*****************************************************************************

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

	int (*DnProg)(int argc, char *argv[]);

	int prog_bios = 0;
#ifdef	TFTP_DOWNLOAD_SUPPORT	
	DnProg = LoadFromNet;
#else
	DnProg = XmodemReceive;
#endif	 
	
	if(argc>1) {
		if(strncmp(argv[1], "-b", 3)==0)
			prog_bios = 1;
		else if(strncmp(argv[1], "-c", 3)==0)
			DnProg = LoadFromUart;
		else if(strncmp(argv[1], "-x", 3)==0)
			DnProg = XmodemReceive;
		else
			goto err_exit;
			
		if(argc>2) {
			if(strncmp(argv[2], "-b", 3)==0)
				prog_bios = 1;
			else if(strncmp(argv[2], "-c", 3)==0)
				DnProg = LoadFromUart;
			else if(strncmp(argv[1], "-x", 3)==0)
				DnProg = XmodemReceive;
			else
				goto err_exit;
		}
	}

	if((DnProg)(0, NULL)<0)
		return 0;
	
	ultostr((char *)ch_tmp[0], 0);	
	ultostr((char *)ch_tmp[1], download_addr);	 	
	ultostr((char *)ch_tmp[2], download_len);	

	para_ptr[1] = ch_tmp[0];
	para_ptr[2] = ch_tmp[1];
	para_ptr[3] = ch_tmp[2];
	para_ptr[4] = prog_bios?"-no0":NULL;
	
	ProgFlash(prog_bios?5:4, para_ptr);
	return	0;

err_exit:
	printf("Usage ap [-b] [-c] [-x]\n-b  for bios\n-c  download by uart\n-x  xmodem download\n");
	return -1;
}

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

	return 0;
}

int BootLoader(int argc, char *argv[])
{	
	printf("boot from flash, are you sure?");
	if(argc)
		if(!getyorn())
			return 0;

	memcpy((char *)DRAM_BASE, (char *)ROM_BASE, ROM_SIZE);
//	download_addr = BIOS_LOAD;
	download_addr = *(U32 *)BIOS_LOAD;
	RunProgram(0, NULL);
	return 0;
}

int BackupBios(int argc, char *argv[])
{
	printf("move bios to the top of rom,are you sure?");

	if(!getyorn())
		return 0;
	
	NorFlashRead(DFT_DOWNLOAD_ADDR, 0, 0xe000);
	NorFlashProg(BIOS_BASE, DFT_DOWNLOAD_ADDR, 0xe000);

	return 0;
}

#endif	/*NOR_FLASH_SUPPORT*/

int MemoryDisplay(int argc, char*argv[])
{
	static unsigned int src_addr;
	unsigned int src;
	unsigned int i, j;
//	unsigned int tmp_data[64];
	
	if(argc > 1) {
		unsigned int tmp = strtoul((char *)argv[1]);
		src_addr  = (tmp==-1)?src_addr:tmp;
		src_addr &= ~0xf;
	}
	
	printf("Press ESC key to exit, other key to continue...\n");

	do {
		
		src = src_addr;
		src_addr += 0x100;
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品久久精品色综合| aa级大片欧美| 成人小视频免费观看| 在线视频中文字幕一区二区| 日韩一区二区免费在线电影 | 精品国产91亚洲一区二区三区婷婷| 国产亚洲人成网站| 三级不卡在线观看| 91年精品国产| 国产精品天天看| 国产一区在线看| 日韩欧美黄色影院| 日韩中文字幕91| 欧美午夜免费电影| 亚洲视频在线一区观看| 成人午夜在线播放| 欧美精品一区二区久久婷婷| 青青草一区二区三区| 欧美猛男gaygay网站| 亚洲激情自拍视频| 91在线观看视频| 国产精品女人毛片| 成人理论电影网| 久久中文娱乐网| 久久精品二区亚洲w码| 4438成人网| 日韩专区欧美专区| 欧美特级限制片免费在线观看| 亚洲三级视频在线观看| 波多野结衣中文字幕一区| 中文子幕无线码一区tr| 国产a久久麻豆| 国产精品毛片大码女人| 国产91精品免费| 1000精品久久久久久久久| 不卡视频一二三| 亚洲精品视频在线观看网站| 91精品1区2区| 亚洲第一久久影院| 91精品国产色综合久久| 精品在线视频一区| 久久亚洲免费视频| www.欧美精品一二区| 一区二区三区av电影| 欧美日韩成人激情| 久久成人免费网站| 国产精品天天摸av网| 色综合天天在线| 丝袜亚洲另类丝袜在线| 日韩一级片在线观看| 国产乱人伦偷精品视频不卡| 国产精品色婷婷| 91女厕偷拍女厕偷拍高清| 午夜精品一区二区三区电影天堂 | 9久草视频在线视频精品| 中文字幕在线观看不卡| 欧美制服丝袜第一页| 日韩成人伦理电影在线观看| 精品国产污污免费网站入口| 成人深夜在线观看| 亚洲成av人**亚洲成av**| 日韩视频一区二区在线观看| 国产99精品国产| 香港成人在线视频| 国产亚洲自拍一区| 欧美性猛交xxxxxx富婆| 韩国理伦片一区二区三区在线播放| 国产精品三级电影| 欧美人与z0zoxxxx视频| 国产成人三级在线观看| 一个色妞综合视频在线观看| 精品国产sm最大网站免费看| 一本久道久久综合中文字幕 | 天堂在线一区二区| 国产亚洲精品7777| 欧美日韩一级黄| 国产成人综合网| 石原莉奈在线亚洲二区| 国产精品水嫩水嫩| 日韩免费电影一区| 欧美色电影在线| 成人av网站免费| 精品在线免费观看| 亚洲午夜免费电影| 一色屋精品亚洲香蕉网站| 日韩欧美精品在线视频| 欧美亚州韩日在线看免费版国语版| 韩国视频一区二区| 日本在线观看不卡视频| 一区二区三区在线影院| 国产蜜臀av在线一区二区三区| 欧美一二三在线| 欧美探花视频资源| 91精品福利视频| 色综合一区二区| 91污在线观看| 丰满放荡岳乱妇91ww| 国产一区二区三区| 麻豆精品视频在线观看免费| 午夜激情久久久| 亚洲高清视频在线| 一区二区三区四区国产精品| 国产精品美女久久久久aⅴ国产馆| 精品欧美一区二区在线观看| 欧美一区二区三区白人| 欧美色视频在线观看| 欧美午夜一区二区| 欧美性欧美巨大黑白大战| 91久久精品网| 欧美综合视频在线观看| 欧美羞羞免费网站| 欧美亚洲国产怡红院影院| 99re这里只有精品6| 国产69精品久久777的优势| 国产成人综合在线| 成人av免费在线观看| 国产激情精品久久久第一区二区 | 亚洲国产毛片aaaaa无费看| 亚洲日本成人在线观看| 亚洲日本乱码在线观看| 一区二区成人在线视频| 亚洲一区在线观看免费| 亚洲高清不卡在线| 日韩avvvv在线播放| 久久精品av麻豆的观看方式| 国产精品自拍毛片| 成人国产电影网| 91蜜桃在线观看| 在线免费视频一区二区| 欧美日韩免费观看一区三区| 日韩欧美高清一区| 国产午夜精品久久| 一区二区三区国产豹纹内裤在线| 亚洲一区二区av电影| 日本亚洲视频在线| 国产精品亚洲人在线观看| 成人a免费在线看| 欧美私人免费视频| 精品久久久久久久久久久久包黑料| 久久理论电影网| 一区在线播放视频| 午夜激情综合网| 国产精品 欧美精品| 色屁屁一区二区| 日韩免费一区二区三区在线播放| 国产欧美日韩卡一| 亚洲综合小说图片| 国产一区三区三区| 色系网站成人免费| 欧美mv日韩mv国产网站| 中文字幕亚洲在| 男男视频亚洲欧美| 成人免费观看视频| 制服丝袜中文字幕一区| 国产精品人人做人人爽人人添| 亚洲成人一区在线| 成人免费毛片a| 91精品国产免费| 亚洲欧美视频在线观看视频| 九色porny丨国产精品| 在线观看一区不卡| 国产女人水真多18毛片18精品视频| 亚洲国产精品一区二区久久| 懂色av一区二区三区免费看| 欧美久久久久久久久| 中文字幕视频一区二区三区久| 美女看a上一区| 欧美在线高清视频| 国产欧美一区二区精品久导航 | 亚洲欧洲精品一区二区三区| 蜜臀av在线播放一区二区三区| 99久久婷婷国产综合精品电影| 日韩一二三四区| 亚洲成a天堂v人片| 91网站视频在线观看| 国产亚洲成av人在线观看导航| 日韩激情一区二区| 在线观看www91| 亚洲日本护士毛茸茸| 不卡视频免费播放| 久久精品人人做人人综合| 麻豆专区一区二区三区四区五区| 欧美天堂亚洲电影院在线播放| 亚洲欧美一区二区在线观看| 国产精品中文字幕一区二区三区| 3atv一区二区三区| 午夜影院久久久| 欧美色视频在线观看| 有码一区二区三区| 91麻豆swag| 亚洲欧美激情在线| 99re8在线精品视频免费播放| 久久老女人爱爱| 风间由美中文字幕在线看视频国产欧美| 日韩无一区二区| 久久精品99国产精品| 日韩美女一区二区三区| 激情国产一区二区 | 国产伦精品一区二区三区视频青涩 | 中文字幕一区二区三区不卡 |