📄 zmac.lst
字号:
\ 00000A EA MOV A,R2
\ 00000B FE MOV R6,A
\ 00000C EB MOV A,R3
\ 00000D FF MOV R7,A
347 uint8 stat;
348
349 // Probably want to keep the receiver on
350 stat = true;
\ 00000E 7401 MOV A,#0x1
\ 000010 85..82 MOV DPL,?XSP + 0
\ 000013 85..83 MOV DPH,?XSP + 1
\ 000016 F0 MOVX @DPTR,A
351 MAC_MlmeSetReq( MAC_RX_ON_WHEN_IDLE, &stat );
\ 000017 ; Setup parameters for call to function MAC_MlmeSetReq
\ 000017 AA82 MOV R2,DPL
\ 000019 AB83 MOV R3,DPH
\ 00001B 7952 MOV R1,#0x52
\ 00001D 90.... MOV DPTR,#(MAC_MlmeSetReq & 0xffff)
\ 000020 74.. MOV A,#((MAC_MlmeSetReq >> 16) & 0xff)
\ 000022 12.... LCALL ?BCALL ; Banked call to: DPTR()
352
353 /* Right now, set security to zero */
354 pData->RealignSec.SecurityLevel = false;
\ 000025 EE MOV A,R6
\ 000026 2415 ADD A,#0x15
\ 000028 F582 MOV DPL,A
\ 00002A EF MOV A,R7
\ 00002B 12.... LCALL ??Subroutine2_0
355 pData->BeaconSec.SecurityLevel = false;
\ ??CrossCallReturnLabel_8:
\ 00002E EE MOV A,R6
\ 00002F 2420 ADD A,#0x20
\ 000031 12.... LCALL ?Subroutine1
356
357
358 MAC_MlmeStartReq((macMlmeStartReq_t *) pData);
\ ??CrossCallReturnLabel_3:
\ 000034 90.... MOV DPTR,#(MAC_MlmeStartReq & 0xffff)
\ 000037 74.. MOV A,#((MAC_MlmeStartReq >> 16) & 0xff)
\ 000039 12.... LCALL ?BCALL ; Banked call to: DPTR()
359
360 // MAC does not issue mlmeStartConfirm(), so we have to
361 // mlmeStartConfirm( stat ); This needs to be addressed some how
362
363 return ZMacSuccess;
\ 00003C 7900 MOV R1,#0x0
\ 00003E 02.... LJMP ?Subroutine6
364 }
\ In segment NEAR_CODE, align 1, keep-with-next
\ ?Subroutine1:
\ 000000 F582 MOV DPL,A
\ 000002 EF MOV A,R7
\ 000003 12.... LCALL ?Subroutine5
\ ??CrossCallReturnLabel_20:
\ 000006 ; Setup parameters for call to function MAC_MlmeStartReq
\ 000006 ; Setup parameters for call to function MAC_McpsDataReq
\ 000006 EE MOV A,R6
\ 000007 FA MOV R2,A
\ 000008 EF MOV A,R7
\ 000009 FB MOV R3,A
\ 00000A 22 RET
365
366 /********************************************************************************************************
367 * @fn ZMacSyncReq
368 *
369 * @brief This function is called to request a sync to the current
370 * networks beacons.
371 *
372 * @param LogicalChannel -
373 * @param TrackBeacon - true/false
374 *
375 * @return status
376 ********************************************************************************************************/
\ In segment NEAR_CODE, align 1, keep-with-next
377 ROOT uint8 ZMacSyncReq( ZMacSyncReq_t *pData )
\ ZMacSyncReq:
378 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
379 MAC_MlmeSyncReq( (macMlmeSyncReq_t *)pData);
\ 000004 ; Setup parameters for call to function MAC_MlmeSyncReq
\ 000004 90.... MOV DPTR,#(MAC_MlmeSyncReq & 0xffff)
\ 000007 74.. MOV A,#((MAC_MlmeSyncReq >> 16) & 0xff)
\ 000009 REQUIRE ?Subroutine7
\ 000009 ; // Fall through to label ?Subroutine7
380 return ZMacSuccess;
381 }
382
383 /********************************************************************************************************
384 * @fn ZMacPollReq
385 *
386 * @brief This function is called to request MAC data request poll.
387 *
388 * @param coordAddr -
389 * @param coordPanId -
390 * @param SecurityEnable - true or false.
391 *
392 * @return status
393 ********************************************************************************************************/
\ In segment NEAR_CODE, align 1, keep-with-next
394 ROOT uint8 ZMacPollReq( ZMacPollReq_t *pData )
\ ZMacPollReq:
395 {
\ 000000 C082 PUSH DPL
\ 000002 C083 PUSH DPH
\ 000004 ; Saved register size: 2
\ 000004 ; Auto size: 0
396 /* Right now, set security to zero */
397 pData->Sec.SecurityLevel = false;
\ 000004 12.... LCALL ?Subroutine0
398
399 MAC_MlmePollReq ((macMlmePollReq_t *)pData);
\ ??CrossCallReturnLabel_2:
\ 000007 ; Setup parameters for call to function MAC_MlmePollReq
\ 000007 90.... MOV DPTR,#(MAC_MlmePollReq & 0xffff)
\ 00000A 74.. MOV A,#((MAC_MlmePollReq >> 16) & 0xff)
\ 00000C 80.. SJMP ?Subroutine7
400 return ( ZMacSuccess );
401 }
402
403 /********************************************************************************************************
404 * @fn ZMacDataReq
405 *
406 * @brief Send a MAC Data Frame packet.
407 *
408 * @param structure containing data and where to send it.
409 *
410 * @return status
411 ********************************************************************************************************/
\ In segment NEAR_CODE, align 1, keep-with-next
412 ROOT uint8 ZMacDataReq( ZMacDataReq_t *pData )
\ ZMacDataReq:
413 {
\ 000000 74F3 MOV A,#-0xd
\ 000002 12.... LCALL ?FUNC_ENTER_XDATA
\ 000005 ; Saved register size: 13
\ 000005 ; Auto size: 0
\ 000005 8A.. MOV ?V0 + 4,R2
\ 000007 8B.. MOV ?V0 + 5,R3
414 macMcpsDataReq_t *pBuf;
415
416 /* Allocate memory */
417 pBuf = MAC_McpsDataAlloc(pData->msduLength, MAC_SEC_LEVEL_NONE, MAC_KEY_ID_MODE_NONE);
\ 000009 ; Setup parameters for call to function MAC_McpsDataAlloc
\ 000009 7B00 MOV R3,#0x0
\ 00000B 7A00 MOV R2,#0x0
\ 00000D E5.. MOV A,?V0 + 4
\ 00000F 241B ADD A,#0x1b
\ 000011 F582 MOV DPL,A
\ 000013 E5.. MOV A,?V0 + 5
\ 000015 12.... LCALL ??Subroutine4_0
\ ??CrossCallReturnLabel_14:
\ 000018 E0 MOVX A,@DPTR
\ 000019 F9 MOV R1,A
\ 00001A 90.... MOV DPTR,#(MAC_McpsDataAlloc & 0xffff)
\ 00001D 74.. MOV A,#((MAC_McpsDataAlloc >> 16) & 0xff)
\ 00001F 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000022 8A.. MOV ?V0 + 0,R2
\ 000024 8B.. MOV ?V0 + 1,R3
\ 000026 AE.. MOV R6,?V0 + 0
\ 000028 AF.. MOV R7,?V0 + 1
418
419 if (pBuf)
\ 00002A EE MOV A,R6
\ 00002B 7001 JNZ ??ZMacDataReq_0
\ 00002D EF MOV A,R7
\ ??ZMacDataReq_0:
\ 00002E 7003 JNZ $+5
\ 000030 02.... LJMP ??ZMacDataReq_1
420 {
421 /* Copy the addresses */
422 osal_memcpy (&pBuf->mac, pData, sizeof (macDataReq_t));
\ 000033 ; Setup parameters for call to function osal_memcpy
\ 000033 85.... MOV ?V0 + 0,?V0 + 4
\ 000036 85.... MOV ?V0 + 1,?V0 + 5
\ 000039 75..00 MOV ?V0 + 2,#0x0
\ 00003C 78.. MOV R0,#?V0 + 0
\ 00003E 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 000041 7C10 MOV R4,#0x10
\ 000043 7D00 MOV R5,#0x0
\ 000045 EE MOV A,R6
\ 000046 241F ADD A,#0x1f
\ 000048 FA MOV R2,A
\ 000049 EF MOV A,R7
\ 00004A 3400 ADDC A,#0x0
\ 00004C FB MOV R3,A
\ 00004D 90.... MOV DPTR,#(osal_memcpy & 0xffff)
\ 000050 74.. MOV A,#((osal_memcpy >> 16) & 0xff)
\ 000052 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000055 7403 MOV A,#0x3
\ 000057 12.... LCALL ?DEALLOC_XSTACK8
423
424 /* Copy data */
425 pBuf->msdu.len = pData->msduLength;
\ 00005A E5.. MOV A,?V0 + 4
\ 00005C 241B ADD A,#0x1b
\ 00005E F8 MOV R0,A
\ 00005F E5.. MOV A,?V0 + 5
\ 000061 3400 ADDC A,#0x0
\ 000063 F9 MOV R1,A
\ 000064 E8 MOV A,R0
\ 000065 FA MOV R2,A
\ 000066 E9 MOV A,R1
\ 000067 FB MOV R3,A
\ 000068 8A82 MOV DPL,R2
\ 00006A 8B83 MOV DPH,R3
\ 00006C E0 MOVX A,@DPTR
\ 00006D 8E82 MOV DPL,R6
\ 00006F 8F83 MOV DPH,R7
\ 000071 A3 INC DPTR
\ 000072 A3 INC DPTR
\ 000073 A3 INC DPTR
\ 000074 A3 INC DPTR
\ 000075 F0 MOVX @DPTR,A
426 osal_memcpy (pBuf->msdu.p, pData->msdu, pData->msduLength);
\ 000076 ; Setup parameters for call to function osal_memcpy
\ 000076 E5.. MOV A,?V0 + 4
\ 000078 241C ADD A,#0x1c
\ 00007A F582 MOV DPL,A
\ 00007C E5.. MOV A,?V0 + 5
\ 00007E 12.... LCALL ??Subroutine4_0
\ ??CrossCallReturnLabel_15:
\ 000081 E0 MOVX A,@DPTR
\ 000082 F5.. MOV ?V0 + 0,A
\ 000084 A3 INC DPTR
\ 000085 E0 MOVX A,@DPTR
\ 000086 F5.. MOV ?V0 + 1,A
\ 000088 78.. MOV R0,#?V0 + 0
\ 00008A 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 00008D 8A82 MOV DPL,R2
\ 00008F 8B83 MOV DPH,R3
\ 000091 E0 MOVX A,@DPTR
\ 000092 FC MOV R4,A
\ 000093 7D00 MOV R5,#0x0
\ 000095 8E82 MOV DPL,R6
\ 000097 8F83 MOV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -