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

📄 mac_scan.lst

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

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\mac\CC2430\mac_scan.c
      1          /*******************************************************************************************************
      2           *                                                                                                     *
      3           *        **********                                                                                   *
      4           *       ************                                                                                  *
      5           *      ***        ***                                                                                 *
      6           *      ***   +++   ***                                                                                *
      7           *      ***   + +   ***                                                                                *
      8           *      ***   +                         CHIPCON CC2430 INTEGRATED 802.15.4 MAC AND PHY                 *
      9           *      ***   + +   ***                                 Scan Functions                                 *
     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 scan state machine, and transmissin of scan-related packets.               *
     22           *******************************************************************************************************/
     23          #include <mac_headers.h>
     24          
     25          
     26          //-------------------------------------------------------------------------------------------------------
     27          // Variables related to channel scanning (state machine and results)

   \                                 In segment PM0_XDATA, align 1
     28          __no_init MAC_SCAN_INFO   mscInfo @ "PM0_XDATA";
   \                     mscInfo:
   \   000000                DS 12
     29          
     30          //-------------------------------------------------------------------------------------------------------
     31          
     32          
     33          
     34          
     35          /*******************************************************************************************************
     36           *******************************************************************************************************
     37           **************************         SCAN-RELATED PACKET TRANSMISSIONS         **************************
     38           *******************************************************************************************************
     39           *******************************************************************************************************/
     40          
     41          
     42          
     43          
     44          //-------------------------------------------------------------------------------------------------------
     45          //  BOOL mscTransmitBeacon(void)
     46          //
     47          //  DESCRIPTION:
     48          //      Used by a coordinator in a non-beacon network to transmit a single beacon upon a beacon request.
     49          //      Unlike the beacon transmission in mac_beacon_handler.c, this beacon is transmitted as a regular
     50          //      packet, and does not involve timing adjustments, etc.
     51          //
     52          //  RETURN VALUE:
     53          //      BOOL
     54          //          The transmission was initiated
     55          //-------------------------------------------------------------------------------------------------------
     56          #if MAC_OPT_FFD

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     57          ROOT BOOL mscTransmitBeacon(void) {
   \                     mscTransmitBeacon:
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
     58              MAC_TX_PACKET   *pPacket;
     59              UINT8 taskNumber;
     60          
     61              // Try to reserve a packet
     62              pPacket = mtxpReservePacket();
   \   000005                ; Setup parameters for call to function mtxpReservePacket
   \   000005   12....       LCALL   mtxpReservePacket
   \   000008   8A..         MOV     ?V0 + 0,R2
   \   00000A   8B..         MOV     ?V0 + 1,R3
   \   00000C   AE..         MOV     R6,?V0 + 0
   \   00000E   AF..         MOV     R7,?V0 + 1
     63              if (!pPacket) return FALSE;
   \   000010   EE           MOV     A,R6
   \   000011   7001         JNZ     ??mscTransmitBeacon_0
   \   000013   EF           MOV     A,R7
   \                     ??mscTransmitBeacon_0:
   \   000014   7004         JNZ     ??mscTransmitBeacon_1
   \                     ??mscTransmitBeacon_2:
   \   000016   7900         MOV     R1,#0x0
   \   000018   804E         SJMP    ??mscTransmitBeacon_3
     64          
     65              // Try to reserve a transmission task
     66              taskNumber = mschReserveTask();
   \                     ??mscTransmitBeacon_1:
   \   00001A                ; Setup parameters for call to function mschReserveTask
   \   00001A   12....       LCALL   mschReserveTask
   \   00001D   E9           MOV     A,R1
   \   00001E   F5..         MOV     ?V0 + 3,A
     67              if (taskNumber == NO_TASK) {
   \   000020   74FF         MOV     A,#-0x1
   \   000022   65..         XRL     A,?V0 + 3
   \   000024   7009         JNZ     ??mscTransmitBeacon_4
     68                  mtxpReleasePacket(pPacket);
   \   000026                ; Setup parameters for call to function mtxpReleasePacket
   \   000026   EE           MOV     A,R6
   \   000027   FA           MOV     R2,A
   \   000028   EF           MOV     A,R7
   \   000029   FB           MOV     R3,A
   \   00002A   12....       LCALL   mtxpReleasePacket
     69                  return FALSE;
   \   00002D   80E7         SJMP    ??mscTransmitBeacon_2
     70              }
     71          
     72              // Prepare the packet structure
     73              mbcnPrepareBeacon(pPacket);
   \                     ??mscTransmitBeacon_4:
   \   00002F                ; Setup parameters for call to function mbcnPrepareBeacon
   \   00002F   EE           MOV     A,R6
   \   000030   FA           MOV     R2,A
   \   000031   EF           MOV     A,R7
   \   000032   FB           MOV     R3,A
   \   000033   90....       MOV     DPTR,#(mbcnPrepareBeacon & 0xffff)
   \   000036   74..         MOV     A,#((mbcnPrepareBeacon >> 16) & 0xff)
   \   000038   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
     74              pPacket->txMode = MTX_MODE_FORCE_UNSLOTTED_BM | MTX_MODE_USE_CSMACA_BM;
   \   00003B   EE           MOV     A,R6
   \   00003C   2486         ADD     A,#-0x7a
   \   00003E   F582         MOV     DPL,A
   \   000040   EF           MOV     A,R7
   \   000041   3400         ADDC    A,#0x0
   \   000043   F583         MOV     DPH,A
   \   000045   7403         MOV     A,#0x3
   \   000047   F0           MOVX    @DPTR,A
     75          
     76              // Initiate the transmission
     77              mschAddTask(taskNumber, MAC_TASK_PRI_LOW, mtxScheduleTransmission, (WORD) pPacket);
   \   000048                ; Setup parameters for call to function mschAddTask
   \   000048   75....       MOV     ?V0 + 0,#(mtxScheduleTransmission & 0xff)
   \   00004B   75....       MOV     ?V0 + 1,#((mtxScheduleTransmission >> 8) & 0xff)
   \   00004E   75....       MOV     ?V0 + 2,#((mtxScheduleTransmission >> 16) & 0xff)
   \   000051   78..         MOV     R0,#?V0 + 0
   \   000053   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   000056   EE           MOV     A,R6
   \   000057   FC           MOV     R4,A
   \   000058   EF           MOV     A,R7
   \   000059   FD           MOV     R5,A
   \   00005A   7A00         MOV     R2,#0x0
   \   00005C   A9..         MOV     R1,?V0 + 3
   \   00005E   12....       LCALL   mschAddTask
   \   000061   7403         MOV     A,#0x3
   \   000063   12....       LCALL   ?DEALLOC_XSTACK8
     78              return TRUE;
   \   000066   7901         MOV     R1,#0x1
   \                     ??mscTransmitBeacon_3:
   \   000068   80..         SJMP    ??Subroutine0_0
     79          
     80          } // mscTransmitBeacon

   \                                 In segment NEAR_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   7402         MOV     A,#0x2
   \   000002   12....       LCALL   ?DEALLOC_XSTACK8
   \                     ??Subroutine0_0:
   \   000005   7F04         MOV     R7,#0x4
   \   000007   02....       LJMP    ?FUNC_LEAVE_XDATA
     81          #endif
     82          
     83          
     84          
     85          
     86          //-------------------------------------------------------------------------------------------------------
     87          //  BOOL mscTransmitBeaconRequest(void)
     88          //
     89          //  DESCRIPTION:
     90          //      Transmits a beacon request during active scan.
     91          //
     92          //  RETURN VALUE:
     93          //      BOOL
     94          //          The transmission was initiated
     95          //-------------------------------------------------------------------------------------------------------

   \                                 In segment NEAR_CODE, align 1, keep-with-next
     96          ROOT BOOL mscTransmitBeaconRequest(void) {
   \                     mscTransmitBeaconRequest:
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 2
   \   000005   74FE         MOV     A,#-0x2
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
     97              MAC_TX_PACKET   *pPacket;
     98              UINT8 taskNumber;
     99              WORD broadcast = 0xFFFF;
   \   00000A   85..82       MOV     DPL,?XSP + 0
   \   00000D   85..83       MOV     DPH,?XSP + 1
   \   000010   74FF         MOV     A,#-0x1
   \   000012   F0           MOVX    @DPTR,A

⌨️ 快捷键说明

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