hpi.lst

来自「在大型通信系统(机架插板式)中多块单板通过TDM总线」· LST 代码 · 共 1,403 行 · 第 1/5 页

LST
1,403
字号
 537   1          uchar xdata *pHPI;
 538   1      
 539   1          /* 依次检查4片DSP是否有发送数据请求   */
 540   1          for(i=0; i<4; i++)
 541   1          {
 542   2              /* 基地址确定   */
 543   2              if(i == 0)
 544   2              {
 545   3                  pHPI = HPI1;
 546   3              }
 547   2              else if(i == 1)
 548   2              {
 549   3                  pHPI = HPI2;
 550   3              }
C51 COMPILER V3.20,  SN-0  HPI                                                             05/14/03  11:30:42  PAGE 10  

 551   2              else if(i == 2)
 552   2              {
 553   3                  pHPI = HPI3;
 554   3              }
 555   2              else if(i == 3)
 556   2              {
 557   3                  pHPI = HPI4;
 558   3              }
 559   2              
 560   2              *(pHPI+WRITE+HPIC+BYTE1) = 0x0;      /* 写HPIC第1字节为0,BOB=0      */
 561   2              *(pHPI+WRITE+HPIC+BYTE2) = 0x0;      /* 写HPIC第2字节为0,BOB=0      */
 562   2              temp1 = *(pHPI+READ+HPIC+BYTE1);     /* 读HPIC第1字节                */
 563   2              temp2 = *(pHPI+READ+HPIC+BYTE2);     /* 读HPIC第2字节                */
 564   2              temp3 = temp2&0x08;                  /* 取HINT位b3                   */
 565   2              if(temp3 == 0x08)
 566   2              {
 567   3                  /* 从pHPI口读消息    */
 568   3                  *(pHPI+WRITE+HPIA+BYTE1) = (AREAREAD>>8)&0xff;  /* 写HPIA第1字节为写区首地址*/  /* 高字节   */
 569   3                  *(pHPI+WRITE+HPIA+BYTE2) = AREAREAD&0xff;;      /* 写HPIA第2字节为写区首地址*/  /* 低字节   */
 570   3              
 571   3                  /* 读有效字节   */
 572   3                  for(j=0; j<=BUFSIZE; j++)
 573   3                  {
 574   4                      temp4 = *(pHPI+READ+HPIDAI+BYTE1);                
 575   4                      HPIRxVarA[j] = *(pHPI+READ+HPIDAI+BYTE2);   
 576   4                  }    
 577   3      
 578   3                  /* 判断缓冲区是否溢出 */
 579   3                  if(m_sHPIQue.ucRxPendNum <= HPIRXBUFNUM)
 580   3                  {       
 581   4                      if(HPIRxVarA[0] == SOI)
 582   4                      {
 583   5                          HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].ucPID     = HPIRxVarA[1]; 
 584   5                          HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].ucLength  = HPIRxVarA[2]%BUFSIZE; 
 585   5                          HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].uiType = HPIRxVarA[3]; 
 586   5                          HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].uiType = (HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].uiType
             -<<8)|HPIRxVarA[4]; 
 587   5                          HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].ucData[0] = HPIRxVarA[5] + i*2;   /* 单元号 */
 588   5          
 589   5                          /* 读剩余有效字节   */  
 590   5                          for(j=6; j<=HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].ucLength; j++)
 591   5                          {
 592   6                              HPIRxBuf[m_sHPIQue.ucRxPlaceIndex].ucData[j-5] = HPIRxVarA[j];   
 593   6                          }
 594   5                          
 595   5                          /* 调整HPI接口接收指针 */
 596   5                          m_sHPIQue.ucRxPlaceIndex++;
 597   5                          m_sHPIQue.ucRxPlaceIndex = m_sHPIQue.ucRxPlaceIndex%HPIRXBUFNUM;
 598   5                          m_sHPIQue.ucRxPendNum++;
 599   5                      }
 600   4                  }
 601   3      
 602   3                  /* 清中断       */
 603   3                  *(pHPI+WRITE+HPIC+BYTE1) = 0x08;        /* 写HPIC第1字节,HINT=1        */
 604   3                  *(pHPI+WRITE+HPIC+BYTE2) = 0x08;        /* 写HPIC第2字节,HINT=1        */
 605   3              }
 606   2          }
 607   1      
 608   1          return;
 609   1      }
 610          
C51 COMPILER V3.20,  SN-0  HPI                                                             05/14/03  11:30:42  PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION GetSWVer (BEGIN)
                                           ; SOURCE LINE # 70
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 75
0000 7800    R     MOV     R0,#m_sHPIQue+01H
0002 E6            MOV     A,@R0
0003 D3            SETB    C
0004 9404          SUBB    A,#04H
0006 4003          JC      $ + 5H
0008 020000  R     LJMP    ?C0012
                                           ; SOURCE LINE # 76
                                           ; SOURCE LINE # 78
000B E4            CLR     A
000C F500    R     MOV     i,A
000E         ?C0002:
000E E500    R     MOV     A,i
0010 C3            CLR     C
0011 9404          SUBB    A,#04H
0013 4003          JC      $ + 5H
0015 020000  R     LJMP    ?C0003
                                           ; SOURCE LINE # 79
                                           ; SOURCE LINE # 80
0018 B295          CPL     WATCHDOG
                                           ; SOURCE LINE # 83
001A E500    R     MOV     A,i
001C 7008          JNZ     ?C0005
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
001E 850000  R     MOV     m_pHPI,HPI1
0021 850000  R     MOV     m_pHPI+01H,HPI1+01H
                                           ; SOURCE LINE # 86
0024 8025          SJMP    ?C0006
0026         ?C0005:
                                           ; SOURCE LINE # 87
0026 E500    R     MOV     A,i
0028 B40108        CJNE    A,#01H,?C0007
                                           ; SOURCE LINE # 88
                                           ; SOURCE LINE # 89
002B 850000  R     MOV     m_pHPI,HPI2
002E 850000  R     MOV     m_pHPI+01H,HPI2+01H
                                           ; SOURCE LINE # 90
0031 8018          SJMP    ?C0006
0033         ?C0007:
                                           ; SOURCE LINE # 91
0033 E500    R     MOV     A,i
0035 B40208        CJNE    A,#02H,?C0009
                                           ; SOURCE LINE # 92
                                           ; SOURCE LINE # 93
0038 850000  R     MOV     m_pHPI,HPI3
003B 850000  R     MOV     m_pHPI+01H,HPI3+01H
                                           ; SOURCE LINE # 94
003E 800B          SJMP    ?C0006
0040         ?C0009:
                                           ; SOURCE LINE # 95
0040 E500    R     MOV     A,i
0042 B40306        CJNE    A,#03H,?C0006
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 97
0045 850000  R     MOV     m_pHPI,HPI4
C51 COMPILER V3.20,  SN-0  HPI                                                             05/14/03  11:30:42  PAGE 12  

0048 850000  R     MOV     m_pHPI+01H,HPI4+01H
                                           ; SOURCE LINE # 98
004B         ?C0006:
                                           ; SOURCE LINE # 101
004B 750002  R     MOV     m_uiHPIAREA,#02H
004E 750000  R     MOV     m_uiHPIAREA+01H,#00H
                                           ; SOURCE LINE # 102
0051 750005  R     MOV     m_ucHPILEN,#05H
                                           ; SOURCE LINE # 105
0054 120000  R     LCALL   ReadFrameHPI
                                           ; SOURCE LINE # 108
0057 C2AA          CLR     EX1
                                           ; SOURCE LINE # 109
0059 7800    R     MOV     R0,#m_sHPIQue+05H
005B E6            MOV     A,@R0
005C F500    E     MOV     m_ucVar1,A
                                           ; SOURCE LINE # 110
005E 06            INC     @R0
                                           ; SOURCE LINE # 111
005F E6            MOV     A,@R0
0060 75F009        MOV     B,#09H
0063 84            DIV     AB
0064 A6F0          MOV     @R0,B
                                           ; SOURCE LINE # 112
0066 7800    R     MOV     R0,#m_sHPIQue+01H
0068 06            INC     @R0
                                           ; SOURCE LINE # 113
0069 D2AA          SETB    EX1
                                           ; SOURCE LINE # 115
006B E500    E     MOV     A,m_ucVar1
006D 75F014        MOV     B,#014H
0070 A4            MUL     AB
0071 2400    R     ADD     A,#LOW HPIRxBuf
0073 F582          MOV     DPL,A
0075 E4            CLR     A
0076 3400    R     ADDC    A,#HIGH HPIRxBuf
0078 F583          MOV     DPH,A
007A 7455          MOV     A,#055H
007C F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 116
007D E500    E     MOV     A,m_ucVar1
007F 75F014        MOV     B,#014H
0082 A4            MUL     AB
0083 2400    R     ADD     A,#LOW HPIRxBuf+01H
0085 F582          MOV     DPL,A
0087 E4            CLR     A
0088 3400    R     ADDC    A,#HIGH HPIRxBuf+01H
008A F583          MOV     DPH,A
008C 740A          MOV     A,#0AH
008E F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 117
008F E500    E     MOV     A,m_ucVar1
0091 75F014        MOV     B,#014H
0094 A4            MUL     AB
0095 2400    R     ADD     A,#LOW HPIRxBuf+02H
0097 F582          MOV     DPL,A
0099 E4            CLR     A
009A 3400    R     ADDC    A,#HIGH HPIRxBuf+02H
009C F583          MOV     DPH,A
009E 7404          MOV     A,#04H
00A0 F0            MOVX    @DPTR,A
00A1 A3            INC     DPTR
C51 COMPILER V3.20,  SN-0  HPI                                                             05/14/03  11:30:42  PAGE 13  

00A2 74C6          MOV     A,#0C6H
00A4 F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 118
00A5 E500    R     MOV     A,i
00A7 04            INC     A
00A8 FF            MOV     R7,A
00A9 E500    E     MOV     A,m_ucVar1
00AB 75F014        MOV     B,#014H
00AE A4            MUL     AB
00AF 2400    R     ADD     A,#LOW HPIRxBuf+04H
00B1 F582          MOV     DPL,A
00B3 E4            CLR     A
00B4 3400    R     ADDC    A,#HIGH HPIRxBuf+04H
00B6 F583          MOV     DPH,A
00B8 EF            MOV     A,R7
00B9 F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 119
00BA 7800    R     MOV     R0,#HPIRxVar
00BC E6            MOV     A,@R0
00BD FF            MOV     R7,A
00BE E500    E     MOV     A,m_ucVar1
00C0 75F014        MOV     B,#014H
00C3 A4            MUL     AB
00C4 2400    R     ADD     A,#LOW HPIRxBuf+05H
00C6 F582          MOV     DPL,A
00C8 E4            CLR     A
00C9 3400    R     ADDC    A,#HIGH HPIRxBuf+05H
00CB F583          MOV     DPH,A
00CD EF            MOV     A,R7
00CE F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 120
00CF 08            INC     R0
00D0 E6            MOV     A,@R0
00D1 FF            MOV     R7,A
00D2 E500    E     MOV     A,m_ucVar1
00D4 75F014        MOV     B,#014H
00D7 A4            MUL     AB
00D8 2400    R     ADD     A,#LOW HPIRxBuf+06H
00DA F582          MOV     DPL,A
00DC E4            CLR     A
00DD 3400    R     ADDC    A,#HIGH HPIRxBuf+06H
00DF F583          MOV     DPH,A
00E1 EF            MOV     A,R7
00E2 F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 121
00E3 08            INC     R0
00E4 E6            MOV     A,@R0
00E5 FF            MOV     R7,A
00E6 E500    E     MOV     A,m_ucVar1
00E8 75F014        MOV     B,#014H
00EB A4            MUL     AB
00EC 2400    R     ADD     A,#LOW HPIRxBuf+07H
00EE F582          MOV     DPL,A
00F0 E4            CLR     A
00F1 3400    R     ADDC    A,#HIGH HPIRxBuf+07H
00F3 F583          MOV     DPH,A
00F5 EF            MOV     A,R7
00F6 F0            MOVX    @DPTR,A
                                           ; SOURCE LINE # 122
00F7 08            INC     R0
00F8 E6            MOV     A,@R0
00F9 FF            MOV     R7,A
C51 COMPILER V3.20,  SN-0  HPI                                                             05/14/03  11:30:42  PAGE 14  

00FA E500    E     MOV     A,m_ucVar1
00FC 75F014        MOV     B,#014H
00FF A4            MUL     AB
0100 2400    R     ADD     A,#LOW HPIRxBuf+08H
0102 F582          MOV     DPL,A
0104 E4            CLR     A
0105 3400    R     ADDC    A,#HIGH HPIRxBuf+08H
0107 F583          MOV     DPH,A
0109 EF            MOV     A,R7
010A F0            MOVX    @DPTR,A

⌨️ 快捷键说明

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