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

📄 util.lst

📁 W3100A网络调试程序,可进行数据传输
💻 LST
📖 第 1 页 / 共 2 页
字号:
 215                  
 216          // Code Copy
 217             for(i = 0; i < _CODE_SIZE_; i++) {
 218                   c = __api_rd_code_byte(0x5D00+i);
 219          #ifdef KJB_UPLOAD
                       PutHTOA(c);PutByte(' ');
              #endif
 222                   __api_wr_code_byte(0x7000+i, c);
 223                   
 224                  }
 225                  
 226          #ifdef KJB_UPLOAD
                 for(i = 0; i < _CODE_SIZE_; i++) {
                       c = __api_rd_code_byte(0x7000+i);
                       PutHTOA(c);PutByte(' ');
                      }
                      PutStringLn("Jump");
              #endif           
 233                  // jump
 234                  ((void (code *)(void))0x7000)();
 235                  //f = (void *)0x6000;
 236                  //f(1);
 237                  
C51 COMPILER V6.21  UTIL                                                                   04/11/2005 14:25:52 PAGE 5   

 238                  while(1);
 239          }
 240          
 241          int Serial_Upgrade(void)
 242          {
 243                  u_int temp;
 244                  //u_char i, c;
 245          
 246          //Bin download
 247                  PutString("\n\rFile size >> ");
 248                  temp = Query_i();
 249          
 250                  PutString("\n\rTransfer File !\n\r");
 251                  if (BinDownload(temp) == 0) {
 252                          PutString("\n\rDownload Error\n");
 253                          return(0);
 254                  }else {
 255                          PutString("\n\r>Wait . ");
 256                  }
 257                  
 258                  NET_DOWN_SIZE = temp - 8;
 259                  Boot_Code_Copy();
 260          
 261          // Code Copy
 262            /*
 263             for(i = 0; i < 0xA1; i++) {
 264                   c = __api_rd_code_byte(0x5000+i);
 265                   __api_wr_code_byte(0x6000+i, c);
 266                  }
 267                  NET_DOWN_SIZE = temp - 8;
 268                  
 269                  // jump
 270                  ((void (code *)(void))0x6000)();
 271                  
 272                  while(1);
 273            */
 274                  
 275          }
 276          
 277          void Display_Banner(void)
 278          {
 279                  PutString("\n\r> Config");
 280                  PutString("\n\r<i> : Display Config");
 281                  PutString("\n\r<s> : Receive Config");
 282                  PutString("\n\r<c> : Firmware Update");
 283                  PutString("\n\r<d> : Disable DHCP");
 284                  PutString("\n\r<p> : Disable PPPoE");
 285                  PutString("\n\r<w> : Erase Passwd");
 286          
 287          #ifdef KJB_UPLOAD
                      PutString("\n\r<t> : Test");
              #endif
 290                  
 291                  PutString("\n\r<e> : Exit");
 292                  PutString("\n\r>Type command : ");
 293          }
 294          
 295          
 296          int Check_Config(void)
 297          {
 298                  u_char c, flag = 1;
 299                  
C51 COMPILER V6.21  UTIL                                                                   04/11/2005 14:25:52 PAGE 6   

 300          #ifdef KJB_UPLOAD
                      u_char i, k;
              #endif
 303                  
 304                  Display_Banner();
 305                  while(flag) {
 306                          if (write != read) {
 307                                  c = sio_buf[read++];
 308                                  PutByte(c);PutByte(0x0a);PutByte(0x0d);
 309                                  switch(c) {
 310                                          
 311          #ifdef KJB_UPLOAD
                                              case 't' : 
                                              for (i = 0; i < 10; i++) {
                                                      k = __api_wr_code_byte(0x7000+i, 0xAA);
                                                      PutHTOA(k);PutByte(' ');
                                              }
              
                                              for (i = 0; i < 10; i++) {
                                                      k = __api_rd_code_byte(0x7000+i);
                                                      PutHTOA(k);PutByte(' ');
                                              }
                                                      break;
              #endif                          
 324                                          case 'i' : 
 325                                                          DispalySetting();
 326                                                          PutByte(0x0a);PutByte(0x0d);
 327                                                          PutString("> ");
 328                                                          break;
 329                                          case 's' : 
 330                                                          ReceiveDefault();
 331                                                          flag = 0;
 332                                                          break;
 333                                          case 'c' : 
 334                                                          if (Serial_Upgrade() == 0) return(0);
 335                                                          break;
 336                                          case 'd' :
 337                                                          EEP_Write(EE_DHCP, 0);
 338                                                          ConfigMsg.s.DHCP = 0;
 339                                                          flag = 0;
 340                                                          break;
 341                                          case 'p' :
 342                                                          EEP_Write(EE_PPPOE, 0);
 343                                                          ConfigMsg.s.PPPoE = 0;
 344                                                          flag = 0;
 345                                                          break;
 346                                          case 'q' : 
 347                                                          flag = 0;
 348                                                          break;
 349                                          case 'e' : 
 350                                                          flag = 0;
 351                                                          break;
 352                                          default :
 353                                                          flag = 0;
 354                                                          break;
 355                                  } //switch
 356                          }
 357                  } // while                              
 358          }
 359          
 360          void Check_Pin12(void)
 361          {
C51 COMPILER V6.21  UTIL                                                                   04/11/2005 14:25:52 PAGE 7   

 362                  u_char i;
 363                  
 364                  for (i = 0; i < 3; i++) {
 365                          wait_1ms(3);
 366                          if ((P1 & 0x04) == 0x00) { // if Pin is low
 367                                  Check_Config();
 368                          }
 369                  }
 370          }
 371          
 372          void Check_key(void)
 373          {
 374                  u_char i;
 375                  
 376          // Check key 'c', 'd', 'p'
 377                  for(i = 0; i < 7; i++)
 378                  {
 379                          wait_10ms(2);
 380                          if (write > 0) {
 381                                  if (sio_buf[read++] == 'p') {
 382                                          PutByte(sio_buf[read]);
 383                                          Check_Config();
 384                                  }
 385                          }
 386                          PutByte('.');
 387                  }
 388          }
 389          
 390          
 391          
 392          void New_Pro(void)
 393          {
 394                  u_char i, j, temp;
 395                  u_char flag = 1;
 396                  
 397                  PutString("\n\rIIM Ver : STD\n\r");
 398                  
 399                  EA = 0;
 400                          write = 0;
 401                  EA = 1;
 402                  
 403                  // Command
 404                  while(flag) {
 405                          if (write > 0) {
 406                                  if (sio_buf[0] == 'S') {
 407                                          PutByte('R');
 408                                          flag = 0;
 409                                  }
 410                          }
 411                  }
 412                  
 413                  EA = 0;
 414                          write = 0;
 415                  EA = 1;
 416                  // Config data
 417                  flag = 1;
 418                  while(flag) {
 419                          if (write == ((EEPROMVALUE) * 2)) flag = 0;
 420                  }
 421                  
 422                  for (i = 0, j = 0; i < EEPROMVALUE; i++) {
 423                          temp = gethex(sio_buf[j], sio_buf[j+1]);
C51 COMPILER V6.21  UTIL                                                                   04/11/2005 14:25:52 PAGE 8   

 424                          j += 2;
 425                  EEP_Write(i, temp);
 426              }
 427              
 428              // Send Reply
 429              PutByte('C');
 430              
 431                  // Reboot
 432                  ((void (code *)(void)) 0x0000)();
 433                  while(1);
 434          }
 435          
 436          

C51 COMPILATION COMPLETE.  0 WARNING(S),  3 ERROR(S)

⌨️ 快捷键说明

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