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

📄 mac_tx_engine.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:30:27 #
# 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_tx_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       #
#                          CC2430EB -D USE_LED -lCN                          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\ -lA            #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\ -o             #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\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_tx_engine.c               #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\List\mac_tx_engine.l #
#                          st                                                #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\CC2430EB\Obj\mac_tx_engine.r5 #
#                          1                                                 #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_tx_engine.c
      1          /*******************************************************************************************************
      2          *                                                                                                      *
      3          *        **********                                                                                    *
      4          *       ************                                                                                   *
      5          *      ***        ***                                                                                  *
      6          *      ***   +++   ***                                                                                 *
      7          *      ***   + +   ***                                                                                 *
      8          *      ***   +                         CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY                  *
      9          *      ***   + +   ***                                   TX 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 TX engine, which is used to transmit all RF packets.                    *
     22          *******************************************************************************************************/
     23          #include "mac_headers.h"

   \                                 In segment SFR_AN, at 0x9c
   \   unsigned char volatile __sfr T2PEROF0
   \                     T2PEROF0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9d
   \   unsigned char volatile __sfr T2PEROF1
   \                     T2PEROF1:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0x9e
   \   unsigned char volatile __sfr T2PEROF2
   \                     T2PEROF2:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa1
   \   unsigned char volatile __sfr T2OF0
   \                     T2OF0:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa2
   \   unsigned char volatile __sfr T2OF1
   \                     T2OF1:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xa3
   \   unsigned char volatile __sfr T2OF2
   \                     T2OF2:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xc3
   \   unsigned char volatile __sfr T2CNF
   \                     T2CNF:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xe1
   \   unsigned char volatile __sfr RFST
   \                     RFST:
   \   000000                DS 1
     24          
     25          //-------------------------------------------------------------------------------------------------------
     26          // Transmission related variables

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
     27          MAC_TX_INFO mtxInfo;
   \                     mtxInfo:
   \   000000                DS 13
     28          //-------------------------------------------------------------------------------------------------------
     29          
     30          
     31          //-------------------------------------------------------------------------------------------------------
     32          //
     33          //   Prototypes
     34          //
     35          //-------------------------------------------------------------------------------------------------------
     36          static ROOT void HandleOutgoingClearText (MAC_TX_PACKET    *macTxPacket,
     37                                                    FRAME            *frame);
     38          static ROOT void HandleOutgoingFrame (MAC_TX_PACKET        *macTxPacket,
     39                                                FRAME                *frame,
     40                                                SECURITY_STATUS      *securityStatus);
     41          static ROOT void HandleOutgoingSecurity (MAC_TX_PACKET     *macTxPacket,
     42                                                   FRAME             *frame,
     43                                                   SECURITY_STATUS   *securityStatus);
     44          static ROOT void LoadAndStartStrobe (BYTE txMode,
     45                                               BOOL slotted,
     46                                               BYTE be,
     47                                               BYTE nb,
     48                                               BYTE randomBackoff,
     49                                               BYTE noOfBackoffsLeft);
     50          static ROOT void ReadCsmaParams (BYTE   *be,
     51                                           BYTE   *nb,
     52                                           BYTE   *randomBackoff);
     53          ROOT void WriteCsmaParams (BYTE be,
     54                                     BYTE nb,
     55                                     BYTE randomBackoff,
     56                                     BYTE noOfBackoffsLeft);
     57          ROOT void PrepareFrameAndWriteToRf (MAC_TX_PACKET     *macTxPacket,
     58                                              SECURITY_STATUS   *securityStatus);
     59          
     60          //-------------------------------------------------------------------------------------------------------
     61          //  void mtxCommStatusIndication(MAC_TX_PACKET *pPacket, BYTE status)
     62          //
     63          //  DESCRIPTION:
     64          //      This function generates comm-status indications for transmitted packets, by parsing the
     65          //      packet header.
     66          //
     67          //  ARGUMENTS:
     68          //      MAC_TX_PACKET *pPacket
     69          //          A pointer to the transmitted packet (which the address information will be extracted from)
     70          //      BYTE status
     71          //          The status to be passed in mlmeCommStatusIndication
     72          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     73          ROOT void mtxCommStatusIndication(MAC_TX_PACKET   *pPacket, BYTE status) {
   \                     mtxCommStatusIndication:
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FC           MOV     R4,A
   \   000007   EB           MOV     A,R3
   \   000008   FD           MOV     R5,A
   \   000009   89..         MOV     ?V0 + 2,R1
     74              BYTE dstAddrMode;
     75              ADDRESS   *pDstAddr;
     76              BYTE srcAddrMode;
     77              ADDRESS   *pSrcAddr;
     78              BYTE   *pTemp;
     79          
     80              // Point to the first byte of the frame control field
     81              pTemp = pPacket->pHeader;
     82          
     83              // Move on to the high byte, which contains the address modes
     84              pTemp += 1;
   \   00000B   EC           MOV     A,R4
   \   00000C   2404         ADD     A,#0x4
   \   00000E   FA           MOV     R2,A
   \   00000F   ED           MOV     A,R5
   \   000010   3400         ADDC    A,#0x0
   \   000012   FB           MOV     R3,A
     85              dstAddrMode = (BYTE)((*pTemp & DEST_ADDR_BM) >> (DEST_ADDR_MODE_IDX - 8));
   \   000013   8A82         MOV     DPL,R2
   \   000015   8B83         MOV     DPH,R3
   \   000017   E0           MOVX    A,@DPTR
   \   000018   FE           MOV     R6,A
   \   000019   740C         MOV     A,#0xc
   \   00001B   5E           ANL     A,R6
   \   00001C   C3           CLR     C
   \   00001D   13           RRC     A
   \   00001E   13           RRC     A
   \   00001F   FF           MOV     R7,A
     86              srcAddrMode = (BYTE)((*pTemp & SRC_ADDR_BM) >> (SRC_ADDR_MODE_IDX - 8));
   \   000020   EE           MOV     A,R6
   \   000021   C4           SWAP    A
   \   000022   13           RRC     A
   \   000023   13           RRC     A
   \   000024   5403         ANL     A,#0x3
   \   000026   FE           MOV     R6,A
     87          
     88              // Move on to the PAN ID (skip the sequence number)
     89              pTemp += 2;
   \   000027   EA           MOV     A,R2
   \   000028   2402         ADD     A,#0x2
   \   00002A   0A           INC     R2
   \   00002B   0A           INC     R2
   \   00002C   EB           MOV     A,R3
   \   00002D   3400         ADDC    A,#0x0
   \   00002F   FB           MOV     R3,A
     90          
     91              // Get a pointer to each address, without modifying the pointer any further
     92              pDstAddr = (ADDRESS   *) (pTemp + 2);
   \   000030   EA           MOV     A,R2
   \   000031   2402         ADD     A,#0x2
   \   000033   F8           MOV     R0,A
   \   000034   EB           MOV     A,R3
   \   000035   3400         ADDC    A,#0x0
   \   000037   F9           MOV     R1,A
   \   000038   88..         MOV     ?V0 + 0,R0

⌨️ 快捷键说明

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