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

📄 mac_indirect_polling.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 4 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:33: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_indirect_polling.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_indirect_polling.c        #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\List\mac_indirect_polling.lst                 #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB,                       #
#                          hex\Obj\mac_indirect_polling.r51                  #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_indirect_polling.c
      1          /*******************************************************************************************************
      2           *                                                                                                     *
      3           *        **********                                                                                   *
      4           *       ************                                                                                  *
      5           *      ***        ***                                                                                 *
      6           *      ***   +++   ***                                                                                *
      7           *      ***   + +   ***                                                                                *
      8           *      ***   +                         CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY                 *
      9           *      ***   + +   ***                       Indirect Packet Polling + Related                        *
     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 functions related to indirect packet polling, including packet formatting and  *
     22           * timeouts.                                                                                           *
     23           *******************************************************************************************************/
     24          #include <mac_headers.h>
     25          
     26          
     27          /*******************************************************************************************************
     28           *******************************************************************************************************
     29           **************************             COMMON POLLING FUNCTIONS              **************************
     30           *******************************************************************************************************
     31           *******************************************************************************************************/
     32          
     33          
     34          
     35          
     36          //-------------------------------------------------------------------------------------------------------
     37          //  void mipTransmitAutoDataRequest(void)
     38          //
     39          //  DESCRIPTION:
     40          //      Tranmits an automatic data request when the address of the device has appeared in the beacon
     41          //      pending list, and mpib.macAutoRequest has been set (the default value is TRUE). This kind of
     42          //      data request does not make any callbacks to the higher layer (mlmePollConfirm).
     43          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     44          ROOT void mipTransmitAutoDataRequest(void) {
   \                     mipTransmitAutoDataRequest:
   \   000000   74F8         MOV     A,#-0x8
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 8
   \   000005                ; Auto size: 0
     45              MAC_ENUM result;
     46              BOOL securityEnable = FALSE; // TBD...
     47          
     48              // Switch to automatic polling mode
     49              if (!macSetState(MAC_STATE_TX_AUTO_DATA_REQUEST)) return;
   \   000005                ; Setup parameters for call to function macSetState
   \   000005   7910         MOV     R1,#0x10
   \   000007   12....       LCALL   macSetState
   \   00000A   E9           MOV     A,R1
   \   00000B   6040         JZ      ??mipTransmitAutoDataRequest_0
     50          
     51              // Try to transmit the data request
     52              if (mpib.macCoordShortAddress < 0xFFFE) {
   \   00000D   90....       MOV     DPTR,#(mpib + 28)
   \   000010   E0           MOVX    A,@DPTR
   \   000011   FA           MOV     R2,A
   \   000012   A3           INC     DPTR
   \   000013   E0           MOVX    A,@DPTR
   \   000014   FB           MOV     R3,A
   \   000015   90....       MOV     DPTR,#(mpib + 22)
   \   000018   C3           CLR     C
   \   000019   E0           MOVX    A,@DPTR
   \   00001A   94FE         SUBB    A,#-0x2
   \   00001C   A3           INC     DPTR
   \   00001D   E0           MOVX    A,@DPTR
   \   00001E   94FF         SUBB    A,#-0x1
   \   000020   75..00       MOV     ?V0 + 0,#0x0
   \   000023   78..         MOV     R0,#?V0 + 0
   \   000025   500B         JNC     ??mipTransmitAutoDataRequest_1
     53                  result = mipTransmitDataRequest(AM_SHORT_16, mpib.macPANId, (ADDRESS   *) &mpib.macCoordShortAddress, securityEnable);
   \   000027                ; Setup parameters for call to function mipTransmitDataRequest
   \   000027   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   00002A   7C..         MOV     R4,#((mpib + 22) & 0xff)
   \   00002C   7D..         MOV     R5,#(((mpib + 22) >> 8) & 0xff)
   \   00002E   7902         MOV     R1,#0x2
   \   000030   8009         SJMP    ??mipTransmitAutoDataRequest_2
     54              } else {
     55                  result = mipTransmitDataRequest(AM_EXTENDED_64, mpib.macPANId, (ADDRESS   *) mpib.pMacCoordExtendedAddress, securityEnable);
   \                     ??mipTransmitAutoDataRequest_1:
   \   000032                ; Setup parameters for call to function mipTransmitDataRequest
   \   000032   12....       LCALL   ?PUSH_XSTACK_I_ONE
   \   000035   7C..         MOV     R4,#((mpib + 14) & 0xff)
   \   000037   7D..         MOV     R5,#(((mpib + 14) >> 8) & 0xff)
   \   000039   7903         MOV     R1,#0x3
   \                     ??mipTransmitAutoDataRequest_2:
   \   00003B   12....       LCALL   mipTransmitDataRequest
   \   00003E   7401         MOV     A,#0x1
   \   000040   12....       LCALL   ?DEALLOC_XSTACK8
   \   000043   E9           MOV     A,R1
   \   000044   FA           MOV     R2,A
     56              }
     57          
     58              // Clean up if it failed
     59              if (result != SUCCESS) macSetState(MAC_STATE_DEFAULT);
   \   000045   EA           MOV     A,R2
   \   000046   6005         JZ      ??mipTransmitAutoDataRequest_0
   \   000048                ; Setup parameters for call to function macSetState
   \   000048   7900         MOV     R1,#0x0
   \   00004A   12....       LCALL   macSetState
   \                     ??mipTransmitAutoDataRequest_0:
   \   00004D                REQUIRE ?Subroutine0
   \   00004D                ; // Fall through to label ?Subroutine0
     60          
     61          } // mipTransmitAutoDataRequest

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   7F01         MOV     R7,#0x1
   \   000002   02....       LJMP    ?FUNC_LEAVE_XDATA
     62          
     63          
     64          
     65          
     66          //-------------------------------------------------------------------------------------------------------
     67          //  MAC_ENUM mipTransmitDataRequest(BYTE coordAddrMode, WORD coordPANId, ADDRESS *pCoordAddress, BOOL ...)
     68          //
     69          //  DESCRIPTION:
     70          //      Transmits a data request packet.
     71          //
     72          //  ARGUMENTS:
     73          //      BYTE coordAddrMode
     74          //          The address mode used by the coordinator
     75          //      WORD coordPANId
     76          //          The PAN ID used by the coordinator
     77          //      ADDRESS *pCoordAddress
     78          //          A pointer to the coordinator address (taken from the MAC PIB, short or extended)
     79          //      BOOL securityEnable
     80          //          TBD...
     81          //
     82          //  RETURN VALUE:
     83          //      MAC_ENUM
     84          //          SUCCESS                 No error (the transmission was initiated)
     85          //          RESOURCE_SHORTAGE       TX packet or task not available
     86          //          UNAVAILABLE_KEY         No key
     87          //          FAILED_SECURITY_CHECK   Failed security check
     88          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     89          ROOT MAC_ENUM mipTransmitDataRequest(BYTE coordAddrMode, WORD coordPANId, ADDRESS *pCoordAddress, BOOL securityEnable) {
   \                     mipTransmitDataRequest:
   \   000000   74F1         MOV     A,#-0xf
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 15
   \   000005                ; Auto size: 0
   \   000005   89..         MOV     ?V0 + 3,R1
   \   000007   EA           MOV     A,R2
   \   000008   FE           MOV     R6,A
   \   000009   EB           MOV     A,R3
   \   00000A   FF           MOV     R7,A
   \   00000B   8C..         MOV     ?V0 + 6,R4
   \   00000D   8D..         MOV     ?V0 + 7,R5
     90              MAC_TX_PACKET   *pPacket;
     91              UINT8           taskNumber;
     92              BYTE            txOptions;
     93              UINT8           temp;
     94              BYTE            *pPayload;
     95          
     96              // Try to reserve a packet
     97              pPacket = mtxpReservePacket();
   \   00000F                ; Setup parameters for call to function mtxpReservePacket
   \   00000F   12....       LCALL   mtxpReservePacket
   \   000012   8A..         MOV     ?V0 + 0,R2
   \   000014   8B..         MOV     ?V0 + 1,R3
     98              if (!pPacket) return RESOURCE_SHORTAGE;
   \   000016   EA           MOV     A,R2
   \   000017   7001         JNZ     ??mipTransmitDataRequest_0
   \   000019   EB           MOV     A,R3
   \                     ??mipTransmitDataRequest_0:
   \   00001A   7005         JNZ     ??mipTransmitDataRequest_1
   \                     ??mipTransmitDataRequest_2:
   \   00001C   7901         MOV     R1,#0x1
   \   00001E   02....       LJMP    ??mipTransmitDataRequest_3
     99          
    100              // Try to reserve a transmission task
    101              taskNumber = mschReserveTask();
   \                     ??mipTransmitDataRequest_1:
   \   000021                ; Setup parameters for call to function mschReserveTask
   \   000021   12....       LCALL   mschReserveTask
   \   000024   E9           MOV     A,R1
   \   000025   F5..         MOV     ?V0 + 2,A
    102              if (taskNumber == NO_TASK) {
   \   000027   74FF         MOV     A,#-0x1
   \   000029   65..         XRL     A,?V0 + 2
   \   00002B   7009         JNZ     ??mipTransmitDataRequest_4
    103                  mtxpReleasePacket(pPacket);
   \   00002D                ; Setup parameters for call to function mtxpReleasePacket
   \   00002D   AA..         MOV     R2,?V0 + 0
   \   00002F   AB..         MOV     R3,?V0 + 1
   \   000031   12....       LCALL   mtxpReleasePacket

⌨️ 快捷键说明

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