📄 sampleapp.lst
字号:
\ 00008E 7D00 MOV R5,#0x0
\ 000090 7A.. MOV R2,#((SampleApp_Group + 2) & 0xff)
\ 000092 7B.. MOV R3,#(((SampleApp_Group + 2) >> 8) & 0xff)
\ 000094 90.... MOV DPTR,#(osal_memcpy & 0xffff)
\ 000097 74.. MOV A,#((osal_memcpy >> 16) & 0xff)
\ 000099 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00009C 7403 MOV A,#0x3
\ 00009E 12.... LCALL ?DEALLOC_XSTACK8
219 aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
\ 0000A1 ; Setup parameters for call to function aps_AddGroup
\ 0000A1 7A.. MOV R2,#(SampleApp_Group & 0xff)
\ 0000A3 7B.. MOV R3,#((SampleApp_Group >> 8) & 0xff)
\ 0000A5 7914 MOV R1,#0x14
\ 0000A7 90.... MOV DPTR,#(aps_AddGroup & 0xffff)
\ 0000AA 74.. MOV A,#((aps_AddGroup >> 16) & 0xff)
\ 0000AC 12.... LCALL ?BCALL ; Banked call to: DPTR()
220
221 #if defined ( LCD_SUPPORTED )
222 HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 );
223 #endif
224 }
\ 0000AF 7F03 MOV R7,#0x3
\ 0000B1 02.... LJMP ?BANKED_LEAVE_XDATA
225
226 /*********************************************************************
227 * @fn SampleApp_ProcessEvent
228 *
229 * @brief Generic Application Task event processor. This function
230 * is called to process all events for the task. Events
231 * include timers, messages and any other user defined events.
232 *
233 * @param task_id - The OSAL assigned task ID.
234 * @param events - events to process. This is a bit map and can
235 * contain more than one event.
236 *
237 * @return none
238 */
\ In segment BANKED_CODE, align 1, keep-with-next
239 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
\ SampleApp_ProcessEvent:
240 {
\ 000000 74F4 MOV A,#-0xc
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 12
\ 000005 ; Auto size: 0
\ 000005 EA MOV A,R2
\ 000006 FE MOV R6,A
\ 000007 EB MOV A,R3
\ 000008 FF MOV R7,A
241 afIncomingMSGPacket_t *MSGpkt;
242
243 if ( events & SYS_EVENT_MSG )
\ 000009 7480 MOV A,#-0x80
\ 00000B 5F ANL A,R7
\ 00000C F9 MOV R1,A
\ 00000D E4 CLR A
\ 00000E 7001 JNZ ??SampleApp_ProcessEvent_0
\ 000010 E9 MOV A,R1
\ ??SampleApp_ProcessEvent_0:
\ 000011 7003 JNZ $+5
\ 000013 02.... LJMP ??SampleApp_ProcessEvent_1 & 0xFFFF
244 {
245 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
\ 000016 ; Setup parameters for call to function osal_msg_receive
\ 000016 803B SJMP ??SampleApp_ProcessEvent_2
246 while ( MSGpkt )
247 {
248 switch ( MSGpkt->hdr.event )
249 {
250 // Received when a key is pressed
251 case KEY_CHANGE:
252 SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
253 break;
254
255 // Received when a messages is received (OTA) for this endpoint
256 case AF_INCOMING_MSG_CMD:
257 SampleApp_MessageMSGCB( MSGpkt );
258 //HAL_TOGGLE_LED1();
259 break;
260
261 // Received whenever the device changes state in the network
262 case ZDO_STATE_CHANGE:
263 SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
\ ??SampleApp_ProcessEvent_3:
\ 000018 85..82 MOV DPL,?V0 + 0
\ 00001B 85..83 MOV DPH,?V0 + 1
\ 00001E A3 INC DPTR
\ 00001F E0 MOVX A,@DPTR
\ 000020 90.... MOV DPTR,#SampleApp_NwkState
\ 000023 F0 MOVX @DPTR,A
264 if ( (SampleApp_NwkState == DEV_ZB_COORD)
265 || (SampleApp_NwkState == DEV_ROUTER)
266 || (SampleApp_NwkState == DEV_END_DEVICE) )
\ 000024 6409 XRL A,#0x9
\ 000026 600A JZ ??SampleApp_ProcessEvent_4
\ 000028 E0 MOVX A,@DPTR
\ 000029 6407 XRL A,#0x7
\ 00002B 6005 JZ ??SampleApp_ProcessEvent_4
\ 00002D E0 MOVX A,@DPTR
\ 00002E 6406 XRL A,#0x6
\ 000030 7015 JNZ ??SampleApp_ProcessEvent_5
267 {
268 // Start sending the periodic message in a regular interval.
269 osal_start_timerEx( SampleApp_TaskID,
270 SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
271 SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
\ ??SampleApp_ProcessEvent_4:
\ 000032 ; Setup parameters for call to function osal_start_timerEx
\ 000032 7C88 MOV R4,#-0x78
\ 000034 7D13 MOV R5,#0x13
\ 000036 7A01 MOV R2,#0x1
\ 000038 7B00 MOV R3,#0x0
\ 00003A 90.... MOV DPTR,#SampleApp_TaskID
\ 00003D E0 MOVX A,@DPTR
\ 00003E F9 MOV R1,A
\ 00003F 90.... MOV DPTR,#(osal_start_timerEx & 0xffff)
\ 000042 74.. MOV A,#((osal_start_timerEx >> 16) & 0xff)
\ ??SampleApp_ProcessEvent_6:
\ 000044 12.... LCALL ?BCALL ; Banked call to: DPTR()
272 }
273 else
274 {
275 // Device is no longer in the network
276 }
277 break;
278
279 default:
280 break;
281 }
282
283 // Release the memory
284 osal_msg_deallocate( (uint8 *)MSGpkt );
\ ??SampleApp_ProcessEvent_5:
\ 000047 ; Setup parameters for call to function osal_msg_deallocate
\ 000047 AA.. MOV R2,?V0 + 0
\ 000049 AB.. MOV R3,?V0 + 1
\ 00004B 90.... MOV DPTR,#(osal_msg_deallocate & 0xffff)
\ 00004E 74.. MOV A,#((osal_msg_deallocate >> 16) & 0xff)
\ 000050 12.... LCALL ?BCALL ; Banked call to: DPTR()
285
286 // Next - if one is available
287 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
\ 000053 ; Setup parameters for call to function osal_msg_receive
\ ??SampleApp_ProcessEvent_2:
\ 000053 90.... MOV DPTR,#SampleApp_TaskID
\ 000056 E0 MOVX A,@DPTR
\ 000057 F9 MOV R1,A
\ 000058 90.... MOV DPTR,#(osal_msg_receive & 0xffff)
\ 00005B 74.. MOV A,#((osal_msg_receive >> 16) & 0xff)
\ 00005D 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000060 8A.. MOV ?V0 + 0,R2
\ 000062 8B.. MOV ?V0 + 1,R3
\ 000064 E5.. MOV A,?V0 + 0
\ 000066 7002 JNZ ??SampleApp_ProcessEvent_7
\ 000068 E5.. MOV A,?V0 + 1
\ ??SampleApp_ProcessEvent_7:
\ 00006A 603E JZ ??SampleApp_ProcessEvent_8
\ 00006C 85..82 MOV DPL,?V0 + 0
\ 00006F 85..83 MOV DPH,?V0 + 1
\ 000072 E0 MOVX A,@DPTR
\ 000073 12.... LCALL ?UC_SWITCH_SPARSE
\ `?<Jumptable for SampleApp_ProcessEvent>_0`:
\ 000076 00 DB 0
\ 000077 03 DB 3
\ 000078 1A DB 26
\ 000079 .... DW ??SampleApp_ProcessEvent_9
\ 00007B C0 DB 192
\ 00007C .... DW ??SampleApp_ProcessEvent_10
\ 00007E D1 DB 209
\ 00007F .... DW ??SampleApp_ProcessEvent_3
\ 000081 .... DW ??SampleApp_ProcessEvent_5
\ ??SampleApp_ProcessEvent_10:
\ 000083 ; Setup parameters for call to function SampleApp_HandleKeys
\ 000083 85..82 MOV DPL,?V0 + 0
\ 000086 85..83 MOV DPH,?V0 + 1
\ 000089 A3 INC DPTR
\ 00008A A3 INC DPTR
\ 00008B A3 INC DPTR
\ 00008C E0 MOVX A,@DPTR
\ 00008D FA MOV R2,A
\ 00008E 85..82 MOV DPL,?V0 + 0
\ 000091 85..83 MOV DPH,?V0 + 1
\ 000094 A3 INC DPTR
\ 000095 A3 INC DPTR
\ 000096 E0 MOVX A,@DPTR
\ 000097 F9 MOV R1,A
\ 000098 90.... MOV DPTR,#(SampleApp_HandleKeys & 0xffff)
\ 00009B 74.. MOV A,#((SampleApp_HandleKeys >> 16) & 0xff)
\ 00009D 80A5 SJMP ??SampleApp_ProcessEvent_6
\ ??SampleApp_ProcessEvent_9:
\ 00009F ; Setup parameters for call to function SampleApp_MessageMSGCB
\ 00009F AA.. MOV R2,?V0 + 0
\ 0000A1 AB.. MOV R3,?V0 + 1
\ 0000A3 90.... MOV DPTR,#(SampleApp_MessageMSGCB & 0xffff)
\ 0000A6 74.. MOV A,#((SampleApp_MessageMSGCB >> 16) & 0xff)
\ 0000A8 809A SJMP ??SampleApp_ProcessEvent_6
288 }
289
290 // return unprocessed events
291 return (events ^ SYS_EVENT_MSG);
\ ??SampleApp_ProcessEvent_8:
\ 0000AA EE MOV A,R6
\ 0000AB FA MOV R2,A
\ 0000AC 7480 MOV A,#-0x80
\ 0000AE 6F XRL A,R7
\ ??SampleApp_ProcessEvent_11:
\ 0000AF FB MOV R3,A
\ 0000B0 803E SJMP ??SampleApp_ProcessEvent_12
292 }
293
294 // Send a message out - This event is generated by a timer
295 // (setup in SampleApp_Init()).
296 if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
\ ??SampleApp_ProcessEvent_1:
\ 0000B2 EE MOV A,R6
\ 0000B3 A2E0 MOV C,0xE0 /* A */.0
\ 0000B5 5035 JNC ??SampleApp_ProcessEvent_13
297 {
298 // Send the periodic message
299 SampleApp_SendPeriodicMessage();
\ 0000B7 ; Setup parameters for call to function SampleApp_SendPeriodicMessage
\ 0000B7 90.... MOV DPTR,#(SampleApp_SendPeriodicMessage & 0xffff)
\ 0000BA 74.. MOV A,#((SampleApp_SendPeriodicMessage >> 16) & 0xff)
\ 0000BC 12.... LCALL ?BCALL ; Banked call to: DPTR()
300
301 // Setup to send message again in normal period (+ a little jitter)
302 osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
303 (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF)) );
\ 0000BF ; Setup parameters for call to function osal_rand
\ 0000BF 90.... MOV DPTR,#(osal_rand & 0xffff)
\ 0000C2 74.. MOV A,#((osal_rand >> 16) & 0xff)
\ 0000C4 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000C7 8A.. MOV ?V0 + 0,R2
\ 0000C9 A8.. MOV R0,?V0 + 0
\ 0000CB ; Setup parameters for call to function osal_start_timerEx
\ 0000CB 7488 MOV A,#-0x78
\ 0000CD 28 ADD A,R0
\ 0000CE FC MOV R4,A
\ 0000CF 7413 MOV A,#0x13
\ 0000D1 3400 ADDC A,#0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -