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

📄 sampleapp.s51

📁 CC2431无线定位程序非常有参考价值
💻 S51
📖 第 1 页 / 共 4 页
字号:
//  199  *
//  200  * @param   task_id - the ID assigned by OSAL.
//  201  *
//  202  * @return  none
//  203  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  204 static void SampleApp_Init( uint8 task_id )
??SampleApp_Init:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function ??SampleApp_Init
//  205 {
        FUNCALL ??SampleApp_Init, afRegister
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, STACK
        FUNCALL ??SampleApp_Init, RegisterForKeys
        LOCFRAME ISTACK, 2, STACK
        ARGFRAME ISTACK, 2, 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: 0
//  206   SampleApp_TaskID = task_id;
        MOV	A,R1
        MOV	DPTR,#SampleApp_TaskID
        MOVX	@DPTR,A
//  207 
//  208   /* Sample NV Restore.
//  209   if ( ZSUCCESS == osal_nv_item_init( SAMPLE_APP_NV_ITEM,
//  210                             sizeof( sampleAppNV_Item_t ), &sampleAppNV_Item ) )
//  211   {
//  212     osal_nv_read( SAMPLE_APP_NV_ITEM, 0,
//  213                             sizeof( sampleAppNV_Item_t ), &sampleAppNV_Item ) )
//  214   }
//  215   else
//  216   {
//  217     osal_nv_read( SAMPLE_APP_NV_ITEM, 0,
//  218                             sizeof( sampleAppNV_Item_t ), &sampleAppNV_Item ) )
//  219   }
//  220    */
//  221 
//  222   // Register the endpoint/interface description with the AF.
//  223   afRegister( (endPointDesc_t *)&SampleApp_epDesc );
        ; Setup parameters for call to function afRegister
        MOV	R2,#(??SampleApp_epDesc & 0xff)
        MOV	R3,#((??SampleApp_epDesc >> 8) & 0xff)
        MOV	DPTR,#(afRegister & 0xffff)
        MOV	A,#((afRegister >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  224 
//  225   // Register for all key events - This app will handle all key events.
//  226   RegisterForKeys( SampleApp_TaskID );
        ; Setup parameters for call to function RegisterForKeys
        MOV	DPTR,#SampleApp_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(RegisterForKeys & 0xffff)
        MOV	A,#((RegisterForKeys >> 16) & 0xff)
        CFI EndBlock cfiBlock1
        REQUIRE ?Subroutine0
        ; // Fall through to label ?Subroutine0
//  227 
//  228 #if defined ( LCD_SUPPORTED )
//  229   HalLcdWriteString( "<--- SampleApp --->", HAL_LCD_LINE_1 );
//  230 #endif
//  231 }

        RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI NoFunction
        CFI CFA_SP SP+-5
        CFI DPL0 Frame(CFA_SP, 4)
        CFI DPH0 Frame(CFA_SP, 5)
        LCALL	?BCALL               ; Banked call to: DPTR()
        POP	DPH
        CFI CFA_SP SP+-4
        CFI DPH0 SameValue
        POP	DPL
        CFI CFA_SP SP+-3
        CFI DPL0 SameValue
        LJMP	?BRET
        CFI EndBlock cfiBlock2
//  232 
//  233 /*********************************************************************
//  234  * @fn      SampleApp_ProcessEvent
//  235  *
//  236  * @brief   Generic Application Task event processor.
//  237  *
//  238  * @param   task_id  - The OSAL assigned task ID.
//  239  * @param   events - Bit map of events to process.
//  240  *
//  241  * @return  none
//  242  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  243 static uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
??SampleApp_ProcessEvent:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function ??SampleApp_ProcessEvent
//  244 {
        FUNCALL ??SampleApp_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, SampleApp_Sleep
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, osal_msg_deallocate
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, AF_DataRequest
        LOCFRAME XSTACK, 26, STACK
        ARGFRAME XSTACK, 26, STACK
        FUNCALL ??SampleApp_ProcessEvent, BlindNode_FindRequest
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, SampleApp_NoACK
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, HalLedSet
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, HalLedSet
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, STACK
        FUNCALL ??SampleApp_ProcessEvent, HalLedSet
        LOCFRAME XSTACK, 17, STACK
        ARGFRAME XSTACK, 17, 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: 5
        MOV	A,#-0x5
        LCALL	?ALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 17)
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
//  245   if ( events & SYS_EVENT_MSG )
        MOV	A,#-0x80
        ANL	A,?V0 + 1
        MOV	R1,A
        CLR	A
        JNZ	??SampleApp_ProcessEvent_1
        MOV	A,R1
??SampleApp_ProcessEvent_1:
        JNZ	$+5
        LJMP	??SampleApp_ProcessEvent_2 & 0xFFFF
//  246   {
//  247     afIncomingMSGPacket_t *MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive(
//  248                                                              SampleApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
        SJMP	??SampleApp_ProcessEvent_3
//  249 
//  250     while ( MSGpkt != NULL )
//  251     {
//  252       switch ( MSGpkt->hdr.event )
//  253       {
//  254       case KEY_CHANGE:
//  255         handleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
//  256         break;
//  257 
//  258       case AF_DATA_CONFIRM_CMD:
//  259 #if !defined( RTR_NWK )
//  260         {
//  261         // This message is received as a confirmation of a data packet sent.
//  262         // The status is of ZStatus_t type [defined in ZComDef.h]
//  263         afDataConfirm_t *afDataConfirm = (afDataConfirm_t *)MSGpkt;
//  264 
//  265         /* No ACK from the MAC layer implies that mobile device is out of
//  266          * range of most recent parent. Therefore, begin an orphan scan
//  267          * to try to find a former parent.
//  268          * NOTE: To get the fastest action in the process of finding a new
//  269          * parent, set the MAX_JOIN_ATTEMPTS in ZDApp.c to 1.
//  270          */
//  271         if ( afDataConfirm->hdr.status == ZMacNoACK )
//  272         {
//  273           SampleApp_NoACK();
//  274         }
//  275         // Some other error -- Do something.
//  276         else
//  277         {
//  278         }
//  279         }
//  280 #endif
//  281         break;
//  282 
//  283       case AF_INCOMING_MSG_CMD:
//  284         processMSGCmd( MSGpkt );
//  285         break;
//  286 
//  287       case ZDO_STATE_CHANGE:
//  288 #if defined( POWER_SAVING )
//  289         if ( rejoinPending )
??SampleApp_ProcessEvent_4:
        MOV	DPTR,#??rejoinPending
        MOVX	A,@DPTR
        JZ	??SampleApp_ProcessEvent_5
//  290         {
//  291           rejoinPending = FALSE;
        CLR	A
        MOVX	@DPTR,A
//  292 
//  293           // Ok to resume power saving ops.
//  294           SampleApp_Sleep( TRUE );
        ; Setup parameters for call to function SampleApp_Sleep
        MOV	R1,#0x1
        MOV	DPTR,#(SampleApp_Sleep & 0xffff)
        MOV	A,#((SampleApp_Sleep >> 16) & 0xff)
??SampleApp_ProcessEvent_6:
        LCALL	?BCALL               ; Banked call to: DPTR()
//  295         }
//  296 #endif
//  297         break;
//  298 
//  299       default:
//  300         break;
//  301       }
//  302 
//  303       osal_msg_deallocate( (uint8 *)MSGpkt );
??SampleApp_ProcessEvent_5:
        ; Setup parameters for call to function osal_msg_deallocate
        MOV	A,R6
        MOV	R2,A
        MOV	A,R7
        MOV	R3,A
        MOV	DPTR,#(osal_msg_deallocate & 0xffff)
        MOV	A,#((osal_msg_deallocate >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  304       MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
??SampleApp_ProcessEvent_3:
        MOV	DPTR,#SampleApp_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 + 2,R2
        MOV	?V0 + 3,R3
        MOV	R6,?V0 + 2
        MOV	R7,?V0 + 3
        MOV	A,R6
        JNZ	??SampleApp_ProcessEvent_7
        MOV	A,R7
??SampleApp_ProcessEvent_7:
        JNZ	$+5
        LJMP	??SampleApp_ProcessEvent_8 & 0xFFFF
        MOV	DPL,R6
        MOV	DPH,R7
        MOVX	A,@DPTR
        LCALL	?UC_SWITCH_SPARSE
`?<Jumptable for SampleApp_ProcessEvent>_0`:
        DB        0
        DB        4
        DB        26
        DW        ??SampleApp_ProcessEvent_9
        DB        192
        DW        ??SampleApp_ProcessEvent_10
        DB        209
        DW        ??SampleApp_ProcessEvent_4
        DB        253
        DW        ??SampleApp_ProcessEvent_11
        DW        ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_10:
        MOV	A,#-0x10
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	@DPTR,A
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0xf
        MOVX	@DPTR,A
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOV	A,#-0x1
        MOVX	@DPTR,A
        INC	DPTR
        MOVX	@DPTR,A
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        MOV	A,#0xa
        MOVX	@DPTR,A
        ; Setup parameters for call to function AF_DataRequest
        MOV	?V0 + 2,#0x1
        MOV	R0,#?V0 + 2
        LCALL	?PUSH_XSTACK_I_ONE
        CFI CFA_XSP16 add(XSP16, 18)
        MOV	?V0 + 2,#(??transId & 0xff)
        MOV	?V0 + 3,#((??transId >> 8) & 0xff)
        MOV	R0,#?V0 + 2
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 20)
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        MOV	?V0 + 2,DPL
        MOV	?V0 + 3,DPH
        MOV	R0,#?V0 + 2
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 22)
        MOV	?V0 + 2,#0x1
        MOV	?V0 + 3,#0x0
        MOV	R0,#?V0 + 2
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 24)
        MOV	?V0 + 2,#0x10
        MOV	R0,#?V0 + 2
        LCALL	?PUSH_XSTACK_I_TWO
        CFI CFA_XSP16 add(XSP16, 26)
        MOV	R1,#-0x80
        MOV	R4,#(??SampleApp_epDesc & 0xff)
        MOV	R5,#((??SampleApp_epDesc >> 8) & 0xff)
        MOV	A,#0xa
        LCALL	?XSTACK_DISP0_8
        MOV	R2,DPL
        MOV	R3,DPH
        MOV	DPTR,#(AF_DataRequest & 0xffff)
        MOV	A,#((AF_DataRequest >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x9
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 17)
        ; Setup parameters for call to function BlindNode_FindRequest
        MOV	DPTR,#(BlindNode_FindRequest & 0xffff)
        MOV	A,#((BlindNode_FindRequest >> 16) & 0xff)
        LJMP	??SampleApp_ProcessEvent_6 & 0xFFFF
??SampleApp_ProcessEvent_11:
        MOV	DPL,R6
        MOV	DPH,R7
        INC	DPTR
        MOVX	A,@DPTR
        XRL	A,#0xe9
        JZ	$+5
        LJMP	??SampleApp_ProcessEvent_5 & 0xFFFF
        ; Setup parameters for call to function SampleApp_NoACK
        MOV	DPTR,#(SampleApp_NoACK & 0xffff)
        MOV	A,#((SampleApp_NoACK >> 16) & 0xff)
        LJMP	??SampleApp_ProcessEvent_6 & 0xFFFF
??SampleApp_ProcessEvent_9:

⌨️ 快捷键说明

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