📄 mac_rx_onoff.s51
字号:
// 146 *
// 147 * @param none
// 148 *
// 149 * @return none
// 150 **************************************************************************************************
// 151 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 152 void macRxHardDisable(void)
macRxHardDisable:
CFI Block cfiBlock6 Using cfiCommon0
CFI Function macRxHardDisable
// 153 {
FUNCALL macRxHardDisable, macRxHaltCleanup
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
// 154 halIntState_t s;
// 155
// 156 HAL_ENTER_CRITICAL_SECTION(s);
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
CLR 0xa8.7
// 157
// 158 macRxEnableFlags = 0;
CLR A
MOV DPTR,#macRxEnableFlags
MOVX @DPTR,A
// 159 macRxOnFlag = 0;
MOV DPTR,#macRxOnFlag
LCALL ?Subroutine0 & 0xFFFF
// 160
// 161 /* force receiver off */
// 162 MAC_RADIO_RXTX_OFF();
// 163 MAC_RADIO_FLUSH_RX_FIFO();
// 164 MAC_DEBUG_TURN_OFF_RX_LED();
// 165
// 166 HAL_EXIT_CRITICAL_SECTION(s);
??CrossCallReturnLabel_0:
MOV 0xa8.7,C
// 167
// 168 /* clean up after being forced off */
// 169 macRxHaltCleanup();
; Setup parameters for call to function macRxHaltCleanup
MOV DPTR,#(macRxHaltCleanup & 0xffff)
MOV A,#((macRxHaltCleanup >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 170 }
LJMP ??Subroutine1_0 & 0xFFFF
CFI EndBlock cfiBlock6
// 171
// 172
// 173 /**************************************************************************************************
// 174 * @fn macRxOnRequest
// 175 *
// 176 * @brief Turn on the receiver if any rx enable flag is set.
// 177 *
// 178 * @param none
// 179 *
// 180 * @return none
// 181 **************************************************************************************************
// 182 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 183 void macRxOnRequest(void)
macRxOnRequest:
CFI Block cfiBlock7 Using cfiCommon0
CFI Function macRxOnRequest
// 184 {
FUNCALL macRxOnRequest, macRxOn
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
MOV A,#-0x9
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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 9)
; Saved register size: 9
; Auto size: 0
// 185 halIntState_t s;
// 186
// 187 HAL_ENTER_CRITICAL_SECTION(s);
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
MOV R6,A
CLR 0xa8.7
// 188 if (macRxEnableFlags)
MOV DPTR,#macRxEnableFlags
MOVX A,@DPTR
JZ ??macRxOnRequest_0
// 189 {
// 190 macRxOn();
; Setup parameters for call to function macRxOn
MOV DPTR,#(macRxOn & 0xffff)
MOV A,#((macRxOn >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 191 }
// 192 HAL_EXIT_CRITICAL_SECTION(s);
??macRxOnRequest_0:
LJMP ?Subroutine2 & 0xFFFF
CFI EndBlock cfiBlock7
// 193 }
// 194
// 195
// 196 /**************************************************************************************************
// 197 * @fn macRxOffRequest
// 198 *
// 199 * @brief Turn off receiver if permitted.
// 200 *
// 201 * @param none
// 202 *
// 203 * @return none
// 204 **************************************************************************************************
// 205 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 206 void macRxOffRequest(void)
macRxOffRequest:
CFI Block cfiBlock8 Using cfiCommon0
CFI Function macRxOffRequest
// 207 {
FUNCALL macRxOffRequest, macRxOff
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
MOV A,#-0x9
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 V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 9)
; Saved register size: 9
; Auto size: 0
// 208 halIntState_t s;
// 209
// 210 HAL_ENTER_CRITICAL_SECTION(s);
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
MOV R6,A
CLR 0xa8.7
// 211 if (!macRxEnableFlags)
MOV DPTR,#macRxEnableFlags
MOVX A,@DPTR
JNZ ??macRxOffRequest_0
// 212 {
// 213 if (!MAC_RX_IS_PHYSICALLY_ACTIVE() && !MAC_TX_IS_PHYSICALLY_ACTIVE())
MOV DPTR,#macRxActive
MOVX A,@DPTR
MOV C,0xE0 /* A */.7
JC ??macRxOffRequest_0
MOV DPTR,#macRxOutgoingAckFlag
MOVX A,@DPTR
JNZ ??macRxOffRequest_0
MOV DPTR,#macTxActive
MOVX A,@DPTR
MOV C,0xE0 /* A */.7
JC ??macRxOffRequest_0
// 214 {
// 215 macRxOff();
; Setup parameters for call to function macRxOff
MOV DPTR,#(macRxOff & 0xffff)
MOV A,#((macRxOff >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 216 }
// 217 }
// 218 HAL_EXIT_CRITICAL_SECTION(s);
??macRxOffRequest_0:
LJMP ?Subroutine2 & 0xFFFF
CFI EndBlock cfiBlock8
// 219 }
// 220
// 221
// 222 /**************************************************************************************************
// 223 * @fn macRxOn
// 224 *
// 225 * @brief Turn on the receiver if it's not already on.
// 226 *
// 227 * @param none
// 228 *
// 229 * @return none
// 230 **************************************************************************************************
// 231 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 232 void macRxOn(void)
macRxOn:
CFI Block cfiBlock9 Using cfiCommon0
CFI Function macRxOn
// 233 {
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
// 234 halIntState_t s;
// 235
// 236 HAL_ENTER_CRITICAL_SECTION(s);
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
CLR 0xa8.7
// 237 if (!macRxOnFlag)
MOV DPTR,#macRxOnFlag
MOVX A,@DPTR
JNZ ??macRxOn_0
// 238 {
// 239 macRxOnFlag = 1;
MOV A,#0x1
MOVX @DPTR,A
// 240 MAC_RADIO_RX_ON();
MOV 0xe1,#-0x1e
// 241 MAC_DEBUG_TURN_ON_RX_LED();
// 242 }
// 243 HAL_EXIT_CRITICAL_SECTION(s);
??macRxOn_0:
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock9
// 244 }
// 245
// 246
// 247 /**************************************************************************************************
// 248 * @fn macRxOff
// 249 *
// 250 * @brief Turn off the receiver if it's not already off.
// 251 *
// 252 * @param none
// 253 *
// 254 * @return none
// 255 **************************************************************************************************
// 256 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 257 void macRxOff(void)
macRxOff:
CFI Block cfiBlock10 Using cfiCommon0
CFI Function macRxOff
// 258 {
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
// 259 halIntState_t s;
// 260
// 261 HAL_ENTER_CRITICAL_SECTION(s);
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
CLR 0xa8.7
// 262 if (macRxOnFlag)
MOV DPTR,#macRxOnFlag
MOVX A,@DPTR
JZ ??macRxOff_0
// 263 {
// 264 macRxOnFlag = 0;
CLR A
LCALL ?Subroutine0 & 0xFFFF
// 265 MAC_RADIO_RXTX_OFF();
// 266 MAC_DEBUG_TURN_OFF_RX_LED();
// 267
// 268 /* just in case a receive was about to start, flush the receive FIFO */
// 269 MAC_RADIO_FLUSH_RX_FIFO();
// 270
// 271 /* clear any receive interrupt that happened to squeak through */
// 272 MAC_RADIO_CLEAR_RX_THRESHOLD_INTERRUPT_FLAG();
??CrossCallReturnLabel_1:
MOV 0xe9,#-0x21
// 273
// 274 }
// 275 HAL_EXIT_CRITICAL_SECTION(s);
??macRxOff_0:
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock10
// 276 }
RSEG BANKED_CODE:CODE:NOROOT(0)
?Subroutine0:
CFI Block cfiCond11 Using cfiCommon0
CFI NoFunction
CFI Conditional ??CrossCallReturnLabel_1
CFI DPL0 Frame(CFA_SP, 4)
CFI DPH0 Frame(CFA_SP, 5)
CFI CFA_SP SP+-5
CFI Block cfiCond12 Using cfiCommon0
CFI (cfiCond12) NoFunction
CFI (cfiCond12) Conditional ??CrossCallReturnLabel_0
CFI (cfiCond12) DPL0 Frame(CFA_SP, 4)
CFI (cfiCond12) DPH0 Frame(CFA_SP, 5)
CFI (cfiCond12) CFA_SP SP+-5
CFI Block cfiPicker13 Using cfiCommon1
CFI (cfiPicker13) NoFunction
CFI (cfiPicker13) Picker
MOVX @DPTR,A
MOV 0xe1,#-0x1b
MOV 0xe1,#-0x1a
MOV 0xe1,#-0x1a
RET
CFI EndBlock cfiCond11
CFI EndBlock cfiCond12
CFI EndBlock cfiPicker13
ASEGN SFR_AN:DATA:NOROOT,0a8H
// union <unnamed> volatile __sfr _A_IEN0
_A_IEN0:
DS 1
END
// 277
// 278
// 279 /**************************************************************************************************
// 280 */
//
// 334 bytes in segment BANKED_CODE
// 3 bytes in segment SFR_AN
// 2 bytes in segment XDATA_Z
//
// 334 bytes of CODE memory
// 0 bytes of DATA memory (+ 3 bytes shared)
// 2 bytes of XDATA memory
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -