📄 sampleapp.lst
字号:
\ 0000D4 7A01 MOV R2,#0x1
\ 0000D6 7B00 MOV R3,#0x0
\ 0000D8 90.... MOV DPTR,#SampleApp_TaskID
\ 0000DB E0 MOVX A,@DPTR
\ 0000DC F9 MOV R1,A
\ 0000DD 90.... MOV DPTR,#(osal_start_timerEx & 0xffff)
\ 0000E0 74.. MOV A,#((osal_start_timerEx >> 16) & 0xff)
\ 0000E2 12.... LCALL ?BCALL ; Banked call to: DPTR()
305
306 // return unprocessed events
307 return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
\ 0000E5 7401 MOV A,#0x1
\ 0000E7 6E XRL A,R6
\ 0000E8 FA MOV R2,A
\ 0000E9 EF MOV A,R7
\ 0000EA 80C3 SJMP ??SampleApp_ProcessEvent_11
308 }
309
310 // Discard unknown events
311 return 0;
\ ??SampleApp_ProcessEvent_13:
\ 0000EC 7A00 MOV R2,#0x0
\ 0000EE 7B00 MOV R3,#0x0
\ ??SampleApp_ProcessEvent_12:
\ 0000F0 7F04 MOV R7,#0x4
\ 0000F2 02.... LJMP ?BANKED_LEAVE_XDATA
312 }
313
314 /*********************************************************************
315 * Event Generation Functions
316 */
317 /*********************************************************************
318 * @fn SampleApp_HandleKeys
319 *
320 * @brief Handles all key events for this device.
321 *
322 * @param shift - true if in shift/alt.
323 * @param keys - bit field for key events. Valid entries:
324 * HAL_KEY_SW_2
325 * HAL_KEY_SW_1
326 *
327 * @return none
328 */
\ In segment BANKED_CODE, align 1, keep-with-next
329 void SampleApp_HandleKeys( uint8 shift, uint8 keys )
\ SampleApp_HandleKeys:
330 {
\ 000000 74F6 MOV A,#-0xa
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 10
\ 000005 ; Auto size: 0
\ 000005 EA MOV A,R2
\ 000006 FE MOV R6,A
331 if ( keys & HAL_KEY_SW_1 )
\ 000007 A2E0 MOV C,0xE0 /* A */.0
\ 000009 500C JNC ??SampleApp_HandleKeys_0
332 {
333 /* This key sends the Flash Command is sent to Group 1.
334 * This device will not receive the Flash Command from this
335 * device (even if it belongs to group 1).
336 */
337 SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION );
\ 00000B ; Setup parameters for call to function SampleApp_SendFlashMessage
\ 00000B 7AE8 MOV R2,#-0x18
\ 00000D 7B03 MOV R3,#0x3
\ 00000F 90.... MOV DPTR,#(SampleApp_SendFlashMessage & 0xffff)
\ 000012 74.. MOV A,#((SampleApp_SendFlashMessage >> 16) & 0xff)
\ 000014 12.... LCALL ?BCALL ; Banked call to: DPTR()
338 }
339
340 if ( keys & HAL_KEY_SW_2 )
\ ??SampleApp_HandleKeys_0:
\ 000017 EE MOV A,R6
\ 000018 A2E1 MOV C,0xE0 /* A */.1
\ 00001A 502F JNC ??SampleApp_HandleKeys_1
341 {
342 /* The Flashr Command is sent to Group 1.
343 * This key toggles this device in and out of group 1.
344 * If this device doesn't belong to group 1, this application
345 * will not receive the Flash command sent to group 1.
346 */
347 aps_Group_t *grp;
348 grp = aps_FindGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
349 if ( grp )
\ 00001C ; Setup parameters for call to function aps_FindGroup
\ 00001C 7A01 MOV R2,#0x1
\ 00001E 7B00 MOV R3,#0x0
\ 000020 7914 MOV R1,#0x14
\ 000022 90.... MOV DPTR,#(aps_FindGroup & 0xffff)
\ 000025 74.. MOV A,#((aps_FindGroup >> 16) & 0xff)
\ 000027 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00002A EA MOV A,R2
\ 00002B 7001 JNZ ??SampleApp_HandleKeys_2
\ 00002D EB MOV A,R3
\ ??SampleApp_HandleKeys_2:
\ 00002E 600D JZ ??SampleApp_HandleKeys_3
350 {
351 // Remove from the group
352 aps_RemoveGroup( SAMPLEAPP_ENDPOINT, SAMPLEAPP_FLASH_GROUP );
\ 000030 ; Setup parameters for call to function aps_RemoveGroup
\ 000030 7A01 MOV R2,#0x1
\ 000032 7B00 MOV R3,#0x0
\ 000034 7914 MOV R1,#0x14
\ 000036 90.... MOV DPTR,#(aps_RemoveGroup & 0xffff)
\ 000039 74.. MOV A,#((aps_RemoveGroup >> 16) & 0xff)
\ 00003B 800B SJMP ??SampleApp_HandleKeys_4
353 }
354 else
355 {
356 // Add to the flash group
357 aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
\ ??SampleApp_HandleKeys_3:
\ 00003D ; Setup parameters for call to function aps_AddGroup
\ 00003D 7A.. MOV R2,#(SampleApp_Group & 0xff)
\ 00003F 7B.. MOV R3,#((SampleApp_Group >> 8) & 0xff)
\ 000041 7914 MOV R1,#0x14
\ 000043 90.... MOV DPTR,#(aps_AddGroup & 0xffff)
\ 000046 74.. MOV A,#((aps_AddGroup >> 16) & 0xff)
\ ??SampleApp_HandleKeys_4:
\ 000048 12.... LCALL ?BCALL ; Banked call to: DPTR()
358 }
359 }
360 }
\ ??SampleApp_HandleKeys_1:
\ 00004B 02.... LJMP ??Subroutine1_0 & 0xFFFF
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine1:
\ 000000 12.... LCALL ?DEALLOC_XSTACK8
\ ??Subroutine1_0:
\ 000003 7F02 MOV R7,#0x2
\ 000005 02.... LJMP ?BANKED_LEAVE_XDATA
361
362 /*********************************************************************
363 * LOCAL FUNCTIONS
364 */
365
366 /*********************************************************************
367 * @fn SampleApp_MessageMSGCB
368 *
369 * @brief Data message processor callback. This function processes
370 * any incoming data - probably from other devices. So, based
371 * on cluster ID, perform the intended action.
372 *
373 * @param none
374 *
375 * @return none
376 */
\ In segment BANKED_CODE, align 1, keep-with-next
377 UINT8 SendData(UINT8 *buf, UINT16 addr, UINT8 Leng)
\ SendData:
378 {
\ 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
379 afAddrType_t SendDataAddr;
380
381 SendDataAddr.addrMode = (afAddrMode_t)Addr16Bit;
\ 00000A 7402 MOV A,#0x2
\ 00000C 12.... LCALL ?XSTACK_DISP0_8
\ 00000F 7402 MOV A,#0x2
\ 000011 F0 MOVX @DPTR,A
382 SendDataAddr.endPoint = SAMPLEAPP_ENDPOINT;
\ 000012 7403 MOV A,#0x3
\ 000014 12.... LCALL ?XSTACK_DISP0_8
\ 000017 7414 MOV A,#0x14
\ 000019 F0 MOVX @DPTR,A
383 SendDataAddr.addr.shortAddr = addr;
\ 00001A 85..82 MOV DPL,?XSP + 0
\ 00001D 85..83 MOV DPH,?XSP + 1
\ 000020 EC MOV A,R4
\ 000021 F0 MOVX @DPTR,A
\ 000022 A3 INC DPTR
\ 000023 ED MOV A,R5
\ 000024 F0 MOVX @DPTR,A
384 if ( AF_DataRequest( &SendDataAddr, &SampleApp_epDesc,
385 SAMPLEAPP_PERIODIC_CLUSTERID,
386 Leng,
387 buf,
388 &SampleApp_TransID,
389 AF_DISCV_ROUTE,
390 AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
\ 000025 ; Setup parameters for call to function AF_DataRequest
\ 000025 75..0A MOV ?V0 + 0,#0xa
\ 000028 78.. MOV R0,#?V0 + 0
\ 00002A 12.... LCALL ?PUSH_XSTACK_I_ONE
\ 00002D 75.... MOV ?V0 + 0,#(SampleApp_TransID & 0xff)
\ 000030 75.... MOV ?V0 + 1,#((SampleApp_TransID >> 8) & 0xff)
\ 000033 78.. MOV R0,#?V0 + 0
\ 000035 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000038 8A.. MOV ?V0 + 0,R2
\ 00003A 8B.. MOV ?V0 + 1,R3
\ 00003C 78.. MOV R0,#?V0 + 0
\ 00003E 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000041 89.. MOV ?V0 + 0,R1
\ 000043 75..00 MOV ?V0 + 1,#0x0
\ 000046 78.. MOV R0,#?V0 + 0
\ 000048 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00004B 75..01 MOV ?V0 + 0,#0x1
\ 00004E 78.. MOV R0,#?V0 + 0
\ 000050 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000053 7920 MOV R1,#0x20
\ 000055 7C.. MOV R4,#(SampleApp_epDesc & 0xff)
\ 000057 7D.. MOV R5,#((SampleApp_epDesc >> 8) & 0xff)
\ 000059 7409 MOV A,#0x9
\ 00005B 12.... LCALL ?XSTACK_DISP0_8
\ 00005E AA82 MOV R2,DPL
\ 000060 AB83 MOV R3,DPH
\ 000062 90.... MOV DPTR,#(AF_DataRequest & 0xffff)
\ 000065 74.. MOV A,#((AF_DataRequest >> 16) & 0xff)
\ 000067 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00006A 7409 MOV A,#0x9
\ 00006C 12.... LCALL ?DEALLOC_XSTACK8
\ 00006F E9 MOV A,R1
\ 000070 7004 JNZ ??SendData_0
391 {
392 return 1;
\ 000072 7901 MOV R1,#0x1
\ 000074 8002 SJMP ??SendData_1
393 }
394 else
395 {
396 return 0;// Error occurred in request to send.
\ ??SendData_0:
\ 000076 7900 MOV R1,#0x0
\ ??SendData_1:
\ 000078 7404 MOV A,#0x4
\ 00007A 02.... LJMP ?Subroutine1 & 0xFFFF
397 }
398 }
399
400 /*********************************************************************
401 * @fn SampleApp_MessageMSGCB
402 *
403 * @brief
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -