zdapp.lst
来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,223 行 · 第 1/5 页
LST
1,223 行
\ 00002D F9 MOV R1,A
\ 00002E 90.... MOV DPTR,#(ZDO_StartDevice & 0xffff)
\ 000031 74.. MOV A,#((ZDO_StartDevice >> 16) & 0xff)
\ 000033 12.... LCALL ?BCALL ; Banked call to: DPTR()
362
363 // Return unprocessed events
364 return (events ^ ZDO_NETWORK_INIT);
\ 000036 7401 MOV A,#0x1
\ ??ZDApp_event_loop_3:
\ 000038 6E XRL A,R6
\ 000039 FA MOV R2,A
\ 00003A EF MOV A,R7
\ ??ZDApp_event_loop_4:
\ 00003B FB MOV R3,A
\ 00003C 02.... LJMP ??ZDApp_event_loop_5 & 0xFFFF
365 }
\ ??ZDApp_event_loop_6:
\ 00003F ; Setup parameters for call to function ZDApp_ProcessOSALMsg
\ 00003F 90.... MOV DPTR,#(ZDApp_ProcessOSALMsg & 0xffff)
\ 000042 74.. MOV A,#((ZDApp_ProcessOSALMsg >> 16) & 0xff)
\ 000044 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 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()
\ ??ZDApp_event_loop_1:
\ 000053 ; Setup parameters for call to function osal_msg_receive
\ 000053 90.... MOV DPTR,#ZDAppTaskID
\ 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 EA MOV A,R2
\ 000065 7001 JNZ ??ZDApp_event_loop_7
\ 000067 EB MOV A,R3
\ ??ZDApp_event_loop_7:
\ 000068 70D5 JNZ ??ZDApp_event_loop_6
\ 00006A EE MOV A,R6
\ 00006B FA MOV R2,A
\ 00006C 7480 MOV A,#-0x80
\ ??ZDApp_event_loop_8:
\ 00006E 6F XRL A,R7
\ 00006F 80CA SJMP ??ZDApp_event_loop_4
366
367 #if defined (RTR_NWK)
368 if ( events & ZDO_NETWORK_START )
\ ??ZDApp_event_loop_2:
\ 000071 5402 ANL A,#0x2
\ 000073 600C JZ ??ZDApp_event_loop_9
369 {
370 ZDApp_NetworkStartEvt();
\ 000075 ; Setup parameters for call to function ZDApp_NetworkStartEvt
\ 000075 90.... MOV DPTR,#(ZDApp_NetworkStartEvt & 0xffff)
\ 000078 74.. MOV A,#((ZDApp_NetworkStartEvt >> 16) & 0xff)
\ 00007A 12.... LCALL ?BCALL ; Banked call to: DPTR()
371
372 // Return unprocessed events
373 return (events ^ ZDO_NETWORK_START);
\ 00007D 7402 MOV A,#0x2
\ ??ZDApp_event_loop_10:
\ 00007F 80B7 SJMP ??ZDApp_event_loop_3
374 }
375 #endif //RTR_NWK
376
377 #if defined ( RTR_NWK )
378 if ( events & ZDO_ROUTER_START )
\ ??ZDApp_event_loop_9:
\ 000081 EE MOV A,R6
\ 000082 5420 ANL A,#0x20
\ 000084 6027 JZ ??ZDApp_event_loop_11
379 {
380 if ( nwkStatus == ZSuccess )
\ 000086 90.... MOV DPTR,#nwkStatus
\ 000089 E0 MOVX A,@DPTR
\ 00008A 7015 JNZ ??ZDApp_event_loop_12
381 {
382 if ( devState == DEV_END_DEVICE )
\ 00008C 90.... MOV DPTR,#devState
\ 00008F E0 MOVX A,@DPTR
\ 000090 6406 XRL A,#0x6
\ 000092 7003 JNZ ??ZDApp_event_loop_13
383 devState = DEV_ROUTER;
\ 000094 7407 MOV A,#0x7
\ 000096 F0 MOVX @DPTR,A
384
385 osal_pwrmgr_device( PWRMGR_ALWAYS_ON );
\ ??ZDApp_event_loop_13:
\ 000097 ; Setup parameters for call to function osal_pwrmgr_device
\ 000097 7900 MOV R1,#0x0
\ 000099 90.... MOV DPTR,#(osal_pwrmgr_device & 0xffff)
\ 00009C 74.. MOV A,#((osal_pwrmgr_device >> 16) & 0xff)
\ 00009E 12.... LCALL ?BCALL ; Banked call to: DPTR()
386 }
387 else
388 {
389 // remain as end device!!
390 }
391 osal_set_event( ZDAppTaskID, ZDO_STATE_CHANGE_EVT );
\ ??ZDApp_event_loop_12:
\ 0000A1 ; Setup parameters for call to function osal_set_event
\ 0000A1 7A10 MOV R2,#0x10
\ 0000A3 12.... LCALL ?Subroutine4 & 0xFFFF
\ ??CrossCallReturnLabel_58:
\ 0000A6 12.... LCALL ?BCALL ; Banked call to: DPTR()
392
393 // Return unprocessed events
394 return (events ^ ZDO_ROUTER_START);
\ 0000A9 7420 MOV A,#0x20
\ 0000AB 808B SJMP ??ZDApp_event_loop_3
395 }
396 #endif // RTR
397
398 if ( events & ZDO_STATE_CHANGE_EVT )
\ ??ZDApp_event_loop_11:
\ 0000AD EE MOV A,R6
\ 0000AE 5410 ANL A,#0x10
\ 0000B0 6011 JZ ??ZDApp_event_loop_14
399 {
400 ZDO_UpdateNwkStatus( devState );
\ 0000B2 ; Setup parameters for call to function ZDO_UpdateNwkStatus
\ 0000B2 90.... MOV DPTR,#devState
\ 0000B5 E0 MOVX A,@DPTR
\ 0000B6 F9 MOV R1,A
\ 0000B7 90.... MOV DPTR,#(ZDO_UpdateNwkStatus & 0xffff)
\ 0000BA 74.. MOV A,#((ZDO_UpdateNwkStatus >> 16) & 0xff)
\ 0000BC 12.... LCALL ?BCALL ; Banked call to: DPTR()
401
402 // Return unprocessed events
403 return (events ^ ZDO_STATE_CHANGE_EVT);
\ 0000BF 7410 MOV A,#0x10
\ 0000C1 80BC SJMP ??ZDApp_event_loop_10
404 }
405
406 if ( events & ZDO_COMMAND_CNF )
\ ??ZDApp_event_loop_14:
\ 0000C3 EE MOV A,R6
\ 0000C4 5408 ANL A,#0x8
\ 0000C6 6006 JZ ??ZDApp_event_loop_15
407 {
408 // User defined logic
409
410 // Return unprocessed events
411 return (events ^ ZDO_COMMAND_CNF);
\ 0000C8 7408 MOV A,#0x8
\ 0000CA 6E XRL A,R6
\ 0000CB FA MOV R2,A
\ 0000CC 8022 SJMP ??ZDApp_event_loop_5
412 }
413
414 #if defined( ZDSECMGR_SECURE ) && defined( RTR_NWK )
415 if ( events & ZDO_NEW_DEVICE )
416 {
417 // process the new device event
418 if ( ZDSecMgrNewDeviceEvent() == TRUE )
419 {
420 osal_start_timerEx( ZDAppTaskID, ZDO_NEW_DEVICE, 1000 );
421 }
422
423 // Return unprocessed events
424 return (events ^ ZDO_NEW_DEVICE);
425 }
426 #endif // ZDSECMGR_SECURE && RTR
427
428 #if defined ( ZDSECMGR_COMMERCIAL )
429 if ( events & ZDO_SECMGR_EVENT )
430 {
431 ZDSecMgrEvent();
432
433 // Return unprocessed events
434 return (events ^ ZDO_SECMGR_EVENT);
435 }
436 #endif // defined( ZDSECMGR_COMMERCIAL )
437
438 #if ( SECURE != 0 )
439 if ( events & ZDO_DEVICE_AUTH )
440 {
441 ZDApp_DeviceAuthEvt();
442
443 // Return unprocessed events
444 return (events ^ ZDO_DEVICE_AUTH);
445 }
446 #endif // SECURE
447
448 if ( events & ZDO_NWK_UPDATE_NV )
\ ??ZDApp_event_loop_15:
\ 0000CE 7402 MOV A,#0x2
\ 0000D0 5F ANL A,R7
\ 0000D1 F9 MOV R1,A
\ 0000D2 E4 CLR A
\ 0000D3 7001 JNZ ??ZDApp_event_loop_16
\ 0000D5 E9 MOV A,R1
\ ??ZDApp_event_loop_16:
\ 0000D6 6004 JZ ??ZDApp_event_loop_17
449 {
450 ZDApp_SaveNetworkStateEvt();
451
452 // Return unprocessed events
453 return (events ^ ZDO_NWK_UPDATE_NV);
\ 0000D8 7402 MOV A,#0x2
\ 0000DA 8092 SJMP ??ZDApp_event_loop_8
454 }
455
456 #if ( SECURE != 0 )
457 if ( events & ZDO_FRAMECOUNTER_CHANGE )
458 {
459 if ( nwkFrameCounterChanges++ > MAX_NWK_FRAMECOUNTER_CHANGES )
460 ZDApp_SaveNwkKey();
461
462 // Return unprocessed events
463 return (events ^ ZDO_FRAMECOUNTER_CHANGE);
464 }
465 #endif
466
467 if ( events & ZDO_DEVICE_RESET )
\ ??ZDApp_event_loop_17:
\ 0000DC EE MOV A,R6
\ 0000DD 5404 ANL A,#0x4
\ 0000DF 600B JZ ??ZDApp_event_loop_18
468 {
469 // The device has been in the UNAUTH state, so reset
470 // Note: there will be no return from this call
471 SystemReset();
\ 0000E1 C2AF CLR 0xa8.7
\ 0000E3 75C9AB MOV 0xc9,#-0x55
\ 0000E6 75C95B MOV 0xc9,#0x5b
\ ??ZDApp_event_loop_19:
\ 0000E9 00 NOP
\ 0000EA 80FD SJMP ??ZDApp_event_loop_19
472 }
473
474 // Discard or make more handlers
475 return 0;
\ ??ZDApp_event_loop_18:
\ 0000EC 7A00 MOV R2,#0x0
\ 0000EE 7B00 MOV R3,#0x0
\ ??ZDApp_event_loop_5:
\ 0000F0 80.. SJMP ??Subroutine23_1
476 }
\ In segment BANKED_CODE, align 1, keep-with-next
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?