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

📄 hex.lst

📁 SM5964 ISP程序。.........
💻 LST
字号:
C51 COMPILER V7.50   HEX                                                                   10/30/2008 09:30:27 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE HEX
OBJECT MODULE PLACED IN hex.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE hex.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"hex.h"
   2          #include<ctype.h>
   3          uchar hex_parser(void)
   4          {
   5   1        uchar hex_data;
   6   1        status=HEX_DEC_OK;
   7   1        while(status==HEX_DEC_OK)
   8   1              {
   9   2               if(nb_rx_data!=0)
  10   2                      {
  11   3                      hex_data=rx_buffer_rd();
  12   3                      status=hex_decoder(hex_data);
  13   3                      }
  14   2              }
  15   1        return status;
  16   1      }
  17          unsigned char hex_decoder(unsigned char hex_data)
  18          {
  19   1        static uchar state=REC_MARK;
  20   1        static uchar length,type,nb_byte,data_value,sum,sum_1,sum_2;
  21   1        static Uint16 offset;
  22   1         switch(state){
  23   2              case REC_MARK:if(hex_data==':'){state=REC_LEN_1;nb_byte=0;}else state=REC_MARK;break;
  24   2              case REC_LEN_1:length=toint(hex_data)*16;state=REC_LEN_2;break;
  25   2              case REC_LEN_2:length=toint(hex_data)+length;state=OFFSET_1;break;
  26   2              case OFFSET_1:offset=toint(hex_data)*4096;state=OFFSET_2;break;
  27   2              case OFFSET_2:offset=offset+toint(hex_data)*256;sum_1=offset/256;state=OFFSET_3;break;
  28   2              case OFFSET_3:offset=offset+toint(hex_data)*16;state=OFFSET_4;break;
  29   2              case OFFSET_4:offset=offset+toint(hex_data);sum_2=offset-sum_1*256;state=REC_TYP_1;break;
  30   2          case REC_TYP_1:type=toint(hex_data)*16;state=REC_TYP_2;break;
  31   2              case REC_TYP_2:type=type+toint(hex_data);sum=length+sum_1+sum_2+type;if(length==0)state=CHEKSUM_1;else st
             -ate=DATA_1;break;
  32   2              case DATA_1:data_value=toint(hex_data)*16;state=DATA_2;break;
  33   2              case DATA_2:data_value=data_value+toint(hex_data);sum=sum+data_value;
  34   2                                   flash_wr(offset+nb_byte,data_value);
  35   2                                     nb_byte++;
  36   2                                      if(nb_byte==length)state=CHEKSUM_1;else state=DATA_1;
  37   2                                      break;
  38   2         case CHEKSUM_1:sum_1=toint(hex_data)*16;sum=(~sum)+1;state=CHEKSUM_2;break;
  39   2         case CHEKSUM_2:sum_1=sum_1+toint(hex_data);if(sum_1!=sum)status=HEX_DEC_CSERR;state=REC_MARK;if(type==0
             -x01)status=HEX_DEC_END;break;
  40   2              }
  41   1         return status;
  42   1      }
  43          
  44          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    401    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       2
   IDATA SIZE       =   ----    ----
C51 COMPILER V7.50   HEX                                                                   10/30/2008 09:30:27 PAGE 2   

   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 + -