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 + -
显示快捷键?