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

📄 hal_uart.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000096   A3           INC     DPTR
   \   000097   A3           INC     DPTR
   \   000098   A3           INC     DPTR
   \   000099   A3           INC     DPTR
   \   00009A   12....       LCALL   ?Subroutine9 & 0xFFFF
    589            cfg->rxHigh = config->rx.maxBufSize - config->flowControlThreshold;
   \                     ??CrossCallReturnLabel_29:
   \   00009D   E0           MOVX    A,@DPTR
   \   00009E   F8           MOV     R0,A
   \   00009F   85..82       MOV     DPL,?V0 + 4
   \   0000A2   85..83       MOV     DPH,?V0 + 5
   \   0000A5   E0           MOVX    A,@DPTR
   \   0000A6   C3           CLR     C
   \   0000A7   98           SUBB    A,R0
   \   0000A8   8E82         MOV     DPL,R6
   \   0000AA   8F83         MOV     DPH,R7
   \   0000AC   A3           INC     DPTR
   \   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
    590            cfg->rxCB = config->callBackFunc;
   \   0000B4   E5..         MOV     A,?V0 + 0
   \   0000B6   241B         ADD     A,#0x1b
   \   0000B8   12....       LCALL   ?Subroutine8 & 0xFFFF
   \                     ??CrossCallReturnLabel_22:
   \   0000BB   F9           MOV     R1,A
   \   0000BC   A3           INC     DPTR
   \   0000BD   E0           MOVX    A,@DPTR
   \   0000BE   FA           MOV     R2,A
   \   0000BF   A3           INC     DPTR
   \   0000C0   E0           MOVX    A,@DPTR
   \   0000C1   FB           MOV     R3,A
   \   0000C2   EE           MOV     A,R6
   \   0000C3   2410         ADD     A,#0x10
   \   0000C5   12....       LCALL   ?Subroutine16 & 0xFFFF
   \                     ??CrossCallReturnLabel_47:
   \   0000C8   E9           MOV     A,R1
   \   0000C9   F0           MOVX    @DPTR,A
   \   0000CA   A3           INC     DPTR
   \   0000CB   EA           MOV     A,R2
   \   0000CC   F0           MOVX    @DPTR,A
   \   0000CD   A3           INC     DPTR
   \   0000CE   EB           MOV     A,R3
   \   0000CF   F0           MOVX    @DPTR,A
    591          
    592          #if HAL_UART_0_ENABLE
    593            if ( port == HAL_UART_PORT_0 )
    594            {
    595              // Only supporting 38400 or 115200 for code size - other is possible.
    596              U0BAUD = (config->baudRate == HAL_UART_BR_38400) ? 59 : 216;
    597              U0GCR = (config->baudRate == HAL_UART_BR_38400) ? 10 : 11;
    598          
    599              U0CSR |= CSR_RE;
    600          
    601          #if HAL_UART_DMA == 1
    602              cfg->flag = UART_CFG_DMA;
    603              HAL_UART_ASSERT( (config->rx.maxBufSize <= 128) );
    604              HAL_UART_ASSERT( (config->rx.maxBufSize > SAFE_RX_MIN) );
    605              cfg->rxBuf = osal_mem_alloc( cfg->rxMax*2 );
    606              osal_memset( cfg->rxBuf, ~DMA_PAD, cfg->rxMax*2 );
    607              DMA_RX( cfg );
    608          #else
    609              cfg->flag = 0;
    610              HAL_UART_ASSERT( (config->rx.maxBufSize < 256) );
    611              cfg->rxBuf = osal_mem_alloc( cfg->rxMax+1 );
    612              URX0IE = 1;
    613              IEN2 |= UTX0IE;
    614          #endif
    615          
    616              // 8 bits/char; no parity; 1 stop bit; stop bit hi.
    617              if ( config->flowControl )
    618              {
    619                cfg->flag |= UART_CFG_FLW;
    620                U0UCR = UCR_FLOW | UCR_STOP;
    621                // Must rely on H/W for RTS (i.e. Tx stops when receiver negates CTS.)
    622                P0SEL |= HAL_UART_0_P0_RTS;
    623                // Cannot use H/W for CTS as DMA does not clear the Rx bytes properly.
    624                P0DIR |= HAL_UART_0_P0_CTS;
    625                RX0_FLOW_ON;
    626              }
    627              else
    628              {
    629                U0UCR = UCR_STOP;
    630              }
    631              }
    632          #endif
    633          
    634          #if HAL_UART_1_ENABLE
    635            if ( port == HAL_UART_PORT_1 )
   \   0000D0   7401         MOV     A,#0x1
   \   0000D2   65..         XRL     A,?V0 + 2
   \   0000D4   7071         JNZ     ??HalUARTOpen_1
    636            {
    637              // Only supporting 38400 or 115200 for code size - other is possible.
    638              U1BAUD = (config->baudRate == HAL_UART_BR_38400) ? 59 : 216;
   \   0000D6   85..82       MOV     DPL,?V0 + 0
   \   0000D9   85..83       MOV     DPH,?V0 + 1
   \   0000DC   A3           INC     DPTR
   \   0000DD   E0           MOVX    A,@DPTR
   \   0000DE   6406         XRL     A,#0x6
   \   0000E0   7004         JNZ     ??HalUARTOpen_2
   \   0000E2   7A3B         MOV     R2,#0x3b
   \   0000E4   8002         SJMP    ??HalUARTOpen_3
   \                     ??HalUARTOpen_2:
   \   0000E6   7AD8         MOV     R2,#-0x28
   \                     ??HalUARTOpen_3:
   \   0000E8   8AFA         MOV     0xfa,R2
    639              U1GCR = (config->baudRate == HAL_UART_BR_38400) ? 10 : 11;
   \   0000EA   85..82       MOV     DPL,?V0 + 0
   \   0000ED   85..83       MOV     DPH,?V0 + 1
   \   0000F0   A3           INC     DPTR
   \   0000F1   E0           MOVX    A,@DPTR
   \   0000F2   6406         XRL     A,#0x6
   \   0000F4   7004         JNZ     ??HalUARTOpen_4
   \   0000F6   7A0A         MOV     R2,#0xa
   \   0000F8   8002         SJMP    ??HalUARTOpen_5
   \                     ??HalUARTOpen_4:
   \   0000FA   7A0B         MOV     R2,#0xb
   \                     ??HalUARTOpen_5:
   \   0000FC   8AFC         MOV     0xfc,R2
    640          
    641              U1CSR |= CSR_RE;
   \   0000FE   D2FE         SETB    0xf8.6
    642          
    643          #if HAL_UART_DMA == 2
    644              cfg->flag = (UART_CFG_U1F | UART_CFG_DMA);
    645              HAL_UART_ASSERT( (config->rx.maxBufSize <= 128) );
    646              HAL_UART_ASSERT( (config->rx.maxBufSize > SAFE_RX_MIN) );
    647              cfg->rxBuf = osal_mem_alloc( cfg->rxMax*2 );
    648              osal_memset( cfg->rxBuf, ~DMA_PAD, cfg->rxMax*2 );
    649              DMA_RX( cfg );
    650          #else
    651              cfg->flag = UART_CFG_U1F;
   \   000100   EE           MOV     A,R6
   \   000101   240F         ADD     A,#0xf
   \   000103   12....       LCALL   ?Subroutine16 & 0xFFFF
   \                     ??CrossCallReturnLabel_48:
   \   000106   7480         MOV     A,#-0x80
   \   000108   12....       LCALL   ?Subroutine10 & 0xFFFF
    652              HAL_UART_ASSERT( (config->rx.maxBufSize < 256) );
    653              cfg->rxBuf = osal_mem_alloc( cfg->rxMax+1 );
   \                     ??CrossCallReturnLabel_31:
   \   00010B   E0           MOVX    A,@DPTR
   \   00010C   12....       LCALL   ?Subroutine11 & 0xFFFF
   \                     ??CrossCallReturnLabel_34:
   \   00010F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000112   8E82         MOV     DPL,R6
   \   000114   8F83         MOV     DPH,R7
   \   000116   EA           MOV     A,R2
   \   000117   F0           MOVX    @DPTR,A
   \   000118   A3           INC     DPTR
   \   000119   EB           MOV     A,R3
   \   00011A   F0           MOVX    @DPTR,A
    654              URX1IE = 1;
   \   00011B   D2AB         SETB    0xa8.3
    655              IEN2 |= UTX1IE;
   \   00011D   439A08       ORL     0x9a,#0x8
    656          #endif
    657          
    658              // 8 bits/char; no parity; 1 stop bit; stop bit hi.
    659              if ( config->flowControl )
   \   000120   85..82       MOV     DPL,?V0 + 0
   \   000123   85..83       MOV     DPH,?V0 + 1
   \   000126   A3           INC     DPTR
   \   000127   A3           INC     DPTR
   \   000128   E0           MOVX    A,@DPTR
   \   000129   6019         JZ      ??HalUARTOpen_6
    660              {
    661                cfg->flag |= UART_CFG_FLW;
   \   00012B   EE           MOV     A,R6
   \   00012C   240F         ADD     A,#0xf
   \   00012E   F582         MOV     DPL,A
   \   000130   EF           MOV     A,R7
   \   000131   12....       LCALL   ??Subroutine8_0 & 0xFFFF
   \                     ??CrossCallReturnLabel_23:
   \   000134   D2E5         SETB    0xE0 /* A   */.5
   \   000136   F0           MOVX    @DPTR,A
    662                U1UCR = UCR_FLOW | UCR_STOP;
   \   000137   75FB42       MOV     0xfb,#0x42
    663                // Must rely on H/W for RTS (i.e. Tx stops when receiver negates CTS.)
    664                P1SEL |= HAL_UART_1_P1_RTS;
   \   00013A   43F410       ORL     0xf4,#0x10
    665                // Cannot use H/W for CTS as DMA does not clear the Rx bytes properly.
    666                P1DIR |= HAL_UART_1_P1_CTS;
   \   00013D   43FE20       ORL     0xfe,#0x20
    667                RX1_FLOW_ON;
   \   000140   C295         CLR     0x90.5
   \   000142   8003         SJMP    ??HalUARTOpen_1
    668              }
    669              else
    670              {
    671                U1UCR = UCR_STOP;
   \                     ??HalUARTOpen_6:
   \   000144   75FB02       MOV     0xfb,#0x2
    672              }
    673            }
    674          #endif
    675          
    676            return HAL_UART_SUCCESS;
   \                     ??HalUARTOpen_1:
   \   000147   7900         MOV     R1,#0x0
   \   000149   7F06         MOV     R7,#0x6
   \   00014B   02....       LJMP    ?BANKED_LEAVE_XDATA
    677          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine11:
   \   000000   F8           MOV     R0,A
   \   000001   7401         MOV     A,#0x1
   \   000003   28           ADD     A,R0
   \   000004   FA           MOV     R2,A
   \   000005   E4           CLR     A
   \   000006   3400         ADDC    A,#0x0
   \   000008   FB           MOV     R3,A
   \   000009   90....       MOV     DPTR,#(osal_mem_alloc & 0xffff)
   \   00000C   74..         MOV     A,#((osal_mem_alloc >> 16) & 0xff)
   \   00000E   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine10:
   \   000000   12....       LCALL   ?Subroutine14 & 0xFFFF
   \                     ??CrossCallReturnLabel_39:
   \   000003   A3           INC     DPTR
   \   000004   A3           INC     DPTR
   \   000005   A3           INC     DPTR
   \   000006   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine14:
   \   000000   F0           MOVX    @DPTR,A
   \   000001                ; Setup parameters for call to function osal_mem_alloc
   \   000001   8E82         MOV     DPL,R6
   \   000003   8F83         MOV     DPH,R7
   \   000005   A3           INC     DPTR
   \   000006   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine9:
   \   000000   F0           MOVX    @DPTR,A
   \   000001   85..82       MOV     DPL,?V0 + 0
   \   000004   85..83       MOV     DPH,?V0 + 1
   \   000007   A3           INC     DPTR
   \   000008   A3           INC     DPTR
   \   000009   A3           INC     DPTR
   \   00000A   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine8:
   \   000000   F582         MOV     DPL,A
   \   000002   E5..         MOV     A,?V0 + 1
   \                     ??Subroutine8_0:
   \   000004   12....       LCALL   ?Subroutine15 & 0xFFFF
   \                     ??CrossCallReturnLabel_45:
   \   000007   22           RET
    678          
    679          /******************************************************************************
    680           * @fn      HalUARTClose
    681           *
    682           * @brief   Close the UART
    683           *
    684           * @param   port - UART port
    685           *
    686           * @return  none
    687           ************************

⌨️ 快捷键说明

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