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

📄 sampleapp.s51

📁 cc2430讀取短地址程式
💻 S51
📖 第 1 页 / 共 4 页
字号:
//  188   //  start the device.
//  189   ZDOInitDevice(0);
//  190 #endif
//  191 
//  192   // Setup for the periodic message's destination address
//  193   // Broadcast to everyone
//  194   SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;
        MOV	A,#0xf
        MOV	DPTR,#(SampleApp_Periodic_DstAddr + 2)
        MOVX	@DPTR,A
//  195   SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
        MOV	A,#0x14
        MOV	DPTR,#(SampleApp_Periodic_DstAddr + 3)
        MOVX	@DPTR,A
//  196   SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;
        MOV	DPTR,#SampleApp_Periodic_DstAddr
        MOV	A,#-0x1
        MOVX	@DPTR,A
        INC	DPTR
        MOVX	@DPTR,A
//  197 
//  198   // Setup for the flash command's destination address - Group 1
//  199   SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;
        MOV	A,#0x1
        MOV	DPTR,#(SampleApp_Flash_DstAddr + 2)
        MOVX	@DPTR,A
//  200   SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
        MOV	A,#0x14
        MOV	DPTR,#(SampleApp_Flash_DstAddr + 3)
        MOVX	@DPTR,A
//  201   SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;
        MOV	DPTR,#SampleApp_Flash_DstAddr
        MOV	A,#0x1
        MOVX	@DPTR,A
        INC	DPTR
        CLR	A
        MOVX	@DPTR,A
//  202 
//  203   // Fill out the endpoint description.
//  204   SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
        MOV	A,#0x14
        MOV	DPTR,#SampleApp_epDesc
        MOVX	@DPTR,A
//  205   SampleApp_epDesc.task_id = &SampleApp_TaskID;
        MOV	DPTR,#(SampleApp_epDesc + 1)
        MOV	A,#(SampleApp_TaskID & 0xff)
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,#((SampleApp_TaskID >> 8) & 0xff)
        MOVX	@DPTR,A
//  206   SampleApp_epDesc.simpleDesc
//  207             = (SimpleDescriptionFormat_t *)&SampleApp_SimpleDesc;
        MOV	DPTR,#(SampleApp_epDesc + 3)
        MOV	A,#(SampleApp_SimpleDesc & 0xff)
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,#((SampleApp_SimpleDesc >> 8) & 0xff)
        MOVX	@DPTR,A
//  208   SampleApp_epDesc.latencyReq = noLatencyReqs;
        CLR	A
        MOV	DPTR,#(SampleApp_epDesc + 5)
        MOVX	@DPTR,A
//  209 
//  210   // Register the endpoint description with the AF
//  211   afRegister( &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()
//  212 
//  213   // Register for all key events - This app will handle all key events
//  214   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)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  215 
//  216   // By default, all devices start out in Group 1
//  217   SampleApp_Group.ID = 0x0001;
        MOV	DPTR,#SampleApp_Group
        MOV	A,#0x1
        MOVX	@DPTR,A
        INC	DPTR
        CLR	A
        MOVX	@DPTR,A
//  218   osal_memcpy( SampleApp_Group.name, "Group 1", 7  );
        ; Setup parameters for call to function osal_memcpy
        MOV	?V0 + 0,#(`?<Constant "Group 1">` & 0xff)
        MOV	?V0 + 1,#((`?<Constant "Group 1">` >> 8) & 0xff)
        MOV	?V0 + 2,A
        MOV	R0,#?V0 + 0
        LCALL	?PUSH_XSTACK_I_THREE
        CFI CFA_XSP16 add(XSP16, 14)
        MOV	R4,#0x7
        MOV	R5,#0x0
        MOV	R2,#((SampleApp_Group + 2) & 0xff)
        MOV	R3,#(((SampleApp_Group + 2) >> 8) & 0xff)
        MOV	DPTR,#(osal_memcpy & 0xffff)
        MOV	A,#((osal_memcpy >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
        MOV	A,#0x3
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 11)
//  219   aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );
        ; Setup parameters for call to function aps_AddGroup
        MOV	R2,#(SampleApp_Group & 0xff)
        MOV	R3,#((SampleApp_Group >> 8) & 0xff)
        MOV	R1,#0x14
        MOV	DPTR,#(aps_AddGroup & 0xffff)
        MOV	A,#((aps_AddGroup >> 16) & 0xff)
        LCALL	?BCALL               ; Banked call to: DPTR()
//  220 
//  221 #if defined ( LCD_SUPPORTED )
//  222   HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 );
//  223 #endif
//  224 }
        MOV	R7,#0x3
        LJMP	?BANKED_LEAVE_XDATA
        CFI EndBlock cfiBlock0
//  225 
//  226 /*********************************************************************
//  227  * @fn      SampleApp_ProcessEvent
//  228  *
//  229  * @brief   Generic Application Task event processor.  This function
//  230  *          is called to process all events for the task.  Events
//  231  *          include timers, messages and any other user defined events.
//  232  *
//  233  * @param   task_id  - The OSAL assigned task ID.
//  234  * @param   events - events to process.  This is a bit map and can
//  235  *                   contain more than one event.
//  236  *
//  237  * @return  none
//  238  */

        RSEG BANKED_CODE:CODE:NOROOT(0)
