📄 stm32f10x_nvic.s79
字号:
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 + -