⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mac_backoff_timer.s51

📁 cc2430应用实例
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	DPTR,#__Constant_c0000
        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)))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -