📄 sampleapp.s51
字号:
MOV A,#((SampleApp_TaskID >> 8) & 0xff)
MOVX @DPTR,A
// 195 SampleApp_epDesc.simpleDesc
// 196 = (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
// 197 SampleApp_epDesc.latencyReq = noLatencyReqs;
CLR A
MOV DPTR,#(SampleApp_epDesc + 5)
MOVX @DPTR,A
// 198
// 199 // Register the endpoint description with the AF
// 200 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()
// 201
// 202 // Register for all key events - This app will handle all key events
// 203 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()
// 204
// 205 // By default, all devices start out in Group 1
// 206 SampleApp_Group.ID = 0x0001;
MOV DPTR,#SampleApp_Group
MOV A,#0x1
MOVX @DPTR,A
INC DPTR
CLR A
MOVX @DPTR,A
// 207 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)
// 208 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()
// 209
// 210 #if defined ( LCD_SUPPORTED )
// 211 HalLcdWriteString( "SampleApp", HAL_LCD_LINE_1 );
// 212 #endif
// 213 }
MOV R7,#0x3
LJMP ?BANKED_LEAVE_XDATA
CFI EndBlock cfiBlock0
// 214
// 215 /*********************************************************************
// 216 * @fn SampleApp_ProcessEvent
// 217 *
// 218 * @brief Generic Application Task event processor. This function
// 219 * is called to process all events for the task. Events
// 220 * include timers, messages and any other user defined events.
// 221 *
// 222 * @param task_id - The OSAL assigned task ID.
// 223 * @param events - events to process. This is a bit map and can
// 224 * contain more than one event.
// 225 *
// 226 * @return none
// 227 */
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 228 byte mubiaoIEEE[8];
mubiaoIEEE:
DS 8
RSEG XDATA_Z:XDATA:NOROOT(0)
REQUIRE __INIT_XDATA_Z
// 229 uint16 rspaddr;
rspaddr:
DS 2
RSEG BANKED_CODE:CODE:NOROOT(0)
// 230 uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )
SampleApp_ProcessEvent:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function SampleApp_ProcessEvent
// 231 {
FUNCALL SampleApp_ProcessEvent, osal_msg_receive
LOCFRAME XSTACK, 12, STACK
ARGFRAME XSTACK, 12, STACK
FUNCALL SampleApp_ProcessEvent, osal_set_event
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, ZDP_NwkAddrReq
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
// 232 afIncomingMSGPacket_t *MSGpkt;
// 233
// 234 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
// 235 {
// 236 MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
; Setup parameters for call to function osal_msg_receive
SJMP ??SampleApp_ProcessEvent_2
// 237 while ( MSGpkt )
// 238 {
// 239 switch ( MSGpkt->hdr.event )
// 240 {
// 241 // Received when a key is pressed
// 242 case KEY_CHANGE:
// 243 SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );
// 244 break;
// 245
// 246 // Received when a messages is received (OTA) for this endpoint
// 247 case AF_INCOMING_MSG_CMD:
// 248 //SampleApp_MessageMSGCB( MSGpkt );
// 249 P1_1=~P1_1;
// 250 break;
// 251
// 252 // Received whenever the device changes state in the network
// 253 case ZDO_STATE_CHANGE:
// 254 SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
// 255 if (SampleApp_NwkState == DEV_ZB_COORD)
// 256 {
// 257 mubiaoIEEE[0]=0xa7;
// 258 for(byte i=1;i<8;i++)
// 259 {
// 260 mubiaoIEEE[i]=0xff;
// 261 }
// 262 ZDP_NwkAddrReq(mubiaoIEEE,1,1,0);
// 263 }
// 264 /*
// 265 SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
// 266 if ( (SampleApp_NwkState == DEV_ZB_COORD)
// 267 // || (SampleApp_NwkState == DEV_ROUTER)
// 268 // || (SampleApp_NwkState == DEV_END_DEVICE)
// 269 )
// 270 {
// 271 // Start sending the periodic message in a regular interval.
// 272 osal_start_timerEx( SampleApp_TaskID,
// 273 SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
// 274 SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
// 275
// 276 }
// 277 */
// 278 break;
// 279 case ZDO_NWK_ADDR_RESP:
// 280
// 281
// 282 SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
??SampleApp_ProcessEvent_3:
MOV A,#0x2
MOV DPTR,#(SampleApp_Periodic_DstAddr + 2)
MOVX @DPTR,A
// 283 SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
MOV A,#0x14
MOV DPTR,#(SampleApp_Periodic_DstAddr + 3)
MOVX @DPTR,A
// 284 SampleApp_Periodic_DstAddr.addr.shortAddr = rspaddr;
MOV DPTR,#rspaddr
MOVX A,@DPTR
MOV R0,A
INC DPTR
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#SampleApp_Periodic_DstAddr
MOV A,R0
MOVX @DPTR,A
INC DPTR
MOV A,R1
MOVX @DPTR,A
// 285 osal_set_event(SampleApp_TaskID,SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
; Setup parameters for call to function osal_set_event
MOV R2,#0x1
MOV R3,#0x0
MOV DPTR,#SampleApp_TaskID
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#(osal_set_event & 0xffff)
MOV A,#((osal_set_event >> 16) & 0xff)
??SampleApp_ProcessEvent_4:
LCALL ?BCALL ; Banked call to: DPTR()
// 286 break;
// 287 default:
// 288 break;
// 289 }
// 290
// 291 // Release the memory
// 292 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()
// 293
// 294 // Next - if one is available
// 295 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_6
MOV A,?V0 + 1
??SampleApp_ProcessEvent_6:
JZ ??SampleApp_ProcessEvent_7
MOV DPL,?V0 + 0
MOV DPH,?V0 + 1
MOVX A,@DPTR
LCALL ?UC_SWITCH_SPARSE
`?<Jumptable for SampleApp_ProcessEvent>_0`:
DB 0
DB 4
DB 26
DW ??SampleApp_ProcessEvent_8
DB 192
DW ??SampleApp_ProcessEvent_9
DB 209
DW ??SampleApp_ProcessEvent_10
DB 211
DW ??SampleApp_ProcessEvent_3
DW ??SampleApp_ProcessEvent_5
??SampleApp_ProcessEvent_9:
; 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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -