📄 stm32f10x_adc.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 30/Jul/2008 14:37:38 /
// 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_adc.c /
// Command line = E:\library\src\stm32f10x_adc.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_adc.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_adc
EXTERN RCC_APB2PeriphResetCmd
PUBLIC ADC_AnalogWatchdogCmd
PUBLIC ADC_AnalogWatchdogSingleChannelConfig
PUBLIC ADC_AnalogWatchdogThresholdsConfig
PUBLIC ADC_AutoInjectedConvCmd
PUBLIC ADC_ClearFlag
PUBLIC ADC_ClearITPendingBit
PUBLIC ADC_Cmd
PUBLIC ADC_DMACmd
PUBLIC ADC_DeInit
PUBLIC ADC_DiscModeChannelCountConfig
PUBLIC ADC_DiscModeCmd
PUBLIC ADC_ExternalTrigConvCmd
PUBLIC ADC_ExternalTrigInjectedConvCmd
PUBLIC ADC_ExternalTrigInjectedConvConfig
PUBLIC ADC_GetCalibrationStatus
PUBLIC ADC_GetConversionValue
PUBLIC ADC_GetDualModeConversionValue
PUBLIC ADC_GetFlagStatus
PUBLIC ADC_GetITStatus
PUBLIC ADC_GetInjectedConversionValue
PUBLIC ADC_GetResetCalibrationStatus
PUBLIC ADC_GetSoftwareStartConvStatus
PUBLIC ADC_GetSoftwareStartInjectedConvCmdStatus
PUBLIC ADC_ITConfig
PUBLIC ADC_Init
PUBLIC ADC_InjectedChannelConfig
PUBLIC ADC_InjectedDiscModeCmd
PUBLIC ADC_InjectedSequencerLengthConfig
PUBLIC ADC_RegularChannelConfig
PUBLIC ADC_ResetCalibration
PUBLIC ADC_SetInjectedOffset
PUBLIC ADC_SoftwareStartConvCmd
PUBLIC ADC_SoftwareStartInjectedConvCmd
PUBLIC ADC_StartCalibration
PUBLIC ADC_StructInit
PUBLIC ADC_TempSensorVrefintCmd
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_DeInit:
PUSH {R4,LR}
MOVS R4,R0
MOVS R0,R4
LDR.N R1,??ADC_DeInit_0 ;; 0x40012400
SUBS R0,R0,R1
BEQ.N ??ADC_DeInit_1
MOVS R1,#+1024
SUBS R0,R0,R1
BEQ.N ??ADC_DeInit_2
B.N ??ADC_DeInit_3
??ADC_DeInit_1:
MOVS R1,#+1
MOVS R0,#+512
BL RCC_APB2PeriphResetCmd
MOVS R1,#+0
MOVS R0,#+512
BL RCC_APB2PeriphResetCmd
B.N ??ADC_DeInit_3
??ADC_DeInit_2:
MOVS R1,#+1
MOVS R0,#+1024
BL RCC_APB2PeriphResetCmd
MOVS R1,#+0
MOVS R0,#+1024
BL RCC_APB2PeriphResetCmd
??ADC_DeInit_3:
POP {R4,PC} ;; return
Nop
DATA
??ADC_DeInit_0:
DC32 0x40012400
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_Init:
PUSH {R4,R5}
MOVS R4,#+0
MOVS R3,R4
MOVS R4,#+0
MOVS R2,R4
LDR R4,[R0, #+4]
MOVS R3,R4
MOVS R4,R3
LDR.N R3,??ADC_Init_0 ;; 0xfff0feff
ANDS R3,R3,R4
MOVS R5,R3
LDR R3,[R1, #+0]
LDRB R4,[R1, #+4]
ORRS R3,R3,R4, LSL #+8
ORRS R3,R3,R5
STR R3,[R0, #+4]
LDR R4,[R0, #+8]
MOVS R3,R4
MOVS R4,R3
LDR.N R3,??ADC_Init_0+0x4 ;; 0xfff1f7fd
ANDS R3,R3,R4
MOVS R5,R3
LDR R3,[R1, #+12]
LDR R4,[R1, #+8]
ORRS R4,R4,R3
LDRB R3,[R1, #+5]
ORRS R3,R4,R3, LSL #+1
ORRS R3,R3,R5
STR R3,[R0, #+8]
LDR R4,[R0, #+44]
MOVS R3,R4
MOVS R4,R3
MVNS R3,#+15728640
ANDS R3,R3,R4
MOVS R4,R2
LDRB R2,[R1, #+16]
SUBS R2,R2,#+1
ORRS R2,R2,R4
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
ORRS R3,R3,R2, LSL #+20
STR R3,[R0, #+44]
POP {R4,R5}
BX LR ;; return
Nop
DATA
??ADC_Init_0:
DC32 0xfff0feff
DC32 0xfff1f7fd
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_StructInit:
MOVS R1,#+0
STR R1,[R0, #+0]
MOVS R1,#+0
STRB R1,[R0, #+4]
MOVS R1,#+0
STRB R1,[R0, #+5]
MOVS R1,#+0
STR R1,[R0, #+8]
MOVS R1,#+0
STR R1,[R0, #+12]
MOVS R1,#+1
STRB R1,[R0, #+16]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_Cmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??ADC_Cmd_0
LDR R2,[R0, #+8]
ORRS R2,R2,#0x1
STR R2,[R0, #+8]
B.N ??ADC_Cmd_1
??ADC_Cmd_0:
LDR R2,[R0, #+8]
MOVS R3,#+1
BICS R2,R2,R3
STR R2,[R0, #+8]
??ADC_Cmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_DMACmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??ADC_DMACmd_0
LDR R2,[R0, #+8]
ORRS R2,R2,#0x100
STR R2,[R0, #+8]
B.N ??ADC_DMACmd_1
??ADC_DMACmd_0:
LDR R2,[R0, #+8]
LDR.N R3,??ADC_DMACmd_2 ;; 0xfeff
ANDS R3,R3,R2
STR R3,[R0, #+8]
??ADC_DMACmd_1:
BX LR ;; return
Nop
DATA
??ADC_DMACmd_2:
DC32 0xfeff
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_ITConfig:
PUSH {R0,R4}
MOVS R4,#+0
MOVS R3,R4
MOVS R4,R1
MOVS R3,R4
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
CMP R2,#+0
BEQ.N ??ADC_ITConfig_0
LDR R4,[R0, #+4]
UXTB R3,R3 ;; ZeroExtS R3,R3,#+24,#+24
ORRS R4,R4,R3
STR R4,[R0, #+4]
B.N ??ADC_ITConfig_1
??ADC_ITConfig_0:
LDR R4,[R0, #+4]
UXTB R3,R3 ;; ZeroExtS R3,R3,#+24,#+24
BICS R4,R4,R3
STR R4,[R0, #+4]
??ADC_ITConfig_1:
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_ResetCalibration:
LDR R1,[R0, #+8]
ORRS R1,R1,#0x8
STR R1,[R0, #+8]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_GetResetCalibrationStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR R2,[R1, #+8]
MOVS R3,#+8
ANDS R3,R3,R2
SUBS R2,R3,#+1
SBCS R2,R2,R2
MVNS R2,R2
LSRS R2,R2,#+31
MOVS R0,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_StartCalibration:
LDR R1,[R0, #+8]
ORRS R1,R1,#0x4
STR R1,[R0, #+8]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_GetCalibrationStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR R2,[R1, #+8]
MOVS R3,#+4
ANDS R3,R3,R2
SUBS R2,R3,#+1
SBCS R2,R2,R2
MVNS R2,R2
LSRS R2,R2,#+31
MOVS R0,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_SoftwareStartConvCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??ADC_SoftwareStartConvCmd_0
LDR R2,[R0, #+8]
ORRS R2,R2,#0x500000
STR R2,[R0, #+8]
B.N ??ADC_SoftwareStartConvCmd_1
??ADC_SoftwareStartConvCmd_0:
LDR R2,[R0, #+8]
MVNS R3,#+5242880
ANDS R3,R3,R2
STR R3,[R0, #+8]
??ADC_SoftwareStartConvCmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_GetSoftwareStartConvStatus:
MOVS R1,R0
MOVS R2,#+0
MOVS R0,R2
LDR R2,[R1, #+8]
MOVS R3,#+4194304
ANDS R3,R3,R2
SUBS R2,R3,#+1
SBCS R2,R2,R2
MVNS R2,R2
LSRS R2,R2,#+31
MOVS R0,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_DiscModeChannelCountConfig:
PUSH {R0,R4}
MOVS R4,#+0
MOVS R3,R4
MOVS R4,#+0
MOVS R2,R4
LDR R4,[R0, #+4]
MOVS R3,R4
MOVS R4,R3
MVNS R3,#+57344
ANDS R3,R3,R4
SUBS R4,R1,#+1
MOVS R2,R4
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
ORRS R3,R3,R2, LSL #+13
STR R3,[R0, #+4]
ADD SP,SP,#+4
POP {R4}
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_DiscModeCmd:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??ADC_DiscModeCmd_0
LDR R2,[R0, #+4]
ORRS R2,R2,#0x800
STR R2,[R0, #+4]
B.N ??ADC_DiscModeCmd_1
??ADC_DiscModeCmd_0:
LDR R2,[R0, #+4]
MVNS R3,#+2048
ANDS R3,R3,R2
STR R3,[R0, #+4]
??ADC_DiscModeCmd_1:
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
ADC_RegularChannelConfig:
PUSH {R4-R7}
MOVS R6,#+0
MOVS R5,R6
MOVS R6,#+0
MOVS R4,R6
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+10
BCC.N ??ADC_RegularChannelConfig_0
LDR R6,[R0, #+12]
MOVS R5,R6
MOVS R6,#+7
MOV R12,R6
SUBS R7,R1,#+10
MOVS R6,#+3
MULS R7,R6,R7
MOV R6,R12
LSLS R6,R6,R7
MOVS R4,R6
BICS R5,R5,R4
UXTB R3,R3 ;; ZeroExtS R3,R3,#+24,#+24
SUBS R6,R1,#+10
MOVS R7,#+3
MULS R6,R7,R6
LSLS R6,R3,R6
MOVS R4,R6
ORRS R5,R5,R4
STR R5,[R0, #+12]
B.N ??ADC_RegularChannelConfig_1
??ADC_RegularChannelConfig_0:
LDR R6,[R0, #+16]
MOVS R5,R6
MOVS R6,#+7
MOVS R7,#+3
MULS R7,R1,R7
LSLS R6,R6,R7
MOVS R4,R6
BICS R5,R5,R4
UXTB R3,R3 ;; ZeroExtS R3,R3,#+24,#+24
MOVS R6,#+3
MULS R6,R1,R6
LSLS R6,R3,R6
MOVS R4,R6
ORRS R5,R5,R4
STR R5,[R0, #+16]
??ADC_RegularChannelConfig_1:
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
CMP R2,#+7
BCS.N ??ADC_RegularChannelConfig_2
LDR R6,[R0, #+52]
MOVS R5,R6
MOVS R6,#+31
MOV R12,R6
SUBS R7,R2,#+1
MOVS R6,#+5
MULS R7,R6,R7
MOV R6,R12
LSLS R6,R6,R7
MOVS R4,R6
BICS R5,R5,R4
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
SUBS R6,R2,#+1
MOVS R7,#+5
MULS R6,R7,R6
LSLS R6,R1,R6
MOVS R4,R6
ORRS R5,R5,R4
STR R5,[R0, #+52]
B.N ??ADC_RegularChannelConfig_3
??ADC_RegularChannelConfig_2:
UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
CMP R2,#+13
BCS.N ??ADC_RegularChannelConfig_4
LDR R6,[R0, #+48]
MOVS R5,R6
MOVS R6,#+31
MOV R12,R6
SUBS R7,R2,#+7
MOVS R6,#+5
MULS R7,R6,R7
MOV R6,R12
LSLS R6,R6,R7
MOVS R4,R6
BICS R5,R5,R4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -