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

📄 myapp.lst

📁 SM5964在系统编程的源代码,通过COMM串行口进行程序下载,方便嵌入式系统开发
💻 LST
📖 第 1 页 / 共 2 页
字号:
 239   1              ch=ChipRead(g_CommBuffer[5]*512);
 240   1              if(ch!=0xff)status=ID_ERR;
 241   1              else            status=ID_OK;
C51 COMPILER V7.04   MYAPP                                                                 04/08/2006 10:08:34 PAGE 5   

 242   1      
 243   1              if(g_CommBuffer[5]==0X00 && status==ID_OK)MyIspFlag=0x00;//不再唤醒
 244   1      
 245   1      
 246   1              SendResponse(status,g_CommBuffer,0x00);
 247   1      
 248   1      }
 249          //addr len
 250          //ret: data
 251          void CMD_CHIPREADf()
 252          {
 253   1              
 254   1              unsigned int addr;
 255   1              unsigned int len;
 256   1              unsigned int i;
 257   1      
 258   1      
 259   1              WatchDog();
 260   1      
 261   1              addr = g_CommBuffer[5];
 262   1              addr <<= 8;
 263   1              addr += g_CommBuffer[6];
 264   1      
 265   1              len  = g_CommBuffer[7];
 266   1              len <<= 8;
 267   1              len  += g_CommBuffer[8];
 268   1      
 269   1      
 270   1      
 271   1              for(i=0;i<len;i++)
 272   1              {
 273   2                      WatchDog();
 274   2                      g_CommBuffer[i]=ChipRead(addr+i);
 275   2              }
 276   1      
 277   1              WatchDog();
 278   1              SendResponse(0x00,g_CommBuffer,len);
 279   1      
 280   1      }
 281          void CMD_READRAMf()
 282          {
 283   1              unsigned char ch;
 284   1      
 285   1              WatchDog();
 286   1      
 287   1              ch= (g_CommLen>>8);
 288   1              g_CommBuffer[0]=ch;
 289   1      
 290   1              ch= (g_CommLen&0xff);
 291   1              g_CommBuffer[1]=ch;
 292   1      
 293   1              SendResponse(0x00,g_CommBuffer,2);
 294   1      
 295   1      }
 296          
 297          //addr len data
 298          
 299          void CMD_CHIPWRITEf()
 300          {
 301   1              unsigned int addr;
 302   1              unsigned int len;
 303   1              
C51 COMPILER V7.04   MYAPP                                                                 04/08/2006 10:08:34 PAGE 6   

 304   1      
 305   1              unsigned char status=ID_OK;
 306   1              unsigned char ch;
 307   1      
 308   1              WatchDog();
 309   1      
 310   1              addr = g_CommBuffer[5];
 311   1              addr <<= 8;
 312   1              addr += g_CommBuffer[6];
 313   1      
 314   1              len  = g_CommBuffer[7];
 315   1              len <<= 8;
 316   1              len  += g_CommBuffer[8];
 317   1      
 318   1      
 319   1              
 320   1              
 321   1              if(addr==0x00)
 322   1              {
 323   2                      g_CommBuffer[9]=0xff;//把最开始 0x00,设置为FF
 324   2      
 325   2              }
 326   1      
 327   1      
 328   1              for(i=0;i<len;i++)
 329   1              {               
 330   2                      
 331   2                      WatchDog();
 332   2                      ch=g_CommBuffer[9+i];
 333   2                      ChipWrite(addr+i,ch);
 334   2                      WatchDog();
 335   2                      WatchDog();
 336   2                      
 337   2                      if(ch!=ChipRead(addr+i))
 338   2                      {
 339   3                              status=ID_ERR;
 340   3                              break;//写的不对
 341   3                      }
 342   2                      
 343   2      
 344   2              }
 345   1      
 346   1              SendResponse(status,g_CommBuffer,0x00);
 347   1      
 348   1      }
 349          
 350          
 351          void CMD_SETPROTECTf()
 352          {
 353   1      
 354   1              WatchDog();
 355   1              SetChipProtect();
 356   1      
 357   1              SendResponse(ID_OK,g_CommBuffer,0x00);
 358   1      
 359   1      }
 360          
 361          //addr len  xor
 362          void CMD_VERIFYf()
 363          {
 364   1              
 365   1              unsigned int addr;
C51 COMPILER V7.04   MYAPP                                                                 04/08/2006 10:08:34 PAGE 7   

 366   1              unsigned int len;
 367   1              
 368   1      
 369   1              unsigned char status;
 370   1              unsigned char xorcode;
 371   1              unsigned char ch;
 372   1              unsigned char temp;
 373   1      
 374   1      
 375   1      
 376   1              WatchDog();
 377   1      
 378   1              addr = g_CommBuffer[5];
 379   1              addr <<= 8;
 380   1              addr += g_CommBuffer[6];
 381   1      
 382   1              len  = g_CommBuffer[7];
 383   1              len <<= 8;
 384   1              len  += g_CommBuffer[8];
 385   1      
 386   1              
 387   1              
 388   1              temp=g_CommBuffer[9];
 389   1      
 390   1              xorcode=temp;
 391   1              for(i=0;i<len;i++)
 392   1              {
 393   2                      WatchDog();
 394   2                      ch=ChipRead(addr+i);
 395   2                      xorcode ^=ch;           
 396   2              }
 397   1      
 398   1              if(xorcode==0)status=ID_OK;
 399   1              else          status=ID_ERR;
 400   1      
 401   1      
 402   1              g_CommBuffer[0]=xorcode;
 403   1              g_CommBuffer[1]=temp;
 404   1      
 405   1              SendResponse(status,g_CommBuffer,2);
 406   1      
 407   1      }
 408          
 409          //get machineno
 410          void CMD_GETMACHINEf()
 411          {
 412   1              WatchDog();
 413   1              g_CommBuffer[0]=g_MachineNo;    
 414   1              SendResponse(ID_OK,g_CommBuffer,0x01);
 415   1      }
 416          //结束通讯
 417          void CMD_ENDCOMf()
 418          {
 419   1              WatchDog();
 420   1              SendResponse(ID_OK,g_CommBuffer,0x00);
 421   1      }
 422          void ErrCmd()
 423          {
 424   1              WatchDog();     
 425   1              SendResponse(COMM_CMD_ERR,g_CommBuffer,0x00);
 426   1      }
 427          
