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 + -
显示快捷键?