⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac_tx_engine.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000005                ; Auto size: 0
   \   000005                ; Setup parameters for call to function mschAddTask
   \   000005   75....       MOV     ?V0 + 0,#(mtxResumeAfterBeaconTask & 0xff)
   \   000008   75....       MOV     ?V0 + 1,#((mtxResumeAfterBeaconTask >> 8) & 0xff)
   \   00000B   75....       MOV     ?V0 + 2,#((mtxResumeAfterBeaconTask >> 16) & 0xff)
   \   00000E   78..         MOV     R0,#?V0 + 0
   \   000010   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   000013   7A02         MOV     R2,#0x2
   \   000015   EA           MOV     A,R2
   \   000016   C0E0         PUSH    A
   \   000018                ; Setup parameters for call to function mschReserveTask
   \   000018   12....       LCALL   mschReserveTask & 0xFFFF
   \   00001B   E4           CLR     A
   \   00001C   FC           MOV     R4,A
   \   00001D   FD           MOV     R5,A
   \   00001E   D0E0         POP     A
   \   000020   FA           MOV     R2,A
   \   000021   12....       LCALL   mschAddTask & 0xFFFF
   \   000024   7403         MOV     A,#0x3
   \   000026   12....       LCALL   ?DEALLOC_XSTACK8
   \   000029   7F03         MOV     R7,#0x3
   \   00002B   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    264          void mtxResumeAfterBeaconTask(MAC_TASK_INFO   *pTask) NEAR { mtxResumeAfterBeacon(); mschRemoveTask(pTask->priority, MSCH_KEEP_TASK_IN_PROGRESS_BM); }
   \                     mtxResumeAfterBeaconTask:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
   \   000009                ; Setup parameters for call to function mtxResumeAfterBeacon
   \   000009   90....       MOV     DPTR,#(mtxResumeAfterBeacon & 0xffff)
   \   00000C   74..         MOV     A,#((mtxResumeAfterBeacon >> 16) & 0xff)
   \   00000E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000011                ; Setup parameters for call to function mschRemoveTask
   \   000011   7A02         MOV     R2,#0x2
   \   000013   8E82         MOV     DPL,R6
   \   000015   8F83         MOV     DPH,R7
   \   000017   A3           INC     DPTR
   \   000018   A3           INC     DPTR
   \   000019   A3           INC     DPTR
   \   00001A   A3           INC     DPTR
   \   00001B   A3           INC     DPTR
   \   00001C   A3           INC     DPTR
   \   00001D   A3           INC     DPTR
   \   00001E   A3           INC     DPTR
   \   00001F   E0           MOVX    A,@DPTR
   \   000020   F9           MOV     R1,A
   \   000021   12....       LCALL   mschRemoveTask & 0xFFFF
   \   000024   7F01         MOV     R7,#0x1
   \   000026   02....       LJMP    ?BANKED_LEAVE_XDATA

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    265          void mtxResumeAfterBeacon(void) NEAR {
   \                     mtxResumeAfterBeacon:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    266              if (mtxInfo.waitForBeacon) {
   \   000004   90....       MOV     DPTR,#(mtxInfo + 5)
   \   000007   E0           MOVX    A,@DPTR
   \   000008   604A         JZ      ??mtxResumeAfterBeacon_0
    267          
    268                  // Cancel beacon search when enabled (the WAIT -> OUT_OF_CAP state will turn it back on if necessary)
    269                  if (mtxInfo.beaconSearchEnabled) {
   \   00000A   90....       MOV     DPTR,#(mtxInfo + 6)
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   601A         JZ      ??mtxResumeAfterBeacon_1
    270                      mrxDecrOnCounter();
   \   000010                ; Setup parameters for call to function mrxDecrOnCounter
   \   000010   90....       MOV     DPTR,#(mrxDecrOnCounter & 0xffff)
   \   000013   74..         MOV     A,#((mrxDecrOnCounter >> 16) & 0xff)
   \   000015   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    271                      mtxInfo.beaconSearchEnabled = FALSE;
   \   000018   E4           CLR     A
   \   000019   90....       MOV     DPTR,#(mtxInfo + 6)
   \   00001C   F0           MOVX    @DPTR,A
    272                      mtxInfo.beaconSearchTimeout = FALSE;
   \   00001D   90....       MOV     DPTR,#(mtxInfo + 7)
   \   000020   F0           MOVX    @DPTR,A
    273                      mtimCancelCallback(mtxBeaconSearchTimeout);
   \   000021                ; Setup parameters for call to function mtimCancelCallback
   \   000021   79..         MOV     R1,#(mtxBeaconSearchTimeout & 0xff)
   \   000023   7A..         MOV     R2,#((mtxBeaconSearchTimeout >> 8) & 0xff)
   \   000025   7B..         MOV     R3,#((mtxBeaconSearchTimeout >> 16) & 0xff)
   \   000027   12....       LCALL   mtimCancelCallback & 0xFFFF
    274                  }
    275          
    276                  // Go ahead if there's sufficient CAP left (otherwise remain in the OUT_OF_CAP state)
    277                  if (T2_IS_CAP_ACTIVE()) {
   \                     ??mtxResumeAfterBeacon_1:
   \   00002A   E5C3         MOV     A,0xc3
   \   00002C   A2E5         MOV     C,0xE0 /* A   */.5
   \   00002E   4024         JC      ??mtxResumeAfterBeacon_0
    278                      mtxInfo.waitForBeacon = FALSE;
   \   000030   E4           CLR     A
   \   000031   90....       MOV     DPTR,#(mtxInfo + 5)
   \   000034   F0           MOVX    @DPTR,A
    279                      mtxInfo.status = MTX_STATUS_WAITING;
   \   000035   90....       MOV     DPTR,#(mtxInfo + 4)
   \   000038   F0           MOVX    @DPTR,A
    280                      mtxInfo.cspTimeout = mtxCalcCspTimeout();
   \   000039                ; Setup parameters for call to function mtxCalcCspTimeout
   \   000039   90....       MOV     DPTR,#(mtxCalcCspTimeout & 0xffff)
   \   00003C   74..         MOV     A,#((mtxCalcCspTimeout >> 16) & 0xff)
   \   00003E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000041   E9           MOV     A,R1
   \   000042   90....       MOV     DPTR,#(mtxInfo + 10)
   \   000045   F0           MOVX    @DPTR,A
    281          
    282                      if (mtxInfo.cspTimeout) {
   \   000046   6006         JZ      ??mtxResumeAfterBeacon_2
    283                          mtxCreateStartTask();
   \   000048                ; Setup parameters for call to function mtxCreateStartTask
   \   000048   12....       LCALL   mtxCreateStartTask & 0xFFFF
    284                          mtxInfo.status = MTX_STATUS_WAITING;
   \   00004B   E4           CLR     A
   \   00004C   8002         SJMP    ??mtxResumeAfterBeacon_3
    285                      } else {
    286                          mtxInfo.status = MTX_STATUS_OUT_OF_CAP;
   \                     ??mtxResumeAfterBeacon_2:
   \   00004E   7408         MOV     A,#0x8
   \                     ??mtxResumeAfterBeacon_3:
   \   000050   90....       MOV     DPTR,#(mtxInfo + 4)
   \   000053   F0           MOVX    @DPTR,A
    287                      }
    288                  }
    289              }
    290          } // mtxResumeAfterBeacon
   \                     ??mtxResumeAfterBeacon_0:
   \   000054                REQUIRE ?Subroutine3
   \   000054                ; // Fall through to label ?Subroutine3

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine3:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   02....       LJMP    ?BRET
    291          
    292          
    293          

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    294          void mtxResetBosCounter(void) NEAR {
   \                     mtxResetBosCounter:
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 0
    295          
    296              // New CAP begins
    297              T2_SET_OVERFLOW_COUNTER(0x00000);
   \   000005   75A100       MOV     0xa1,#0x0
   \   000008   75A200       MOV     0xa2,#0x0
   \   00000B   75A300       MOV     0xa3,#0x0
    298              T2_SET_OVERFLOW_COUNTER_COMPARE_VALUE(msupCalcCapDuration());
   \   00000E                ; Setup parameters for call to function msupCalcCapDuration
   \   00000E   12....       LCALL   msupCalcCapDuration & 0xFFFF
   \   000011   EA           MOV     A,R2
   \   000012   F59C         MOV     0x9c,A
   \   000014                ; Setup parameters for call to function msupCalcCapDuration
   \   000014   12....       LCALL   msupCalcCapDuration & 0xFFFF
   \   000017   EB           MOV     A,R3
   \   000018   F59D         MOV     0x9d,A
   \   00001A   E59E         MOV     A,0x9e
   \   00001C   FE           MOV     R6,A
   \   00001D                ; Setup parameters for call to function msupCalcCapDuration
   \   00001D   12....       LCALL   msupCalcCapDuration & 0xFFFF
   \   000020   EC           MOV     A,R4
   \   000021   540F         ANL     A,#0xf
   \   000023   C0E0         PUSH    A
   \   000025   74F0         MOV     A,#-0x10
   \   000027   5E           ANL     A,R6
   \   000028   FA           MOV     R2,A
   \   000029   D0E0         POP     A
   \   00002B   4A           ORL     A,R2
   \   00002C   F59E         MOV     0x9e,A
    299              T2_SET_CAP_ACTIVE();
   \   00002E   53C3DF       ANL     0xc3,#0xdf
    300          
    301              // Schedule the next beacon handler
    302              if (mpib.macBeaconOrder != 15) {
   \   000031   90....       MOV     DPTR,#(mpib + 8)
   \   000034   E0           MOVX    A,@DPTR
   \   000035   640F         XRL     A,#0xf
   \   000037   6026         JZ      ??mtxResetBosCounter_0
    303                  mtimSetCallback(mbcnTxPeriodicalBeacon, msupCalcBeaconInterval() - MBCN_TX_STARTUP_OVERHEAD - MBCN_TX_PREPARE_TIME);
   \   000039                ; Setup parameters for call to function mtimSetCallback
   \   000039                ; Setup parameters for call to function msupCalcBeaconInterval
   \   000039   12....       LCALL   msupCalcBeaconInterval & 0xFFFF
   \   00003C   8A..         MOV     ?V0 + 0,R2
   \   00003E   8B..         MOV     ?V0 + 1,R3
   \   000040   8C..         MOV     ?V0 + 2,R4
   \   000042   8D..         MOV     ?V0 + 3,R5
   \   000044   90....       MOV     DPTR,#__Constant_fffffff8
   \   000047   78..         MOV     R0,#?V0 + 0
   \   000049   12....       LCALL   ?L_ADD_X
   \   00004C   78..         MOV     R0,#?V0 + 0
   \   00004E   12....       LCALL   ?PUSH_XSTACK_I_FOUR
   \   000051   79..         MOV     R1,#(mbcnTxPeriodicalBeacon & 0xff)
   \   000053   7A..         MOV     R2,#((mbcnTxPeriodicalBeacon >> 8) & 0xff)
   \   000055   7B..         MOV     R3,#((mbcnTxPeriodicalBeacon >> 16) & 0xff)
   \   000057   12....       LCALL   mtimSetCallback & 0xFFFF
   \   00005A   7404         MOV     A,#0x4
   \   00005C   12....       LCALL   ?DEALLOC_XSTACK8
    304              }
    305          }
   \                     ??mtxResetBosCounter_0:
   \   00005F   7F04         MOV     R7,#0x4
   \   000061   02....       LJMP    ?BANKED_LEAVE_XDATA
    306          
    307          
    308          
    309          
    310          //-------------------------------------------------------------------------------------------------------
    311          //  void mtxAckTimeout(void)
    312          //
    313          //  DESCRIPTION:
    314          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    315          void mtxAckTimeout(void) NEAR {
   \                     mtxAckTimeout:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    316              

⌨️ 快捷键说明

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