📄 zmac.s51
字号:
ARGFRAME XSTACK, 8, STACK
FUNCALL ZMacInit, MAC_InitCoord
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ZMacInit, ZMacReset
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
FUNCALL ZMacInit, osal_int_disable
LOCFRAME XSTACK, 8, STACK
ARGFRAME XSTACK, 8, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 0
// 85 uint8 stat;
// 86
// 87 MAC_Init();
; Setup parameters for call to function MAC_Init
MOV DPTR,#(MAC_Init & 0xffff)
MOV A,#((MAC_Init >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 88 MAC_InitDevice();
; Setup parameters for call to function MAC_InitDevice
MOV DPTR,#(MAC_InitDevice & 0xffff)
MOV A,#((MAC_InitDevice >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 89
// 90 #if defined ( RTR_NWK )
// 91 MAC_InitCoord();
; Setup parameters for call to function MAC_InitCoord
MOV DPTR,#(MAC_InitCoord & 0xffff)
MOV A,#((MAC_InitCoord >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 92 #endif
// 93
// 94 // If OK, initialize the MAC
// 95 stat = ZMacReset( TRUE );
; Setup parameters for call to function ZMacReset
MOV R1,#0x1
LCALL ZMacReset
MOV A,R1
MOV R6,A
// 96
// 97 // Turn off interrupts
// 98 osal_int_disable( INTS_ALL );
; Setup parameters for call to function osal_int_disable
MOV R1,#-0x1
MOV DPTR,#(osal_int_disable & 0xffff)
MOV A,#((osal_int_disable >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 99
// 100 return ( stat );
MOV A,R6
MOV R1,A
SJMP ??Subroutine6_0
CFI EndBlock cfiBlock0
// 101 }
RSEG NEAR_CODE:CODE:NOROOT(0)
?Subroutine6:
CFI Block cfiBlock1 Using cfiCommon0
CFI NoFunction
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 9)
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
MOV A,#0x1
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 8)
??Subroutine6_0:
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock1
// 102
// 103 /********************************************************************************************************
// 104 * @fn ZMacUpdate
// 105 *
// 106 * @brief Gives MAC (or others) some processing time.
// 107 *
// 108 * @param none.
// 109 *
// 110 * @return true if CPU needs to keep running (not sleep).
// 111 ********************************************************************************************************/
RSEG NEAR_CODE:CODE:NOROOT(0)
// 112 ROOT byte ZMacUpdate( void )
ZMacUpdate:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function ZMacUpdate
// 113 {
; Saved register size: 0
; Auto size: 0
// 114 /* Put code here that needs to run each OSAL event loop */
// 115 return ( false );
MOV R1,#0x0
RET
CFI EndBlock cfiBlock2
// 116 }
// 117
// 118 /********************************************************************************************************
// 119 * @fn ZMacReset
// 120 *
// 121 * @brief Reset the MAC.
// 122 *
// 123 * @param Default to PIB defaults.
// 124 *
// 125 * @return status.
// 126 ********************************************************************************************************/
RSEG NEAR_CODE:CODE:NOROOT(0)
// 127 ROOT uint8 ZMacReset( bool SetDefaultPIB )
ZMacReset:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function ZMacReset
// 128 {
FUNCALL ZMacReset, MAC_MlmeResetReq
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ZMacReset, MAC_MlmeSetReq
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ZMacReset, MAC_MlmeSetReq
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ZMacReset, osal_mem_free
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
MOV A,#-0x8
LCALL ?FUNC_ENTER_XDATA
CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 8)
; Saved register size: 8
; Auto size: 1
MOV A,#-0x1
LCALL ?ALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 9)
// 129 byte stat;
// 130 byte value;
// 131
// 132 stat = MAC_MlmeResetReq( SetDefaultPIB );
; Setup parameters for call to function MAC_MlmeResetReq
MOV DPTR,#(MAC_MlmeResetReq & 0xffff)
MOV A,#((MAC_MlmeResetReq >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R1
MOV R6,A
// 133
// 134 // Don't send PAN ID conflict
// 135 value = FALSE;
CLR A
MOV DPL,?XSP + 0
MOV DPH,?XSP + 1
MOVX @DPTR,A
// 136 MAC_MlmeSetReq( MAC_ASSOCIATED_PAN_COORD, &value );
; Setup parameters for call to function MAC_MlmeSetReq
MOV R2,DPL
MOV R3,DPH
MOV R1,#0x56
MOV DPTR,#(MAC_MlmeSetReq & 0xffff)
MOV A,#((MAC_MlmeSetReq >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 137 MAC_MlmeSetReq( MAC_EXTENDED_ADDRESS, &aExtendedAddress );
; Setup parameters for call to function MAC_MlmeSetReq
MOV R2,#(aExtendedAddress & 0xff)
MOV R3,#((aExtendedAddress >> 8) & 0xff)
MOV R1,#-0x1e
MOV A,#((MAC_MlmeSetReq >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 138
// 139 if (ZMac_ScanBuf)
MOV DPTR,#ZMac_ScanBuf
MOVX A,@DPTR
JNZ ??ZMacReset_0
INC DPTR
MOVX A,@DPTR
??ZMacReset_0:
JZ ??ZMacReset_1
// 140 {
// 141 osal_mem_free(ZMac_ScanBuf);
; Setup parameters for call to function osal_mem_free
MOV DPTR,#ZMac_ScanBuf
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
MOV DPTR,#(osal_mem_free & 0xffff)
MOV A,#((osal_mem_free >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 142 ZMac_ScanBuf = NULL;
MOV DPTR,#ZMac_ScanBuf
CLR A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
// 143 }
// 144
// 145 return ( stat );
??ZMacReset_1:
MOV A,R6
MOV R1,A
SJMP ?Subroutine6
CFI EndBlock cfiBlock3
// 146 }
// 147
// 148
// 149 /********************************************************************************************************
// 150 * @fn ZMacGetReq
// 151 *
// 152 * @brief Read a MAC PIB attribute.
// 153 *
// 154 * @param attr - PIB attribute to get
// 155 * @param value - pointer to the buffer to store the attribute
// 156 *
// 157 * @return status
// 158 ********************************************************************************************************/
RSEG NEAR_CODE:CODE:NOROOT(0)
// 159 ROOT uint8 ZMacGetReq( uint8 attr, uint8 *value )
ZMacGetReq:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function ZMacGetReq
// 160 {
FUNCALL ZMacGetReq, osal_cpyExtAddr
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL ZMacGetReq, MAC_MlmeGetReq
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
PUSH DPL
CFI DPL0 Frame(CFA_SP, 3)
CFI CFA_SP SP+-3
PUSH DPH
CFI DPH0 Frame(CFA_SP, 4)
CFI CFA_SP SP+-4
; Saved register size: 2
; Auto size: 0
// 161 if ( attr == ZMacExtAddr )
MOV A,#-0x1e
XRL A,R1
JNZ ??ZMacGetReq_0
// 162 {
// 163 osal_cpyExtAddr( value, &aExtendedAddress );
; Setup parameters for call to function osal_cpyExtAddr
MOV R4,#(aExtendedAddress & 0xff)
MOV R5,#((aExtendedAddress >> 8) & 0xff)
MOV DPTR,#(osal_cpyExtAddr & 0xffff)
MOV A,#((osal_cpyExtAddr >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 164 return ZMacSuccess;
MOV R1,#0x0
SJMP ??ZMacGetReq_1
// 165 }
// 166
// 167 return (ZMacStatus_t) MAC_MlmeGetReq( attr, value );
??ZMacGetReq_0:
; Setup parameters for call to function MAC_MlmeGetReq
MOV DPTR,#(MAC_MlmeGetReq & 0xffff)
MOV A,#((MAC_MlmeGetReq >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
??ZMacGetReq_1:
LJMP ??Subroutine7_0
CFI EndBlock cfiBlock4
// 168 }
// 169
// 170
// 171 /********************************************************************************************************
// 172 * @fn ZMacSetReq
// 173 *
// 174 * @brief Write a MAC PIB attribute.
// 175 *
// 176 * @param attr - PIB attribute to Set
// 177 * @param value - pointer to the data
// 178 *
// 179 * @return status
// 180 ********************************************************************************************************/
RSEG NEAR_CODE:CODE:NOROOT(0)
// 181 ROOT uint8 ZMacSetReq( uint8 attr, byte *value )
ZMacSetReq:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function ZMacSetReq
// 182 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -