bsp.lst
来自「stm32+ucos-ii」· LST 代码 · 共 982 行 · 第 1/4 页
LST
982 行
334 GPIO_ResetBits(GPIOD, BSP_GPIOD_LED3);
\ ??BSP_LED_Off_3:
\ 00000034 1021 MOVS R1,#+16
\ 00000036 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000038 ........ BL GPIO_ResetBits
335 break;
\ 0000003C FFE7 B.N ??BSP_LED_Off_5
336
337 default:
338 break;
339 }
340 }
\ ??BSP_LED_Off_4:
\ ??BSP_LED_Off_5:
\ 0000003E 10BD POP {R4,PC} ;; return
341
342
343 /*
344 *********************************************************************************************************
345 * BSP_LED_Toggle()
346 *
347 * Description : TOGGLE any or all the LEDs on the board.
348 *
349 * Argument(s) : led The ID of the LED to control:
350 *
351 * 0 TOGGLE ALL the LEDs
352 * 1 TOGGLE user LED1 on the board
353 * 2 TOGGLE user LED2 on the board
354 * 3 TOGGLE user LED3 on the board
355 *
356 * Return(s) : none.
357 *
358 * Caller(s) : Application.
359 *
360 * Note(s) : none.
361 *********************************************************************************************************
362 */
363
\ In section .text, align 2, keep-with-next
364 void BSP_LED_Toggle (CPU_INT08U led)
365 {
\ BSP_LED_Toggle:
\ 00000000 38B5 PUSH {R3-R5,LR}
\ 00000002 0400 MOVS R4,R0
366 CPU_INT32U pins;
367
368
369 switch (led) {
\ 00000004 E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 00000006 2000 MOVS R0,R4
\ 00000008 0028 CMP R0,#+0
\ 0000000A 03D0 BEQ.N ??BSP_LED_Toggle_0
\ 0000000C 401E SUBS R0,R0,#+1
\ 0000000E 0228 CMP R0,#+2
\ 00000010 12D9 BLS.N ??BSP_LED_Toggle_1
\ 00000012 2FE0 B.N ??BSP_LED_Toggle_2
370 case 0:
371 pins = GPIO_ReadOutputData(GPIOD);
\ ??BSP_LED_Toggle_0:
\ 00000014 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000016 ........ BL GPIO_ReadOutputData
\ 0000001A 0500 MOVS R5,R0
372 pins ^= BSP_GPIOD_LEDS;
\ 0000001C 95F01C05 EORS R5,R5,#0x1C
373 GPIO_SetBits( GPIOD, pins & BSP_GPIOD_LEDS);
\ 00000020 15F01C01 ANDS R1,R5,#0x1C
\ 00000024 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000026 ........ BL GPIO_SetBits
374 GPIO_ResetBits(GPIOD, (~pins) & BSP_GPIOD_LEDS);
\ 0000002A E843 MVNS R0,R5
\ 0000002C 10F01C01 ANDS R1,R0,#0x1C
\ 00000030 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 00000032 ........ BL GPIO_ResetBits
375 break;
\ 00000036 1DE0 B.N ??BSP_LED_Toggle_3
376
377 case 1:
378 case 2:
379 case 3:
380 pins = GPIO_ReadOutputData(GPIOD);
\ ??BSP_LED_Toggle_1:
\ 00000038 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000003A ........ BL GPIO_ReadOutputData
\ 0000003E 0500 MOVS R5,R0
381 if ((pins & (1 << (led + BSP_LED_START_BIT))) == 0) {
\ 00000040 0120 MOVS R0,#+1
\ 00000042 14F10C01 ADDS R1,R4,#+12
\ 00000046 8840 LSLS R0,R0,R1
\ 00000048 0542 TST R5,R0
\ 0000004A 09D1 BNE.N ??BSP_LED_Toggle_4
382 GPIO_SetBits( GPIOD, (1 << (led + BSP_LED_START_BIT)));
\ 0000004C 0120 MOVS R0,#+1
\ 0000004E 14F10C01 ADDS R1,R4,#+12
\ 00000052 10FA01F1 LSLS R1,R0,R1
\ 00000056 89B2 UXTH R1,R1 ;; ZeroExt R1,R1,#+16,#+16
\ 00000058 .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000005A ........ BL GPIO_SetBits
\ 0000005E 08E0 B.N ??BSP_LED_Toggle_5
383 } else {
384 GPIO_ResetBits(GPIOD, (1 << (led + BSP_LED_START_BIT)));
\ ??BSP_LED_Toggle_4:
\ 00000060 0120 MOVS R0,#+1
\ 00000062 14F10C01 ADDS R1,R4,#+12
\ 00000066 10FA01F1 LSLS R1,R0,R1
\ 0000006A 89B2 UXTH R1,R1 ;; ZeroExt R1,R1,#+16,#+16
\ 0000006C .... LDR.N R0,??DataTable6_2 ;; 0x40011400
\ 0000006E ........ BL GPIO_ResetBits
385 }
386 break;
\ ??BSP_LED_Toggle_5:
\ 00000072 FFE7 B.N ??BSP_LED_Toggle_3
387
388 default:
389 break;
390 }
391 }
\ ??BSP_LED_Toggle_2:
\ ??BSP_LED_Toggle_3:
\ 00000074 31BD POP {R0,R4,R5,PC} ;; return
392
393
394 /*
395 *********************************************************************************************************
396 * BSP_StatusInit()
397 *
398 * Description : Initialize the status port(s)
399 *
400 * Argument(s) : none.
401 *
402 * Return(s) : none.
403 *
404 * Caller(s) : BSP_Init()
405 *
406 * Note(s) : none.
407 *********************************************************************************************************
408 */
409
\ In section .text, align 2, keep-with-next
410 static void BSP_StatusInit (void)
411 {
\ BSP_StatusInit:
\ 00000000 80B5 PUSH {R7,LR}
412 GPIO_InitTypeDef GPIO_InitStructure;
413
414
415 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /* PB5 is used to read the status of the LM75 */
\ 00000002 2020 MOVS R0,#+32
\ 00000004 ADF80000 STRH R0,[SP, #+0]
416 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 00000008 0420 MOVS R0,#+4
\ 0000000A 8DF80300 STRB R0,[SP, #+3]
417 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
\ 0000000E 0320 MOVS R0,#+3
\ 00000010 8DF80200 STRB R0,[SP, #+2]
418 GPIO_Init(GPIOB, &GPIO_InitStructure);
\ 00000014 00A9 ADD R1,SP,#+0
\ 00000016 .... LDR.N R0,??DataTable6_3 ;; 0x40010c00
\ 00000018 ........ BL GPIO_Init
419 }
\ 0000001C 01BD POP {R0,PC} ;; return
420
421
422 /*
423 *********************************************************************************************************
424 * BSP_StatusRd()
425 *
426 * Description : Get the current status of a status input
427 *
428 * Argument(s) : id is the status you want to get.
429 *
430 * Return(s) : DEF_ON if the status is asserted
431 * DEF_OFF if the status is negated
432 *
433 * Caller(s) : application
434 *
435 * Note(s) : none.
436 *********************************************************************************************************
437 */
438
\ In section .text, align 2, keep-with-next
439 CPU_BOOLEAN BSP_StatusRd (CPU_INT08U id)
440 {
\ BSP_StatusRd:
\ 00000000 38B5 PUSH {R3-R5,LR}
\ 00000002 0400 MOVS R4,R0
441 CPU_BOOLEAN bit_val;
442
443
444 switch (id) {
\ 00000004 E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 00000006 012C CMP R4,#+1
\ 00000008 07D1 BNE.N ??BSP_StatusRd_0
445 case 1:
446 bit_val = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);
\ 0000000A 2021 MOVS R1,#+32
\ 0000000C .... LDR.N R0,??DataTable6_3 ;; 0x40010c00
\ 0000000E ........ BL GPIO_ReadInputDataBit
\ 00000012 0500 MOVS R5,R0
447 return (bit_val);
\ 00000014 2800 MOVS R0,R5
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000018 00E0 B.N ??BSP_StatusRd_1
448
449 default:
450 return ((CPU_BOOLEAN)DEF_OFF);
\ ??BSP_StatusRd_0:
\ 0000001A 0020 MOVS R0,#+0
\ ??BSP_StatusRd_1:
\ 0000001C 32BD POP {R1,R4,R5,PC} ;; return
451 }
452 }
\ In section .text, align 4, keep-with-next
\ ??DataTable6:
\ 00000000 40420F00 DC32 0xf4240
\ In section .text, align 4, keep-with-next
\ ??DataTable6_1:
\ 00000000 ........ DC32 BSP_CPU_ClkFreq_MHz
\ In section .text, align 4, keep-with-next
\ ??DataTable6_2:
\ 00000000 00140140 DC32 0x40011400
\ In section .text, align 4, keep-with-next
\ ??DataTable6_3:
\ 00000000 000C0140 DC32 0x40010c00
453
454
455 /*
456 *********************************************************************************************************
457 *********************************************************************************************************
458 * OS PROBE FUNCTIONS
459 *********************************************************************************************************
460 *********************************************************************************************************
461 */
462
463 /*
464 *********************************************************************************************************
465 * OSProbe_TmrInit()
466 *
467 * Description : Select & initialize a timer for use with the uC/Probe Plug-In for uC/OS-II.
468 *
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?