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

📄 mac_rx_engine.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:33:45 #
# Copyright 2004-2006 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Core               =  plain                                             #
#    Code model         =  banked                                            #
#    Data model         =  large                                             #
#    Calling convention =  xdata reentrant                                   #
#    Constant location  =  data                                              #
#    Dptr setup         =  1,16                                              #
#    Source file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\lib\mac\CC2430\mac_rx_engine.c                 #
#    Command line       =  -I "C:\Program Files\IAR Systems\Embedded         #
#                          Workbench 4.05 Evaluation version\8051\INC\" -I   #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\SRC\LIB\" -I         #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\INC\CLIB\" -I        #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\ -I          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\  #
#                          -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
#                          ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
#                          0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
#                          C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D       #
#                          USE_LED -D SOC_BB -lCN "E:\公司产品资料\Zigbee\cc #
#                          2431\cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_B #
#                          B, hex\List\" -lA "E:\公司产品资料\Zigbee\cc2431\ #
#                          cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,    #
#                          hex\List\" -o "E:\公司产品资料\Zigbee\cc2431\cc24 #
#                          31定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,        #
#                          hex\Obj\" -e -s9 --debug --core=plain             #
#                          --dptr=16,1 --data_model=large                    #
#                          --code_model=banked --calling_convention=xdata_re #
#                          entrant --place_constants=data --nr_virtual_regs  #
#                          8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
#                          gine\lib\mac\CC2430\mac_rx_engine.c               #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\List\mac_rx_engine.lst                        #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\Obj\mac_rx_engine.r51                         #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_rx_engine.c
      1          /*******************************************************************************************************
      2           *                                                                                                     *
      3           *        **********                                                                                   *
      4           *       ************                                                                                  *
      5           *      ***        ***                                                                                 *
      6           *      ***   +++   ***                                                                                *
      7           *      ***   + +   ***                                                                                *
      8           *      ***   +                         CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY                 *
      9           *      ***   + +   ***                                   RX Engine                                    *
     10           *      ***   +++   ***                                                                                *
     11           *      ***        ***                                                                                 *
     12           *       ************                                                                                  *
     13           *        **********                                                                                   *
     14           *                                                                                                     *
     15           *******************************************************************************************************
     16           * CONFIDENTIAL                                                                                        *
     17           * The use of this file is restricted by the signed MAC software license agreement.                    *
     18           *                                                                                                     *
     19           * Copyright Chipcon AS, 2005                                                                          *
     20           *******************************************************************************************************
     21           * This module contains the MAC RX engine (FIFOP interrupt), including packet processing functions,    *
     22           * and functions to control the RX state (on/off...)                                                   *
     23           *******************************************************************************************************/
     24          #include <mac_headers.h>

   \                                 In segment SFR_AN, at 0x91
   \   unsigned char volatile __sfr RFIM
   \                     RFIM:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9b
   \   unsigned char volatile __sfr S1CON
   \                     S1CON:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xd1
   \   unsigned char volatile __sfr DMAIRQ
   \                     DMAIRQ:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xd6
   \   unsigned char volatile __sfr DMAARM
   \                     DMAARM:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xd7
   \   unsigned char volatile __sfr DMAREQ
   \                     DMAREQ:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xd9
   \   unsigned char volatile __sfr RFD
   \                     RFD:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xe1
   \   unsigned char volatile __sfr RFST
   \                     RFST:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xe9
   \   unsigned char volatile __sfr RFIF
   \                     RFIF:
   \   000000                DS 1
     25          #include <string.h>
     26          
     27          
     28          //-------------------------------------------------------------------------------------------------------
     29          // Variables related to the receive engine

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     30          MAC_RX_INFO   mrxInfo;
   \                     mrxInfo:
   \   000000                DS 23
     31          
     32          // Variables related to the security within the receive engine
     33          #if MAC_OPT_SECURITY
     34          MAC_RX_SECURITY_INFO mrxSecurityInfo;
     35          #endif
     36          
     37          ROOT MLME_BEACON_NOTIFY_INDICATION *mrxMakeBeaconNotifyIndication(MAC_RX_PACKET *pPacket);
     38          static ROOT void mrxHandleFifopInt(void);
     39          static ROOT void mrxStartPayloadDmaTransfer(void);
     40          
     41          //-------------------------------------------------------------------------------------------------------
     42          
     43          
     44          
     45          
     46          /*******************************************************************************************************
     47           *******************************************************************************************************
     48           **************************             RECEIVE STATE MANAGEMENT              **************************
     49           *******************************************************************************************************
     50           *******************************************************************************************************/
     51          
     52          
     53          
     54          
     55          //-------------------------------------------------------------------------------------------------------
     56          //  void mrxIncrOnCounter(void)
     57          //
     58          //  DESCRIPTION:
     59          //      Increments the "RX on" counter, and turns on RX on a 0 -> 1 transition
     60          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     61          void mrxIncrOnCounter(void) NEAR {
   \                     mrxIncrOnCounter:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     62              DISABLE_GLOBAL_INT();
   \   000004   C2AF         CLR     0xa8.7
     63              if (!mrxInfo.onCounter) {
   \   000006   90....       MOV     DPTR,#(mrxInfo + 13)
   \   000009   E0           MOVX    A,@DPTR
   \   00000A   700F         JNZ     ??mrxIncrOnCounter_0
     64                  CSP_INDICATE_RX_ON(TRUE);
   \   00000C   7401         MOV     A,#0x1
   \   00000E   90DF15       MOV     DPTR,#-0x20eb
   \   000011   F0           MOVX    @DPTR,A
     65                  if (!msupIsTxActive()) {
   \   000012                ; Setup parameters for call to function msupIsTxActive
   \   000012   12....       LCALL   msupIsTxActive & 0xFFFF
   \   000015   E9           MOV     A,R1
   \   000016   7003         JNZ     ??mrxIncrOnCounter_0
     66                      ISRXON;
   \   000018   75E1E2       MOV     0xe1,#-0x1e
     67                  }
     68              }
     69              mrxInfo.onCounter++;
   \                     ??mrxIncrOnCounter_0:
   \   00001B   90....       MOV     DPTR,#(mrxInfo + 13)
   \   00001E   E0           MOVX    A,@DPTR
   \   00001F   04           INC     A
   \   000020   80..         SJMP    ?Subroutine0
     70              ENABLE_GLOBAL_INT();
     71          } // mrxIncrOnCounter

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   F0           MOVX    @DPTR,A
   \                     ??Subroutine0_0:
   \   000001   D2AF         SETB    0xa8.7
   \                     ??Subroutine0_1:
   \   000003   D083         POP     DPH
   \   000005   D082         POP     DPL
   \   000007   02....       LJMP    ?BRET
     72          
     73          
     74          
     75          
     76          //-------------------------------------------------------------------------------------------------------
     77          //  void mrxAutoIncrOnCounter(void)
     78          //
     79          //  DESCRIPTION:
     80          //      Increments the "RX on" counter, but does not turn on RX on a 0 -> 1 transition. This function
     81          //      should be used when issuing the STXON(CCA) or SACK(PEND) command strobes.
     82          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     83          void mrxAutoIncrOnCounter(void) NEAR {
   \                     mrxAutoIncrOnCounter:
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
     84              DISABLE_GLOBAL_INT();
   \   000004   C2AF         CLR     0xa8.7
     85              mrxInfo.onCounter++;
   \   000006   90....       MOV     DPTR,#(mrxInfo + 13)
   \   000009   E0           MOVX    A,@DPTR
   \   00000A   04           INC     A
   \   00000B   F0           MOVX    @DPTR,A
     86              CSP_INDICATE_RX_ON(TRUE);
   \   00000C   7401         MOV     A,#0x1
   \   00000E   90DF15       MOV     DPTR,#-0x20eb
   \   000011   80..         SJMP    ?Subroutine0
     87              ENABLE_GLOBAL_INT();
     88          } // mrxAutoIncrOnCounter
     89          
     90          
     91          
     92          
     93          //-------------------------------------------------------------------------------------------------------
     94          //  void mrxDecrOnCounter(void)
     95          //
     96          //  DESCRIPTION:
     97          //      Decrements the "RX on" counter, and turns off RX on a 1 -> 0 transition if SFD is low. If SFD is
     98          //      high, the turn-off operation is delayed by one backoff period by using a callback.
     99          //
    100          //      Note: Because of the CSP handling, this function must only be called at the start of a backoff
    101          //      period
    102          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    103          void mrxDecrOnCounter(void) NEAR {

⌨️ 快捷键说明

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