spimgr.lst

来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,091 行 · 第 1/4 页

LST
1,091
字号
    203                switch (state)
    204                {
    205                  case SOP_STATE:
    206                    if (ch == SOP_VALUE)
    207                      state = CMD_STATE1;
    208                    break;
    209          
    210                  case CMD_STATE1:
    211                    CMD_Token[0] = ch;
   \                     ??SPIMgr_ProcessZToolData_2:
   \   00001E   85..82       MOV     DPL,?XSP + 0
   \   000021   85..83       MOV     DPH,?XSP + 1
   \   000024   E0           MOVX    A,@DPTR
   \   000025   90....       MOV     DPTR,#CMD_Token
   \   000028   F0           MOVX    @DPTR,A
    212                    state = CMD_STATE2;
   \   000029   7402         MOV     A,#0x2
   \                     ??SPIMgr_ProcessZToolData_3:
   \   00002B   90....       MOV     DPTR,#state
   \                     ??SPIMgr_ProcessZToolData_4:
   \   00002E   F0           MOVX    @DPTR,A
   \                     ??SPIMgr_ProcessZToolData_1:
   \   00002F                ; Setup parameters for call to function Hal_UART_RxBufLen
   \   00002F   7900         MOV     R1,#0x0
   \   000031   90....       MOV     DPTR,#(Hal_UART_RxBufLen & 0xffff)
   \   000034   74..         MOV     A,#((Hal_UART_RxBufLen >> 16) & 0xff)
   \   000036   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000039   EA           MOV     A,R2
   \   00003A   7001         JNZ     ??SPIMgr_ProcessZToolData_5
   \   00003C   EB           MOV     A,R3
   \                     ??SPIMgr_ProcessZToolData_5:
   \   00003D   60D5         JZ      ??SPIMgr_ProcessZToolData_0
   \   00003F                ; Setup parameters for call to function HalUARTRead
   \   00003F   7C01         MOV     R4,#0x1
   \   000041   7D00         MOV     R5,#0x0
   \   000043   85..82       MOV     DPL,?XSP + 0
   \   000046   85..83       MOV     DPH,?XSP + 1
   \   000049   AA82         MOV     R2,DPL
   \   00004B   AB83         MOV     R3,DPH
   \   00004D   7900         MOV     R1,#0x0
   \   00004F   90....       MOV     DPTR,#(HalUARTRead & 0xffff)
   \   000052   74..         MOV     A,#((HalUARTRead >> 16) & 0xff)
   \   000054   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000057   90....       MOV     DPTR,#state
   \   00005A   E0           MOVX    A,@DPTR
   \   00005B   12....       LCALL   ?UC_SWITCH_DENSE
   \                     `?<Jumptable for SPIMgr_ProcessZToolData>_0`:
   \   00005E   00           DB        0
   \   00005F   05           DB        5
   \   000060   ....         DW        ??SPIMgr_ProcessZToolData_1
   \   000062   ....         DW        ??SPIMgr_ProcessZToolData_6
   \   000064   ....         DW        ??SPIMgr_ProcessZToolData_2
   \   000066   ....         DW        ??SPIMgr_ProcessZToolData_7
   \   000068   ....         DW        ??SPIMgr_ProcessZToolData_8
   \   00006A   ....         DW        ??SPIMgr_ProcessZToolData_9
   \   00006C   ....         DW        ??SPIMgr_ProcessZToolData_10
   \                     ??SPIMgr_ProcessZToolData_6:
   \   00006E   85..82       MOV     DPL,?XSP + 0
   \   000071   85..83       MOV     DPH,?XSP + 1
   \   000074   E0           MOVX    A,@DPTR
   \   000075   6402         XRL     A,#0x2
   \   000077   70B6         JNZ     ??SPIMgr_ProcessZToolData_1
   \   000079   7401         MOV     A,#0x1
   \   00007B   80AE         SJMP    ??SPIMgr_ProcessZToolData_3
    213                    break;
    214          
    215                  case CMD_STATE2:
    216                    CMD_Token[1] = ch;
   \                     ??SPIMgr_ProcessZToolData_7:
   \   00007D   85..82       MOV     DPL,?XSP + 0
   \   000080   85..83       MOV     DPH,?XSP + 1
   \   000083   E0           MOVX    A,@DPTR
   \   000084   90....       MOV     DPTR,#(CMD_Token + 1)
   \   000087   F0           MOVX    @DPTR,A
    217                    state = LEN_STATE;
   \   000088   7403         MOV     A,#0x3
   \   00008A   809F         SJMP    ??SPIMgr_ProcessZToolData_3
    218                    break;
    219          
    220                  case LEN_STATE:
    221                    LEN_Token = ch;
   \                     ??SPIMgr_ProcessZToolData_8:
   \   00008C   85..82       MOV     DPL,?XSP + 0
   \   00008F   85..83       MOV     DPH,?XSP + 1
   \   000092   E0           MOVX    A,@DPTR
   \   000093   90....       MOV     DPTR,#LEN_Token
   \   000096   F0           MOVX    @DPTR,A
    222                    if (ch == 0)
   \   000097   7004         JNZ     ??SPIMgr_ProcessZToolData_11
    223                      state = FCS_STATE;
   \   000099   7405         MOV     A,#0x5
   \   00009B   8002         SJMP    ??SPIMgr_ProcessZToolData_12
    224                    else
    225                      state = DATA_STATE;
   \                     ??SPIMgr_ProcessZToolData_11:
   \   00009D   7404         MOV     A,#0x4
   \                     ??SPIMgr_ProcessZToolData_12:
   \   00009F   90....       MOV     DPTR,#state
   \   0000A2   F0           MOVX    @DPTR,A
    226          
    227                    tempDataLen = 0;
   \   0000A3   E4           CLR     A
   \   0000A4   90....       MOV     DPTR,#tempDataLen
   \   0000A7   F0           MOVX    @DPTR,A
    228          
    229                    /* Allocate memory for the data */
    230                    SPI_Msg = (mtOSALSerialData_t *)osal_msg_allocate( sizeof ( mtOSALSerialData_t ) + 2+1+LEN_Token );
   \   0000A8                ; Setup parameters for call to function osal_msg_allocate
   \   0000A8   90....       MOV     DPTR,#LEN_Token
   \   0000AB   E0           MOVX    A,@DPTR
   \   0000AC   F8           MOV     R0,A
   \   0000AD   7407         MOV     A,#0x7
   \   0000AF   28           ADD     A,R0
   \   0000B0   FA           MOV     R2,A
   \   0000B1   E4           CLR     A
   \   0000B2   3400         ADDC    A,#0x0
   \   0000B4   FB           MOV     R3,A
   \   0000B5   90....       MOV     DPTR,#(osal_msg_allocate & 0xffff)
   \   0000B8   74..         MOV     A,#((osal_msg_allocate >> 16) & 0xff)
   \   0000BA   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000BD   90....       MOV     DPTR,#SPI_Msg
   \   0000C0   EA           MOV     A,R2
   \   0000C1   F0           MOVX    @DPTR,A
   \   0000C2   A3           INC     DPTR
   \   0000C3   EB           MOV     A,R3
   \   0000C4   F0           MOVX    @DPTR,A
    231          
    232                    if (SPI_Msg)
   \   0000C5   90....       MOV     DPTR,#SPI_Msg
   \   0000C8   E0           MOVX    A,@DPTR
   \   0000C9   7002         JNZ     ??SPIMgr_ProcessZToolData_13
   \   0000CB   A3           INC     DPTR
   \   0000CC   E0           MOVX    A,@DPTR
   \                     ??SPIMgr_ProcessZToolData_13:
   \   0000CD   6044         JZ      ??SPIMgr_ProcessZToolData_14
    233                    {
    234                      /* Fill up what we can */
    235                      SPI_Msg->hdr.event = CMD_SERIAL_MSG;
   \   0000CF   12....       LCALL   ?Subroutine4 & 0xFFFF
   \                     ??CrossCallReturnLabel_8:
   \   0000D2   7401         MOV     A,#0x1
   \   0000D4   F0           MOVX    @DPTR,A
    236                      SPI_Msg->msg = (uint8*)(SPI_Msg+1);
   \   0000D5   90....       MOV     DPTR,#SPI_Msg
   \   0000D8   E0           MOVX    A,@DPTR
   \   0000D9   2404         ADD     A,#0x4
   \   0000DB   F8           MOV     R0,A
   \   0000DC   A3           INC     DPTR
   \   0000DD   E0           MOVX    A,@DPTR
   \   0000DE   3400         ADDC    A,#0x0
   \   0000E0   F9           MOV     R1,A
   \   0000E1   12....       LCALL   ?Subroutine2 & 0xFFFF
   \                     ??CrossCallReturnLabel_4:
   \   0000E4   E8           MOV     A,R0
   \   0000E5   F0           MOVX    @DPTR,A
   \   0000E6   A3           INC     DPTR
   \   0000E7   E9           MOV     A,R1
   \   0000E8   F0           MOVX    @DPTR,A
    237                      SPI_Msg->msg[0] = CMD_Token[0];
   \   0000E9   90....       MOV     DPTR,#CMD_Token
   \   0000EC   E0           MOVX    A,@DPTR
   \   0000ED   C0E0         PUSH    A
   \   0000EF   12....       LCALL   ?Subroutine1 & 0xFFFF
   \                     ??CrossCallReturnLabel_2:
   \   0000F2   12....       LCALL   ??Subroutine4_0 & 0xFFFF
   \                     ??CrossCallReturnLabel_9:
   \   0000F5   D0E0         POP     A
   \   0000F7   F0           MOVX    @DPTR,A
    238                      SPI_Msg->msg[1] = CMD_Token[1];
   \   0000F8   90....       MOV     DPTR,#(CMD_Token + 1)
   \   0000FB   E0           MOVX    A,@DPTR
   \   0000FC   C0E0         PUSH    A
   \   0000FE   12....       LCALL   ?Subroutine0 & 0xFFFF
   \                     ??CrossCallReturnLabel_0:
   \   000101   D0E0         POP     A
   \   000103   F0           MOVX    @DPTR,A
    239                      SPI_Msg->msg[2] = LEN_Token;
   \   000104   90....       MOV     DPTR,#LEN_Token
   \   000107   E0           MOVX    A,@DPTR
   \   000108   C0E0         PUSH    A
   \   00010A   12....       LCALL   ?Subroutine0 & 0xFFFF
   \                     ??CrossCallReturnLabel_1:
   \   00010D   A3           INC     DPTR
   \   00010E   D0E0         POP     A
   \   000110   02....       LJMP    ??SPIMgr_ProcessZToolData_4 & 0xFFFF
    240                    }
    241                    else
    242                    {
    243                      state = SOP_STATE;
   \                     ??SPIMgr_ProcessZToolData_14:
   \   000113   E4           CLR     A
   \   000114   90....       MOV     DPTR,#state
   \   000117   F0           MOVX    @DPTR,A
    244                      return;
   \   000118   02....       LJMP    ??SPIMgr_ProcessZToolData_0 & 0xFFFF
    245                    }
    246          
    247                    break;
    248          
    249                  case DATA_STATE:
    250                      SPI_Msg->msg[3 + tempDataLen++] = ch;
   \                     ??SPIMgr_ProcessZToolData_9:
   \   00011B   85..82       MOV     DPL,?XSP + 0
   \   00011E   85..83       MOV     DPH,?XSP + 1
   \   000121   E0           MOVX    A,@DPTR
   \   000122   C0E0         PUSH    A
   \   000124   90....       MOV     DPTR,#tempDataLen
   \   000127   E0           MOVX    A,@DPTR
   \   000128   F8           MOV     R0,A
   \   000129   12....       LCALL   ?Subroutine2 & 0xFFFF
   \                     ??CrossCallReturnLabel_5:
   \   00012C   E0           MOVX    A,@DPTR
   \   00012D   28           ADD     A,R0
   \   00012E   FA           MOV     R2,A
   \   00012F   A3           INC     DPTR
   \   000130   E0           MOVX    A,@DPTR
   \   000131   3400         ADDC    A,#0x0
   \   000133   8A82         MOV     DPL,R2
   \   000135   F583         MOV     DPH,A
   \   000137   A3           INC     DPTR
   \   000138   A3           INC     DPTR
   \   000139   A3           INC     DPTR
   \   00013A   D0E0         POP     A
   \   00013C   F0           MOVX    @DPTR,A
   \   00013D   90....       MOV     DPTR,#tempDataLen
   \   000140   E0           MOVX    A,@DPTR
   \   000141   04           INC     A
   \   000142   F0           MOVX    @DPTR,A
    251                      if ( tempDataLen == LEN_Token )
   \   000143   FA           MOV     R2,A
   \   000144   90....       MOV     DPTR,#LEN_Token
   \   000147   E0           MOVX    A,@DPTR
   \   000148   6A           XRL     A,R2
   \   000149   6003         JZ      $+5
   \   00014B   02....       LJMP    ??SPIMgr_ProcessZToolData_1 & 0xFFFF
    252                        state = FCS_STATE;
   \   00014E   7405         MOV     A,#0x5
   \   000150   02....       LJMP    ??SPIMgr_ProcessZToolData_3 & 0xFFFF
    253                    break;
    254          
    255                  case FCS_STATE:
    256          
    257                    FSC_Token = ch;
   \                     ??SPIMgr_ProcessZToolData_10:
   \   000153   85..82       MOV     DPL,?XSP + 0
   \   000156   85..83       MOV     DPH,?XSP + 1
   \   000159   E0           MOVX    A,@DPTR
   \   00015A   90....       MOV     DPTR,#FSC_Token
   \   00015D   F0           MOVX    @DPTR,A
    258          
    259                    /* Make sure it's correct */
    260                    if ((SPIMgr_CalcFCS ((uint8*)&SPI_Msg->msg[0], 2 + 1 + LEN_Token) == FSC_Token))
   \   00015E                ; Setup parameters for call to function SPIMgr_CalcFCS
   \   00015E   90....       MOV     DPTR,#LEN_Token
   \   000161   E0           MOVX    A,@DPTR
   \   000162   2403         ADD     A,#0x3
   \   000164   F9           MOV     R1,A
   \   000165   12....       LCALL   ?Subroutine1 & 0xFFFF
   \                     ??CrossCallReturnLabel_3:
   \   000168   FA           MOV     R2,A
   \   000169   A3           INC     DPTR
   \   00016A   E0           MOVX    A,@DPTR
   \   00016B   FB           MOV     R3,A
   \   00016C   90....       MOV     DPTR,#(SPIMgr_CalcFCS & 0xffff)
   \   00016F   74..         MOV     A,#((SPIMgr_CalcFCS >> 16) & 0xff)
   \   000171   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000174   E9           MOV     A,R1
   \   000175   FA           MOV     R2,A
   \   000176   90....       MOV     DPTR,#FSC_Token
   \   000179   E0           MOVX    A,@DPTR
   \   00017A   6A           XRL     A,R2
   \   00017B   90....       MOV     DPTR,#SPI_Msg
   \   00017E   7011         JNZ     ??SPIMgr_ProcessZToolData_15

⌨️ 快捷键说明

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