📄 bsp.lst
字号:
\ 00000038 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
440 break;
441
442 default:
443 break;
444 }
445 }
\ ??LED_On_1:
\ 0000003C 00BD POP {PC} ;; return
446
447
448 /*
449 *********************************************************************************************************
450 * LED OFF
451 *
452 * Description : This function is used to control any or all the LEDs on the board.
453 *
454 * Arguments : led is the number of the LED to turn OFF
455 * 0 indicates that you want ALL the LEDs to be OFF
456 * 1 turns OFF user LED on the board
457 *
458 * Returns ; none
459 *********************************************************************************************************
460 */
461
\ In segment CODE, align 4, keep-with-next
462 void LED_Off (CPU_INT08U led)
463 {
\ LED_Off:
\ 00000000 00B5 PUSH {LR}
\ 00000002 0100 MOVS R1,R0
464 switch (led) {
\ 00000004 .... LDR.N R0,??DataTable9 ;; 0x40011000
\ 00000006 0429 CMP R1,#+4
\ 00000008 18D8 BHI.N ??LED_Off_1
\ 0000000A DFE801F0 TBB [PC, R1]
\ ??LED_Off_0:
\ 0000000E 03080C10 DC8 +3,+8,+12,+16
\ 00000012 1400 DC8 +20,+0
465 case 0:
466 GPIO_ResetBits(GPIOC, GPIOC_LED1 | GPIOC_LED2 | GPIOC_LED3 | GPIOC_LED4);
\ ??LED_Off_2:
\ 00000014 5FF47071 MOVS R1,#+960
\ 00000018 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 0000001C 00BD POP {PC}
467 break;
468
469 case 1:
470 GPIO_ResetBits(GPIOC, GPIOC_LED1);
\ ??LED_Off_3:
\ 0000001E 4021 MOVS R1,#+64
\ 00000020 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 00000024 00BD POP {PC}
471 break;
472
473 case 2:
474 GPIO_ResetBits(GPIOC, GPIOC_LED2);
\ ??LED_Off_4:
\ 00000026 8021 MOVS R1,#+128
\ 00000028 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 0000002C 00BD POP {PC}
475 break;
476
477 case 3:
478 GPIO_ResetBits(GPIOC, GPIOC_LED3);
\ ??LED_Off_5:
\ 0000002E 810D LSRS R1,R0,#+22
\ 00000030 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 00000034 00BD POP {PC}
479 break;
480
481 case 4:
482 GPIO_ResetBits(GPIOC, GPIOC_LED4);
\ ??LED_Off_6:
\ 00000036 410D LSRS R1,R0,#+21
\ 00000038 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
483 break;
484
485 default:
486 break;
487 }
488 }
\ ??LED_Off_1:
\ 0000003C 00BD POP {PC} ;; return
489
490
491 /*
492 *********************************************************************************************************
493 * LED TOGGLE
494 *
495 * Description : This function is used to toggle any or all the LEDs on the board.
496 *
497 * Arguments : led is the number of the LED to control
498 * 0 indicates that you want to toggle ALL the LEDs
499 * 1 toggles user LED on the board
500 *
501 * Returns ; none
502 *********************************************************************************************************
503 */
504
\ In segment CODE, align 4, keep-with-next
505 void LED_Toggle (CPU_INT08U led)
506 {
\ LED_Toggle:
\ 00000000 70B5 PUSH {R4-R6,LR}
\ 00000002 0600 MOVS R6,R0
507 CPU_INT32U pins;
508
509
510 pins = GPIO_ReadOutputData(GPIOC);
\ 00000004 .... LDR.N R4,??DataTable9 ;; 0x40011000
\ 00000006 2000 MOVS R0,R4
\ 00000008 ........ _BLF GPIO_ReadOutputData,??GPIO_ReadOutputData??rT
\ 0000000C 0500 MOVS R5,R0
511
512 switch (led) {
\ 0000000E 042E CMP R6,#+4
\ 00000010 62D8 BHI.N ??LED_Toggle_1
\ 00000012 DFE806F0 TBB [PC, R6]
\ ??LED_Toggle_0:
\ 00000016 03323E4A DC8 +3,+50,+62,+74
\ 0000001A 5600 DC8 +86,+0
513 case 0:
514 if ((pins & GPIOC_LED1) == 0) {
\ ??LED_Toggle_2:
\ 0000001C 2800 MOVS R0,R5
\ 0000001E 4006 LSLS R0,R0,#+25
\ 00000020 04D4 BMI.N ??LED_Toggle_3
515 GPIO_SetBits( GPIOC, GPIOC_LED1);
\ 00000022 4021 MOVS R1,#+64
\ 00000024 2000 MOVS R0,R4
\ 00000026 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 0000002A 03E0 B.N ??LED_Toggle_4
516 } else {
517 GPIO_ResetBits(GPIOC, GPIOC_LED1);
\ ??LED_Toggle_3:
\ 0000002C 4021 MOVS R1,#+64
\ 0000002E 2000 MOVS R0,R4
\ 00000030 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
518 }
519 if ((pins & GPIOC_LED2) == 0) {
\ ??LED_Toggle_4:
\ 00000034 2800 MOVS R0,R5
\ 00000036 0006 LSLS R0,R0,#+24
\ 00000038 04D4 BMI.N ??LED_Toggle_5
520 GPIO_SetBits( GPIOC, GPIOC_LED2);
\ 0000003A 8021 MOVS R1,#+128
\ 0000003C 2000 MOVS R0,R4
\ 0000003E ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 00000042 03E0 B.N ??LED_Toggle_6
521 } else {
522 GPIO_ResetBits(GPIOC, GPIOC_LED2);
\ ??LED_Toggle_5:
\ 00000044 8021 MOVS R1,#+128
\ 00000046 2000 MOVS R0,R4
\ 00000048 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
523 }
524 if ((pins & GPIOC_LED3) == 0) {
\ ??LED_Toggle_6:
\ 0000004C E805 LSLS R0,R5,#+23
\ 0000004E 04D4 BMI.N ??LED_Toggle_7
525 GPIO_SetBits( GPIOC, GPIOC_LED3);
\ 00000050 A10D LSRS R1,R4,#+22
\ 00000052 2000 MOVS R0,R4
\ 00000054 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 00000058 03E0 B.N ??LED_Toggle_8
526 } else {
527 GPIO_ResetBits(GPIOC, GPIOC_LED3);
\ ??LED_Toggle_7:
\ 0000005A A10D LSRS R1,R4,#+22
\ 0000005C 2000 MOVS R0,R4
\ 0000005E ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
528 }
529 if ((pins & GPIOC_LED4) == 0) {
\ ??LED_Toggle_8:
\ 00000062 A805 LSLS R0,R5,#+22
\ 00000064 04D4 BMI.N ??LED_Toggle_9
530 GPIO_SetBits( GPIOC, GPIOC_LED4);
\ 00000066 610D LSRS R1,R4,#+21
\ 00000068 2000 MOVS R0,R4
\ 0000006A ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 0000006E 70BD POP {R4-R6,PC}
531 } else {
532 GPIO_ResetBits(GPIOC, GPIOC_LED4);
\ ??LED_Toggle_9:
\ 00000070 610D LSRS R1,R4,#+21
\ 00000072 2000 MOVS R0,R4
\ 00000074 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 00000078 70BD POP {R4-R6,PC}
533 }
534 break;
535
536 case 1:
537 if ((pins & GPIOC_LED1) == 0) {
\ ??LED_Toggle_10:
\ 0000007A 6806 LSLS R0,R5,#+25
\ 0000007C 04D4 BMI.N ??LED_Toggle_11
538 GPIO_SetBits( GPIOC, GPIOC_LED1);
\ 0000007E 4021 MOVS R1,#+64
\ 00000080 2000 MOVS R0,R4
\ 00000082 ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 00000086 70BD POP {R4-R6,PC}
539 } else {
540 GPIO_ResetBits(GPIOC, GPIOC_LED1);
\ ??LED_Toggle_11:
\ 00000088 4021 MOVS R1,#+64
\ 0000008A 2000 MOVS R0,R4
\ 0000008C ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 00000090 70BD POP {R4-R6,PC}
541 }
542 break;
543
544 case 2:
545 if ((pins & GPIOC_LED2) == 0) {
\ ??LED_Toggle_12:
\ 00000092 2806 LSLS R0,R5,#+24
\ 00000094 04D4 BMI.N ??LED_Toggle_13
546 GPIO_SetBits( GPIOC, GPIOC_LED2);
\ 00000096 8021 MOVS R1,#+128
\ 00000098 2000 MOVS R0,R4
\ 0000009A ........ _BLF GPIO_SetBits,??GPIO_SetBits??rT
\ 0000009E 70BD POP {R4-R6,PC}
547 } else {
548 GPIO_ResetBits(GPIOC, GPIOC_LED2);
\ ??LED_Toggle_13:
\ 000000A0 8021 MOVS R1,#+128
\ 000000A2 2000 MOVS R0,R4
\ 000000A4 ........ _BLF GPIO_ResetBits,??GPIO_ResetBits??rT
\ 000000A8 70BD POP {R4-R6,PC}
549 }
550 break;
551
552 case 3:
553 if ((pins & GPIOC_LED3) == 0) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -