bsp.lst
来自「stm32+ucos-ii」· LST 代码 · 共 982 行 · 第 1/4 页
LST
982 行
182 }
\ 00000028 01BD POP {R0,PC} ;; return
183
184
185 /*
186 *********************************************************************************************************
187 * BSP_CPU_ClkFreq()
188 *
189 * Description : Read CPU registers to determine the CPU clock frequency of the chip.
190 *
191 * Argument(s) : none.
192 *
193 * Return(s) : The CPU clock frequency, in Hz.
194 *
195 * Caller(s) : Application.
196 *
197 * Note(s) : none.
198 *********************************************************************************************************
199 */
200
\ In section .text, align 2, keep-with-next
201 CPU_INT32U BSP_CPU_ClkFreq (void)
202 {
\ BSP_CPU_ClkFreq:
\ 00000000 00B5 PUSH {LR}
\ 00000002 85B0 SUB SP,SP,#+20
203 RCC_ClocksTypeDef rcc_clocks;
204
205
206 RCC_GetClocksFreq(&rcc_clocks);
\ 00000004 00A8 ADD R0,SP,#+0
\ 00000006 ........ BL RCC_GetClocksFreq
207
208 return ((CPU_INT32U)rcc_clocks.HCLK_Frequency);
\ 0000000A 0198 LDR R0,[SP, #+4]
\ 0000000C 05B0 ADD SP,SP,#+20
\ 0000000E 00BD POP {PC} ;; return
209 }
210
211
212 /*
213 *********************************************************************************************************
214 *********************************************************************************************************
215 * LED FUNCTIONS
216 *********************************************************************************************************
217 *********************************************************************************************************
218 */
219
220 /*
221 *********************************************************************************************************
222 * BSP_LED_Init()
223 *
224 * Description : Initialize the I/O for the LEDs
225 *
226 * Argument(s) : none.
227 *
228 * Return(s) : none.
229 *
230 * Caller(s) : BSP_Init().
231 *
232 * Note(s) : none.
233 *********************************************************************************************************
234 */
235
\ In section .text, align 2, keep-with-next
236 static void BSP_LED_Init (void)
237 {
\ BSP_LED_Init:
\ 00000000 80B5 PUSH {R7,LR}
238 GPIO_InitTypeDef gpio_init;
239
240
241 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
\ 00000002 0121 MOVS R1,#+1
\ 00000004 2020 MOVS R0,#+32
\ 00000006 ........ BL RCC_APB2PeriphClockCmd
242
243 gpio_init.GPIO_Pin = BSP_GPIOD_LEDS;
\ 0000000A 1C20 MOVS R0,#+28
\ 0000000C ADF80000 STRH R0,[SP, #+0]
244 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
\ 00000010 0320 MOVS R0,#+3
\ 00000012 8DF80200 STRB R0,[SP, #+2]
245 gpio_init.GPIO_Mode = GPIO_Mode_Out_PP;
\ 00000016 1020 MOVS R0,#+16
\ 00000018 8DF80300 STRB R0,[SP, #+3]
246
247 GPIO_Init(GPIOD, &gpio_init);
\ 0000001C 00A9 ADD R1,SP,#+0
\ 0000001E .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000020 ........ BL GPIO_Init
248 }
\ 00000024 01BD POP {R0,PC} ;; return
249
250
251 /*
252 *********************************************************************************************************
253 * BSP_LED_On()
254 *
255 * Description : Turn ON any or all the LEDs on the board.
256 *
257 * Argument(s) : led The ID of the LED to control:
258 *
259 * 0 turns ON ALL the LEDs
260 * 1 turns ON user LED1 on the board
261 * 2 turns ON user LED2 on the board
262 * 3 turns ON user LED3 on the board
263 *
264 * Return(s) : none.
265 *
266 * Caller(s) : Application.
267 *
268 * Note(s) : none.
269 *********************************************************************************************************
270 */
271
\ In section .text, align 2, keep-with-next
272 void BSP_LED_On (CPU_INT08U led)
273 {
\ BSP_LED_On:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
274 switch (led) {
\ 00000004 E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 00000006 002C CMP R4,#+0
\ 00000008 05D0 BEQ.N ??BSP_LED_On_0
\ 0000000A 022C CMP R4,#+2
\ 0000000C 0DD0 BEQ.N ??BSP_LED_On_1
\ 0000000E 07D3 BCC.N ??BSP_LED_On_2
\ 00000010 032C CMP R4,#+3
\ 00000012 0FD0 BEQ.N ??BSP_LED_On_3
\ 00000014 13E0 B.N ??BSP_LED_On_4
275 case 0:
276 GPIO_SetBits(GPIOD, BSP_GPIOD_LEDS);
\ ??BSP_LED_On_0:
\ 00000016 1C21 MOVS R1,#+28
\ 00000018 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000001A ........ BL GPIO_SetBits
277 break;
\ 0000001E 0EE0 B.N ??BSP_LED_On_5
278
279 case 1:
280 GPIO_SetBits(GPIOD, BSP_GPIOD_LED1);
\ ??BSP_LED_On_2:
\ 00000020 0421 MOVS R1,#+4
\ 00000022 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000024 ........ BL GPIO_SetBits
281 break;
\ 00000028 09E0 B.N ??BSP_LED_On_5
282
283 case 2:
284 GPIO_SetBits(GPIOD, BSP_GPIOD_LED2);
\ ??BSP_LED_On_1:
\ 0000002A 0821 MOVS R1,#+8
\ 0000002C .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000002E ........ BL GPIO_SetBits
285 break;
\ 00000032 04E0 B.N ??BSP_LED_On_5
286
287 case 3:
288 GPIO_SetBits(GPIOD, BSP_GPIOD_LED3);
\ ??BSP_LED_On_3:
\ 00000034 1021 MOVS R1,#+16
\ 00000036 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000038 ........ BL GPIO_SetBits
289 break;
\ 0000003C FFE7 B.N ??BSP_LED_On_5
290
291 default:
292 break;
293 }
294 }
\ ??BSP_LED_On_4:
\ ??BSP_LED_On_5:
\ 0000003E 10BD POP {R4,PC} ;; return
295
296
297 /*
298 *********************************************************************************************************
299 * BSP_LED_Off()
300 *
301 * Description : Turn OFF any or all the LEDs on the board.
302 *
303 * Argument(s) : led The ID of the LED to control:
304 *
305 * 0 turns OFF ALL the LEDs
306 * 1 turns OFF user LED1 on the board
307 * 2 turns OFF user LED2 on the board
308 * 3 turns OFF user LED3 on the board
309 *
310 * Return(s) : none.
311 *
312 * Caller(s) : Application.
313 *
314 * Note(s) : none.
315 *********************************************************************************************************
316 */
317
\ In section .text, align 2, keep-with-next
318 void BSP_LED_Off (CPU_INT08U led)
319 {
\ BSP_LED_Off:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
320 switch (led) {
\ 00000004 E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 00000006 002C CMP R4,#+0
\ 00000008 05D0 BEQ.N ??BSP_LED_Off_0
\ 0000000A 022C CMP R4,#+2
\ 0000000C 0DD0 BEQ.N ??BSP_LED_Off_1
\ 0000000E 07D3 BCC.N ??BSP_LED_Off_2
\ 00000010 032C CMP R4,#+3
\ 00000012 0FD0 BEQ.N ??BSP_LED_Off_3
\ 00000014 13E0 B.N ??BSP_LED_Off_4
321 case 0:
322 GPIO_ResetBits(GPIOD, BSP_GPIOD_LEDS);
\ ??BSP_LED_Off_0:
\ 00000016 1C21 MOVS R1,#+28
\ 00000018 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000001A ........ BL GPIO_ResetBits
323 break;
\ 0000001E 0EE0 B.N ??BSP_LED_Off_5
324
325 case 1:
326 GPIO_ResetBits(GPIOD, BSP_GPIOD_LED1);
\ ??BSP_LED_Off_2:
\ 00000020 0421 MOVS R1,#+4
\ 00000022 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000024 ........ BL GPIO_ResetBits
327 break;
\ 00000028 09E0 B.N ??BSP_LED_Off_5
328
329 case 2:
330 GPIO_ResetBits(GPIOD, BSP_GPIOD_LED2);
\ ??BSP_LED_Off_1:
\ 0000002A 0821 MOVS R1,#+8
\ 0000002C .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000002E ........ BL GPIO_ResetBits
331 break;
\ 00000032 04E0 B.N ??BSP_LED_Off_5
332
333 case 3:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?