⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _debug.h

📁 用于开发Linux的Bootloader源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
							 i_printf("Data 0x%x is write to 0x%x. \n\r",get_data,get_add);
							 break;
						 case '5':
						     r_back=50;
							 break;
						 default:
							 break;
						}
					 if(r_back>2) break;
					}
				 if(r_back==50) break;
				 r_back=0;
				}
			 break; 
			 case '2':
				 return; 		 
		}  
}}   
void set_ip_address(void)
    {
	 unsigned char iic_ip_add[10];
	 char get_ip[16];
	 char i;
	 int error;
	 for(i=0;i<=8;i++)    iic_ip_add[i]=iicread(iic_ip_addr_use1+i);
	 if((iic_ip_add[0]!=0xaa)||(iic_ip_add[2]!='.')||(iic_ip_add[4]!='.')||(iic_ip_add[6]!='.')||(iic_ip_add[8]!=0xaa))
	    {		 i_printf("\r\nIP Address Data Error!Please Set!\r\n");		}
	 else 
	    {
		 i_printf("\r\nNow Board IP is ");
		 i_printf("%d",iic_ip_add[1]);put_char(0, iic_ip_add[2]);
		 i_printf("%d",iic_ip_add[3]);put_char(0, iic_ip_add[4]);
		 i_printf("%d",iic_ip_add[5]);put_char(0, iic_ip_add[6]);
		 i_printf("%d",iic_ip_add[7]);
		}
	 i_printf("\r\nDo you want reset IP?   (Y/N)  \r\n");
	 i=get_char(0);
     if(i=='y')
	    {
		 i_printf("\r\nPlesase Input new address\r\n");
		 i=0;
		 get_ip[i]=get_char(0);
		 do{
			 i_printf("%c",get_ip[i]);
			 if(!(get_ip[i]=='1'||get_ip[i]=='2'||get_ip[i]=='3'||get_ip[i]=='4'||get_ip[i]=='5'||get_ip[i]=='6'||get_ip[i]=='7'||get_ip[i]=='8'||get_ip[i]=='9'||get_ip[i]=='0'||get_ip[i]=='.'))
				{
				 i_printf("\r\n\r\nSorry,IP Input Error!\r\n\r\n");
				 break;
				}
			 i+=1;
			 if(i>=16) 
				{
				 i_printf("\r\nSorry,IP Input Overflow!\r\n");
				 break;
				}
			 get_ip[i]=get_char(0);
			 
			}while(get_ip[i]!=0x0d);
			i_printf("\r\n");
		 if(get_ip[0]>='3'||get_ip[3]!='.'||get_ip[4]>='3'||get_ip[7]!='.'||get_ip[8]>='3'||get_ip[11]!='.'||get_ip[12]>='3')
			{
			 i_printf("Sorry,Input Error!\r\n\r\n");
			}
		 else
		    {
			 error=0;
			 error=iicwrite(iic_ip_addr_use1,0xaa);
			 error+=iicwrite(iic_ip_addr_use3,'.');
			 error+=iicwrite(iic_ip_addr_use5,'.');
			 error+=iicwrite(iic_ip_addr_use7,'.');
			 error+=iicwrite(iic_ip_addr_use9,0xaa);
			 for(i=0;i<=15;i++)    get_ip[i]=get_ip[i]-0x30;
			 iic_ip_add[0]=0;
			 iic_ip_add[0]=100*get_ip[0]+10*get_ip[1]+get_ip[2];
			 error+=iicwrite(iic_ip_addr_use2,iic_ip_add[0]);
			 iic_ip_add[0]=0;
			 iic_ip_add[0]=100*get_ip[4]+10*get_ip[5]+get_ip[6];
			 error+=iicwrite(iic_ip_addr_use4,iic_ip_add[0]);
			 iic_ip_add[0]=0;
			 iic_ip_add[0]=100*get_ip[8]+10*get_ip[9]+get_ip[10];
			 error+=iicwrite(iic_ip_addr_use6,iic_ip_add[0]);
			 iic_ip_add[0]=0;
			 iic_ip_add[0]=100*get_ip[12]+10*get_ip[13]+get_ip[14];
			 error+=iicwrite(iic_ip_addr_use8,iic_ip_add[0]);
			 if(error<=-2)  i_printf("\r\nIIC EEPROM Write Error!\r\n\r\n");
			 else  i_printf("\r\nAddress is saved!\r\n\r\n");
			}
		}
	 else i_printf("\r\n");
	}   
