📄 mac_rx.s51
字号:
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 + -