📄 sampleapp.s51
字号:
// 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 + -