C51 COMPILER V7.04   MYAPP                                                                 04/08/2006 10:08:34 PAGE 8   

 428          
 429          /*
 430          unsigned char asctohex1(unsigned char ch)
 431          {
 432                  if(ch>='0' && ch <= '9')return (ch-0x30);
 433                  if(ch>='A' && ch <= 'F')return (ch-0x37);
 434                  if(ch>='a' && ch <= 'f')return (ch-0x57);
 435          
 436          }
 437          
 438          unsigned char Asc2Hex(unsigned char *strData)
 439          {
 440                  unsigned char ch;
 441          
 442                  ch       =  asctohex1(strData[0]);
 443                  ch <<=  4;
 444                  ch +=   asctohex1(strData[1]);
 445          
 446                  return (ch);
 447          
 448          }
 449          
 450          unsigned char hextoasc1(unsigned char ch)
 451          {
 452                  if(ch>=0 && ch <= 9)return (ch+0x30);
 453                  else                            return (ch+0x37);       
 454          
 455          }
 456          
 457          void Hex2Asc(unsigned char ch,unsigned char *strOut)
 458          {
 459                  unsigned char temp;
 460                  
 461                  temp=(ch>>4)& 0x0f;
 462                  strOut[0]=hextoasc1(temp);
 463          
 464                  temp=(ch)& 0x0f;
 465                  strOut[1]=hextoasc1(temp);
 466          
 467          }
 468          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1006    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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