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

📄 sampleapp.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000000                REQUIRE __INIT_XDATA_Z
    109          devStates_t SampleApp_NwkState;
   \                     SampleApp_NwkState:
   \   000000                DS 1
    110          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    111          uint8 SampleApp_TransID;  // This is the unique message ID (counter)
   \                     SampleApp_TransID:
   \   000000                DS 1
    112          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    113          afAddrType_t SampleApp_Periodic_DstAddr;
   \                     SampleApp_Periodic_DstAddr:
   \   000000                DS 4

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    114          afAddrType_t SampleApp_Flash_DstAddr;
   \                     SampleApp_Flash_DstAddr:
   \   000000                DS 4
    115          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    116          aps_Group_t SampleApp_Group;
   \                     SampleApp_Group:
   \   000000                DS 18
    117          

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    118          uint8 SampleAppPeriodicCounter = 0;
   \                     SampleAppPeriodicCounter:
   \   000000                DS 1

   \                                 In segment XDATA_Z, align 1, keep-with-next
   \   000000                REQUIRE __INIT_XDATA_Z
    119          uint8 SampleAppFlashCounter = 0;
   \                     SampleAppFlashCounter:
   \   000000                DS 1
    120          
    121          /*********************************************************************
    122           * LOCAL FUNCTIONS
    123           */
    124          void SampleApp_HandleKeys( uint8 shift, uint8 keys );
    125          void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pckt );
    126          void SampleApp_SendPeriodicMessage( void );
    127          void SampleApp_SendFlashMessage( uint16 flashTime );
    128          
    129          /*********************************************************************
    130           * NETWORK LAYER CALLBACKS
    131           */
    132          
    133          /*********************************************************************
    134           * PUBLIC FUNCTIONS
    135           */
    136          
    137          /*********************************************************************
    138           * @fn      SampleApp_Init
    139           *
    140           * @brief   Initialization function for the Generic App Task.
    141           *          This is called during initialization and should contain
    142           *          any application specific initialization (ie. hardware
    143           *          initialization/setup, table initialization, power up
    144           *          notificaiton ... ).
    145           *
    146           * @param   task_id - the ID assigned by OSAL.  This ID should be
    147           *                    used to send messages and set timers.
    148           *
    149           * @return  none
    150           */

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    151          void SampleApp_Init( uint8 task_id )
   \                     SampleApp_Init:
    152          {
   \   000000   74F5         MOV     A,#-0xb
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 11
   \   000005                ; Auto size: 0
    153            SampleApp_TaskID = task_id;
   \   000005   E9           MOV     A,R1
   \   000006   90....       MOV     DPTR,#SampleApp_TaskID
   \   000009   F0           MOVX    @DPTR,A
    154            SampleApp_NwkState = DEV_INIT;
   \   00000A   7401         MOV     A,#0x1
   \   00000C   90....       MOV     DPTR,#SampleApp_NwkState
   \   00000F   F0           MOVX    @DPTR,A
    155            SampleApp_TransID = 0;
   \   000010   E4           CLR     A
   \   000011   90....       MOV     DPTR,#SampleApp_TransID
   \   000014   F0           MOVX    @DPTR,A
    156          
    157            // Device hardware initialization can be added here or in main() (Zmain.c).
    158            // If the hardware is application specific - add it here.
    159            // If the hardware is other parts of the device add it in main().
    160          
    161           #if defined ( SOFT_START )
    162            // The "Demo" target is setup to have SOFT_START and HOLD_AUTO_START
    163            // SOFT_START is a compile option that allows the device to start
    164            //  as a coordinator if one isn't found.
    165            // We are looking at a jumper (defined in SampleAppHw.c) to be jumpered
    166            // together - if they are - we will start up a coordinator. Otherwise,
    167            // the device will start as a router.
    168            if ( readCoordinatorJumper() )
    169              zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
    170            else
    171              zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;
    172          #endif // SOFT_START
    173          
    174          #if defined ( HOLD_AUTO_START )
    175            // HOLD_AUTO_START is a compile option that will surpress ZDApp
    176            //  from starting the device and wait for the application to
    177            //  start the device.
    178            ZDOInitDevice(0);
    179          #endif
    180          
    181            // Setup for the periodic message's destination address
    182            // Broadcast to everyone
    183            SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;
   \   000015   740F         MOV     A,#0xf
   \   000017   90....       MOV     DPTR,#(SampleApp_Periodic_DstAddr + 2)
   \   00001A   F0           MOVX    @DPTR,A
    184            SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
   \   00001B   7414         MOV     A,#0x14
   \   00001D   90....       MOV     DPTR,#(SampleApp_Periodic_DstAddr + 3)
   \   000020   F0           MOVX    @DPTR,A
    185            SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;
   \   000021   90....       MOV     DPTR,#SampleApp_Periodic_DstAddr
   \   000024   74FF         MOV     A,#-0x1
   \   000026   F0           MOVX    @DPTR,A
   \   000027   A3           INC     DPTR
   \   000028   F0           MOVX    @DPTR,A
    186          
    187            // Setup for the flash command's destination address - Group 1
    188            SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
   \   000029   7401         MOV     A,#0x1
   \   00002B   90....       MOV     DPTR,#(SampleApp_Flash_DstAddr + 2)
   \   00002E   F0           MOVX    @DPTR,A
    189            SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
   \   00002F   7414         MOV     A,#0x14
   \   000031   90....       MOV     DPTR,#(SampleApp_Flash_DstAddr + 3)
   \   000034   F0           MOVX    @DPTR,A
    190            SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;
   \   000035   90....       MOV     DPTR,#SampleApp_Flash_DstAddr
   \   000038   7401         MOV     A,#0x1
   \   00003A   F0           MOVX    @DPTR,A
   \   00003B   A3           INC     DPTR
   \   00003C   E4           CLR     A
   \   00003D   F0           MOVX    @DPTR,A
    191          
    192            // Fill out the endpoint description.
    193            SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
   \   00003E   7414         MOV     A,#0x14
   \   000040   90....       MOV     DPTR,#SampleApp_epDesc
   \   000043   F0           MOVX    @DPTR,A
    194            SampleApp_epDesc.task_id = &SampleApp_TaskID;
   \   000044   90....       MOV     DPTR,#(SampleApp_epDesc + 1)
   \   000047   74..         MOV     A,#(SampleApp_TaskID & 0xff)
   \   000049   F0           MOVX    @DPTR,A
   \   00004A   A3           INC     DPTR
   \   00004B   74..         MOV     A,#((SampleApp_TaskID >> 8) & 0xff)
   \   00004D   F0           MOVX    @DPTR,A
    195            SampleApp_epDesc.simpleDesc
    196                      = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc;
   \   00004E   90....       MOV     DPTR,#(SampleApp_epDesc + 3)
   \   000051   74..         MOV     A,#(SampleApp_SimpleDesc & 0xff)
   \   000053   F0           MOVX    @DPTR,A
   \   000054   A3           INC     DPTR
   \   000055   74..         MOV     A,#((SampleApp_SimpleDesc >> 8) & 0xff)
   \   000057   F0           MOVX    @DPTR,A
    197            SampleApp_epDesc.latencyReq = noLatencyReqs;
   \   000058   E4           CLR     A
   \   000059   90....       MOV     DPTR,#(SampleApp_epDesc + 5)
   \   00005C   F0           MOVX    @DPTR,A
    198          
    199            // Register the endpoint description with the AF
    200            afRegister( &SampleApp_epDesc );
   \   00005D                ; Setup parameters for call to function afRegister
   \   00005D   7A..         MOV     R2,#(SampleApp_epDesc & 0xff)
   \   00005F   7B..         MOV     R3,#((SampleApp_epDesc >> 8) & 0xff)
   \   000061   90....       MOV     DPTR,#(afRegister & 0xffff)
   \   000064   74..         MOV     A,#((afRegister >> 16) & 0xff)
   \   000066   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    201          
    202            // Register for all key events - This app will handle all key events
    203            RegisterForKeys( SampleApp_TaskID );
   \   000069                ; Setup parameters for call to function RegisterForKeys
   \   000069   90....       MOV     DPTR,#SampleApp_TaskID
   \   00006C   E0           MOVX    A,@DPTR
   \   00006D   F9           MOV     R1,A
   \   00006E   90....       MOV     DPTR,#(RegisterForKeys & 0xffff)
   \   000071   74..         MOV     A,#((RegisterForKeys >> 16) & 0xff)
   \   000073   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    204          
    205            // By default, all devices start out in Group 1
    206            SampleApp_Group.ID = 0x0001;
   \   000076   90....       MOV     DPTR,#SampleApp_Group
   \   000079   7401         MOV     A,#0x1
   \   00007B   F0           MOVX    @DPTR,A
   \   00007C   A3           INC     DPTR
   \   00007D   E4           CLR     A
   \   00007E   F0           MOVX    @DPTR,A
    207            osal_memcpy( SampleApp_Group.name, "Group 1", 7  );
   \   00007F                ; Setup parameters for call to function osal_memcpy
   \   00007F   75....       MOV     ?V0 + 0,#(`?<Constant "Group 1">` & 0xff)
   \   000082   75....       MOV     ?V0 + 1,#((`?<Constant "Group 1">` >> 8) & 0xff)
   \   000085   F5..         MOV     ?V0 + 2,A
   \   000087   78..         MOV     R0,#?V0 + 0
   \   000089   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   00008C   7C07         MOV     R4,#0x7
   \   00008E   7D00         MOV     R5,#0x0
   \   000090   7A..         MOV     R2,#((SampleApp_Group + 2) & 0xff)
   \   000092   7B..         MOV     R3,#(((SampleApp_Group + 2) >> 8) & 0xff)
   \   000094   90....       MOV     DPTR,#(osal_memcpy & 0xffff)
   \   000097   74..         MOV     A,#((osal_memcpy >> 16) & 0xff)
   \   000099   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00009C   7403         MOV     A,#0x3
   \   00009E   12....       LCALL   ?DEALLOC_XSTACK8
    208            aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
   \   0000A1                ; Setup parameters for call to function aps_AddGroup
   \   0000A1   7A..         MOV     R2,#(SampleApp_Group & 0xff)
   \   0000A3   7B..         MOV     R3,#((SampleApp_Group >> 8) & 0xff)
   \   0000A5   7914         MOV     R1,#0x14
   \   0000A7   90....       MOV     DPTR,#(aps_AddGroup & 0xffff)
   \   0000AA   74..         MOV     A,#((aps_AddGroup >> 16) & 0xff)
   \   0000AC   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    209          
    210          #if defined ( LCD_SUPPORTED )
    211            HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 );
    212          #endif
    213          }
   \   0000AF   7F03         MOV     R7,#0x3
   \   0000B1   02....       LJMP    ?BANKED_LEAVE_XDATA
    214          
    215          /*********************************************************************
    216           * @fn      SampleApp_ProcessEvent

⌨️ 快捷键说明

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