📄 mac_tx.s51
字号:
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 macCspTxReset
FUNCTION macCspTxReset,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN halAssertHandler
FUNCTION halAssertHandler,0202H
ARGFRAME ISTACK, 2, STACK
ARGFRAME XSTACK, 12, STACK
EXTERN macCspTxPrepSlotted
FUNCTION macCspTxPrepSlotted,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macMemWriteTxFifo
FUNCTION macMemWriteTxFifo,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macRadioRandomByte
FUNCTION macRadioRandomByte,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN macCspTxPrepCsmaSlotted
FUNCTION macCspTxPrepCsmaSlotted,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN macCspTxPrepCsmaUnslotted
FUNCTION macCspTxPrepCsmaUnslotted,0202H
ARGFRAME XSTACK, 10, STACK
EXTERN macMcuAndRFIM
FUNCTION macMcuAndRFIM,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN macCspTxGoSlotted
FUNCTION macCspTxGoSlotted,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN macDataTxTimeAvailable
FUNCTION macDataTxTimeAvailable,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN macCspTxGoCsma
FUNCTION macCspTxGoCsma,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN macCspTxRequestAckTimeoutCallback
FUNCTION macCspTxRequestAckTimeoutCallback,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macCspTxCancelAckTimeoutCallback
FUNCTION macCspTxCancelAckTimeoutCallback,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macRxOffRequest
FUNCTION macRxOffRequest,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macRadioUpdateTxPower
FUNCTION macRadioUpdateTxPower,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macRadioUpdateChannel
FUNCTION macRadioUpdateChannel,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macTxCompleteCallback
FUNCTION macTxCompleteCallback,0202H
ARGFRAME XSTACK, 9, STACK
EXTERN macBackoffTimerCapture
FUNCTION macBackoffTimerCapture,0202H
ARGFRAME XSTACK, 12, STACK
EXTERN macMcuTimerCapture
FUNCTION macMcuTimerCapture,0202H
ARGFRAME XSTACK, 12, STACK
EXTERN macRxHaltCleanup
FUNCTION macRxHaltCleanup,0202H
ARGFRAME ISTACK, 2, STACK
EXTERN macPib
EXTERN macRxActive
EXTERN macRxOutgoingAckFlag
EXTERN macSleepState
EXTERN pMacDataTx
// C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\mac\low_level\srf03\mac_tx.c
// 1 /**************************************************************************************************
// 2 Filename:
// 3 Revised: $Date: 2007-03-26 16:18:09 -0700 (Mon, 26 Mar 2007) $
// 4 Revision: $Revision: 13860 $
// 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_types.h"
// 26 #include "hal_defs.h"
// 27 #include "hal_mcu.h"
ASEGN SFR_AN:DATA:NOROOT,0e1H
// unsigned char volatile __sfr RFST
RFST:
DS 1
// 28 #include "hal_mac_cfg.h"
// 29
// 30 /* high-level */
// 31 #include "mac_spec.h"
// 32 #include "mac_pib.h"
// 33
// 34 /* exported low-level */
// 35 #include "mac_low_level.h"
// 36
// 37 /* low-level specific */
// 38 #include "mac_tx.h"
// 39 #include "mac_backoff_timer.h"
// 40 #include "mac_rx.h"
// 41 #include "mac_rx_onoff.h"
// 42 #include "mac_radio.h"
// 43 #include "mac_sleep.h"
// 44
// 45 /* target specific */
// 46 #include "mac_radio_defs.h"
// 47
// 48 /* debug */
// 49 #include "mac_assert.h"
// 50
// 51
// 52 /* ------------------------------------------------------------------------------------------------
// 53 * Defines
// 54 * ------------------------------------------------------------------------------------------------
// 55 */
// 56 #define MFR_LEN MAC_FCS_FIELD_LEN
// 57 #define PREPENDED_BYTE_LEN 1
// 58
// 59
// 60 /* ------------------------------------------------------------------------------------------------
// 61 * Global Constants
// 62 * ------------------------------------------------------------------------------------------------
// 63 */
// 64
// 65 /*
// 66 * This is the time, in backoffs, required to set up a slotted transmit.
// 67 * It is exported to high level so that code can schedule enough time
// 68 * for slotted transmits.
// 69 *
// 70 * A default is provided if a value is not specified. If the default
// 71 * is not appropriate, a #define should be added within hal_mac_cfg.h.
// 72 */
// 73 #ifndef HAL_MAC_TX_SLOTTED_DELAY
// 74 #define HAL_MAC_TX_SLOTTED_DELAY 3
// 75 #endif
RSEG XDATA_I:XDATA:NOROOT(0)
// 76 uint8 const macTxSlottedDelay = HAL_MAC_TX_SLOTTED_DELAY;
macTxSlottedDelay:
DS 1
REQUIRE `?<Initializer for macTxSlottedDelay>`
REQUIRE __INIT_XDATA_I
// 77
// 78
// 79 /* ------------------------------------------------------------------------------------------------
// 80 * Global Variables
// 81 * ------------------------------------------------------------------------------------------------
// 82 */
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 83 uint8 macTxActive;
macTxActive:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 84 uint8 macTxType;
macTxType:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 85 uint8 macTxBe;
macTxBe:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 86 uint8 macTxCsmaBackoffDelay;
macTxCsmaBackoffDelay:
DS 1
// 87
// 88
// 89 /* ------------------------------------------------------------------------------------------------
// 90 * Local Variables
// 91 * ------------------------------------------------------------------------------------------------
// 92 */
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 93 static uint8 nb;
??nb:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 94 static uint8 txSeqn;
??txSeqn:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 95 static uint8 txAckReq;
??txAckReq:
DS 1
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 96 static uint8 txRetransmitFlag;
??txRetransmitFlag:
DS 1
// 97
// 98
// 99 /* ------------------------------------------------------------------------------------------------
// 100 * Local Prototypes
// 101 * ------------------------------------------------------------------------------------------------
// 102 */
// 103 static void txCsmaPrep(void);
// 104 static void txGo(void);
// 105 static void txCsmaGo(void);
// 106 static void txComplete(uint8 status);
// 107
// 108
// 109 /**************************************************************************************************
// 110 * @fn macTxInit
// 111 *
// 112 * @brief Initialize variables for tx module.
// 113 *
// 114 * @param none
// 115 *
// 116 * @return none
// 117 **************************************************************************************************
// 118 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 119 void macTxInit(void)
macTxInit:
CFI Block cfiBlock0 Using cfiCommon0
CFI Function macTxInit
// 120 {
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 121 macTxActive = MAC_TX_ACTIVE_NO_ACTIVITY;
LJMP ?Subroutine3 & 0xFFFF
CFI EndBlock cfiBlock0
// 122 txRetransmitFlag = 0;
// 123 }
// 124
// 125
// 126 /**************************************************************************************************
// 127 * @fn macTxHaltCleanup
// 128 *
// 129 * @brief -
// 130 *
// 131 * @param none
// 132 *
// 133 * @return none
// 134 **************************************************************************************************
// 135 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 136 void macTxHaltCleanup(void)
macTxHaltCleanup:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function macTxHaltCleanup
// 137 {
FUNCALL macTxHaltCleanup, macCspTxReset
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
PUSH DPH
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
; Saved register size: 2
; Auto size: 0
// 138 MAC_RADIO_TX_RESET();
; Setup parameters for call to function macCspTxReset
MOV DPTR,#(macCspTxReset & 0xffff)
MOV A,#((macCspTxReset >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 139 macTxInit();
LJMP ?Subroutine3 & 0xFFFF
CFI EndBlock cfiBlock1
// 140 }
// 141
// 142
// 143 /**************************************************************************************************
// 144 * @fn macTxFrame
// 145 *
// 146 * @brief Transmit the frame pointed to by pMacDataTx with the specified type.
// 147 * NOTE! It is not legal to call this function from interrupt context.
// 148 *
// 149 * @param txType - type of transmit
// 150 *
// 151 * @return none
// 152 **************************************************************************************************
// 153 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 154 void macTxFrame(uint8 txType)
macTxFrame:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function macTxFrame
// 155 {
FUNCALL macTxFrame, halAssertHandler
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL macTxFrame, ??txComplete
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL macTxFrame, macCspTxPrepSlotted
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -