📄 stm32f10x_systick.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\stm32f10x_systick.o --depend=.\rvmdk\stm32f10x_systick.d --device=DARMSTM -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -ID:\Keil\ARM\INC\ST\STM32F10x ..\..\..\..\..\CPU\ST\STM32\src\stm32f10x_systick.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=1
SysTick_CLKSourceConfig PROC
;;;55
;;;56 if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000000 f04ff04f MOV r1,#0xe000e000
000004 2804 CMP r0,#4
000006 d104 BNE |L1.18|
;;;57 {
;;;58 SysTick->CTRL |= SysTick_CLKSource_HCLK;
000008 6908 LDR r0,[r1,#0x10]
00000a f040f040 ORR r0,r0,#4
00000e 6108 STR r0,[r1,#0x10]
;;;59 }
;;;60 else
;;;61 {
;;;62 SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
;;;63 }
;;;64 }
000010 4770 BX lr
|L1.18|
000012 6908 LDR r0,[r1,#0x10]
000014 f020f020 BIC r0,r0,#4
000018 6108 STR r0,[r1,#0x10]
00001a 4770 BX lr
;;;65
ENDP
SysTick_SetReload PROC
;;;78
;;;79 SysTick->LOAD = Reload;
00001c f04ff04f MOV r1,#0xe000e000
000020 6148 STR r0,[r1,#0x14]
;;;80 }
000022 4770 BX lr
;;;81
ENDP
SysTick_CounterCmd PROC
;;;97
;;;98 if (SysTick_Counter == SysTick_Counter_Clear)
000024 f04ff04f MOV r1,#0xe000e000
000028 b910 CBNZ r0,|L1.48|
;;;99 {
;;;100 SysTick->VAL = SysTick_Counter_Clear;
00002a 2000 MOVS r0,#0
00002c 6188 STR r0,[r1,#0x18]
;;;101 }
;;;102 else
;;;103 {
;;;104 if (SysTick_Counter == SysTick_Counter_Enable)
;;;105 {
;;;106 SysTick->CTRL |= SysTick_Counter_Enable;
;;;107 }
;;;108 else
;;;109 {
;;;110 SysTick->CTRL &= SysTick_Counter_Disable;
;;;111 }
;;;112 }
;;;113 }
00002e 4770 BX lr
|L1.48|
000030 2801 CMP r0,#1
000032 d104 BNE |L1.62|
000034 6908 LDR r0,[r1,#0x10]
000036 f040f040 ORR r0,r0,#1
00003a 6108 STR r0,[r1,#0x10]
00003c 4770 BX lr
|L1.62|
00003e 6908 LDR r0,[r1,#0x10]
000040 f020f020 BIC r0,r0,#1
000044 6108 STR r0,[r1,#0x10]
000046 4770 BX lr
;;;114
ENDP
SysTick_ITConfig PROC
;;;127
;;;128 if (NewState != DISABLE)
000048 f04ff04f MOV r1,#0xe000e000
00004c b120 CBZ r0,|L1.88|
;;;129 {
;;;130 SysTick->CTRL |= CTRL_TICKINT_Set;
00004e 6908 LDR r0,[r1,#0x10]
000050 f040f040 ORR r0,r0,#2
000054 6108 STR r0,[r1,#0x10]
;;;131 }
;;;132 else
;;;133 {
;;;134 SysTick->CTRL &= CTRL_TICKINT_Reset;
;;;135 }
;;;136 }
000056 4770 BX lr
|L1.88|
000058 6908 LDR r0,[r1,#0x10]
00005a f020f020 BIC r0,r0,#2
00005e 6108 STR r0,[r1,#0x10]
000060 4770 BX lr
;;;137
ENDP
SysTick_GetCounter PROC
;;;146 {
;;;147 return(SysTick->VAL);
000062 f04ff04f MOV r0,#0xe000e000
000066 6980 LDR r0,[r0,#0x18]
;;;148 }
000068 4770 BX lr
;;;149
ENDP
SysTick_GetFlagStatus PROC
;;;164 u32 statusreg = 0;
;;;165 FlagStatus bitstatus = RESET;
00006a 2200 MOVS r2,#0
;;;166
;;;167 /* Check the parameters */
;;;168 assert(IS_SYSTICK_FLAG(SysTick_FLAG));
;;;169
;;;170 /* Get the SysTick register index */
;;;171 tmp = SysTick_FLAG >> 5;
00006c 0941 LSRS r1,r0,#5
;;;172
;;;173 if (tmp == 1) /* The flag to check is in CTRL register */
00006e f04ff04f MOV r3,#0xe000e000
000072 2901 CMP r1,#1
000074 d101 BNE |L1.122|
;;;174 {
;;;175 statusreg = SysTick->CTRL;
000076 6919 LDR r1,[r3,#0x10]
000078 e000 B |L1.124|
|L1.122|
;;;176 }
;;;177 else /* The flag to check is in CALIB register */
;;;178 {
;;;179 statusreg = SysTick->CALIB;
00007a 69d9 LDR r1,[r3,#0x1c]
|L1.124|
;;;180 }
;;;181
;;;182 /* Get the flag position */
;;;183 tmp = SysTick_FLAG & FLAG_Mask;
00007c f000f000 AND r0,r0,#0x1f
;;;184
;;;185 if ((statusreg & ((u32)1 << tmp)) != (u32)RESET)
000080 2301 MOVS r3,#1
000082 fa03fa03 LSL r0,r3,r0
000086 4208 TST r0,r1
000088 d000 BEQ |L1.140|
;;;186 {
;;;187 bitstatus = SET;
00008a 2201 MOVS r2,#1
|L1.140|
;;;188 }
;;;189 else
;;;190 {
;;;191 bitstatus = RESET;
;;;192 }
;;;193 return bitstatus;
00008c 4610 MOV r0,r2
;;;194 }
00008e 4770 BX lr
;;;195
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -