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

📄 mac_rx.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
    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:
   \   000037   90....       MOV     DPTR,#??pRxBuf
   \   00003A   E4           CLR     A
   \   00003B   F0           MOVX    @DPTR,A
   \   00003C   A3           INC     DPTR
   \   00003D   12....       LCALL   ?Subroutine1 & 0xFFFF
    297          
    298            pFuncRxState = &rxStartIsr;
    299          
    300            /* if receive was active, perform the post receive updates */
    301            if (macRxActive || macRxOutgoingAckFlag)
   \                     ??CrossCallReturnLabel_3:
   \   000040   90....       MOV     DPTR,#macRxActive
   \   000043   E0           MOVX    A,@DPTR
   \   000044   7006         JNZ     ??rxHaltCleanupFinalStep_3
   \   000046   90....       MOV     DPTR,#macRxOutgoingAckFlag
   \   000049   E0           MOVX    A,@DPTR
   \   00004A   6011         JZ      ??rxHaltCleanupFinalStep_4
    302            {
    303              macRxActive = MAC_RX_ACTIVE_NO_ACTIVITY;
   \                     ??rxHaltCleanupFinalStep_3:
   \   00004C   E4           CLR     A
   \   00004D   90....       MOV     DPTR,#macRxActive
   \   000050   F0           MOVX    @DPTR,A
    304              macRxOutgoingAckFlag = 0;
   \   000051   90....       MOV     DPTR,#macRxOutgoingAckFlag
   \   000054   F0           MOVX    @DPTR,A
    305              
    306              rxPostRxUpdates();
   \   000055                ; Setup parameters for call to function rxPostRxUpdates
   \   000055   90....       MOV     DPTR,#(??rxPostRxUpdates & 0xffff)
   \   000058   74..         MOV     A,#((??rxPostRxUpdates >> 16) & 0xff)
   \   00005A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    307            }
    308          }
   \                     ??rxHaltCleanupFinalStep_4:
   \   00005D   80..         SJMP    ??Subroutine20_0
    309          
    310          
    311          /**************************************************************************************************
    312           * @fn          macRxThresholdIsr
    313           *
    314           * @brief       Interrupt service routine called when bytes in FIFO reach threshold value.
    315           *              It implements a state machine for receiving a packet.
    316           *
    317           * @param       none
    318           *
    319           * @return      none
    320           **************************************************************************************************
    321           */

⌨️ 快捷键说明

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