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

📄 zdapp.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        DS 1
//  238 
//  239 #if defined ( ZDO_BIND_UNBIND_REQUEST )
//  240   static byte ZDApp_BindUnbindRsp_TaskID = TASK_NO_TASK;
//  241 #endif
//  242 
//  243 #if defined ( ZDO_BIND_UNBIND_RESPONSE ) && !defined ( REFLECTOR )
//  244   static byte ZDApp_BindReq_TaskID = 0;  // Initialized to NO TASK
//  245 #endif
//  246 
//  247 #if defined ( ZDO_MGMT_BIND_RESPONSE ) && !defined ( REFLECTOR )
//  248   static byte ZDApp_MgmtBindReq_TaskID = 0;  // Initialized to NO TASK
//  249 #endif
//  250 
//  251 #if !defined( ZDO_COORDINATOR ) || defined( SOFT_START )
//  252   static uint8 retryCnt;
//  253 #endif
//  254 
//  255 // a little awkward -- this is will hold the list of versions that are legal given other
//  256 // constraints such as NV value, macro values etc. list used in ZDO_NetworkDiscoveryConfirmCB()
//  257 // when a joining device is deciding which network to join.

        RSEG XDATA_I:XDATA:NOROOT(0)
//  258 static byte sPVerList[] = {ZB_PROT_V1_1, ZB_PROT_V1_0};
??sPVerList:
        DS 2
        REQUIRE `?<Initializer for sPVerList>`
        REQUIRE __INIT_XDATA_I
//  259 

        RSEG XDATA_I:XDATA:NOROOT(0)
//  260 endPointDesc_t ZDApp_epDesc =
ZDApp_epDesc:
        DS 6
        REQUIRE `?<Initializer for ZDApp_epDesc>`
        REQUIRE __INIT_XDATA_I
//  261 {
//  262   ZDO_EP,
//  263   &ZDAppTaskID,
//  264   (SimpleDescriptionFormat_t *)NULL,  // No Simple description for ZDO
//  265   (afNetworkLatencyReq_t)0            // No Network Latency req
//  266 };
//  267 
//  268 /*********************************************************************
//  269  * @fn      ZDApp_Init
//  270  *
//  271  * @brief   ZDApp Initialization function.
//  272  *
//  273  * @param   task_id - ZDApp Task ID
//  274  *
//  275  * @return  None
//  276  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  277 void ZDApp_Init( byte task_id )
ZDApp_Init:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function ZDApp_Init
//  278 {
        FUNCALL ZDApp_Init, NLME_GetExtAddr
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, ZDAppCheckForHoldKey
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, ZDO_Init
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, afRegister
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, ZDAppSetupProtoVersion
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, NLME_GetRequest
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, NLME_SetBroadcastFilter
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, ZDOInitDevice
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        FUNCALL ZDApp_Init, HalLedBlink
        LOCFRAME ISTACK, 2, STACK
        LOCFRAME XSTACK, 1, STACK
        ARGFRAME ISTACK, 2, STACK
        ARGFRAME XSTACK, 1, STACK
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 5)
        CFI CFA_SP SP+-5
        ; Saved register size: 2
        ; Auto size: 1
        MOV	A,#-0x1
        LCALL	?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 1)
//  279   uint8 capabilities;
//  280 
//  281   // Save the task ID
//  282   ZDAppTaskID = task_id;
        MOV	A,R1
        MOV	DPTR,#ZDAppTaskID
        MOVX	@DPTR,A
//  283 
//  284   // Initialize the ZDO global device short address storage
//  285   ZDAppNwkAddr.addrMode = Addr16Bit;
        MOV	A,#0x2
        MOV	DPTR,#(ZDAppNwkAddr + 8)
        MOVX	@DPTR,A
//  286   ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR;
        MOV	DPTR,#ZDAppNwkAddr
        MOV	A,#-0x2
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,#-0x1
        MOVX	@DPTR,A
//  287   (void)NLME_GetExtAddr();  // Load the saveExtAddr pointer.
        ; Setup parameters for call to function NLME_GetExtAddr
        MOV	DPTR,#(NLME_GetExtAddr & 0xffff)
        MOV	A,#((NLME_GetExtAddr >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  288 
//  289   // Check for manual "Hold Auto Start"
//  290   ZDAppCheckForHoldKey();
        ; Setup parameters for call to function ZDAppCheckForHoldKey
        MOV	DPTR,#(ZDAppCheckForHoldKey & 0xffff)
        MOV	A,#((ZDAppCheckForHoldKey >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  291 
//  292   // Initialize ZDO items and setup the device - type of device to create.
//  293   ZDO_Init();
        ; Setup parameters for call to function ZDO_Init
        MOV	DPTR,#(ZDO_Init & 0xffff)
        MOV	A,#((ZDO_Init >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  294 
//  295   // Register the endpoint description with the AF
//  296   // This task doesn't have a Simple description, but we still need
//  297   // to register the endpoint.
//  298   afRegister( (endPointDesc_t *)&ZDApp_epDesc );
        ; Setup parameters for call to function afRegister
        MOV	R2,#(ZDApp_epDesc & 0xff)
        MOV	R3,#((ZDApp_epDesc >> 8) & 0xff)
        MOV	DPTR,#(afRegister & 0xffff)
        MOV	A,#((afRegister >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  299 
//  300 #if defined( ZDO_USERDESC_RESPONSE )
//  301   ZDApp_InitUserDesc();
//  302 #endif // ZDO_USERDESC_RESPONSE
//  303 
//  304 #if defined( ZDO_CACHE )
//  305   ZDCacheInit();
//  306 #endif
//  307 
//  308   // Setup the Zigbee Network Protocol Version
//  309   ZDAppSetupProtoVersion();
        ; Setup parameters for call to function ZDAppSetupProtoVersion
        MOV	DPTR,#(ZDAppSetupProtoVersion & 0xffff)
        MOV	A,#((ZDAppSetupProtoVersion >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  310 
//  311   // set broadcast address mask to support broadcast filtering
//  312   NLME_GetRequest(nwkCapabilityInfo, 0, &capabilities);
        ; Setup parameters for call to function NLME_GetRequest
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R4,DPL
        MOV	R5,DPH
        MOV	R2,#0x0
        MOV	R3,#0x0
        MOV	R1,#-0x71
        MOV	DPTR,#(NLME_GetRequest & 0xffff)
        MOV	A,#((NLME_GetRequest >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  313   NLME_SetBroadcastFilter( capabilities );
        ; Setup parameters for call to function NLME_SetBroadcastFilter
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(NLME_SetBroadcastFilter & 0xffff)
        MOV	A,#((NLME_SetBroadcastFilter >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  314 
//  315   // Start the device?
//  316   if ( devState != DEV_HOLD )
        MOV	DPTR,#devState
        MOVX	A,@DPTR
        JZ	??ZDApp_Init_0
//  317   {
//  318     ZDOInitDevice( 0 );
        ; Setup parameters for call to function ZDOInitDevice
        MOV	R2,#0x0
        MOV	R3,#0x0
        MOV	DPTR,#(ZDOInitDevice & 0xffff)
        MOV	A,#((ZDOInitDevice >> 16) & 0xff)
        SJMP	??ZDApp_Init_1
//  319   }
//  320   else
//  321   {
//  322     // Blink LED to indicate HOLD_START
//  323     HalLedBlink ( HAL_LED_4, 0, 50, 500 );
??ZDApp_Init_0:
        ; Setup parameters for call to function HalLedBlink
        MOV	R4,#-0xc
        MOV	R5,#0x1
        MOV	R3,#0x32
        MOV	R2,#0x0
        MOV	R1,#0x8
        MOV	DPTR,#(HalLedBlink & 0xffff)
        MOV	A,#((HalLedBlink >> 16) & 0xff)
??ZDApp_Init_1:
        LJMP	?Subroutine29 & 0xFFFF
        CFI EndBlock cfiBlock0
//  324   }
//  325 } /* ZDO_Init() */
//  326 
//  327 /*********************************************************************
//  328  * @fn      ZDApp_event_loop()
//  329  *
//  330  * @brief   Main event loop for Zigbee device objects task. This function
//  331  *          should be called at periodic intervals.
//  332  *
//  333  * @param   task_id - Task ID
//  334  * @param   events  - Bitmap of events
//  335  *
//  336  * @return  none
//  337  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  338 UINT16 ZDApp_event_loop( byte task_id, UINT16 events )
ZDApp_event_loop:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function ZDApp_event_loop
//  339 {
        FUNCALL ZDApp_event_loop, ZDO_StartDevice
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, ZDApp_ProcessOSALMsg
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, osal_msg_deallocate
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, osal_msg_receive
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, ZDApp_NetworkStartEvt
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, osal_pwrmgr_device
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, osal_set_event
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        FUNCALL ZDApp_event_loop, ZDO_UpdateNwkStatus
        LOCFRAME XSTACK, 10, STACK
        ARGFRAME XSTACK, 10, STACK
        MOV	A,#-0xa
        LCALL	?BANKED_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?BRET_EXT load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 10)
        ; Saved register size: 10
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//  340   uint8 *msg_ptr;
//  341 
//  342   if ( events & SYS_EVENT_MSG )
        MOV	A,#-0x80
        ANL	A,R7
        MOV	R1,A
        CLR	A
        JNZ	??ZDApp_event_loop_0
        MOV	A,R1
??ZDApp_event_loop_0:
        JNZ	??ZDApp_event_loop_1
//  343   {
//  344     while ( (msg_ptr = osal_msg_receive( ZDAppTaskID )) )
//  345     {
//  346       ZDApp_ProcessOSALMsg( (osal_event_hdr_t *)msg_ptr );
//  347 
//  348       // Release the memory
//  349       osal_msg_deallocate( msg_ptr );
//  350     }
//  351 
//  352     // Return unprocessed events
//  353     return (events ^ SYS_EVENT_MSG);
//  354   }
//  355 
//  356   if ( events & ZDO_NETWORK_INIT )
        MOV	A,R6
        MOV	C,0xE0 /* A   */.0
        JNC	??ZDApp_event_loop_2
//  357   {
//  358     // Initialize apps and start the network
//  359     devState = DEV_INIT;
        MOV	A,#0x1
        MOV	DPTR,#devState
        MOVX	@DPTR,A
//  360     ZDO_StartDevice( (uint8)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,
//  361                      DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );
        ; Setup parameters for call to function ZDO_StartDevice
        MOV	R4,#0xf
        MOV	R3,#0xf

⌨️ 快捷键说明

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