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

📄 zdobject.lst

📁 cc2430应用实例
💻 LST
📖 第 1 页 / 共 5 页
字号:
    122          
    123          /*********************************************************************
    124           * GLOBAL VARIABLES
    125           */
    126          
    127          /*********************************************************************
    128           * EXTERNAL VARIABLES
    129           */
    130          
    131          /*********************************************************************
    132           * EXTERNAL FUNCTIONS
    133           */
    134          
    135          /*********************************************************************
    136           * LOCAL VARIABLES
    137           */

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    138          static uint16 ZDOBuildBuf[26];  // temp area to build data without allocation
   \                     ??ZDOBuildBuf:
   \   000000                DS 52
    139          
    140          #if defined ( REFLECTOR )

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    141          static ZDO_EDBind_t *ZDO_EDBind;     // Null when not used
   \                     ??ZDO_EDBind:
   \   000000                DS 2
    142          #endif
    143          
    144          #if defined ( MANAGED_SCAN )
    145            uint32 managedScanNextChannel = 0;
    146            uint32 managedScanChannelMask = 0;
    147            uint8  managedScanTimesPerChannel = 0;
    148          #endif
    149          
    150          #if defined ( ZDO_COORDINATOR )

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    151            ZDMatchEndDeviceBind_t *matchED = (ZDMatchEndDeviceBind_t *)NULL;
   \                     matchED:
   \   000000                DS 2
    152          #endif
    153          
    154          /*********************************************************************
    155           * LOCAL FUNCTIONS
    156           */
    157          static void ZDODeviceSetup( void );
    158          static uint16 *ZDO_CreateAlignedUINT16List(uint8 num, uint8 *buf);
    159          #if defined ( MANAGED_SCAN )
    160            static void ZDOManagedScan_Next( void );
    161          #endif
    162          #if defined ( REFLECTOR )
    163            static void ZDO_RemoveEndDeviceBind( void );
    164            static void ZDO_SendEDBindRsp( byte TransSeq, zAddrType_t *dstAddr, byte Status, byte secUse );
    165          #endif
    166          #if defined ( REFLECTOR ) || defined( ZDO_COORDINATOR )
    167            static byte ZDO_CompareClusterLists( byte numList1, uint16 *list1,
    168                                          byte numList2, uint16 *list2, uint16 *pMatches );
    169          #endif
    170          #if defined ( ZDO_COORDINATOR )
    171            static void ZDO_RemoveMatchMemory( void );
    172            static uint8 ZDO_CopyMatchInfo( ZDEndDeviceBind_t *destReq, ZDEndDeviceBind_t *srcReq );
    173            static uint8 ZDMatchSendState( uint8 reason, uint8 status, uint8 TransSeq );
    174            static void ZDO_EndDeviceBindMatchTimeoutCB( void );
    175          #endif
    176          
    177          /*********************************************************************
    178           * @fn          ZDO_Init
    179           *
    180           * @brief       ZDObject and ZDProfile initialization.
    181           *
    182           * @param       none
    183           *
    184           * @return      none
    185           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    186          void ZDO_Init( void )
   \                     ZDO_Init:
    187          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    188            // Initialize ZD items
    189            #if defined ( REFLECTOR )
    190            ZDO_EDBind = NULL;
   \   000004   90....       MOV     DPTR,#??ZDO_EDBind
   \   000007   E4           CLR     A
   \   000008   F0           MOVX    @DPTR,A
   \   000009   A3           INC     DPTR
   \   00000A   F0           MOVX    @DPTR,A
    191            #endif
    192          
    193            // Setup the device - type of device to create.
    194            ZDODeviceSetup();
   \   00000B                ; Setup parameters for call to function NLME_CoordinatorInit
   \   00000B   90....       MOV     DPTR,#(NLME_CoordinatorInit & 0xffff)
   \   00000E   74..         MOV     A,#((NLME_CoordinatorInit >> 16) & 0xff)
   \   000010   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000013                ; Setup parameters for call to function APS_ReflectorInit
   \   000013   7900         MOV     R1,#0x0
   \   000015   90....       MOV     DPTR,#(APS_ReflectorInit & 0xffff)
   \   000018   74..         MOV     A,#((APS_ReflectorInit >> 16) & 0xff)
   \   00001A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    195          
    196            // Initialize ZigBee Device Security Manager
    197            ZDSecMgrInit();
   \   00001D                ; Setup parameters for call to function ZDSecMgrInit
   \   00001D   90....       MOV     DPTR,#(ZDSecMgrInit & 0xffff)
   \   000020   74..         MOV     A,#((ZDSecMgrInit >> 16) & 0xff)
   \   000022                REQUIRE ?Subroutine94
   \   000022                ; // Fall through to label ?Subroutine94
    198          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine94:
   \   000000   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \                     ??Subroutine94_0:
   \   000003   D083         POP     DPH
   \   000005   D082         POP     DPL
   \   000007   02....       LJMP    ?BRET
    199          
    200          #if defined ( MANAGED_SCAN )
    201          /*********************************************************************
    202           * @fn      ZDOManagedScan_Next()
    203           *
    204           * @brief   Setup a managed scan.
    205           *
    206           * @param   none
    207           *
    208           * @return  none
    209           */
    210          static void ZDOManagedScan_Next( void )
    211          {
    212            // Is it the first time
    213            if ( managedScanNextChannel == 0 && managedScanTimesPerChannel == 0 )
    214            {
    215              // Setup the defaults
    216              managedScanNextChannel  = 1;
    217          
    218              while( managedScanNextChannel && (zgDefaultChannelList & managedScanNextChannel) == 0 )
    219                managedScanNextChannel <<= 1;
    220          
    221              managedScanChannelMask = managedScanNextChannel;
    222              managedScanTimesPerChannel = MANAGEDSCAN_TIMES_PRE_CHANNEL;
    223            }
    224            else
    225            {
    226              // Do we need to go to the next channel
    227              if ( managedScanTimesPerChannel == 0 )
    228              {
    229                // Find next active channel
    230                managedScanChannelMask  = managedScanNextChannel;
    231                managedScanTimesPerChannel = MANAGEDSCAN_TIMES_PRE_CHANNEL;
    232              }
    233              else
    234              {
    235                managedScanTimesPerChannel--;
    236          
    237                if ( managedScanTimesPerChannel == 0 )
    238                {
    239                  managedScanNextChannel  <<= 1;
    240                  while( managedScanNextChannel && (zgDefaultChannelList & managedScanNextChannel) == 0 )
    241                    managedScanNextChannel <<= 1;
    242          
    243                  if ( managedScanNextChannel == 0 )
    244                    zdoDiscCounter  = NUM_DISC_ATTEMPTS + 1; // Stop
    245                }
    246              }
    247            }
    248          }
    249          #endif // MANAGED_SCAN
    250          
    251          /*********************************************************************
    252           * @fn      ZDODeviceSetup()
    253           *
    254           * @brief   Call set functions depending on the type of device compiled.
    255           *
    256           * @param   none
    257           *
    258           * @return  none
    259           */
    260          static void ZDODeviceSetup( void )
    261          {
    262          #if defined( ZDO_COORDINATOR )
    263            NLME_CoordinatorInit();
    264          #endif
    265          
    266          #if defined ( REFLECTOR )
    267            #if defined ( ZDO_COORDINATOR )
    268              APS_ReflectorInit( APS_REFLECTOR_PUBLIC );
    269            #else
    270              APS_ReflectorInit( APS_REFLECTOR_PRIVATE );
    271            #endif
    272          #endif
    273          
    274          #if !defined( ZDO_COORDINATOR ) || defined( SOFT_START )
    275            NLME_DeviceJoiningInit();
    276          #endif
    277          }
    278          
    279          /*********************************************************************
    280           * @fn          ZDO_StartDevice
    281           *
    282           * @brief       This function starts a device in a network.
    283           *
    284           * @param       logicalType     - Device type to start
    285           *              startMode       - indicates mode of device startup
    286           *              beaconOrder     - indicates time betwen beacons
    287           *              superframeOrder - indicates length of active superframe
    288           *
    289           * @return      none
    290           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    291          void ZDO_StartDevice( byte logicalType, devStartModes_t startMode, byte beaconOrder, byte superframeOrder )
   \                     ZDO_StartDevice:
    292          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FD           MOV     R5,A
   \   000007   EB           MOV     A,R3
   \   000008   F9           MOV     R1,A
    293            ZStatus_t ret;
    294          
    295            ret = ZUnsupportedMode;
   \   000009   7E12         MOV     R6,#0x12
    296          
    297          #if defined(ZDO_COORDINATOR)
    298            if ( logicalType == NODETYPE_COORDINATOR )
   \   00000B   ED           MOV     A,R5
   \   00000C   7050         JNZ     ??ZDO_StartDevice_0
    299            {
    300              if ( startMode == MODE_HARD )
   \   00000E   7402         MOV     A,#0x2
   \   000010   6A           XRL     A,R2
   \   000011   7032         JNZ     ??ZDO_StartDevice_1
    301              {
    302                devState = DEV_COORD_STARTING;
   \   000013   7408         MOV     A,#0x8
   \   000015   90....       MOV     DPTR,#devState
   \   000018   F0           MOVX    @DPTR,A
    303                ret = NLME_NetworkFormationRequest( zgConfigPANID, zgDefaultChannelList,
    304                                                    zgDefaultStartingScanDuration, beaconOrder,
    305                                                    superframeOrder, false );
   \   000019                ; Setup parameters for call to function NLME_NetworkFormationRequest

⌨️ 快捷键说明

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