📄 stm32f10x_systick.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\stm32f10x_systick.o --depend=.\Obj\stm32f10x_systick.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\..\FWLib\library\src\stm32f10x_systick.c]
THUMB
AREA ||i.SysTick_CLKSourceConfig||, CODE, READONLY, ALIGN=1
SysTick_CLKSourceConfig PROC
;;;42 *******************************************************************************/
;;;43 void SysTick_CLKSourceConfig(u32 SysTick_CLKSource)
000000 f04f21e0 MOV r1,#0xe000e000
;;;44 {
;;;45 /* Check the parameters */
;;;46 assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
;;;47
;;;48 if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
000004 2804 CMP r0,#4
;;;49 {
;;;50 SysTick->CTRL |= SysTick_CLKSource_HCLK;
000006 6908 LDR r0,[r1,#0x10]
000008 d102 BNE |L1.16|
00000a f0400004 ORR r0,r0,#4
00000e e001 B |L1.20|
|L1.16|
;;;51 }
;;;52 else
;;;53 {
;;;54 SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;
000010 f0200004 BIC r0,r0,#4
|L1.20|
000014 6108 STR r0,[r1,#0x10] ;50
;;;55 }
;;;56 }
000016 4770 BX lr
;;;57
ENDP
AREA ||i.SysTick_CounterCmd||, CODE, READONLY, ALIGN=1
SysTick_CounterCmd PROC
;;;84 *******************************************************************************/
;;;85 void SysTick_CounterCmd(u32 SysTick_Counter)
000000 f04f21e0 MOV r1,#0xe000e000
;;;86 {
;;;87 /* Check the parameters */
;;;88 assert_param(IS_SYSTICK_COUNTER(SysTick_Counter));
;;;89
;;;90 if (SysTick_Counter == SysTick_Counter_Enable)
000004 2801 CMP r0,#1
000006 d103 BNE |L2.16|
;;;91 {
;;;92 SysTick->CTRL |= SysTick_Counter_Enable;
000008 6908 LDR r0,[r1,#0x10]
00000a f0400001 ORR r0,r0,#1
00000e e004 B |L2.26|
|L2.16|
;;;93 }
;;;94 else if (SysTick_Counter == SysTick_Counter_Disable)
000010 1c80 ADDS r0,r0,#2
000012 d104 BNE |L2.30|
;;;95 {
;;;96 SysTick->CTRL &= SysTick_Counter_Disable;
000014 6908 LDR r0,[r1,#0x10]
000016 f0200001 BIC r0,r0,#1
|L2.26|
00001a 6108 STR r0,[r1,#0x10] ;92
;;;97 }
;;;98 else /* SysTick_Counter == SysTick_Counter_Clear */
;;;99 {
;;;100 SysTick->VAL = SysTick_Counter_Clear;
;;;101 }
;;;102 }
00001c 4770 BX lr
|L2.30|
00001e 2000 MOVS r0,#0 ;100
000020 6188 STR r0,[r1,#0x18] ;100
000022 4770 BX lr
;;;103
ENDP
AREA ||i.SysTick_GetCounter||, CODE, READONLY, ALIGN=1
SysTick_GetCounter PROC
;;;133 *******************************************************************************/
;;;134 u32 SysTick_GetCounter(void)
000000 f04f20e0 MOV r0,#0xe000e000
;;;135 {
;;;136 return(SysTick->VAL);
000004 6980 LDR r0,[r0,#0x18]
;;;137 }
000006 4770 BX lr
;;;138
ENDP
AREA ||i.SysTick_GetFlagStatus||, CODE, READONLY, ALIGN=1
SysTick_GetFlagStatus PROC
;;;149 *******************************************************************************/
;;;150 FlagStatus SysTick_GetFlagStatus(u8 SysTick_FLAG)
000000 4602 MOV r2,r0
;;;151 {
;;;152 u32 statusreg = 0, tmp = 0 ;
;;;153 FlagStatus bitstatus = RESET;
000002 2000 MOVS r0,#0
;;;154
;;;155 /* Check the parameters */
;;;156 assert_param(IS_SYSTICK_FLAG(SysTick_FLAG));
;;;157
;;;158 /* Get the SysTick register index */
;;;159 tmp = SysTick_FLAG >> 3;
000004 08d1 LSRS r1,r2,#3
;;;160
;;;161 if (tmp == 2) /* The flag to check is in CTRL register */
;;;162 {
;;;163 statusreg = SysTick->CTRL;
000006 f04f23e0 MOV r3,#0xe000e000
00000a 2902 CMP r1,#2 ;161
00000c d101 BNE |L4.18|
00000e 6919 LDR r1,[r3,#0x10]
000010 e000 B |L4.20|
|L4.18|
;;;164 }
;;;165 else /* The flag to check is in CALIB register */
;;;166 {
;;;167 statusreg = SysTick->CALIB;
000012 69d9 LDR r1,[r3,#0x1c]
|L4.20|
;;;168 }
;;;169
;;;170 if ((statusreg & ((u32)1 << SysTick_FLAG)) != (u32)RESET)
000014 2301 MOVS r3,#1
000016 4093 LSLS r3,r3,r2
000018 420b TST r3,r1
00001a d000 BEQ |L4.30|
;;;171 {
;;;172 bitstatus = SET;
00001c 2001 MOVS r0,#1
|L4.30|
;;;173 }
;;;174 else
;;;175 {
;;;176 bitstatus = RESET;
;;;177 }
;;;178 return bitstatus;
;;;179 }
00001e 4770 BX lr
;;;180
ENDP
AREA ||i.SysTick_ITConfig||, CODE, READONLY, ALIGN=1
SysTick_ITConfig PROC
;;;111 *******************************************************************************/
;;;112 void SysTick_ITConfig(FunctionalState NewState)
000000 f04f21e0 MOV r1,#0xe000e000
;;;113 {
;;;114 /* Check the parameters */
;;;115 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;116
;;;117 if (NewState != DISABLE)
000004 2800 CMP r0,#0
;;;118 {
;;;119 SysTick->CTRL |= CTRL_TICKINT_Set;
000006 6908 LDR r0,[r1,#0x10]
000008 d002 BEQ |L5.16|
00000a f0400002 ORR r0,r0,#2
00000e e001 B |L5.20|
|L5.16|
;;;120 }
;;;121 else
;;;122 {
;;;123 SysTick->CTRL &= CTRL_TICKINT_Reset;
000010 f0200002 BIC r0,r0,#2
|L5.20|
000014 6108 STR r0,[r1,#0x10] ;119
;;;124 }
;;;125 }
000016 4770 BX lr
;;;126
ENDP
AREA ||i.SysTick_SetReload||, CODE, READONLY, ALIGN=1
SysTick_SetReload PROC
;;;65 *******************************************************************************/
;;;66 void SysTick_SetReload(u32 Reload)
000000 f04f21e0 MOV r1,#0xe000e000
;;;67 {
;;;68 /* Check the parameters */
;;;69 assert_param(IS_SYSTICK_RELOAD(Reload));
;;;70
;;;71 SysTick->LOAD = Reload;
000004 6148 STR r0,[r1,#0x14]
;;;72 }
000006 4770 BX lr
;;;73
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -