hal_uart.lst
来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,328 行 · 第 1/5 页
LST
1,328 行
341 cfg->flag &= ~UART_CFG_TXF;
\ 000132 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_15:
\ 000135 C2E0 CLR 0xE0 /* A */.0
\ 000137 F0 MOVX @DPTR,A
342 cfg->txTick = DMA_TX_DLY;
\ 000138 EE MOV A,R6
\ 000139 240E ADD A,#0xe
\ 00013B 12.... LCALL ?Subroutine7 & 0xFFFF
\ ??CrossCallReturnLabel_34:
\ 00013E 7414 MOV A,#0x14
\ 000140 F0 MOVX @DPTR,A
343
344 if ( (cfg->txMax - cfg->txCnt) < cfg->txTail )
\ 000141 EE MOV A,R6
\ 000142 240C ADD A,#0xc
\ 000144 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_16:
\ 000147 F8 MOV R0,A
\ 000148 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_2:
\ 00014B E8 MOV A,R0
\ 00014C C3 CLR C
\ 00014D 9A SUBB A,R2
\ 00014E F8 MOV R0,A
\ 00014F E4 CLR A
\ 000150 9400 SUBB A,#0x0
\ 000152 F9 MOV R1,A
\ 000153 EE MOV A,R6
\ 000154 240B ADD A,#0xb
\ 000156 12.... LCALL ??Subroutine2_0 & 0xFFFF
\ ??CrossCallReturnLabel_3:
\ 000159 C3 CLR C
\ 00015A E8 MOV A,R0
\ 00015B 9A SUBB A,R2
\ 00015C E9 MOV A,R1
\ 00015D 9400 SUBB A,#0x0
\ 00015F A2D2 MOV C,0xD0 /* PSW */.2
\ 000161 65D0 XRL A,PSW
\ 000163 33 RLC A
\ 000164 5005 JNC ??pollDMA_14
345 {
346 cfg->txTail = 0; // DMA can only run to the end of the Tx buffer.
\ 000166 E4 CLR A
\ ??pollDMA_15:
\ 000167 F0 MOVX @DPTR,A
\ 000168 02.... LJMP ??pollDMA_16 & 0xFFFF
347 }
348 else
349 {
350 cfg->txTail += cfg->txCnt;
\ ??pollDMA_14:
\ 00016B 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_4:
\ 00016E EE MOV A,R6
\ 00016F 240B ADD A,#0xb
\ 000171 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_17:
\ 000174 2A ADD A,R2
\ 000175 80F0 SJMP ??pollDMA_15
351 }
352 }
353 else if ( !(cfg->flag & UART_CFG_TXF) && !cfg->txTick )
\ ??pollDMA_13:
\ 000177 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_18:
\ 00017A A2E0 MOV C,0xE0 /* A */.0
\ 00017C 5003 JNC $+5
\ 00017E 02.... LJMP ??pollDMA_16 & 0xFFFF
\ 000181 EE MOV A,R6
\ 000182 240E ADD A,#0xe
\ 000184 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_19:
\ 000187 6003 JZ $+5
\ 000189 02.... LJMP ??pollDMA_16 & 0xFFFF
354 {
355 if ( cfg->txTail != cfg->txHead )
\ 00018C EE MOV A,R6
\ 00018D 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_64:
\ 000190 6A XRL A,R2
\ 000191 7003 JNZ $+5
\ 000193 02.... LJMP ??pollDMA_16 & 0xFFFF
356 {
357 if ( cfg->txTail < cfg->txHead )
\ 000196 EE MOV A,R6
\ 000197 240B ADD A,#0xb
\ 000199 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_20:
\ 00019C C0E0 PUSH A
\ 00019E 8E82 MOV DPL,R6
\ 0001A0 8F83 MOV DPH,R7
\ 0001A2 A3 INC DPTR
\ 0001A3 A3 INC DPTR
\ 0001A4 A3 INC DPTR
\ 0001A5 A3 INC DPTR
\ 0001A6 A3 INC DPTR
\ 0001A7 A3 INC DPTR
\ 0001A8 A3 INC DPTR
\ 0001A9 A3 INC DPTR
\ 0001AA A3 INC DPTR
\ 0001AB A3 INC DPTR
\ 0001AC E0 MOVX A,@DPTR
\ 0001AD FA MOV R2,A
\ 0001AE D0E0 POP A
\ 0001B0 C3 CLR C
\ 0001B1 9A SUBB A,R2
\ 0001B2 EE MOV A,R6
\ 0001B3 5007 JNC ??pollDMA_17
358 {
359 cfg->txCnt = cfg->txHead - cfg->txTail;
\ 0001B5 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_65:
\ 0001B8 C3 CLR C
\ 0001B9 9A SUBB A,R2
\ 0001BA 800E SJMP ??pollDMA_18
360 }
361 else // Can only run DMA engine up to max, then restart at zero.
362 {
363 cfg->txCnt = cfg->txMax - cfg->txTail + 1;
\ ??pollDMA_17:
\ 0001BC 240B ADD A,#0xb
\ 0001BE 12.... LCALL ??Subroutine2_0 & 0xFFFF
\ ??CrossCallReturnLabel_5:
\ 0001C1 EE MOV A,R6
\ 0001C2 240C ADD A,#0xc
\ 0001C4 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_21:
\ 0001C7 C3 CLR C
\ 0001C8 9A SUBB A,R2
\ 0001C9 04 INC A
\ ??pollDMA_18:
\ 0001CA C0E0 PUSH A
\ 0001CC EE MOV A,R6
\ 0001CD 240D ADD A,#0xd
\ 0001CF 12.... LCALL ?Subroutine7 & 0xFFFF
\ ??CrossCallReturnLabel_35:
\ 0001D2 D0E0 POP A
\ 0001D4 F0 MOVX @DPTR,A
364 }
365
366 cfg->flag |= UART_CFG_TXF;
\ 0001D5 12.... LCALL ?Subroutine5 & 0xFFFF
\ ??CrossCallReturnLabel_22:
\ 0001D8 D2E0 SETB 0xE0 /* A */.0
\ 0001DA F0 MOVX @DPTR,A
367 DMA_TX( cfg );
\ 0001DB EE MOV A,R6
\ 0001DC 2408 ADD A,#0x8
\ 0001DE F8 MOV R0,A
\ 0001DF EF MOV A,R7
\ 0001E0 3400 ADDC A,#0x0
\ 0001E2 F9 MOV R1,A
\ 0001E3 EE MOV A,R6
\ 0001E4 240B ADD A,#0xb
\ 0001E6 FA MOV R2,A
\ 0001E7 12.... LCALL ?Subroutine6 & 0xFFFF
\ ??CrossCallReturnLabel_33:
\ 0001EA 8882 MOV DPL,R0
\ 0001EC 8983 MOV DPH,R1
\ 0001EE E0 MOVX A,@DPTR
\ 0001EF 2C ADD A,R4
\ 0001F0 A3 INC DPTR
\ 0001F1 E0 MOVX A,@DPTR
\ 0001F2 3400 ADDC A,#0x0
\ 0001F4 90.... MOV DPTR,#(dmaCh1234 + 16)
\ 0001F7 F0 MOVX @DPTR,A
\ 0001F8 8A82 MOV DPL,R2
\ 0001FA 8B83 MOV DPH,R3
\ 0001FC E0 MOVX A,@DPTR
\ 0001FD FA MOV R2,A
\ 0001FE 8882 MOV DPL,R0
\ 000200 8983 MOV DPH,R1
\ 000202 E0 MOVX A,@DPTR
\ 000203 2A ADD A,R2
\ 000204 90.... MOV DPTR,#(dmaCh1234 + 17)
\ 000207 F0 MOVX @DPTR,A
\ 000208 EE MOV A,R6
\ 000209 240D ADD A,#0xd
\ 00020B 12.... LCALL ??Subroutine5_0 & 0xFFFF
\ ??CrossCallReturnLabel_23:
\ 00020E 90.... MOV DPTR,#(dmaCh1234 + 21)
\ 000211 F0 MOVX @DPTR,A
\ 000212 90.... MOV DPTR,#(dmaCh1234 + 20)
\ 000215 E0 MOVX A,@DPTR
\ 000216 54E0 ANL A,#0xe0
\ 000218 F0 MOVX @DPTR,A
\ 000219 53D1F7 ANL 0xd1,#0xf7
\ 00021C 75D608 MOV 0xd6,#0x8
\ 00021F 75D708 MOV 0xd7,#0x8
368 }
369 }
370 }
\ ??pollDMA_16:
\ 000222 7401 MOV A,#0x1
\ 000224 12.... LCALL ?DEALLOC_XSTACK8
\ 000227 REQUIRE ?Subroutine19
\ 000227 ; // Fall through to label ?Subroutine19
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine19:
\ 000000 7F02 MOV R7,#0x2
\ 000002 02.... LJMP ?BANKED_LEAVE_XDATA
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine7:
\ 000000 F582 MOV DPL,A
\ 000002 EF MOV A,R7
\ ??Subroutine7_0:
\ 000003 3400 ADDC A,#0x0
\ 000005 F583 MOV DPH,A
\ 000007 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine6:
\ 000000 EF MOV A,R7
\ 000001 3400 ADDC A,#0x0
\ 000003 FB MOV R3,A
\ 000004 8A82 MOV DPL,R2
\ 000006 8B83 MOV DPH,R3
\ 000008 E0 MOVX A,@DPTR
\ 000009 FC MOV R4,A
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine4:
\ 000000 EE MOV A,R6
\ 000001 240F ADD A,#0xf
\ 000003 F582 MOV DPL,A
\ 000005 EF MOV A,R7
\ ??Subroutine4_0:
\ 000006 12.... LCALL ?Subroutine18 & 0xFFFF
\ ??CrossCallReturnLabel_62:
\ 000009 A2E7 MOV C,0xE0 /* A */.7
\ 00000B 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine2:
\ 000000 EE MOV A,R6
\ 000001 240D ADD A,#0xd
\ ??Subroutine2_0:
\ 000003 F582 MOV DPL,A
\ 000005 EF MOV A,R7
\ 000006 12.... LCALL ?Subroutine18 & 0xFFFF
\ ??CrossCallReturnLabel_60:
\ 000009 FA MOV R2,A
\ 00000A 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 240B ADD A,#0xb
\ 000002 F582 MOV DPL,A
\ 000004 EF MOV A,R7
\ 000005 3400 ADDC A,#0x0
\ 000007 F583 MOV DPH,A
\ 000009 12.... LCALL ?Subroutine16 & 0xFFFF
\ ??CrossCallReturnLabel_55:
\ 00000C A3 INC DPTR
\ 00000D A3 INC DPTR
\ 00000E A3 INC DPTR
\ 00000F A3 INC DPTR
\ 000010 REQUIRE ?Subroutine20
\ 000010 ; // Fall through to label ?Subroutine20
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine20:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?