mac_rx.lst

来自「TI的基于ZIGBEE2006的协议栈」· LST 代码 · 共 1,148 行 · 第 1/5 页

LST
1,148
字号
    191            rxResetFlag          = 0;
   \   000022   90....       MOV     DPTR,#??rxResetFlag
   \   000025   F0           MOVX    @DPTR,A
    192          }
   \   000026   02....       LJMP    ??Subroutine20_0 & 0xFFFF

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine20:
   \   000000   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??Subroutine20_0:
   \   000003   D083         POP     DPH
   \   000005   D082         POP     DPL
   \   000007   02....       LJMP    ?BRET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine1:
   \   000000   12....       LCALL   ?Subroutine16 & 0xFFFF
   \                     ??CrossCallReturnLabel_36:
   \   000003   22           RET

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine16:
   \   000000   F0           MOVX    @DPTR,A
   \   000001   90....       MOV     DPTR,#??pFuncRxState
   \   000004   74..         MOV     A,#(??rxStartIsr & 0xff)
   \   000006   F0           MOVX    @DPTR,A
   \   000007   A3           INC     DPTR
   \   000008   74..         MOV     A,#((??rxStartIsr >> 8) & 0xff)
   \   00000A   F0           MOVX    @DPTR,A
   \   00000B   A3           INC     DPTR
   \   00000C   74..         MOV     A,#((??rxStartIsr >> 16) & 0xff)
   \   00000E   F0           MOVX    @DPTR,A
   \   00000F   22           RET
    193          
    194          
    195          /**************************************************************************************************
    196           * @fn          macRxRadioPowerUpInit
    197           *
    198           * @brief       Initialization for after radio first powers up.
    199           *
    200           * @param       none
    201           *
    202           * @return      none
    203           **************************************************************************************************
    204           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    205          void macRxRadioPowerUpInit(void)
   \                     macRxRadioPowerUpInit:
    206          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    207            /* set threshold at initial value */
    208            MAC_RADIO_SET_RX_THRESHOLD(RX_THRESHOLD_START_LEN);
   \   000004   7405         MOV     A,#0x5
   \   000006   90DF4F       MOV     DPTR,#-0x20b1
   \   000009   F0           MOVX    @DPTR,A
    209          
    210            /* clear any accidental threshold interrupt that happened as part of power up sequence */
    211            MAC_RADIO_CLEAR_RX_THRESHOLD_INTERRUPT_FLAG();
   \   00000A   75E9DF       MOV     0xe9,#-0x21
    212          
    213            /* enable threshold interrupts */
    214            MAC_RADIO_ENABLE_RX_THRESHOLD_INTERRUPT();
   \   00000D                ; Setup parameters for call to function macMcuOrRFIM
   \   00000D   7920         MOV     R1,#0x20
   \   00000F   90....       MOV     DPTR,#(macMcuOrRFIM & 0xffff)
   \   000012   74..         MOV     A,#((macMcuOrRFIM >> 16) & 0xff)
   \   000014   02....       LJMP    ?Subroutine20 & 0xFFFF
    215          }
    216          
    217          
    218          /**************************************************************************************************
    219           * @fn          macRxTxReset
    220           *
    221           * @brief       Reset the receive state.
    222           *
    223           * @param       none
    224           *
    225           * @return      none
    226           **************************************************************************************************
    227           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    228          void macRxTxReset(void)
   \                     macRxTxReset:
    229          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    230            /* forces receiver off, cleans up by calling macRxHaltCleanup() and macTxHaltCleanup() */
    231            macRxHardDisable();
   \   000004                ; Setup parameters for call to function macRxHardDisable
   \   000004   90....       MOV     DPTR,#(macRxHardDisable & 0xffff)
   \   000007   74..         MOV     A,#((macRxHardDisable >> 16) & 0xff)
   \   000009   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    232          
    233            /*
    234             *   Note : transmit does not require any reset logic
    235             *          beyond what macRxHardDisable() provides.
    236             */
    237          
    238            /* restore deault filter mode to off */
    239            macRxFilter = RX_FILTER_OFF;
   \   00000C   E4           CLR     A
   \   00000D   90....       MOV     DPTR,#macRxFilter
   \   000010   F0           MOVX    @DPTR,A
    240          
    241            /* return promiscuous mode to default off state */
    242            macRxPromiscuousMode(MAC_PROMISCUOUS_MODE_OFF);
   \   000011                ; Setup parameters for call to function macRxPromiscuousMode
   \   000011   F9           MOV     R1,A
   \   000012   90....       MOV     DPTR,#(macRxPromiscuousMode & 0xffff)
   \   000015   74..         MOV     A,#((macRxPromiscuousMode >> 16) & 0xff)
   \   000017   80..         SJMP    ?Subroutine20
    243          }
    244          
    245          
    246          /**************************************************************************************************
    247           * @fn          macRxHaltCleanup
    248           *
    249           * @brief       Cleanup up the receive logic after receiver is forced off.
    250           *
    251           * @param       none
    252           *
    253           * @return      none
    254           **************************************************************************************************
    255           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    256          void macRxHaltCleanup(void)
   \                     macRxHaltCleanup:
    257          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    258            rxResetFlag = 1;
   \   000004   7401         MOV     A,#0x1
   \   000006   90....       MOV     DPTR,#??rxResetFlag
   \   000009   F0           MOVX    @DPTR,A
    259            if (!rxIsrActiveFlag)
   \   00000A   90....       MOV     DPTR,#??rxIsrActiveFlag
   \   00000D   E0           MOVX    A,@DPTR
   \   00000E   700D         JNZ     ??macRxHaltCleanup_0
    260            {
    261              rxHaltCleanupFinalStep();
   \   000010                ; Setup parameters for call to function rxHaltCleanupFinalStep
   \   000010   90....       MOV     DPTR,#(??rxHaltCleanupFinalStep & 0xffff)
   \   000013   74..         MOV     A,#((??rxHaltCleanupFinalStep >> 16) & 0xff)
   \   000015   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    262              rxResetFlag = 0;
   \   000018   E4           CLR     A
   \   000019   90....       MOV     DPTR,#??rxResetFlag
   \   00001C   F0           MOVX    @DPTR,A
    263            }
    264          }
   \                     ??macRxHaltCleanup_0:
   \   00001D   80..         SJMP    ??Subroutine20_0
    265          
    266          
    267          /*=================================================================================================
    268           * @fn          rxHaltCleanupFinalStep
    269           *
    270           * @brief       Required cleanup if receiver is halted in the middle of a receive.
    271           *
    272           * @param       none
    273           *
    274           * @return      none
    275           *=================================================================================================
    276           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    277          static void rxHaltCleanupFinalStep(void)
   \                     ??rxHaltCleanupFinalStep:
    278          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    279            /* cancel any upcoming ACK transmit complete callback */
    280            MAC_RADIO_CANCEL_ACK_TX_DONE_CALLBACK();
   \   000004                ; Setup parameters for call to function macMcuAndRFIM
   \   000004   79EF         MOV     R1,#-0x11
   \   000006   90....       MOV     DPTR,#(macMcuAndRFIM & 0xffff)
   \   000009   74..         MOV     A,#((macMcuAndRFIM >> 16) & 0xff)
   \   00000B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    281          
    282            /* set start of frame threshold */
    283            MAC_RADIO_SET_RX_THRESHOLD(RX_THRESHOLD_START_LEN);
   \   00000E   7405         MOV     A,#0x5
   \   000010   90DF4F       MOV     DPTR,#-0x20b1
   \   000013   F0           MOVX    @DPTR,A
    284          
    285            /* flush the receive FIFO */
    286            MAC_RADIO_FLUSH_RX_FIFO();
   \   000014   75E1E6       MOV     0xe1,#-0x1a
   \   000017   75E1E6       MOV     0xe1,#-0x1a
    287          
    288            /* clear any receive interrupt that happened to squeak through */
    289            MAC_RADIO_CLEAR_RX_THRESHOLD_INTERRUPT_FLAG();
   \   00001A   75E9DF       MOV     0xe9,#-0x21
    290          
    291            /* if data buffer has been allocated, free it */
    292            if (pRxBuf != NULL)
   \   00001D   90....       MOV     DPTR,#??pRxBuf
   \   000020   E0           MOVX    A,@DPTR
   \   000021   7002         JNZ     ??rxHaltCleanupFinalStep_1
   \   000023   A3           INC     DPTR
   \   000024   E0           MOVX    A,@DPTR
   \                     ??rxHaltCleanupFinalStep_1:
   \   000025   6010         JZ      ??rxHaltCleanupFinalStep_2
    293            {
    294              MEM_FREE((uint8 *) pRxBuf);
   \   000027                ; Setup parameters for call to function macDataRxMemFree
   \   000027   90....       MOV     DPTR,#??pRxBuf
   \   00002A   E0           MOVX    A,@DPTR
   \   00002B   FA           MOV     R2,A
   \   00002C   A3           INC     DPTR
   \   00002D   E0           MOVX    A,@DPTR
   \   00002E   FB           MOV     R3,A
   \   00002F   90....       MOV     DPTR,#(macDataRxMemFree & 0xffff)
   \   000032   74..         MOV     A,#((macDataRxMemFree >> 16) & 0xff)
   \   000034   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    295            }
    296            pRxBuf = NULL; /* needed to indicate buffer is no longer allocated */
   \                     ??rxHaltCleanupFinalStep_2:

⌨️ 快捷键说明

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