void iic_r_w(void)
{
     char r_back=0,i,in_addr[12],in_data[12];
	 unsigned int get_add,get_data,rw;
	 volatile unsigned long *get_add_p;
	 while(1)
	    {
		 i_printf("\n\r");
		 i_printf("+----------------------------------+\n\r");
		 i_printf("|Welcome To IIC READ&WRITE (V1.0)  |\n\r");
		 i_printf("|  (1) Start to use                |\n\r");
		 i_printf("|  (2) Exit                        |\n\r");
		 i_printf("+----------------------------------+\n\r");
		 i=get_char(0);
		 switch(i)
			{
			 case '1':
			 while(1)
			    {
				 i_printf("\r\nPlease Input Read/Write Address!\r\n");
				 r_back=0;
				 for(i=0;i<=12;i++) in_addr[i]=0;
				 i=8;
				 in_addr[i]=get_char(0);
				 do{
					 i_printf("%c",in_addr[i]);
					 if(!(in_addr[i]=='1'||in_addr[i]=='2'||in_addr[i]=='3'||in_addr[i]=='4'||in_addr[i]=='5'||in_addr[i]=='6'||in_addr[i]=='7'||in_addr[i]=='8'||in_addr[i]=='9'||in_addr[i]=='0'||in_addr[i]=='x'||in_addr[i]=='a'||in_addr[i]=='b'||in_addr[i]=='c'||in_addr[i]=='d'||in_addr[i]=='e'||in_addr[i]=='f'||in_addr[i]=='s'))
						{
						 i_printf("\r\n\r\nSorry,Input Error!\r\n\r\n");
						 r_back=5;
						 break;
						}
					 i-=1;
					 if(i<=0) 
						{
						 i_printf("\r\nSorry,Input Overflow!\r\n");
						 r_back=5;
						 break;
						}
					 in_addr[i]=get_char(0);
					}while(in_addr[i]!=0x0d);
				 if(in_addr[i]==0x0d) in_addr[i]=0;
				 if(in_addr[8]!='0')	{i_printf("\n\rInput Address Error!\n\r");r_back=8;}
				 if(in_addr[7]=='s') 		 { ;	}
				 else if(in_addr[7]=='x')   { ; }
				 else
				    {
				     i_printf("\n\rInput Address Error!\n\r"); 
				     r_back=8;
				    }				 
				 if(r_back>2) break;
				 i_printf("\r\nYour Input Address is ");
				 for(i=8;i>=3;i--)
				    {
					 if(in_addr[i]==0) put_char(0, '0');
					 else put_char(0, in_addr[i]);
					}
				 i_printf("\r\n");
				 for(i=6;i>=3;i--)
					{
					 if(in_addr[i]>=0x30&&in_addr[i]<=0x40) in_addr[i]=in_addr[i]-0x30;  // 
					 if(in_addr[i]>=0x60&&in_addr[i]<=0x66) in_addr[i]=in_addr[i]-0x57;  // change ASCALL to num
					}
				 get_add=0;
				 for(i=6;i>=3;i--)
					{
					 get_add=get_add<<4;
					 get_add|=in_addr[i];
					}
				 if(get_add>=0x7000)
				    {
					 i_printf("Adress cann't Exceed 0x7000 !\n\r");
					 break;
					}
				 r_back==0;
				 while(1)
					{
					 i_printf("\n\r");
					 i_printf("+-------------------------------------------+\n\r");
					 i_printf("|  1.Read 2.Write 3.Reinput 4.Rewrite 5.Back|\n\r");
					 i_printf("+-------------------------------------------+\n\r");
						 i=get_char(0);
					 switch(i)
						{
						 case '1':
							 rw=iicread(get_add);
							 i_printf("\r\nYour Input Address is 0x%x",get_add);
							 i_printf("\r\n");
							 i_printf("Data is HEX[0x%x]   ",rw);
							 i_printf("DEC[%d]   ",rw);
							 i_printf("ASCALL[",rw);
							 put_char(0, rw);i_printf("]  ",rw);
							 i_printf("\r\n");
							 break;
						 case '2':
							 i_printf("\r\nPlease Input Write Data!\r\n");
							 for(i=0;i<=12;i++) in_data[i]=0;
							 i=11;
							 in_data[i]=get_char(0);
							 do{
								 i_printf("%c",in_data[i]);
								 if(!(in_data[i]=='1'||in_data[i]=='2'||in_data[i]=='3'||in_data[i]=='4'||in_data[i]=='5'||in_data[i]=='6'||in_data[i]=='7'||in_data[i]=='8'||in_data[i]=='9'||in_data[i]=='0'||in_data[i]=='x'||in_data[i]=='a'||in_data[i]=='b'||in_data[i]=='c'||in_data[i]=='d'||in_data[i]=='e'||in_data[i]=='f'))
									{
									 i_printf("\r\n\r\nSorry,Input Error!\r\n\r\n");
									 r_back=5;
									 break;
									}
								 i-=1;
								 if(i<=5) 
									{
									 i_printf("\r\nSorry,Input Overflow!\r\n");
									 r_back=5;
									 break;
									}
								 in_data[i]=get_char(0);
								}while(in_data[i]!=0x0d);
							 if(in_data[i]==0x0d) in_data[i]=0;
							 if(in_data[11]!='0'||in_data[10]!='x') 
								{
								 i_printf("\n\rInput DATA Error!\n\r"); 
								 r_back=8;
								}
							 if(r_back>2) {r_back=0;break;}
							 for(i=9;i>=2;i--)
								{
								 if(in_data[i]>=0x30&&in_data[i]<=0x40) in_data[i]=in_data[i]-0x30;  // 
								 if(in_data[i]>=0x60&&in_data[i]<=0x66) in_data[i]=in_data[i]-0x57;  // change ASCALL to num
								}
							 get_data=0;
							 for(i=9;i>=8;i--)
								{
								 get_data=get_data<<4;
								 get_data|=in_data[i];
								}
							 i_printf("\r\n");
							 i_printf("Your Input Data is 0x%x \n\r",get_data);
							 break;
						 case '3':
							 r_back=25;
							 break;
						 case '4':
						     iicwrite(get_add,get_data);
							 i_printf("Data 0x%x is write to 0x%x. \n\r",get_data,get_add);
							 break;
						 case '5':
						     r_back=50;
							 break;
						 default:
							 break;
						}
					 if(r_back>2) break;
					}
				 if(r_back==50) break;
				 r_back=0;
				}
			 break; 
			 case '2':
				 return;  		 
		}  }}   
