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

📄 hal_uart.lst

📁 cc2430讀取短地址程式
💻 LST
📖 第 1 页 / 共 5 页
字号:
    308              cfg->rxBuf[cfg->rxHead++] = *(pad+1);
   \                     ??pollDMA_2:
   \   000028   EE           MOV     A,R6
   \   000029   2402         ADD     A,#0x2
   \   00002B   FA           MOV     R2,A
   \   00002C   8882         MOV     DPL,R0
   \   00002E   8983         MOV     DPH,R1
   \   000030   A3           INC     DPTR
   \   000031   E0           MOVX    A,@DPTR
   \   000032   C0E0         PUSH    A
   \   000034   8A82         MOV     DPL,R2
   \   000036   8B83         MOV     DPH,R3
   \   000038   E0           MOVX    A,@DPTR
   \   000039   F5..         MOV     ?V0 + 0,A
   \   00003B   8E82         MOV     DPL,R6
   \   00003D   8F83         MOV     DPH,R7
   \   00003F   E0           MOVX    A,@DPTR
   \   000040   25..         ADD     A,?V0 + 0
   \   000042   FD           MOV     R5,A
   \   000043   A3           INC     DPTR
   \   000044   E0           MOVX    A,@DPTR
   \   000045   3400         ADDC    A,#0x0
   \   000047   8D82         MOV     DPL,R5
   \   000049   F583         MOV     DPH,A
   \   00004B   D0E0         POP     A
   \   00004D   F0           MOVX    @DPTR,A
   \   00004E   8A82         MOV     DPL,R2
   \   000050   8B83         MOV     DPH,R3
   \   000052   E0           MOVX    A,@DPTR
   \   000053   04           INC     A
   \   000054   F0           MOVX    @DPTR,A
    309              pad += 2;
   \   000055   E8           MOV     A,R0
   \   000056   2402         ADD     A,#0x2
   \   000058   08           INC     R0
   \   000059   08           INC     R0
   \   00005A   E9           MOV     A,R1
   \   00005B   3400         ADDC    A,#0x0
   \                     ??pollDMA_1:
   \   00005D   F9           MOV     R1,A
    310            }
   \   00005E   8882         MOV     DPL,R0
   \   000060   8983         MOV     DPH,R1
   \   000062   E0           MOVX    A,@DPTR
   \   000063   65C2         XRL     A,0xc2
   \   000065   7019         JNZ     ??pollDMA_3
   \   000067   8E82         MOV     DPL,R6
   \   000069   8F83         MOV     DPH,R7
   \   00006B   A3           INC     DPTR
   \   00006C   A3           INC     DPTR
   \   00006D   E0           MOVX    A,@DPTR
   \   00006E   C0E0         PUSH    A
   \   000070   8E82         MOV     DPL,R6
   \   000072   8F83         MOV     DPH,R7
   \   000074   A3           INC     DPTR
   \   000075   A3           INC     DPTR
   \   000076   A3           INC     DPTR
   \   000077   A3           INC     DPTR
   \   000078   E0           MOVX    A,@DPTR
   \   000079   FA           MOV     R2,A
   \   00007A   D0E0         POP     A
   \   00007C   C3           CLR     C
   \   00007D   9A           SUBB    A,R2
   \   00007E   40A8         JC      ??pollDMA_2
    311          
    312            if ( !(cfg->flag & UART_CFG_RXF) )
   \                     ??pollDMA_3:
   \   000080   12....       LCALL   ?Subroutine5 & 0xFFFF
   \                     ??CrossCallReturnLabel_13:
   \   000083   A2E1         MOV     C,0xE0 /* A   */.1
   \   000085   8E82         MOV     DPL,R6
   \   000087   8F83         MOV     DPH,R7
   \   000089   A3           INC     DPTR
   \   00008A   A3           INC     DPTR
   \   00008B   4046         JC      ??pollDMA_4
    313            {
    314              /* It is necessary to stop Rx flow and wait for H/W-enqueued bytes still
    315               * incoming to stop before resetting the DMA Rx engine. If DMA Rx is
    316               * aborted during incoming data, a byte may be lost inside the engine
    317               * during the 2-step transfer process of read/write.
    318               */
    319              if ( cfg->rxHead >= (cfg->rxMax - SAFE_RX_MIN) )
   \   00008D   E0           MOVX    A,@DPTR
   \   00008E   FA           MOV     R2,A
   \   00008F   8E82         MOV     DPL,R6
   \   000091   8F83         MOV     DPH,R7
   \   000093   12....       LCALL   ?Subroutine1 & 0xFFFF
   \                     ??CrossCallReturnLabel_0:
   \   000096   4023         JC      ??pollDMA_5
    320              {
    321                RX_STOP_FLOW( cfg );
   \   000098   12....       LCALL   ?Subroutine4 & 0xFFFF
   \                     ??CrossCallReturnLabel_10:
   \   00009B   4004         JC      ??pollDMA_6
   \   00009D   D285         SETB    0x80.5
   \   00009F   8002         SJMP    ??pollDMA_7
   \                     ??pollDMA_6:
   \   0000A1   D295         SETB    0x90.5
   \                     ??pollDMA_7:
   \   0000A3   A2E6         MOV     C,0xE0 /* A   */.6
   \   0000A5   500D         JNC     ??pollDMA_8
   \   0000A7   748C         MOV     A,#-0x74
   \   0000A9   8E82         MOV     DPL,R6
   \   0000AB   8F83         MOV     DPH,R7
   \   0000AD   A3           INC     DPTR
   \   0000AE   A3           INC     DPTR
   \   0000AF   A3           INC     DPTR
   \   0000B0   A3           INC     DPTR
   \   0000B1   A3           INC     DPTR
   \   0000B2   A3           INC     DPTR
   \   0000B3   F0           MOVX    @DPTR,A
   \                     ??pollDMA_8:
   \   0000B4   12....       LCALL   ?Subroutine5 & 0xFFFF
   \                     ??CrossCallReturnLabel_14:
   \   0000B7   D2E1         SETB    0xE0 /* A   */.1
   \   0000B9   806D         SJMP    ??pollDMA_9
    322              }
    323              // If anything received, reset the Rx idle timer.
    324              else if ( cfg->rxHead != cnt )
   \                     ??pollDMA_5:
   \   0000BB   8E82         MOV     DPL,R6
   \   0000BD   8F83         MOV     DPH,R7
   \   0000BF   A3           INC     DPTR
   \   0000C0   A3           INC     DPTR
   \   0000C1   E0           MOVX    A,@DPTR
   \   0000C2   6C           XRL     A,R4
   \   0000C3   6064         JZ      ??pollDMA_10
    325              {
    326                cfg->rxTick = HAL_UART_RX_IDLE;
   \   0000C5   74C6         MOV     A,#-0x3a
   \   0000C7   8E82         MOV     DPL,R6
   \   0000C9   8F83         MOV     DPH,R7
   \   0000CB   A3           INC     DPTR
   \   0000CC   A3           INC     DPTR
   \   0000CD   A3           INC     DPTR
   \   0000CE   A3           INC     DPTR
   \   0000CF   A3           INC     DPTR
   \   0000D0   A3           INC     DPTR
   \   0000D1   8055         SJMP    ??pollDMA_9
    327              }
    328            }
    329            else if ( !cfg->rxTick && (cfg->rxHead == cfg->rxTail) )
   \                     ??pollDMA_4:
   \   0000D3   A3           INC     DPTR
   \   0000D4   A3           INC     DPTR
   \   0000D5   A3           INC     DPTR
   \   0000D6   A3           INC     DPTR
   \   0000D7   E0           MOVX    A,@DPTR
   \   0000D8   704F         JNZ     ??pollDMA_10
   \   0000DA   8E82         MOV     DPL,R6
   \   0000DC   8F83         MOV     DPH,R7
   \   0000DE   A3           INC     DPTR
   \   0000DF   A3           INC     DPTR
   \   0000E0   12....       LCALL   ?Subroutine16 & 0xFFFF
   \                     ??CrossCallReturnLabel_54:
   \   0000E3   E0           MOVX    A,@DPTR
   \   0000E4   6A           XRL     A,R2
   \   0000E5   7042         JNZ     ??pollDMA_10
    330            {
    331              HAL_DMA_ABORT_CH( HAL_DMA_CH_RX );
   \   0000E7   75D690       MOV     0xd6,#-0x70
    332              cfg->rxHead = cfg->rxTail = 0;
   \   0000EA   12....       LCALL   ?Subroutine15 & 0xFFFF
    333              osal_memset( cfg->rxBuf, ~DMA_PAD, cfg->rxMax*2 );
   \                     ??CrossCallReturnLabel_52:
   \   0000ED   2404         ADD     A,#0x4
   \   0000EF   F5..         MOV     ?V0 + 0,A
   \   0000F1   EF           MOV     A,R7
   \   0000F2   3400         ADDC    A,#0x0
   \   0000F4   F5..         MOV     ?V0 + 1,A
   \   0000F6                ; Setup parameters for call to function osal_memset
   \   0000F6   85..82       MOV     DPL,?V0 + 0
   \   0000F9   F583         MOV     DPH,A
   \   0000FB   12....       LCALL   ?Subroutine11 & 0xFFFF
   \                     ??CrossCallReturnLabel_46:
   \   0000FE   8E82         MOV     DPL,R6
   \   000100   8F83         MOV     DPH,R7
   \   000102   E0           MOVX    A,@DPTR
   \   000103   FA           MOV     R2,A
   \   000104   A3           INC     DPTR
   \   000105   E0           MOVX    A,@DPTR
   \   000106   FB           MOV     R3,A
   \   000107   90....       MOV     DPTR,#(osal_memset & 0xffff)
   \   00010A   74..         MOV     A,#((osal_memset >> 16) & 0xff)
   \   00010C   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    334              DMA_RX( cfg );
   \   00010F   12....       LCALL   ?Subroutine9 & 0xFFFF
   \                     ??CrossCallReturnLabel_42:
   \   000112   85..82       MOV     DPL,?V0 + 0
   \   000115   85..83       MOV     DPH,?V0 + 1
   \   000118   12....       LCALL   ?Subroutine8 & 0xFFFF
    335              RX_STRT_FLOW( cfg );
   \                     ??CrossCallReturnLabel_40:
   \   00011B   12....       LCALL   ?Subroutine4 & 0xFFFF
   \                     ??CrossCallReturnLabel_11:
   \   00011E   4004         JC      ??pollDMA_11
   \   000120   C285         CLR     0x80.5
   \   000122   8002         SJMP    ??pollDMA_12
   \                     ??pollDMA_11:
   \   000124   C295         CLR     0x90.5
   \                     ??pollDMA_12:
   \   000126   C2E1         CLR     0xE0 /* A   */.1
   \                     ??pollDMA_9:
   \   000128   F0           MOVX    @DPTR,A
    336            }
    337          
    338            if ( HAL_DMA_CHECK_IRQ( HAL_DMA_CH_TX ) )
   \                     ??pollDMA_10:
   \   000129   E5D1         MOV     A,0xd1
   \   00012B   A2E3         MOV     C,0xE0 /* A   */.3
   \   00012D   5048         JNC     ??pollDMA_13
    339            {
    340              HAL_DMA_CLEAR_IRQ( HAL_DMA_CH_TX );
   \   00012F   53D1F7       ANL     0xd1,#0xf7
    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

⌨️ 快捷键说明

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