📄 stm32f10x_nvic.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 30/Jul/2008 14:37:39 /
// IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION /
// Copyright 1999-2007 IAR Systems. All rights reserved. /
// /
// Cpu mode = thumb /
// Endian = little /
// Source file = E:\library\src\stm32f10x_nvic.c /
// Command line = E:\library\src\stm32f10x_nvic.c -D EMB_FLASH -lCN /
// E:\ELE\yten\pro\Debug\List\ -lb /
// E:\ELE\yten\pro\Debug\List\ -o /
// E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll /
// --no_inline --no_code_motion --no_tbaa --no_clustering /
// --no_scheduling --debug --endian little --cpu /
// Cortex-M3 -e --fpu None --dlib_config "C:\Program /
// Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\DLib_Config_Normal.h" -I /
// E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I /
// "C:\Program Files\IAR Systems\Embedded Workbench 5.0 /
// Evaluation\ARM\INC\" --section .text=.XML -On /
// List file = E:\ELE\yten\pro\Debug\List\stm32f10x_nvic.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_nvic
EXTERN __BASEPRICONFIG
EXTERN __GetBASEPRI
EXTERN __RESETFAULTMASK
EXTERN __RESETPRIMASK
EXTERN __SETFAULTMASK
EXTERN __SETPRIMASK
PUBLIC NVIC_BASEPRICONFIG
PUBLIC NVIC_ClearIRQChannelPendingBit
PUBLIC NVIC_ClearSystemHandlerPendingBit
PUBLIC NVIC_DeInit
PUBLIC NVIC_GenerateCoreReset
PUBLIC NVIC_GenerateSystemReset
PUBLIC NVIC_GetBASEPRI
PUBLIC NVIC_GetCPUID
PUBLIC NVIC_GetCurrentActiveHandler
PUBLIC NVIC_GetCurrentPendingIRQChannel
PUBLIC NVIC_GetFaultAddress
PUBLIC NVIC_GetFaultHandlerSources
PUBLIC NVIC_GetIRQChannelActiveBitStatus
PUBLIC NVIC_GetIRQChannelPendingBitStatus
PUBLIC NVIC_GetSystemHandlerActiveBitStatus
PUBLIC NVIC_GetSystemHandlerPendingBitStatus
PUBLIC NVIC_Init
PUBLIC NVIC_PriorityGroupConfig
PUBLIC NVIC_RESETFAULTMASK
PUBLIC NVIC_RESETPRIMASK
PUBLIC NVIC_SCBDeInit
PUBLIC NVIC_SETFAULTMASK
PUBLIC NVIC_SETPRIMASK
PUBLIC NVIC_SetIRQChannelPendingBit
PUBLIC NVIC_SetSystemHandlerPendingBit
PUBLIC NVIC_SetVectorTable
PUBLIC NVIC_StructInit
PUBLIC NVIC_SystemHandlerConfig
PUBLIC NVIC_SystemHandlerPriorityConfig
PUBLIC NVIC_SystemLPConfig
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_DeInit:
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??DataTable18 ;; 0xe000e180
MOVS R2,#-1
STR R2,[R1, #+0]
LDR.N R1,??NVIC_DeInit_0 ;; 0xe000e184
LDR.N R2,??NVIC_DeInit_0+0x4 ;; 0x7ff
STR R2,[R1, #+0]
LDR.N R1,??DataTable20 ;; 0xe000e280
MOVS R2,#-1
STR R2,[R1, #+0]
LDR.N R1,??NVIC_DeInit_0+0x8 ;; 0xe000e284
LDR.N R2,??NVIC_DeInit_0+0x4 ;; 0x7ff
STR R2,[R1, #+0]
MOVS R1,#+0
MOVS R0,R1
??NVIC_DeInit_1:
CMP R0,#+11
BCS.N ??NVIC_DeInit_2
MOVS R1,#+4
MULS R1,R0,R1
LDR.N R2,??DataTable17 ;; 0xe000e400
MOVS R3,#+0
STR R3,[R2, R1]
ADDS R0,R0,#+1
B.N ??NVIC_DeInit_1
??NVIC_DeInit_2:
BX LR ;; return
DATA
??NVIC_DeInit_0:
DC32 0xe000e184
DC32 0x7ff
DC32 0xe000e284
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_SCBDeInit:
MOVS R1,#+0
MOVS R0,R1
LDR.N R1,??DataTable21 ;; 0xe000ed04
MOVS R2,#+167772160
STR R2,[R1, #+0]
LDR.N R1,??DataTable22 ;; 0xe000ed08
MOVS R2,#+0
STR R2,[R1, #+0]
LDR.N R1,??DataTable24 ;; 0xe000ed0c
LDR.N R2,??DataTable13 ;; 0x5fa0000
STR R2,[R1, #+0]
LDR.N R1,??DataTable28 ;; 0xe000ed10
MOVS R2,#+0
STR R2,[R1, #+0]
LDR.N R1,??NVIC_SCBDeInit_0 ;; 0xe000ed14
MOVS R2,#+0
STR R2,[R1, #+0]
MOVS R1,#+0
MOVS R0,R1
??NVIC_SCBDeInit_1:
CMP R0,#+3
BCS.N ??NVIC_SCBDeInit_2
MOVS R1,#+4
MULS R1,R0,R1
LDR.N R2,??DataTable8 ;; 0xe000ed18
MOVS R3,#+0
STR R3,[R2, R1]
ADDS R0,R0,#+1
B.N ??NVIC_SCBDeInit_1
??NVIC_SCBDeInit_2:
LDR.N R1,??DataTable32 ;; 0xe000ed24
MOVS R2,#+0
STR R2,[R1, #+0]
LDR.N R1,??DataTable10 ;; 0xe000ed28
MOVS R2,#-1
STR R2,[R1, #+0]
LDR.N R1,??DataTable11 ;; 0xe000ed2c
MOVS R2,#-1
STR R2,[R1, #+0]
LDR.N R1,??DataTable12 ;; 0xe000ed30
MOVS R2,#-1
STR R2,[R1, #+0]
BX LR ;; return
Nop
DATA
??NVIC_SCBDeInit_0:
DC32 0xe000ed14
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable8:
DC32 0xe000ed18
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable10:
DC32 0xe000ed28
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable11:
DC32 0xe000ed2c
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable12:
DC32 0xe000ed30
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_PriorityGroupConfig:
LDR.N R1,??DataTable13 ;; 0x5fa0000
ORRS R1,R1,R0
LDR.N R2,??DataTable24 ;; 0xe000ed0c
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable13:
DC32 0x5fa0000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_Init:
PUSH {R0,R1,R4-R7}
MOVS R1,R0
MOVS R0,#+0
MOVS R4,R0
MOVS R0,#+0
MOVS R5,R0
MOVS R0,#+0
MOVS R2,R0
MOVS R0,#+0
STR R0,[SP, #+0]
MOVS R0,#+15
MOVS R3,R0
LDRB R0,[R1, #+3]
CMP R0,#+0
BEQ.N ??NVIC_Init_0
LDR.N R0,??DataTable24 ;; 0xe000ed0c
LDR R0,[R0, #+0]
ANDS R0,R0,#0x700
RSBS R0,R0,#+1792
LSRS R4,R0,#+8
MOVS R0,#+4
SUBS R0,R0,R4
STR R0,[SP, #+0]
LSRS R3,R3,R4
LDRB R0,[R1, #+1]
LDR R6,[SP, #+0]
LSLS R0,R0,R6
MOVS R4,R0
MOVS R0,R4
LDRB R4,[R1, #+2]
ANDS R4,R4,R3
ORRS R4,R4,R0
LSLS R4,R4,#+4
LDRB R0,[R1, #+0]
LSLS R0,R0,#+30 ;; ZeroExtS R0,R0,#+30,#+30
LSRS R0,R0,#+30
MOVS R6,#+8
MULS R0,R6,R0
LSLS R4,R4,R0
LDRB R0,[R1, #+0]
ASRS R0,R0,#+2
MOVS R6,#+4
MULS R0,R6,R0
LDR.N R6,??DataTable17 ;; 0xe000e400
LDR R0,[R6, R0]
MOVS R5,R0
MOVS R0,#+255
LDRB R6,[R1, #+0]
LSLS R6,R6,#+30 ;; ZeroExtS R6,R6,#+30,#+30
LSRS R6,R6,#+30
MOVS R7,#+8
MULS R6,R7,R6
LSLS R0,R0,R6
MOVS R2,R0
BICS R5,R5,R2
ANDS R4,R4,R2
ORRS R5,R5,R4
LDRB R0,[R1, #+0]
ASRS R0,R0,#+2
MOVS R6,#+4
MULS R0,R6,R0
LDR.N R6,??DataTable17 ;; 0xe000e400
STR R5,[R6, R0]
LDRB R0,[R1, #+0]
ASRS R6,R0,#+5
MOVS R0,#+4
MULS R6,R0,R6
LDR.N R7,??NVIC_Init_1 ;; 0xe000e100
MOV R12,R6
MOVS R0,#+1
LDRB R6,[R1, #+0]
LSLS R6,R6,#+27 ;; ZeroExtS R6,R6,#+27,#+27
LSRS R6,R6,#+27
LSLS R0,R0,R6
MOV R6,R12
STR R0,[R7, R6]
B.N ??NVIC_Init_2
??NVIC_Init_0:
LDRB R0,[R1, #+0]
ASRS R6,R0,#+5
MOVS R0,#+4
MULS R6,R0,R6
LDR.N R7,??DataTable18 ;; 0xe000e180
MOV R12,R6
MOVS R0,#+1
LDRB R6,[R1, #+0]
LSLS R6,R6,#+27 ;; ZeroExtS R6,R6,#+27,#+27
LSRS R6,R6,#+27
LSLS R0,R0,R6
MOV R6,R12
STR R0,[R7, R6]
??NVIC_Init_2:
ADD SP,SP,#+8
POP {R4-R7}
BX LR ;; return
Nop
DATA
??NVIC_Init_1:
DC32 0xe000e100
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable17:
DC32 0xe000e400
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable18:
DC32 0xe000e180
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_StructInit:
MOVS R1,#+0
STRB R1,[R0, #+0]
MOVS R1,#+0
STRB R1,[R0, #+1]
MOVS R1,#+0
STRB R1,[R0, #+2]
MOVS R1,#+0
STRB R1,[R0, #+3]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_SETPRIMASK:
PUSH {R0,LR}
BL __SETPRIMASK
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_RESETPRIMASK:
PUSH {R0,LR}
BL __RESETPRIMASK
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_SETFAULTMASK:
PUSH {R0,LR}
BL __SETFAULTMASK
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_RESETFAULTMASK:
PUSH {R0,LR}
BL __RESETFAULTMASK
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_BASEPRICONFIG:
PUSH {R4,LR}
MOVS R4,R0
LSLS R0,R4,#+4
BL __BASEPRICONFIG
POP {R4,PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_GetBASEPRI:
PUSH {R0,LR}
BL __GetBASEPRI
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_GetCurrentPendingIRQChannel:
LDR.N R0,??DataTable21 ;; 0xe000ed04
LDR R0,[R0, #+0]
LDR.N R1,??NVIC_GetCurrentPendingIRQChannel_0 ;; 0x3ff000
ANDS R1,R1,R0
LSRS R0,R1,#+12
UXTH R0,R0 ;; ZeroExtS R0,R0,#+16,#+16
BX LR ;; return
Nop
DATA
??NVIC_GetCurrentPendingIRQChannel_0:
DC32 0x3ff000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_GetIRQChannelPendingBitStatus:
PUSH {R0,R4}
MOVS R1,R0
MOVS R3,#+0
MOVS R0,R3
MOVS R3,#+0
MOVS R2,R3
MOVS R3,#+1
LSLS R4,R1,#+27 ;; ZeroExtS R4,R1,#+27,#+27
LSRS R4,R4,#+27
LSLS R3,R3,R4
MOVS R2,R3
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
ASRS R3,R1,#+5
MOVS R4,#+4
MULS R3,R4,R3
LDR.N R4,??NVIC_GetIRQChannelPendingBitStatus_0 ;; 0xe000e200
LDR R3,[R4, R3]
ANDS R3,R3,R2
CMP R3,R2
BNE.N ??NVIC_GetIRQChannelPendingBitStatus_1
MOVS R3,#+1
MOVS R0,R3
B.N ??NVIC_GetIRQChannelPendingBitStatus_2
??NVIC_GetIRQChannelPendingBitStatus_1:
MOVS R3,#+0
MOVS R0,R3
??NVIC_GetIRQChannelPendingBitStatus_2:
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
Nop
DATA
??NVIC_GetIRQChannelPendingBitStatus_0:
DC32 0xe000e200
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_SetIRQChannelPendingBit:
LDR.N R1,??NVIC_SetIRQChannelPendingBit_0 ;; 0xe000ef00
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
STR R0,[R1, #+0]
BX LR ;; return
DATA
??NVIC_SetIRQChannelPendingBit_0:
DC32 0xe000ef00
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_ClearIRQChannelPendingBit:
PUSH {R0,R4}
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ASRS R1,R0,#+5
MOVS R2,#+4
MULS R1,R2,R1
LDR.N R2,??DataTable20 ;; 0xe000e280
MOVS R3,#+1
LSLS R4,R0,#+27 ;; ZeroExtS R4,R0,#+27,#+27
LSRS R4,R4,#+27
LSLS R3,R3,R4
STR R3,[R2, R1]
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable20:
DC32 0xe000e280
SECTION `.XML`:CODE:NOROOT(2)
THUMB
NVIC_GetCurrentActiveHandler:
LDR.N R0,??DataTable21 ;; 0xe000ed04
LDR R0,[R0, #+0]
LSLS R0,R0,#+22 ;; ZeroExtS R0,R0,#+22,#+22
LSRS R0,R0,#+22
BX LR ;; return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -