📄 stm32f10x_systick.lst
字号:
\ 0000000C .... LDR.N R1,??DataTable5 ;; 0xffffffffe000e010
\ 0000000E 0128 CMP R0,#+1
\ 00000010 0868 LDR R0,[R1, #+0]
\ 00000012 03D1 BNE.N ??SysTick_CounterCmd_1
105 {
106 SysTick->CTRL |= SysTick_Counter_Enable;
\ 00000014 50F00100 ORRS R0,R0,#0x1
\ 00000018 0860 STR R0,[R1, #+0]
\ 0000001A 7047 BX LR
107 }
108 else
109 {
110 SysTick->CTRL &= SysTick_Counter_Disable;
\ ??SysTick_CounterCmd_1:
\ 0000001C 0122 MOVS R2,#+1
\ 0000001E 9043 BICS R0,R0,R2
\ 00000020 0860 STR R0,[R1, #+0]
111 }
112 }
113 }
\ 00000022 7047 BX LR ;; return
114
115 /*******************************************************************************
116 * Function Name : SysTick_ITConfig
117 * Description : Enables or disables the SysTick Interrupt.
118 * Input : - NewState: new state of the SysTick Interrupt.
119 * This parameter can be: ENABLE or DISABLE.
120 * Output : None
121 * Return : None
122 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
123 void SysTick_ITConfig(FunctionalState NewState)
124 {
125 /* Check the parameters */
126 assert(IS_FUNCTIONAL_STATE(NewState));
127
128 if (NewState != DISABLE)
\ SysTick_ITConfig:
\ 00000000 .... LDR.N R1,??DataTable5 ;; 0xffffffffe000e010
\ 00000002 0028 CMP R0,#+0
\ 00000004 0868 LDR R0,[R1, #+0]
\ 00000006 03D0 BEQ.N ??SysTick_ITConfig_0
129 {
130 SysTick->CTRL |= CTRL_TICKINT_Set;
\ 00000008 50F00200 ORRS R0,R0,#0x2
\ 0000000C 0860 STR R0,[R1, #+0]
\ 0000000E 7047 BX LR
131 }
132 else
133 {
134 SysTick->CTRL &= CTRL_TICKINT_Reset;
\ ??SysTick_ITConfig_0:
\ 00000010 0222 MOVS R2,#+2
\ 00000012 9043 BICS R0,R0,R2
\ 00000014 0860 STR R0,[R1, #+0]
135 }
136 }
\ 00000016 7047 BX LR ;; return
137
138 /*******************************************************************************
139 * Function Name : SysTick_GetCounter
140 * Description : Gets SysTick counter value.
141 * Input : None
142 * Output : None
143 * Return : SysTick current value
144 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
145 u32 SysTick_GetCounter(void)
146 {
147 return(SysTick->VAL);
\ SysTick_GetCounter:
\ 00000000 .... LDR.N R0,??DataTable4 ;; 0xffffffffe000e018
\ 00000002 0068 LDR R0,[R0, #+0]
\ 00000004 7047 BX LR ;; return
148 }
149
150 /*******************************************************************************
151 * Function Name : SysTick_GetFlagStatus
152 * Description : Checks whether the specified SysTick flag is set or not.
153 * Input : - SysTick_FLAG: specifies the flag to check.
154 * This parameter can be one of the following values:
155 * - SysTick_FLAG_COUNT
156 * - SysTick_FLAG_SKEW
157 * - SysTick_FLAG_NOREF
158 * Output : None
159 * Return : None
160 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
161 FlagStatus SysTick_GetFlagStatus(u8 SysTick_FLAG)
162 {
163 u32 tmp = 0;
164 u32 statusreg = 0;
165 FlagStatus bitstatus = RESET;
166
167 /* Check the parameters */
168 assert(IS_SYSTICK_FLAG(SysTick_FLAG));
169
170 /* Get the SysTick register index */
171 tmp = SysTick_FLAG >> 5;
172
173 if (tmp == 1) /* The flag to check is in CTRL register */
\ SysTick_GetFlagStatus:
\ 00000000 0100 MOVS R1,R0
\ 00000002 4909 LSRS R1,R1,#+5
\ 00000004 0129 CMP R1,#+1
\ 00000006 02D1 BNE.N ??SysTick_GetFlagStatus_0
174 {
175 statusreg = SysTick->CTRL;
\ 00000008 .... LDR.N R1,??DataTable5 ;; 0xffffffffe000e010
\ 0000000A 0968 LDR R1,[R1, #+0]
\ 0000000C 01E0 B.N ??SysTick_GetFlagStatus_1
176 }
177 else /* The flag to check is in CALIB register */
178 {
179 statusreg = SysTick->CALIB;
\ ??SysTick_GetFlagStatus_0:
\ 0000000E 0649 LDR.N R1,??SysTick_GetFlagStatus_2 ;; 0xffffffffe000e01c
\ 00000010 0968 LDR R1,[R1, #+0]
180 }
181
182 /* Get the flag position */
183 tmp = SysTick_FLAG & FLAG_Mask;
184
185 if ((statusreg & ((u32)1 << tmp)) != (u32)RESET)
\ ??SysTick_GetFlagStatus_1:
\ 00000012 0122 MOVS R2,#+1
\ 00000014 C006 LSLS R0,R0,#+27
\ 00000016 C00E LSRS R0,R0,#+27
\ 00000018 8240 LSLS R2,R2,R0
\ 0000001A 0A40 ANDS R2,R2,R1
\ 0000001C 01D0 BEQ.N ??SysTick_GetFlagStatus_3
186 {
187 bitstatus = SET;
\ 0000001E 0120 MOVS R0,#+1
\ 00000020 7047 BX LR
188 }
189 else
190 {
191 bitstatus = RESET;
\ ??SysTick_GetFlagStatus_3:
\ 00000022 0020 MOVS R0,#+0
192 }
193 return bitstatus;
\ 00000024 7047 BX LR ;; return
\ 00000026 00BF Nop
\ ??SysTick_GetFlagStatus_2:
\ 00000028 1CE000E0 DC32 0xffffffffe000e01c
194 }
\ In segment CODE, align 4, keep-with-next
\ ??DataTable4:
\ 00000000 18E000E0 DC32 0xffffffffe000e018
\ In segment CODE, align 4, keep-with-next
\ ??DataTable5:
\ 00000000 10E000E0 DC32 0xffffffffe000e010
195
196 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
Maximum stack usage in bytes:
Function CSTACK
-------- ------
SysTick_CLKSourceConfig 0
SysTick_CounterCmd 0
SysTick_GetCounter 0
SysTick_GetFlagStatus 0
SysTick_ITConfig 0
SysTick_SetReload 0
Segment part sizes:
Function/Label Bytes
-------------- -----
SysTick_CLKSourceConfig 24
SysTick_SetReload 12
SysTick_CounterCmd 36
SysTick_ITConfig 24
SysTick_GetCounter 6
SysTick_GetFlagStatus 44
??DataTable4 4
??DataTable5 4
154 bytes in segment CODE
154 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -