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

📄 mac_tx.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        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 + -