//  239 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
SampleApp_ProcessEvent:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function SampleApp_ProcessEvent
//  240 {
        FUNCALL SampleApp_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, osal_start_timerEx
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, osal_msg_deallocate
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, osal_msg_receive
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, SampleApp_HandleKeys
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, SampleApp_MessageMSGCB
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, SampleApp_SendPeriodicMessage
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, osal_rand
        LOCFRAME XSTACK, 12, STACK
        ARGFRAME XSTACK, 12, STACK
        FUNCALL SampleApp_ProcessEvent, osal_start_timerEx
        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
//  241   afIncomingMSGPacket_t *MSGpkt;
//  242 
//  243   if ( events & SYS_EVENT_MSG )
        MOV	A,#-0x80
        ANL	A,R7
        MOV	R1,A
        CLR	A
        JNZ	??SampleApp_ProcessEvent_0
        MOV	A,R1
??SampleApp_ProcessEvent_0:
        JNZ	$+5
        LJMP	??SampleApp_ProcessEvent_1 & 0xFFFF
//  244   {
//  245     MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
        SJMP	??SampleApp_ProcessEvent_2
//  246     while ( MSGpkt )
//  247     {
//  248       switch ( MSGpkt->hdr.event )
//  249       {
//  250         // Received when a key is pressed
//  251         case KEY_CHANGE:
//  252           SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
//  253           break;
//  254 
//  255         // Received when a messages is received (OTA) for this endpoint
//  256         case AF_INCOMING_MSG_CMD:
//  257           SampleApp_MessageMSGCB( MSGpkt );
//  258           //HAL_TOGGLE_LED1();
//  259           break;
//  260 
//  261         // Received whenever the device changes state in the network
//  262         case ZDO_STATE_CHANGE:
//  263           SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
??SampleApp_ProcessEvent_3:
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        INC	DPTR
        MOVX	A,@DPTR
        MOV	DPTR,#SampleApp_NwkState
        MOVX	@DPTR,A
//  264           if ( (SampleApp_NwkState == DEV_ZB_COORD)
//  265               || (SampleApp_NwkState == DEV_ROUTER)
//  266               || (SampleApp_NwkState == DEV_END_DEVICE) )
        XRL	A,#0x9
        JZ	??SampleApp_ProcessEvent_4
        MOVX	A,@DPTR
        XRL	A,#0x7
        JZ	??SampleApp_ProcessEvent_4
        MOVX	A,@DPTR
        XRL	A,#0x6
        JNZ	??SampleApp_ProcessEvent_5
//  267           {
//  268             // Start sending the periodic message in a regular interval.
//  269             osal_start_timerEx( SampleApp_TaskID,
//  270                               SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
//  271                               SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
??SampleApp_ProcessEvent_4:
        ; Setup parameters for call to function osal_start_timerEx
        MOV	R4,#-0x78
        MOV	R5,#0x13
        MOV	R2,#0x1
        MOV	R3,#0x0
        MOV	DPTR,#SampleApp_TaskID
        MOVX	A,@DPTR
        MOV	R1,A
        MOV	DPTR,#(osal_start_timerEx & 0xffff)
        MOV	A,#((osal_start_timerEx >> 16) & 0xff)
??SampleApp_ProcessEvent_6:
        LCALL	?BCALL               ; Banked call to: DPTR()
//  272           }
//  273           else
//  274           {
//  275             // Device is no longer in the network
//  276           }
//  277           break;
//  278 
//  279         default:
//  280           break;
//  281       }
//  282 
//  283       // Release the memory
//  284       osal_msg_deallocate( (uint8 *)MSGpkt );
??SampleApp_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()
//  285 
//  286       // Next - if one is available
//  287       MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
        ; Setup parameters for call to function osal_msg_receive
??SampleApp_ProcessEvent_2:
        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 + 0,R2
        MOV	?V0 + 1,R3
        MOV	A,?V0 + 0
        JNZ	??SampleApp_ProcessEvent_7
        MOV	A,?V0 + 1
??SampleApp_ProcessEvent_7:
        JZ	??SampleApp_ProcessEvent_8
        MOV	DPL,?V0 + 0
        MOV	DPH,?V0 + 1
        MOVX	A,@DPTR
        LCALL	?UC_SWITCH_SPARSE
`?<Jumptable for SampleApp_ProcessEvent>_0`:
        DB        0
        DB        3
        DB        26
        DW        ??SampleApp_ProcessEvent_9
        DB        192
        DW        ??SampleApp_ProcessEvent_10
        DB        209
        DW        ??SampleApp_ProcessEvent_3
        DW        ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_10:
        ; Setup parameters for call to function SampleApp_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,#(SampleApp_HandleKeys & 0xffff)
        MOV	A,#((SampleApp_HandleKeys >> 16) & 0xff)
        SJMP	??SampleApp_ProcessEvent_6
??SampleApp_ProcessEvent_9:
        ; Setup parameters for call to function SampleApp_MessageMSGCB

⌨️ 快捷键说明

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