📄 mac_backoff_timer.s51
字号:
MOV R0,#?V0 + 0
LCALL ?L_MOV_X
MOV R2,?V0 + 0
MOV R3,?V0 + 1
MOV R4,?V0 + 2
MOV R5,?V0 + 3
MOV DPTR,#(macBackoffTimerSetRollover & 0xffff)
MOV A,#((macBackoffTimerSetRollover >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 130 MAC_RADIO_BACKOFF_COMPARE_CLEAR_INTERRUPT();
MOV 0xc3,#-0x3d
// 131 MAC_RADIO_BACKOFF_COMPARE_ENABLE_INTERRUPT();
; Setup parameters for call to function macMcuOrT2PEROF2
MOV R1,#0x20
MOV DPTR,#(macMcuOrT2PEROF2 & 0xffff)
MOV A,#((macMcuOrT2PEROF2 >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 132 }
LJMP ?Subroutine1 & 0xFFFF
CFI EndBlock cfiBlock0
// 133
// 134
// 135 /**************************************************************************************************
// 136 * @fn macBackoffTimerReset
// 137 *
// 138 * @brief Resets backoff timer.
// 139 *
// 140 * @param none
// 141 *
// 142 * @return none
// 143 **************************************************************************************************
// 144 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 145 void macBackoffTimerReset(void)
macBackoffTimerReset:
CFI Block cfiBlock1 Using cfiCommon0
CFI Function macBackoffTimerReset
// 146 {
FUNCALL macBackoffTimerReset, macMcuAndT2PEROF2
LOCFRAME ISTACK, 2, STACK
ARGFRAME ISTACK, 2, STACK
FUNCALL macBackoffTimerReset, macBackoffTimerInit
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
// 147 MAC_RADIO_BACKOFF_COMPARE_DISABLE_INTERRUPT();
; Setup parameters for call to function macMcuAndT2PEROF2
MOV R1,#-0x21
MOV DPTR,#(macMcuAndT2PEROF2 & 0xffff)
MOV A,#((macMcuAndT2PEROF2 >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 148 macBackoffTimerInit();
; Setup parameters for call to function macBackoffTimerInit
MOV DPTR,#(macBackoffTimerInit & 0xffff)
MOV A,#((macBackoffTimerInit >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 149 }
POP DPH
CFI DPH0 SameValue
CFI CFA_SP SP+-4
POP DPL
CFI DPL0 SameValue
CFI CFA_SP SP+-3
LJMP ?BRET
CFI EndBlock cfiBlock1
// 150
// 151
// 152 /**************************************************************************************************
// 153 * @fn macBackoffTimerSetRollover
// 154 *
// 155 * @brief Set rollover count of backoff timer.
// 156 *
// 157 * @param rolloverBackoff - backoff count where count is reset to zero
// 158 *
// 159 * @return none
// 160 **************************************************************************************************
// 161 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 162 void macBackoffTimerSetRollover(uint32 rolloverBackoff)
macBackoffTimerSetRollover:
CFI Block cfiBlock2 Using cfiCommon0
CFI Function macBackoffTimerSetRollover
// 163 {
FUNCALL macBackoffTimerSetRollover, macMcuOverflowCount
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
FUNCALL macBackoffTimerSetRollover, halAssertHandler
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
FUNCALL macBackoffTimerSetRollover, macMcuOverflowSetCompare
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
MOV A,#-0x10
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 V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
; Saved register size: 16
; Auto size: 0
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
// 164 halIntState_t s;
// 165
// 166 MAC_ASSERT(rolloverBackoff > MAC_RADIO_BACKOFF_COUNT()); /* rollover value must be greater than count */
; Setup parameters for call to function macMcuOverflowCount
MOV DPTR,#(macMcuOverflowCount & 0xffff)
MOV A,#((macMcuOverflowCount >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV ?V0 + 4,R2
MOV ?V0 + 5,R3
MOV ?V0 + 6,R4
MOV ?V0 + 7,R5
MOV R0,#?V0 + 0
MOV R1,#?V0 + 4
LCALL ?UL_GT
JC ??macBackoffTimerSetRollover_0
; Setup parameters for call to function halAssertHandler
MOV DPTR,#(halAssertHandler & 0xffff)
MOV A,#((halAssertHandler >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 167
// 168 HAL_ENTER_CRITICAL_SECTION(s);
??macBackoffTimerSetRollover_0:
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
MOV R6,A
CLR 0xa8.7
// 169 backoffTimerRollover = rolloverBackoff;
MOV DPTR,#??backoffTimerRollover
MOV R0,#?V0 + 0
LCALL ?L_MOV_TO_X
// 170 MAC_RADIO_BACKOFF_SET_COMPARE(rolloverBackoff);
; Setup parameters for call to function macMcuOverflowSetCompare
LJMP ?Subroutine2 & 0xFFFF
CFI EndBlock cfiBlock2
// 171 HAL_EXIT_CRITICAL_SECTION(s);
// 172 }
// 173
// 174
// 175 /**************************************************************************************************
// 176 * @fn macBackoffTimerSetCount
// 177 *
// 178 * @brief Sets the count of the backoff timer.
// 179 *
// 180 * @param backoff - new count
// 181 *
// 182 * @return none
// 183 **************************************************************************************************
// 184 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 185 void macBackoffTimerSetCount(uint32 backoff)
macBackoffTimerSetCount:
CFI Block cfiBlock3 Using cfiCommon0
CFI Function macBackoffTimerSetCount
// 186 {
FUNCALL macBackoffTimerSetCount, halAssertHandler
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
FUNCALL macBackoffTimerSetCount, halAssertHandler
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
FUNCALL macBackoffTimerSetCount, macMcuOverflowSetCount
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
MOV A,#-0x10
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 V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-11)))
CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-12)))
CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-13)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-14)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-15)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-16)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 16)
; Saved register size: 16
; Auto size: 0
MOV ?V0 + 0,R2
MOV ?V0 + 1,R3
MOV ?V0 + 2,R4
MOV ?V0 + 3,R5
// 187 halIntState_t s;
// 188
// 189 MAC_ASSERT(compareState == COMPARE_STATE_ROLLOVER); /* trigger cannot be active if changing count */
MOV DPTR,#??compareState
MOVX A,@DPTR
XRL A,#0x1
JZ ??macBackoffTimerSetCount_0
; Setup parameters for call to function halAssertHandler
MOV DPTR,#(halAssertHandler & 0xffff)
MOV A,#((halAssertHandler >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 190 MAC_ASSERT(backoff < backoffTimerRollover); /* count must be less than rollover value */
??macBackoffTimerSetCount_0:
MOV DPTR,#??backoffTimerRollover
MOV R0,#?V0 + 4
LCALL ?L_MOV_X
MOV R0,#?V0 + 4
MOV R1,#?V0 + 0
LCALL ?UL_GT
JC ??macBackoffTimerSetCount_1
; Setup parameters for call to function halAssertHandler
MOV DPTR,#(halAssertHandler & 0xffff)
MOV A,#((halAssertHandler >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 191
// 192 HAL_ENTER_CRITICAL_SECTION(s);
??macBackoffTimerSetCount_1:
MOV C,0xa8.7
CLR A
MOV 0xE0 /* A */.0,C
MOV R6,A
CLR 0xa8.7
// 193 MAC_RADIO_BACKOFF_SET_COUNT(backoff);
; Setup parameters for call to function macMcuOverflowSetCount
MOV R2,?V0 + 0
MOV R3,?V0 + 1
MOV R4,?V0 + 2
MOV R5,?V0 + 3
MOV DPTR,#(macMcuOverflowSetCount & 0xffff)
MOV A,#((macMcuOverflowSetCount >> 16) & 0xff)
SJMP ??Subroutine2_0
CFI EndBlock cfiBlock3
// 194 HAL_EXIT_CRITICAL_SECTION(s);
// 195 }
// 196
// 197
// 198 /**************************************************************************************************
// 199 * @fn macBackoffTimerCount
// 200 *
// 201 * @brief Returns the current backoff count.
// 202 *
// 203 * @param none
// 204 *
// 205 * @return current backoff count
// 206 **************************************************************************************************
// 207 */
RSEG BANKED_CODE:CODE:NOROOT(0)
// 208 uint32 macBackoffTimerCount(void)
macBackoffTimerCount:
CFI Block cfiBlock4 Using cfiCommon0
CFI Function macBackoffTimerCount
// 209 {
FUNCALL macBackoffTimerCount, macMcuOverflowCount
LOCFRAME XSTACK, 16, STACK
ARGFRAME XSTACK, 16, STACK
MOV A,#-0x10
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 V7 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-10)))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -