wxl_sampleapp.lst

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

LST
1,078
字号
   \   000060   A3           INC     DPTR
   \   000061   A3           INC     DPTR
   \   000062   A3           INC     DPTR
   \   000063   E0           MOVX    A,@DPTR
   \   000064   F9           MOV     R1,A
   \   000065   90....       MOV     DPTR,#(WXL_SampleApp_HandleKeys & 0xffff)
   \   000068   74..         MOV     A,#((WXL_SampleApp_HandleKeys >> 16) & 0xff)
   \                     ??WXL_SampleApp_ProcessEvent_9:
   \   00006A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00006D   80B1         SJMP    ??WXL_SampleApp_ProcessEvent_4
   \                     ??WXL_SampleApp_ProcessEvent_7:
   \   00006F                ; Setup parameters for call to function WXL_SampleApp_MessageMSGCB
   \   00006F   EE           MOV     A,R6
   \   000070   FA           MOV     R2,A
   \   000071   EF           MOV     A,R7
   \   000072   FB           MOV     R3,A
   \   000073   90....       MOV     DPTR,#(WXL_SampleApp_MessageMSGCB & 0xffff)
   \   000076   74..         MOV     A,#((WXL_SampleApp_MessageMSGCB >> 16) & 0xff)
   \   000078   80F0         SJMP    ??WXL_SampleApp_ProcessEvent_9
    185              }
    186          
    187              // 返回未处理的任务
    188              return (events ^ SYS_EVENT_MSG);
   \                     ??WXL_SampleApp_ProcessEvent_6:
   \   00007A   AA..         MOV     R2,?V0 + 0
   \   00007C   7480         MOV     A,#-0x80
   \   00007E   65..         XRL     A,?V0 + 1
   \   000080   FB           MOV     R3,A
   \   000081   8004         SJMP    ??WXL_SampleApp_ProcessEvent_10
    189            }
    190            return 0;
   \                     ??WXL_SampleApp_ProcessEvent_1:
   \   000083   7A00         MOV     R2,#0x0
   \   000085   7B00         MOV     R3,#0x0
   \                     ??WXL_SampleApp_ProcessEvent_10:
   \   000087   7F04         MOV     R7,#0x4
   \   000089   02....       LJMP    ?BANKED_LEAVE_XDATA
    191          }
    192          
    193          /*********************************************************************
    194           * 事件处理函数
    195           */
    196          
    197          /*********************************************************************
    198           * @函数名   WXL_SampleApp_ProcessEvent
    199           *
    200           * 函数功能: 一般应用任务事件处理,这个函数是处理所有的事件到任务,事件包括
    201           *          时间片、消息和所有其他使用者定义过的时间。
    202           *
    203           * @参 数: task_id - OS分配的任务ID.  这个ID将用于发送数据和设置时间片.
    204           *          events  - 处理的事件
    205           *
    206           * @return  none
    207           */
    208          
    209          /*********************************************************************
    210           * @函数名     WXL_SampleApp_HandleKeys
    211           *
    212           * @函数功能: 处理所有的按键事件
    213           *
    214           * @参数:     keys - 返回的按键值
    215           *
    216           *
    217           * @return  none
    218           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    219          void WXL_SampleApp_HandleKeys(uint8 keys )
   \                     WXL_SampleApp_HandleKeys:
    220          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    221            if ( keys & HAL_KEY_SW_1 )
   \   000004   E9           MOV     A,R1
   \   000005   A2E0         MOV     C,0xE0 /* A   */.0
   \   000007   5014         JNC     ??WXL_SampleApp_HandleKeys_0
    222            {
    223              if(WXL_SampleApp_NwkState == DEV_ZB_COORD)                      //如果是协调器
   \   000009   90....       MOV     DPTR,#WXL_SampleApp_NwkState
   \   00000C   E0           MOVX    A,@DPTR
   \   00000D   6409         XRL     A,#0x9
   \   00000F   700C         JNZ     ??WXL_SampleApp_HandleKeys_0
    224              WXL_SampleApp_SendFlashMessage( "OPEN" );                       //发送数据
   \   000011                ; Setup parameters for call to function WXL_SampleApp_SendFlashMessage
   \   000011   7A..         MOV     R2,#(`?<Constant "OPEN">` & 0xff)
   \   000013   7B..         MOV     R3,#((`?<Constant "OPEN">` >> 8) & 0xff)
   \   000015   90....       MOV     DPTR,#(WXL_SampleApp_SendFlashMessage & 0xffff)
   \   000018   74..         MOV     A,#((WXL_SampleApp_SendFlashMessage >> 16) & 0xff)
   \   00001A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    225              else
    226              {
    227          
    228              }
    229            }
    230          }
   \                     ??WXL_SampleApp_HandleKeys_0:
   \   00001D   02....       LJMP    ?Subroutine1 & 0xFFFF
    231          
    232          /*********************************************************************
    233           * @函数名:   WXL_SampleApp_MessageMSGCB
    234           *
    235           * @函数功能: 接收的数据处理量.根据不同的串ID实现不同的功能。
    236           *
    237           * @param   none
    238           *
    239           * @return  none
    240           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    241          void WXL_SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
   \                     WXL_SampleApp_MessageMSGCB:
    242          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 4
   \   000005   74FC         MOV     A,#-0x4
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   EA           MOV     A,R2
   \   00000B   FE           MOV     R6,A
   \   00000C   EB           MOV     A,R3
   \   00000D   FF           MOV     R7,A
    243            unsigned char Rx_Buf[4];
    244            switch ( pkt->clusterId )
   \   00000E   8E82         MOV     DPL,R6
   \   000010   8F83         MOV     DPH,R7
   \   000012   A3           INC     DPTR
   \   000013   A3           INC     DPTR
   \   000014   A3           INC     DPTR
   \   000015   A3           INC     DPTR
   \   000016   E0           MOVX    A,@DPTR
   \   000017   F5..         MOV     ?V0 + 0,A
   \   000019   A3           INC     DPTR
   \   00001A   E0           MOVX    A,@DPTR
   \   00001B   F5..         MOV     ?V0 + 1,A
   \   00001D   78..         MOV     R0,#?V0 + 0
   \   00001F   12....       LCALL   ?US_SWITCH_DENSE
   \                     `?<Jumptable for WXL_SampleApp_MessageMSGCB>_0`:
   \   000022   0100         DW        1
   \   000024   01           DB        1
   \   000025   ....         DW        ??WXL_SampleApp_MessageMSGCB_0
   \   000027   ....         DW        ??WXL_SampleApp_MessageMSGCB_1
   \   000029   ....         DW        ??WXL_SampleApp_MessageMSGCB_2
    245            {
    246              case WXL_SAMPLEAPP_CLUSTERID1:
    247                memcpy(Rx_Buf,pkt->cmd.Data,3);
   \                     ??WXL_SampleApp_MessageMSGCB_1:
   \   00002B                ; Setup parameters for call to function memcpy
   \   00002B   75..03       MOV     ?V0 + 0,#0x3
   \   00002E   75..00       MOV     ?V0 + 1,#0x0
   \   000031   78..         MOV     R0,#?V0 + 0
   \   000033   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000036   12....       LCALL   ?Subroutine0 & 0xFFFF
   \                     ??CrossCallReturnLabel_0:
   \   000039   12....       LCALL   ?XSTACK_DISP0_8
   \   00003C   AA82         MOV     R2,DPL
   \   00003E   AB83         MOV     R3,DPH
   \   000040   90....       MOV     DPTR,#(memcpy & 0xffff)
   \   000043   74..         MOV     A,#((memcpy >> 16) & 0xff)
   \   000045   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000048   7402         MOV     A,#0x2
   \   00004A   12....       LCALL   ?DEALLOC_XSTACK8
    248                if((Rx_Buf[0] == 'Y') && (Rx_Buf[1] == 'E') && (Rx_Buf[2] == 'S'))
   \   00004D   85..82       MOV     DPL,?XSP + 0
   \   000050   85..83       MOV     DPH,?XSP + 1
   \   000053   E0           MOVX    A,@DPTR
   \   000054   6459         XRL     A,#0x59
   \   000056   6003         JZ      $+5
   \   000058   02....       LJMP    ??WXL_SampleApp_MessageMSGCB_0 & 0xFFFF
   \   00005B   7401         MOV     A,#0x1
   \   00005D   12....       LCALL   ?XSTACK_DISP0_8
   \   000060   E0           MOVX    A,@DPTR
   \   000061   6445         XRL     A,#0x45
   \   000063   6003         JZ      $+5
   \   000065   02....       LJMP    ??WXL_SampleApp_MessageMSGCB_0 & 0xFFFF
   \   000068   7402         MOV     A,#0x2
   \   00006A   12....       LCALL   ?XSTACK_DISP0_8
   \   00006D   E0           MOVX    A,@DPTR
   \   00006E   6453         XRL     A,#0x53
   \   000070   6003         JZ      $+5
   \   000072   02....       LJMP    ??WXL_SampleApp_MessageMSGCB_0 & 0xFFFF
    249                {
    250                  HalLedBlink( HAL_LED_4, 4, 50, 250);         //小灯闪烁四次
   \   000075                ; Setup parameters for call to function HalLedBlink
   \   000075   7CFA         MOV     R4,#-0x6
   \   000077   7D00         MOV     R5,#0x0
   \   000079   7B32         MOV     R3,#0x32
   \   00007B   7A04         MOV     R2,#0x4
   \   00007D   7908         MOV     R1,#0x8
   \   00007F   90....       MOV     DPTR,#(HalLedBlink & 0xffff)
   \   000082   74..         MOV     A,#((HalLedBlink >> 16) & 0xff)
   \   000084   8077         SJMP    ??WXL_SampleApp_MessageMSGCB_3
    251                }
    252                break;
    253          
    254              case WXL_SAMPLEAPP_CLUSTERID2:
    255                memcpy(Rx_Buf,pkt->cmd.Data,4);
   \                     ??WXL_SampleApp_MessageMSGCB_2:
   \   000086                ; Setup parameters for call to function memcpy
   \   000086   75..04       MOV     ?V0 + 0,#0x4
   \   000089   75..00       MOV     ?V0 + 1,#0x0
   \   00008C   78..         MOV     R0,#?V0 + 0
   \   00008E   12....       LCALL   ?PUSH_XSTACK_I_TWO
   \   000091   12....       LCALL   ?Subroutine0 & 0xFFFF
   \                     ??CrossCallReturnLabel_1:
   \   000094   12....       LCALL   ?XSTACK_DISP0_8
   \   000097   AA82         MOV     R2,DPL
   \   000099   AB83         MOV     R3,DPH
   \   00009B   90....       MOV     DPTR,#(memcpy & 0xffff)
   \   00009E   74..         MOV     A,#((memcpy >> 16) & 0xff)
   \   0000A0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000A3   7402         MOV     A,#0x2
   \   0000A5   12....       LCALL   ?DEALLOC_XSTACK8
    256                if((Rx_Buf[0] == 'O') && (Rx_Buf[1] == 'P') && (Rx_Buf[2] == 'E') && (Rx_Buf[3] == 'N'))
   \   0000A8   85..82       MOV     DPL,?XSP + 0
   \   0000AB   85..83       MOV     DPH,?XSP + 1
   \   0000AE   E0           MOVX    A,@DPTR
   \   0000AF   644F         XRL     A,#0x4f
   \   0000B1   704D         JNZ     ??WXL_SampleApp_MessageMSGCB_0
   \   0000B3   7401         MOV     A,#0x1
   \   0000B5   12....       LCALL   ?XSTACK_DISP0_8
   \   0000B8   E0           MOVX    A,@DPTR
   \   0000B9   6450         XRL     A,#0x50
   \   0000BB   7043         JNZ     ??WXL_SampleApp_MessageMSGCB_0
   \   0000BD   7402         MOV     A,#0x2
   \   0000BF   12....       LCALL   ?XSTACK_DISP0_8
   \   0000C2   E0           MOVX    A,@DPTR
   \   0000C3   6445         XRL     A,#0x45
   \   0000C5   7039         JNZ     ??WXL_SampleApp_MessageMSGCB_0
   \   0000C7   7403         MOV     A,#0x3
   \   0000C9   12....       LCALL   ?XSTACK_DISP0_8
   \   0000CC   E0           MOVX    A,@DPTR
   \   0000CD   644E         XRL     A,#0x4e
   \   0000CF   702F         JNZ     ??WXL_SampleApp_MessageMSGCB_0
    257                {
    258                  HalLedBlink( HAL_LED_4, 4, 50, 250);         //小灯闪烁四次
   \   0000D1                ; Setup parameters for call to function HalLedBlink
   \   0000D1   7CFA         MOV     R4,#-0x6
   \   0000D3   7D00         MOV     R5,#0x0
   \   0000D5   7B32         MOV     R3,#0x32
   \   0000D7   7A04         MOV     R2,#0x4
   \   0000D9   7908         MOV     R1,#0x8
   \   0000DB   90....       MOV     DPTR,#(HalLedBlink & 0xffff)
   \   0000DE   74..         MOV     A,#((HalLedBlink >> 16) & 0xff)
   \   0000E0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    259                  WXL_SampleApp_SendData("YES",pkt->srcAddr.addr.shortAddr,3);  //以单播的方式回复信号
   \   0000E3                ; Setup parameters for call to function WXL_SampleApp_SendData
   \   0000E3   7903         MOV     R1,#0x3
   \   0000E5   8E82         MOV     DPL,R6
   \   0000E7   8F83         MOV     DPH,R7
   \   0000E9   A3           INC     DPTR
   \   0000EA   A3           INC     DPTR
   \   0000EB   A3           INC     DPTR
   \   0000EC   A3           INC     DPTR
   \   0000ED   A3           INC     DPTR
   \   0000EE   A3           INC     DPTR
   \   0000EF   E0           MOVX    A,@DPTR
   \   0000F0   FC           MOV     R4,A
   \   0000F1   A3           INC     DPTR
   \   0000F2   E0           MOVX    A,@DPTR
   \   0000F3   FD           MOV     R5,A
   \   0000F4   7A..         MOV     R2,#(`?<Constant "YES">` & 0xff)
   \   0000F6   7B..         MOV     R3,#((`?<Constant "YES">` >> 8) & 0xff)
   \   0000F8   90....       MOV     DPTR,#(WXL_SampleApp_SendData & 0xffff)
   \   0000FB   74..         MOV     A,#((WXL_SampleApp_SendData >> 16) & 0xff)
   \                     ??WXL_SampleApp_MessageMSGCB_3:
   \   0000FD   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    260                }

⌨️ 快捷键说明

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