void Set_Informatiom(void)
{
     char get_info[74];
	 char lo,aa;
	 i_printf("\r\n");
	 i_printf("Now your information is\r\n");	 
	 for(lo=3;lo<=63;lo++) 
	    {
		  aa=iicread(iic_infor_user+lo);
		  i_printf("%c",aa);
		}
	 i_printf("\r\n");
	 i_printf("Do You Want Set New Information?   (Y/N)");
	 i_printf("\r\n");
	 lo=0;
	 lo=get_char(0);
	 if(lo=='y')
	    {
		 for(lo=0;lo<=63;lo++) get_info[lo]=0x20;
		 i_printf("\r\n");
		 i_printf("Plesase Input New Information(<60 char)!");
		 i_printf("\r\n");
		 lo=3;
		 get_info[lo]=get_char(0);
		 do{
			 i_printf("%c",get_info[lo]);
			 lo++;
			 if(lo>=63) break;
			 get_info[lo]=get_char(0);
		    }while(get_info[lo]!=0x0d);
			get_info[lo]=0x20;
		 i_printf("\r\n");
		 i_printf("Your input is ");
		 i_printf("\r\n");
		 for(lo=3;lo<=60;lo++) i_printf("%c",get_info[lo]);
		 i_printf("\r\n");
		 i_printf("Are you save?   (Y/N)");
		 i_printf("\r\n");
		 lo=get_char(0);
		 if(lo=='y') 
			{
			 for(lo=3;lo<=60;lo++) iicwrite(iic_infor_user+lo,get_info[lo]);
			}
		 i_printf("\r\n");
		 i_printf("Your information is saved!!");
		 i_printf("\r\n");	 			
		}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -