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

📄 mac_rx.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        CFI `VB.BR9` SameValue
        CFI `VB.BR10` SameValue
        CFI `VB.BR11` SameValue
        CFI `VB.BR12` SameValue
        CFI `VB.BR13` SameValue
        CFI `VB.BR14` SameValue
        CFI `VB.BR15` SameValue
        CFI VB SameValue
        CFI B SameValue
        CFI A SameValue
        CFI PSW SameValue
        CFI DPL0 SameValue
        CFI DPH0 SameValue
        CFI R0 SameValue
        CFI R1 SameValue
        CFI R2 SameValue
        CFI R3 SameValue
        CFI R4 SameValue
        CFI R5 SameValue
        CFI R6 SameValue
        CFI R7 SameValue
        CFI V0 SameValue
        CFI V1 SameValue
        CFI V2 SameValue
        CFI V3 SameValue
        CFI V4 SameValue
        CFI V5 SameValue
        CFI V6 SameValue
        CFI V7 SameValue
        CFI PSPH Undefined
        CFI PSPL Undefined
        CFI XSPH Undefined
        CFI XSPL Undefined
        CFI ?RET Concat
        CFI ?BRET_EXT SameValue
        CFI ?RET_HIGH Frame(CFA_SP, 2)
        CFI ?RET_LOW Frame(CFA_SP, 1)
        CFI EndCommon cfiCommon1
        
        EXTERN macMcuOrRFIM
        FUNCTION macMcuOrRFIM,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 14, STACK
        EXTERN macRxHardDisable
        FUNCTION macRxHardDisable,0202H
        ARGFRAME ISTACK, 2, STACK
        EXTERN macMcuAndRFIM
        FUNCTION macMcuAndRFIM,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 14, STACK
        EXTERN macDataRxMemFree
        FUNCTION macDataRxMemFree,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 9, STACK
        EXTERN halAssertHandler
        FUNCTION halAssertHandler,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 29, STACK
        EXTERN macCspForceTxDoneIfPending
        FUNCTION macCspForceTxDoneIfPending,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macMemReadRxFifo
        FUNCTION macMemReadRxFifo,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 29, STACK
        EXTERN macTxAckReceivedCallback
        FUNCTION macTxAckReceivedCallback,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macTxAckNotReceivedCallback
        FUNCTION macTxAckNotReceivedCallback,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macDataRxMemAlloc
        FUNCTION macDataRxMemAlloc,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macRxCheckPendingCallback
        FUNCTION macRxCheckPendingCallback,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macMcuWriteRFIF
        FUNCTION macMcuWriteRFIF,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macMcuOverflowCapture
        FUNCTION macMcuOverflowCapture,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN macMcuTimerCapture
        FUNCTION macMcuTimerCapture,0202H
        ARGFRAME XSTACK, 14, STACK
        EXTERN sAddrExtCpy
        FUNCTION sAddrExtCpy,0202H
        ARGFRAME XSTACK, 29, STACK
        EXTERN macRxOffRequest
        FUNCTION macRxOffRequest,0202H
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 9, STACK
        EXTERN macRadioComputeLQI
        FUNCTION macRadioComputeLQI,0202H
        ARGFRAME XSTACK, 9, STACK
        EXTERN macRxCompleteCallback
        FUNCTION macRxCompleteCallback,0202H
        ARGFRAME XSTACK, 9, STACK
        EXTERN macRadioUpdateTxPower
        FUNCTION macRadioUpdateTxPower,0202H
        ARGFRAME ISTACK, 2, STACK
        EXTERN macTxStartQueuedFrame
        FUNCTION macTxStartQueuedFrame,0202H
        ARGFRAME ISTACK, 2, STACK
        EXTERN macRxOnFlag
        EXTERN macTxActive

// C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\mac\low_level\srf03\mac_rx.c
//    1 /**************************************************************************************************
//    2     Filename:
//    3     Revised:        $Date: 2007-03-28 18:21:19 -0700 (Wed, 28 Mar 2007) $
//    4     Revision:       $Revision: 13888 $
//    5 
//    6     Description:
//    7 
//    8     Describe the purpose and contents of the file.
//    9 
//   10     Copyright (c) 2006 by Texas Instruments, Inc.
//   11     All Rights Reserved.  Permission to use, reproduce, copy, prepare
//   12     derivative works, modify, distribute, perform, display or sell this
//   13     software and/or its documentation for any purpose is prohibited
//   14     without the express written consent of Texas Instruments, Inc.
//   15 **************************************************************************************************/
//   16 
//   17 
//   18 
//   19 /* ------------------------------------------------------------------------------------------------
//   20  *                                          Includes
//   21  * ------------------------------------------------------------------------------------------------
//   22  */
//   23 
//   24 /* hal */
//   25 #include "hal_defs.h"
//   26 #include "hal_types.h"
//   27 
//   28 /* high-level */
//   29 #include "mac_high_level.h"
//   30 #include "mac_spec.h"
//   31 
//   32 /* exported low-level */
//   33 #include "mac_low_level.h"
//   34 
//   35 /* low-level specific */
//   36 #include "mac_rx.h"
//   37 #include "mac_tx.h"
//   38 #include "mac_rx_onoff.h"
//   39 #include "mac_radio.h"
//   40 
//   41 /* target specific */
//   42 #include "mac_radio_defs.h"

        ASEGN SFR_AN:DATA:NOROOT,0e1H
// unsigned char volatile __sfr RFST
RFST:
        DS 1

        ASEGN SFR_AN:DATA:NOROOT,0e9H
// unsigned char volatile __sfr RFIF
RFIF:
        DS 1
//   43 
//   44 /* debug */
//   45 #include "mac_assert.h"
//   46 
//   47 
//   48 /* ------------------------------------------------------------------------------------------------
//   49  *                                            Defines
//   50  * ------------------------------------------------------------------------------------------------
//   51  */
//   52 #define MAX_PAYLOAD_BYTES_READ_PER_INTERRUPT   16   /* adjustable to tune performance */
//   53 
//   54 /* receive FIFO bytes needed to start a valid receive (see function rxStartIsr for details) */
//   55 #define RX_THRESHOLD_START_LEN    (MAC_PHY_PHR_LEN        +  \ 
//   56                                    MAC_FCF_FIELD_LEN      +  \ 
//   57                                    MAC_SEQ_NUM_FIELD_LEN  +  \ 
//   58                                    MAC_FCS_FIELD_LEN)
//   59 
//   60 /* maximum size of addressing fields (note: command frame identifier processed as part of address) */
//   61 #define MAX_ADDR_FIELDS_LEN  ((MAC_EXT_ADDR_FIELD_LEN + MAC_PAN_ID_FIELD_LEN) * 2)
//   62 
//   63 /* addressing mode reserved value */
//   64 #define ADDR_MODE_RESERVERED  1
//   65 
//   66 /* length of command frame identifier */
//   67 #define CMD_FRAME_ID_LEN      1
//   68 
//   69 /* packet size mask is equal to the maximum value */
//   70 #define PHY_PACKET_SIZE_MASK  0x7F
//   71 
//   72 /* value for promiscuous off, must not conflict with other mode variants from separate include files */
//   73 #define PROMISCUOUS_MODE_OFF  0x00
//   74 
//   75 /* bit of proprietary FCS format that indicates if the CRC is OK */
//   76 #define PROPRIETARY_FCS_CRC_OK_BIT  0x80
//   77 
//   78 /* dummy length value for unused entry in lookup table */
//   79 #define DUMMY_LEN   0xBE
//   80 
//   81 /* value for rxThresholdIntState */
//   82 #define RX_THRESHOLD_INT_STATE_INACTIVE   0
//   83 #define RX_THRESHOLD_INT_STATE_ACTIVE     1
//   84 #define RX_THRESHOLD_INT_STATE_RESET      2
//   85 
//   86 
//   87 /* ------------------------------------------------------------------------------------------------
//   88  *                                             Macros
//   89  * ------------------------------------------------------------------------------------------------
//   90  */
//   91 #define MEM_ALLOC(x)   macDataRxMemAlloc(x)
//   92 #define MEM_FREE(x)    macDataRxMemFree((uint8 *)x)
//   93 
//   94 /*
//   95  *  Macro for encoding frame control information into internal flags format.
//   96  *  Parameter is pointer to the frame.  NOTE!  If either the internal frame
//   97  *  format *or* the specification changes, this macro will need to be modified.
//   98  */
//   99 #define INTERNAL_FCF_FLAGS(p)  ((((p)[1] >> 4) & 0x03) | ((p)[0] & 0x78))
//  100 
//  101 /*
//  102  *  The radio replaces the actual FCS with different information.  This proprietary FCS is
//  103  *  the same length as the original and includes:
//  104  *    1) the RSSI value
//  105  *    2) the average correlation value (used for LQI)
//  106  *    3) a CRC passed bit
//  107  *
//  108  *  These macros decode the proprietary FCS.  The macro parameter is a pointer to the two byte FCS.
//  109  */
//  110 #define PROPRIETARY_FCS_RSSI(p)                 ((int8)((p)[0]))
//  111 #define PROPRIETARY_FCS_CRC_OK(p)               ((p)[1] & PROPRIETARY_FCS_CRC_OK_BIT)
//  112 #define PROPRIETARY_FCS_CORRELATION_VALUE(p)    ((p)[1] & ~PROPRIETARY_FCS_CRC_OK_BIT)
//  113 
//  114 
//  115 /* ------------------------------------------------------------------------------------------------
//  116  *                                       Global Variables
//  117  * ------------------------------------------------------------------------------------------------
//  118  */

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  119 uint8 macRxActive;
macRxActive:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  120 uint8 macRxFilter;
macRxFilter:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  121 uint8 macRxOutgoingAckFlag;
macRxOutgoingAckFlag:
        DS 1
//  122 
//  123 
//  124 /* ------------------------------------------------------------------------------------------------
//  125  *                                       Local Constants
//  126  * ------------------------------------------------------------------------------------------------
//  127  */

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
//  128 static const uint8 CODE macRxAddrLen[] =
??macRxAddrLen:
        DB 0, 190, 4, 10
//  129 {
//  130   0,                                                /* no address */
//  131   DUMMY_LEN,                                        /* reserved */
//  132   MAC_PAN_ID_FIELD_LEN + MAC_SHORT_ADDR_FIELD_LEN,  /* short address + pan id */
//  133   MAC_PAN_ID_FIELD_LEN + MAC_EXT_ADDR_FIELD_LEN     /* extended address + pan id */
//  134 };
//  135 
//  136 
//  137 /* ------------------------------------------------------------------------------------------------
//  138  *                                       Local Prototypes
//  139  * ------------------------------------------------------------------------------------------------
//  140  */
//  141 static void rxHaltCleanupFinalStep(void);
//  142 
//  143 static void rxStartIsr(void);
//  144 static void rxAddrIsr(void);
//  145 static void rxPayloadIsr(void);
//  146 static void rxDiscardIsr(void);
//  147 static void rxFcsIsr(void);
//  148 
//  149 static void rxPrepPayload(void);
//  150 static void rxDiscardFrame(void);
//  151 static void rxDone(void);
//  152 static void rxPostRxUpdates(void);
//  153 
//  154 
//  155 /* ------------------------------------------------------------------------------------------------
//  156  *                                         Local Variables
//  157  * ------------------------------------------------------------------------------------------------
//  158  */

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  159 static void    (* pFuncRxState)(void);
??pFuncRxState:
        DS 3

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  160 static macRx_t  * pRxBuf;
??pRxBuf:
        DS 2
//  161 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  162 static uint8  rxBuf[MAC_PHY_PHR_LEN + MAC_FCF_FIELD_LEN + MAC_SEQ_NUM_FIELD_LEN];
??rxBuf:
        DS 4

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  163 static uint8  rxUnreadLen;
??rxUnreadLen:
        DS 1

⌨️ 快捷键说明

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