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

📄 stm32f10x_nvic.s79

📁 用于监视I2C通信总线
💻 S79
📖 第 1 页 / 共 5 页
字号:

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock26 Using cfiCommon0
        CFI Function NVIC_ClearSystemHandlerPendingBit
        THUMB
//  614 void NVIC_ClearSystemHandlerPendingBit(u32 SystemHandler)
//  615 {
//  616   u32 tmp = 0x00;
//  617 
//  618   /* Check the parameters */
//  619   assert_param(IS_CLEAR_SYSTEM_HANDLER(SystemHandler));
//  620   
//  621   /* Get the System Handler pending bit position */
//  622   tmp = SystemHandler & (u32)0x1F;
//  623   /* Clear the corresponding System Handler pending bit */
//  624   SCB->ICSR |= ((u32)0x01 << (tmp - 0x01));
NVIC_ClearSystemHandlerPendingBit:
        LDR.N    R1,??DataTable30  ;; 0xffffffffe000ed04
        MOVS     R3,#+1
        LSLS     R0,R0,#+27
        LDR      R2,[R1, #+0]
        LSRS     R0,R0,#+27
        SUBS     R0,R0,#+1
        CFI EndBlock cfiBlock26
        REQUIRE ?Subroutine0
        ;; // Fall through to label ?Subroutine0
//  625 }

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock27 Using cfiCommon0
        CFI NoFunction
        THUMB
?Subroutine0:
        LSLS     R3,R3,R0
        ORRS     R3,R3,R2
        STR      R3,[R1, #+0]
        BX       LR               ;; return
        CFI EndBlock cfiBlock27

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable30:
        DC32     0xffffffffe000ed04
//  626 
//  627 /*******************************************************************************
//  628 * Function Name  : NVIC_GetSystemHandlerActiveBitStatus
//  629 * Description    : Checks whether the specified System handlers active bit is
//  630 *                  set or not.
//  631 * Input          : - SystemHandler: specifies the system handler active bit to
//  632 *                    check.
//  633 *                    This parameter can be one of the following values:
//  634 *                       - SystemHandler_MemoryManage
//  635 *                       - SystemHandler_BusFault
//  636 *                       - SystemHandler_UsageFault
//  637 *                       - SystemHandler_SVCall
//  638 *                       - SystemHandler_DebugMonitor
//  639 *                       - SystemHandler_PSV
//  640 *                       - SystemHandler_SysTick
//  641 * Output         : None
//  642 * Return         : The new state of System Handler active bit(SET or RESET).
//  643 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock28 Using cfiCommon0
        CFI Function NVIC_GetSystemHandlerActiveBitStatus
        THUMB
//  644 ITStatus NVIC_GetSystemHandlerActiveBitStatus(u32 SystemHandler)
//  645 {
//  646   ITStatus bitstatus  = RESET;
//  647 
//  648   u32 tmp = 0x00, tmppos = 0x00;
//  649 
//  650   /* Check the parameters */
//  651   assert_param(IS_GET_ACTIVE_SYSTEM_HANDLER(SystemHandler));
//  652   
//  653   tmppos = (SystemHandler >> 0x0E) & (u32)0x0F;
//  654 
//  655   tmppos = (u32)0x01 << tmppos;
NVIC_GetSystemHandlerActiveBitStatus:
        MOVS     R1,#+1
        LSLS     R0,R0,#+14
        LSRS     R0,R0,#+28
        LSLS     R1,R1,R0
//  656 
//  657   tmp = SCB->SHCSR & tmppos;
        LDR.N    R0,??DataTable31  ;; 0xffffffffe000ed24
        LDR      R0,[R0, #+0]
        ANDS     R0,R0,R1
//  658 
//  659   if (tmp == tmppos)
        CMP      R0,R1
        ITT     EQ 
//  660   {
//  661     bitstatus = SET;
        MOVEQ    R0,#+1
        BXEQ     LR
//  662   }
//  663   else
//  664   {
//  665     bitstatus = RESET;
        MOVS     R0,#+0
//  666   }
//  667   return bitstatus;
        BX       LR               ;; return
        CFI EndBlock cfiBlock28
//  668 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable31:
        DC32     0xffffffffe000ed24
//  669 
//  670 /*******************************************************************************
//  671 * Function Name  : NVIC_GetFaultHandlerSources
//  672 * Description    : Returns the system fault handlers sources.
//  673 * Input          : - SystemHandler: specifies the system handler to get its fault
//  674 *                    sources.
//  675 *                    This parameter can be one of the following values:
//  676 *                       - SystemHandler_HardFault
//  677 *                       - SystemHandler_MemoryManage
//  678 *                       - SystemHandler_BusFault
//  679 *                       - SystemHandler_UsageFault
//  680 *                       - SystemHandler_DebugMonitor
//  681 * Output         : None
//  682 * Return         : Source of the fault handler.
//  683 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock29 Using cfiCommon0
        CFI Function NVIC_GetFaultHandlerSources
        THUMB
//  684 u32 NVIC_GetFaultHandlerSources(u32 SystemHandler)
//  685 {
//  686   u32 faultsources = 0x00;
//  687   u32 tmpreg = 0x00, tmppos = 0x00;
//  688 
//  689   /* Check the parameters */
//  690   assert_param(IS_FAULT_SOURCE_SYSTEM_HANDLER(SystemHandler));
//  691   
//  692   tmpreg = (SystemHandler >> 0x12) & (u32)0x03;
NVIC_GetFaultHandlerSources:
        LSRS     R1,R0,#+18
        LSLS     R1,R1,#+30
        LSRS     R1,R1,#+30
//  693   tmppos = (SystemHandler >> 0x14) & (u32)0x03;
        LSLS     R0,R0,#+10
        LSRS     R0,R0,#+30
//  694 
//  695   if (tmpreg == 0x00)
        CBNZ     R1,??NVIC_GetFaultHandlerSources_0
//  696   {
//  697     faultsources = SCB->HFSR;
        LDR.N    R0,??DataTable32  ;; 0xffffffffe000ed2c
        B.N      ??NVIC_GetFaultHandlerSources_1
//  698   }
//  699   else if (tmpreg == 0x01)
??NVIC_GetFaultHandlerSources_0:
        CMP      R1,#+1
        BNE.N    ??NVIC_GetFaultHandlerSources_2
//  700   {
//  701     faultsources = SCB->CFSR >> (tmppos * 0x08);
        LDR.N    R1,??DataTable33  ;; 0xffffffffe000ed28
        LSLS     R2,R0,#+3
        LDR      R1,[R1, #+0]
        LSRS     R1,R1,R2
//  702     if (tmppos != 0x02)
        CMP      R0,#+2
        ITTT    NE 
//  703     {
//  704       faultsources &= (u32)0x0F;
        LSLNE    R0,R1,#+28
        LSRNE    R0,R0,#+28
        BXNE     LR
//  705     }
//  706     else
//  707     {
//  708       faultsources &= (u32)0xFF;
        UXTB     R0,R1
        BX       LR
//  709     }
//  710   }
//  711   else
//  712   {
//  713     faultsources = SCB->DFSR;
??NVIC_GetFaultHandlerSources_2:
        LDR.N    R0,??DataTable34  ;; 0xffffffffe000ed30
??NVIC_GetFaultHandlerSources_1:
        LDR      R0,[R0, #+0]
//  714   }
//  715   return faultsources;
        BX       LR               ;; return
        CFI EndBlock cfiBlock29
//  716 }

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable32:
        DC32     0xffffffffe000ed2c

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable33:
        DC32     0xffffffffe000ed28

        RSEG CODE:CODE:NOROOT(2)
        DATA
??DataTable34:
        DC32     0xffffffffe000ed30
//  717 
//  718 /*******************************************************************************
//  719 * Function Name  : NVIC_GetFaultAddress
//  720 * Description    : Returns the address of the location that generated a fault
//  721 *                  handler.
//  722 * Input          : - SystemHandler: specifies the system handler to get its
//  723 *                    fault address.
//  724 *                    This parameter can be one of the following values:
//  725 *                       - SystemHandler_MemoryManage
//  726 *                       - SystemHandler_BusFault
//  727 * Output         : None
//  728 * Return         : Fault address.
//  729 *******************************************************************************/

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock30 Using cfiCommon0
        CFI Function NVIC_GetFaultAddress
        THUMB
//  730 u32 NVIC_GetFaultAddress(u32 SystemHandler)
//  731 {
//  732   u32 faultaddress = 0x00;
//  733   u32 tmp = 0x00;
//  734 
//  735   /* Check the parameters */
//  736   assert_param(IS_FAULT_ADDRESS_SYSTEM_HANDLER(SystemHandler));
//  737   
//  738   tmp = (SystemHandler >> 0x16) & (u32)0x01;
//  739 
//  740   if (tmp == 0x00)
NVIC_GetFaultAddress:
        LSLS     R0,R0,#+9
        ITTT    PL 
//  741   {
//  742     faultaddress = SCB->MMFAR;
        LDRPL.N  R0,??NVIC_GetFaultAddress_0  ;; 0xffffffffe000ed34
        LDRPL    R0,[R0, #+0]
        BXPL     LR
//  743   }
//  744   else
//  745   {
//  746     faultaddress = SCB->BFAR;
        LDR.N    R0,??NVIC_GetFaultAddress_0+0x4  ;; 0xffffffffe000ed38
        LDR      R0,[R0, #+0]
//  747   }
//  748   return faultaddress;
        BX       LR               ;; return
        DATA
??NVIC_GetFaultAddress_0:
        DC32     0xffffffffe000ed34
        DC32     0xffffffffe000ed38
        CFI EndBlock cfiBlock30
//  749 }

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock31 Using cfiCommon0
        CFI NoFunction
        THUMB
??__SETPRIMASK??rT:
        LDR.N    R3,??Subroutine1_0  ;; __SETPRIMASK
        BX       R3
        DATA
??Subroutine1_0:
        DC32     __SETPRIMASK
        CFI EndBlock cfiBlock31

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock32 Using cfiCommon0
        CFI NoFunction
        THUMB
??__RESETPRIMASK??rT:
        LDR.N    R3,??Subroutine2_0  ;; __RESETPRIMASK
        BX       R3
        DATA
??Subroutine2_0:
        DC32     __RESETPRIMASK
        CFI EndBlock cfiBlock32

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock33 Using cfiCommon0
        CFI NoFunction
        THUMB
??__SETFAULTMASK??rT:
        LDR.N    R3,??Subroutine3_0  ;; __SETFAULTMASK
        BX       R3
        DATA
??Subroutine3_0:
        DC32     __SETFAULTMASK
        CFI EndBlock cfiBlock33

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock34 Using cfiCommon0
        CFI NoFunction
        THUMB
??__RESETFAULTMASK??rT:
        LDR.N    R3,??Subroutine4_0  ;; __RESETFAULTMASK
        BX       R3
        DATA
??Subroutine4_0:
        DC32     __RESETFAULTMASK
        CFI EndBlock cfiBlock34

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock35 Using cfiCommon0
        CFI NoFunction
        THUMB
??__BASEPRICONFIG??rT:
        LDR.N    R3,??Subroutine5_0  ;; __BASEPRICONFIG
        BX       R3
        DATA
??Subroutine5_0:
        DC32     __BASEPRICONFIG
        CFI EndBlock cfiBlock35

        RSEG CODE:CODE:NOROOT(2)
        CFI Block cfiBlock36 Using cfiCommon0
        CFI NoFunction
        THUMB
??__GetBASEPRI??rT:
        LDR.N    R3,??Subroutine6_0  ;; __GetBASEPRI
        BX       R3
        DATA
??Subroutine6_0:
        DC32     __GetBASEPRI
        CFI EndBlock cfiBlock36

        END
//  750 
//  751 /******************* (C) COPYRIGHT 2008 STMicroelectronics *****EN

⌨️ 快捷键说明

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