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

📄 mac_radio.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        EXTERN macRadioDefsTxPowerTable
        EXTERN macRxFilter
        EXTERN macRxOutgoingAckFlag
        EXTERN macSleepState
        EXTERN macTxActive

// C:\Texas Instruments\ZStack-1.4.2-1.1.0\Components\mac\low_level\srf03\mac_radio.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  *                                          Includes
//   20  * ------------------------------------------------------------------------------------------------
//   21  */
//   22 
//   23 /* hal */
//   24 #include "hal_types.h"
//   25 
//   26 /* high-level */
//   27 #include "mac_pib.h"
//   28 
//   29 /* exported low-level */
//   30 #include "mac_low_level.h"
//   31 
//   32 /* low-level specific */
//   33 #include "mac_radio.h"
//   34 #include "mac_tx.h"
//   35 #include "mac_rx.h"
//   36 #include "mac_rx_onoff.h"
//   37 #include "mac_sleep.h"
//   38 #include "mac_backoff_timer.h"
//   39 
//   40 /* target specific */
//   41 #include "mac_radio_defs.h"
//   42 
//   43 /* debug */
//   44 #include "mac_assert.h"
//   45 
//   46 
//   47 /* ------------------------------------------------------------------------------------------------
//   48  *                                          Includes
//   49  * ------------------------------------------------------------------------------------------------
//   50  */
//   51 #define ED_RF_POWER_MIN_DBM   (MAC_RADIO_RECEIVER_SENSITIVITY_DBM + MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY)
//   52 #define ED_RF_POWER_MAX_DBM   MAC_RADIO_RECEIVER_SATURATION_DBM
//   53 
//   54 
//   55 /* ------------------------------------------------------------------------------------------------
//   56  *                                        Global Variables
//   57  * ------------------------------------------------------------------------------------------------
//   58  */

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   59 uint8 macPhyTxPower;
macPhyTxPower:
        DS 1

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   60 uint8 macPhyChannel;
macPhyChannel:
        DS 1
//   61 
//   62 
//   63 /* ------------------------------------------------------------------------------------------------
//   64  *                                        Local Variables
//   65  * ------------------------------------------------------------------------------------------------
//   66  */

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

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   68 static uint8 reqTxPower;
??reqTxPower:
        DS 1
//   69 
//   70 
//   71 /* ------------------------------------------------------------------------------------------------
//   72  *                                        Local Functions
//   73  * ------------------------------------------------------------------------------------------------
//   74  */
//   75 static uint8 radioComputeED(int8 rssiDbm);
//   76 
//   77 
//   78 /**************************************************************************************************
//   79  * @fn          macRadioInit
//   80  *
//   81  * @brief       Initialize radio software.
//   82  *
//   83  * @param       none
//   84  *
//   85  * @return      none
//   86  **************************************************************************************************
//   87  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//   88 void macRadioInit(void)
macRadioInit:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function macRadioInit
//   89 {
        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
//   90   /* variable initialization for this module */
//   91   reqChannel    = MAC_RADIO_CHANNEL_DEFAULT;
        MOV	A,#0xb
        MOV	DPTR,#??reqChannel
        MOVX	@DPTR,A
//   92   macPhyChannel = MAC_RADIO_CHANNEL_DEFAULT;
        MOV	DPTR,#macPhyChannel
        MOVX	@DPTR,A
//   93   reqTxPower    = MAC_RADIO_TX_POWER_DEFAULT;
        MOV	A,#0x1f
        MOV	DPTR,#??reqTxPower
        MOVX	@DPTR,A
//   94   macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
        MOV	DPTR,#macPhyTxPower
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock0
//   95 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine2:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        MOV	DPTR,#-0x20b5
??Subroutine2_0:
        MOVX	@DPTR,A
        SJMP	??Subroutine0_1
        CFI EndBlock cfiBlock1

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        MOV	DPTR,#(??radioComputeED & 0xffff)
        MOV	A,#((??radioComputeED >> 16) & 0xff)
??Subroutine0_0:
        LCALL	?BCALL               ; Banked call to: DPTR()
??Subroutine0_1:
        POP	DPH
        CFI CFA_SP SP+-4
        CFI DPH0 SameValue
        POP	DPL
        CFI CFA_SP SP+-3
        CFI DPL0 SameValue
        LJMP	?BRET
        CFI EndBlock cfiBlock2
//   96 
//   97 
//   98 /**************************************************************************************************
//   99  * @fn          macRadioReset
//  100  *
//  101  * @brief       Resets the radio module.
//  102  *
//  103  * @param       none
//  104  *
//  105  * @return      none
//  106  **************************************************************************************************
//  107  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  108 void macRadioReset(void)
macRadioReset:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function macRadioReset
//  109 {
        FUNCALL macRadioReset, macRadioStopScan
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL macRadioReset, macRadioEnergyDetectStop
        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
//  110   macRadioStopScan();
        ; Setup parameters for call to function macRadioStopScan
        MOV	DPTR,#(macRadioStopScan & 0xffff)
        MOV	A,#((macRadioStopScan >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  111   macRadioEnergyDetectStop();
        ; Setup parameters for call to function macRadioEnergyDetectStop
        MOV	DPTR,#(macRadioEnergyDetectStop & 0xffff)
        MOV	A,#((macRadioEnergyDetectStop >> 16) & 0xff)
        SJMP	??Subroutine0_0
        CFI EndBlock cfiBlock3
//  112 }
//  113 
//  114 
//  115 /**************************************************************************************************
//  116  * @fn          macRadioRandomByte
//  117  *
//  118  * @brief       Return a random byte derived from previously set random seed.
//  119  *
//  120  * @param       none
//  121  *
//  122  * @return      a random byte
//  123  **************************************************************************************************
//  124  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  125 uint8 macRadioRandomByte(void)
macRadioRandomByte:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function macRadioRandomByte
//  126 {
        FUNCALL macRadioRandomByte, macMcuRandomByte
        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
//  127   return(MAC_RADIO_RANDOM_BYTE());
        ; Setup parameters for call to function macMcuRandomByte
        MOV	DPTR,#(macMcuRandomByte & 0xffff)
        MOV	A,#((macMcuRandomByte >> 16) & 0xff)
        SJMP	??Subroutine0_0
        CFI EndBlock cfiBlock4
//  128 }
//  129 
//  130 
//  131 /**************************************************************************************************
//  132  * @fn          macRadioSetPanCoordinator
//  133  *
//  134  * @brief       Configure the pan coordinator status of the radio
//  135  *
//  136  * @param       panCoordFlag - non-zero to configure radio to be pan coordinator
//  137  *                             zero to configure radio as NON pan coordinator
//  138  *
//  139  * @return      none
//  140  **************************************************************************************************
//  141  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  142 void macRadioSetPanCoordinator(uint8 panCoordFlag)
macRadioSetPanCoordinator:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function macRadioSetPanCoordinator
//  143 {
        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
//  144   /* abstracted radio configuration */
//  145   MAC_RADIO_SET_PAN_COORDINATOR(panCoordFlag);
        MOV	DPTR,#-0x20fe
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,R1
        JZ	??macRadioSetPanCoordinator_0
        SETB	B.0
        SJMP	??macRadioSetPanCoordinator_1
??macRadioSetPanCoordinator_0:
        CLR	B.0
??macRadioSetPanCoordinator_1:
        MOV	C,B.0
        CLR	A
        MOV	0xE0 /* A   */.0,C
        SWAP	A
        PUSH	A
        CFI CFA_SP SP+-6
        MOV	A,#-0x11
        ANL	A,R2
        MOV	R2,A
        POP	A
        CFI CFA_SP SP+-5
        ORL	A,R2
        SJMP	??Subroutine2_0
        CFI EndBlock cfiBlock5
//  146 }

⌨️ 快捷键说明

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