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

📄 genericapp.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 4 页
字号:
        ARGFRAME XSTACK, 12, STACK
        FUNCALL GenericApp_ProcessEvent, osal_msg_deallocate
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL GenericApp_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL GenericApp_ProcessEvent, GenericApp_HandleKeys
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL GenericApp_ProcessEvent, GenericApp_SendTheMessage
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL GenericApp_ProcessEvent, osal_start_timer
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        MOV	A,#-0xc
        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 V3 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 12)
        ; Saved register size: 12
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//  197   afIncomingMSGPacket_t *MSGpkt;
//  198   afDataConfirm_t *afDataConfirm;
//  199   ZDO_NewDstAddr_t *ZDO_NewDstAddr;
//  200   byte dstEP;
//  201   zAddrType_t *dstAddr;
//  202 
//  203   // Data Confirmation message fields
//  204   byte sentEP;
//  205   ZStatus_t sentStatus;
//  206   byte sentTransID;       // This should match the value sent
//  207 
//  208   if ( events & SYS_EVENT_MSG )
        MOV	A,#-0x80
        ANL	A,R7
        MOV	R1,A
        CLR	A
        JNZ	??GenericApp_ProcessEvent_0
        MOV	A,R1
??GenericApp_ProcessEvent_0:
        JNZ	$+5
        LJMP	??GenericApp_ProcessEvent_1 & 0xFFFF
//  209   {
//  210     MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
        SJMP	??GenericApp_ProcessEvent_2
//  211     while ( MSGpkt )
//  212     {
//  213       switch ( MSGpkt->hdr.event )
//  214       {
//  215         case KEY_CHANGE:
//  216           GenericApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
//  217           break;
//  218 
//  219         case AF_DATA_CONFIRM_CMD:
//  220           // This message is received as a confirmation of a data packet sent.
//  221           // The status is of ZStatus_t type [defined in ZComDef.h]
//  222           // The message fields are defined in AF.h
//  223           afDataConfirm = (afDataConfirm_t *)MSGpkt;
//  224           sentEP = afDataConfirm->endpoint;
//  225           sentStatus = afDataConfirm->hdr.status;
//  226           sentTransID = afDataConfirm->transID;
//  227           (void)sentEP;
//  228           (void)sentTransID;
//  229 
//  230           // Action taken when confirmation is received.
//  231           if ( sentStatus != ZSuccess )
//  232           {
//  233             // The data wasn't delivered -- Do something
//  234           }
//  235           break;
//  236 
//  237         case AF_INCOMING_MSG_CMD:
//  238           GenericApp_MessageMSGCB( MSGpkt );
//  239           break;
//  240 
//  241         case ZDO_NEW_DSTADDR:
//  242           ZDO_NewDstAddr = (ZDO_NewDstAddr_t *)MSGpkt;
//  243 
//  244           dstEP = ZDO_NewDstAddr->dstAddrDstEP;
//  245           dstAddr = &ZDO_NewDstAddr->dstAddr;
//  246           GenericApp_DstAddr.addrMode = (afAddrMode_t)dstAddr->addrMode;
//  247           GenericApp_DstAddr.endPoint = dstEP;
//  248 
//  249           GenericApp_DstAddr.addr.shortAddr = dstAddr->addr.shortAddr;
//  250           break;
//  251 
//  252         case ZDO_STATE_CHANGE:
//  253           GenericApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
??GenericApp_ProcessEvent_3:
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPTR,#GenericApp_NwkState
        MOVX	@DPTR,A
//  254           if ( (GenericApp_NwkState == DEV_ZB_COORD)
//  255               || (GenericApp_NwkState == DEV_ROUTER)
//  256               || (GenericApp_NwkState == DEV_END_DEVICE) )
        XRL	A,#0x9
        JZ	??GenericApp_ProcessEvent_4
        MOVX	A,@DPTR
        XRL	A,#0x7
        JZ	??GenericApp_ProcessEvent_4
        MOVX	A,@DPTR
        XRL	A,#0x6
        JNZ	??GenericApp_ProcessEvent_5
//  257           {
//  258             // Start sending "the" message in a regular interval.
//  259             osal_start_timer( GENERICAPP_SEND_MSG_EVT,
//  260                               GENERICAPP_SEND_MSG_TIMEOUT );
??GenericApp_ProcessEvent_4:
        ; Setup parameters for call to function osal_start_timer
        MOV	R4,#-0x78
        MOV	R5,#0x13
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#(osal_start_timer & 0xffff)
        MOV	A,#((osal_start_timer >> 16) & 0xff)
??GenericApp_ProcessEvent_6:
        LCALL	?BCALL               ; Banked call to: DPTR()
//  261           }
//  262           break;
//  263 
//  264         default:
//  265           break;
//  266       }
//  267 
//  268       // Release the memory
//  269       osal_msg_deallocate( (uint8 *)MSGpkt );
??GenericApp_ProcessEvent_5:
        ; Setup parameters for call to function osal_msg_deallocate
        MOV	R2,?V0 + 0
        MOV	R3,?V0 + 1
        MOV	DPTR,#(osal_msg_deallocate & 0xffff)
        MOV	A,#((osal_msg_deallocate >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  270 
//  271       // Next
//  272       MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
??GenericApp_ProcessEvent_2:
        MOV	DPTR,#GenericApp_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_msg_receive & 0xffff)
        MOV	A,#((osal_msg_receive >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	A,?V0 + 0
        JNZ	??GenericApp_ProcessEvent_7
        MOV	A,?V0 + 1
??GenericApp_ProcessEvent_7:
        JZ	??GenericApp_ProcessEvent_8
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        MOVX	A,@DPTR
        LCALL	?UC_SWITCH_SPARSE
`?<Jumptable for GenericApp_ProcessEvent>_0`:
        DB        0
        DB        3
        DB        192
        DW        ??GenericApp_ProcessEvent_9
        DB        208
        DW        ??GenericApp_ProcessEvent_10
        DB        209
        DW        ??GenericApp_ProcessEvent_3
        DW        ??GenericApp_ProcessEvent_5
??GenericApp_ProcessEvent_9:
        ; Setup parameters for call to function GenericApp_HandleKeys
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(GenericApp_HandleKeys & 0xffff)
        MOV	A,#((GenericApp_HandleKeys >> 16) & 0xff)
        SJMP	??GenericApp_ProcessEvent_6
??GenericApp_ProcessEvent_10:
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,?V0 + 0
        ADD	A,#0x3
        MOV	R0,A
        MOV	A,?V0 + 1
        ADDC	A,#0x0
        MOV	R1,A
        MOV	DPL,R0
        MOV	DPH,R1
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPTR,#(GenericApp_DstAddr + 2)
        MOVX	@DPTR,A
        MOV	A,R2
        MOV	DPTR,#(GenericApp_DstAddr + 3)
        MOVX	@DPTR,A
        MOV	DPL,R0
        MOV	DPH,R1
        MOVX	A,@DPTR
        MOV	R0,A
        INC	DPTR
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#GenericApp_DstAddr
        MOV	A,R0
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,R1
        MOVX	@DPTR,A
        LJMP	??GenericApp_ProcessEvent_5 & 0xFFFF
//  273     }
//  274 
//  275     // return unprocessed events
//  276     return (events ^ SYS_EVENT_MSG);
??GenericApp_ProcessEvent_8:
        MOV	A,R6
        MOV	R2,A
        MOV	A,#-0x80
        XRL	A,R7
??GenericApp_ProcessEvent_11:
        MOV	R3,A
        SJMP	??GenericApp_ProcessEvent_12
//  277   }
//  278 
//  279   // Send a message out - This event is generated by a timer
//  280   //  (setup in GenericApp_Init()).
//  281   if ( events & GENERICAPP_SEND_MSG_EVT )
??GenericApp_ProcessEvent_1:
        MOV	A,R6
        MOV	C,0xE0 /* A   */.0
        JNC	??GenericApp_ProcessEvent_13
//  282   {
//  283     // Send "the" message
//  284     GenericApp_SendTheMessage();
        ; Setup parameters for call to function GenericApp_SendTheMessage
        MOV	DPTR,#(GenericApp_SendTheMessage & 0xffff)
        MOV	A,#((GenericApp_SendTheMessage >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  285 
//  286     // Setup to send message again
//  287     osal_start_timer( GENERICAPP_SEND_MSG_EVT,
//  288                       GENERICAPP_SEND_MSG_TIMEOUT );
        ; Setup parameters for call to function osal_start_timer
        MOV	R4,#-0x78
        MOV	R5,#0x13
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#(osal_start_timer & 0xffff)
        MOV	A,#((osal_start_timer >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  289 
//  290     // return unprocessed events
//  291     return (events ^ GENERICAPP_SEND_MSG_EVT);
        MOV	A,#0x1
        XRL	A,R6
        MOV	R2,A
        MOV	A,R7
        SJMP	??GenericApp_ProcessEvent_11
//  292   }
//  293 
//  294   // Discard unknown events
//  295   return 0;
??GenericApp_ProcessEvent_13:
        MOV	R2,#0x0
        MOV	R3,#0x0
??GenericApp_ProcessEvent_12:
        MOV	R7,#0x4
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock1
//  296 }
//  297 
//  298 /*********************************************************************
//  299  * Event Generation Functions
//  300  */

⌨️ 快捷键说明

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