📄 stm32f10x_rcc.s
字号:
///////////////////////////////////////////////////////////////////////////////
// /
// 30/Jul/2008 14:37:36 /
// 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_rcc.c /
// Command line = E:\library\src\stm32f10x_rcc.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_rcc.s /
// /
// /
///////////////////////////////////////////////////////////////////////////////
NAME stm32f10x_rcc
PUBLIC RCC_ADCCLKConfig
PUBLIC RCC_AHBPeriphClockCmd
PUBLIC RCC_APB1PeriphClockCmd
PUBLIC RCC_APB1PeriphResetCmd
PUBLIC RCC_APB2PeriphClockCmd
PUBLIC RCC_APB2PeriphResetCmd
PUBLIC RCC_AdjustHSICalibrationValue
PUBLIC RCC_BackupResetCmd
PUBLIC RCC_ClearFlag
PUBLIC RCC_ClearITPendingBit
PUBLIC RCC_ClockSecuritySystemCmd
PUBLIC RCC_DeInit
PUBLIC RCC_GetClocksFreq
PUBLIC RCC_GetFlagStatus
PUBLIC RCC_GetITStatus
PUBLIC RCC_GetSYSCLKSource
PUBLIC RCC_HCLKConfig
PUBLIC RCC_HSEConfig
PUBLIC RCC_HSICmd
PUBLIC RCC_ITConfig
PUBLIC RCC_LSEConfig
PUBLIC RCC_LSICmd
PUBLIC RCC_MCOConfig
PUBLIC RCC_PCLK1Config
PUBLIC RCC_PCLK2Config
PUBLIC RCC_PLLCmd
PUBLIC RCC_PLLConfig
PUBLIC RCC_RTCCLKCmd
PUBLIC RCC_RTCCLKConfig
PUBLIC RCC_SYSCLKConfig
PUBLIC RCC_USBCLKConfig
PUBLIC RCC_WaitForHSEStartUp
SECTION `.rodata`:CONST:NOROOT(2)
APBAHBPrescTable:
DATA
DC8 0, 0, 0, 0, 1, 2, 3, 4, 1, 2, 3, 4, 6, 7, 8, 9
SECTION `.rodata`:CONST:NOROOT(2)
ADCPrescTable:
DATA
DC8 2, 4, 6, 8
SECTION `.bss`:DATA:NOROOT(0)
HSEStatus:
DS8 1
SECTION `.bss`:DATA:NOROOT(2)
StartUpCounter:
DS8 4
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_DeInit:
LDR.N R0,??DataTable0 ;; 0x4002100c
MOVS R1,#+0
STR R1,[R0, #+0]
LDR.N R0,??DataTable1 ;; 0x40021010
MOVS R1,#+0
STR R1,[R0, #+0]
LDR.N R0,??DataTable2 ;; 0x40021014
MOVS R1,#+20
STR R1,[R0, #+0]
LDR.N R0,??DataTable3 ;; 0x40021018
MOVS R1,#+0
STR R1,[R0, #+0]
LDR.N R0,??DataTable4 ;; 0x4002101c
MOVS R1,#+0
STR R1,[R0, #+0]
LDR.N R0,??DataTable25 ;; 0x40021000
LDR R0,[R0, #+0]
ORRS R0,R0,#0x1
LDR.N R1,??DataTable25 ;; 0x40021000
STR R0,[R1, #+0]
LDR.N R0,??DataTable38 ;; 0x40021004
LDR R0,[R0, #+0]
LDR.N R1,??RCC_DeInit_0 ;; 0xf8ff0000
ANDS R1,R1,R0
LDR.N R0,??DataTable38 ;; 0x40021004
STR R1,[R0, #+0]
LDR.N R0,??DataTable25 ;; 0x40021000
LDR R0,[R0, #+0]
LDR.N R1,??RCC_DeInit_0+0x4 ;; 0xfef6ffff
ANDS R1,R1,R0
LDR.N R0,??DataTable25 ;; 0x40021000
STR R1,[R0, #+0]
LDR.N R0,??DataTable25 ;; 0x40021000
LDR R0,[R0, #+0]
MVNS R1,#+262144
ANDS R1,R1,R0
LDR.N R0,??DataTable25 ;; 0x40021000
STR R1,[R0, #+0]
LDR.N R0,??DataTable38 ;; 0x40021004
LDR R0,[R0, #+0]
MVNS R1,#+8323072
ANDS R1,R1,R0
LDR.N R0,??DataTable38 ;; 0x40021004
STR R1,[R0, #+0]
LDR.N R0,??DataTable15 ;; 0x40021008
MOVS R1,#+0
STR R1,[R0, #+0]
BX LR ;; return
Nop
DATA
??RCC_DeInit_0:
DC32 0xf8ff0000
DC32 0xfef6ffff
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable0:
DC32 0x4002100c
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable1:
DC32 0x40021010
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable2:
DC32 0x40021014
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable3:
DC32 0x40021018
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable4:
DC32 0x4002101c
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable15:
DC32 0x40021008
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_HSEConfig:
PUSH {R0,LR}
LDR.N R1,??DataTable25 ;; 0x40021000
LDR R1,[R1, #+0]
MVNS R2,#+65536
ANDS R2,R2,R1
LDR.N R1,??DataTable25 ;; 0x40021000
STR R2,[R1, #+0]
LDR.N R1,??DataTable25 ;; 0x40021000
LDR R1,[R1, #+0]
MVNS R2,#+262144
ANDS R2,R2,R1
LDR.N R1,??DataTable25 ;; 0x40021000
STR R2,[R1, #+0]
MOVS R1,R0
MOVS R2,#+65536
SUBS R1,R1,R2
BEQ.N ??RCC_HSEConfig_0
MOVS R2,#+196608
SUBS R1,R1,R2
BEQ.N ??RCC_HSEConfig_1
B.N ??RCC_HSEConfig_2
??RCC_HSEConfig_0:
LDR.N R1,??DataTable25 ;; 0x40021000
LDR R1,[R1, #+0]
ORRS R1,R1,#0x10000
LDR.N R2,??DataTable25 ;; 0x40021000
STR R1,[R2, #+0]
B.N ??RCC_HSEConfig_2
??RCC_HSEConfig_1:
LDR.N R1,??DataTable25 ;; 0x40021000
LDR R1,[R1, #+0]
ORRS R1,R1,#0x50000
LDR.N R2,??DataTable25 ;; 0x40021000
STR R1,[R2, #+0]
??RCC_HSEConfig_2:
ADD SP,SP,#+4
POP {PC} ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_WaitForHSEStartUp:
PUSH {R0,LR}
??RCC_WaitForHSEStartUp_0:
MOVS R0,#+49
BL RCC_GetFlagStatus
LDR.N R1,??RCC_WaitForHSEStartUp_1 ;; HSEStatus
STRB R0,[R1, #+0]
LDR.N R0,??RCC_WaitForHSEStartUp_1+0x4 ;; StartUpCounter
LDR R0,[R0, #+0]
ADDS R0,R0,#+1
LDR.N R1,??RCC_WaitForHSEStartUp_1+0x4 ;; StartUpCounter
STR R0,[R1, #+0]
LDR.N R0,??RCC_WaitForHSEStartUp_1 ;; HSEStatus
LDRB R0,[R0, #+0]
CMP R0,#+0
BNE.N ??RCC_WaitForHSEStartUp_2
LDR.N R0,??RCC_WaitForHSEStartUp_1+0x4 ;; StartUpCounter
LDR R0,[R0, #+0]
CMP R0,#+255
BNE.N ??RCC_WaitForHSEStartUp_0
??RCC_WaitForHSEStartUp_2:
MOVS R0,#+49
BL RCC_GetFlagStatus
SUBS R0,R0,#+1
SBCS R0,R0,R0
MVNS R0,R0
LSRS R0,R0,#+31
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ADD SP,SP,#+4
POP {PC} ;; return
Nop
DATA
??RCC_WaitForHSEStartUp_1:
DC32 HSEStatus
DC32 StartUpCounter
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_AdjustHSICalibrationValue:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable25 ;; 0x40021000
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,#+248
BICS R1,R1,R2
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
ORRS R1,R1,R0, LSL #+3
LDR.N R2,??DataTable25 ;; 0x40021000
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable25:
DC32 0x40021000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_HSICmd:
LDR.N R1,??RCC_HSICmd_0 ;; 0x42420000
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
STR R0,[R1, #+0]
BX LR ;; return
DATA
??RCC_HSICmd_0:
DC32 0x42420000
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_PLLConfig:
MOVS R3,#+0
MOVS R2,R3
LDR.N R3,??DataTable38 ;; 0x40021004
LDR R3,[R3, #+0]
MOVS R2,R3
MOVS R3,R2
MVNS R2,#+4128768
ANDS R2,R2,R3
MOVS R3,R2
MOVS R2,R1
ORRS R2,R2,R0
ORRS R2,R2,R3
LDR.N R3,??DataTable38 ;; 0x40021004
STR R2,[R3, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_PLLCmd:
LDR.N R1,??RCC_PLLCmd_0 ;; 0x42420060
UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
STR R0,[R1, #+0]
BX LR ;; return
DATA
??RCC_PLLCmd_0:
DC32 0x42420060
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_SYSCLKConfig:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable38 ;; 0x40021004
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,#+3
BICS R1,R1,R2
ORRS R1,R1,R0
LDR.N R2,??DataTable38 ;; 0x40021004
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_GetSYSCLKSource:
LDR.N R0,??DataTable38 ;; 0x40021004
LDR R0,[R0, #+0]
ANDS R0,R0,#0xC
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_HCLKConfig:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable38 ;; 0x40021004
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,#+240
BICS R1,R1,R2
ORRS R1,R1,R0
LDR.N R2,??DataTable38 ;; 0x40021004
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_PCLK1Config:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable38 ;; 0x40021004
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,R1
MVNS R1,#+1792
ANDS R1,R1,R2
ORRS R1,R1,R0
LDR.N R2,??DataTable38 ;; 0x40021004
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_PCLK2Config:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable38 ;; 0x40021004
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,R1
MVNS R1,#+14336
ANDS R1,R1,R2
ORRS R1,R1,R0, LSL #+3
LDR.N R2,??DataTable38 ;; 0x40021004
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_ITConfig:
UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
CMP R1,#+0
BEQ.N ??RCC_ITConfig_0
LDR.N R2,??RCC_ITConfig_1 ;; 0x40021009
LDRB R2,[R2, #+0]
ORRS R2,R2,R0
LDR.N R3,??RCC_ITConfig_1 ;; 0x40021009
STRB R2,[R3, #+0]
B.N ??RCC_ITConfig_2
??RCC_ITConfig_0:
LDR.N R2,??RCC_ITConfig_1 ;; 0x40021009
LDRB R2,[R2, #+0]
BICS R2,R2,R0
LDR.N R3,??RCC_ITConfig_1 ;; 0x40021009
STRB R2,[R3, #+0]
??RCC_ITConfig_2:
BX LR ;; return
Nop
DATA
??RCC_ITConfig_1:
DC32 0x40021009
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_USBCLKConfig:
LDR.N R1,??RCC_USBCLKConfig_0 ;; 0x424200d8
STR R0,[R1, #+0]
BX LR ;; return
Nop
DATA
??RCC_USBCLKConfig_0:
DC32 0x424200d8
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_ADCCLKConfig:
MOVS R2,#+0
MOVS R1,R2
LDR.N R2,??DataTable38 ;; 0x40021004
LDR R2,[R2, #+0]
MOVS R1,R2
MOVS R2,R1
MVNS R1,#+49152
ANDS R1,R1,R2
ORRS R1,R1,R0
LDR.N R2,??DataTable38 ;; 0x40021004
STR R1,[R2, #+0]
BX LR ;; return
SECTION `.XML`:CODE:NOROOT(2)
DATA
??DataTable38:
DC32 0x40021004
SECTION `.XML`:CODE:NOROOT(2)
THUMB
RCC_LSEConfig:
PUSH {R0,LR}
LDR.N R1,??DataTable44 ;; 0x40021020
MOVS R2,#+0
STRB R2,[R1, #+0]
LDR.N R1,??DataTable44 ;; 0x40021020
MOVS R2,#+0
STRB R2,[R1, #+0]
MOVS R1,R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -