📄 bsp_button.txt
字号:
; generated by ARM C/C++ Compiler, 4.1 [Build 561]
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Flash\Obj\bsp_button.o --depend=.\Flash\Obj\bsp_button.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=870 -I..\..\Libraries\CMSIS\CM3\CoreSupport -I..\..\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\User\bsp -I..\..\User\fatfs -I..\..\User -IC:\Keil\ARM\INC -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER ..\..\User\bsp\bsp_button.c]
THUMB
AREA ||i.IsKeyDownDown||, CODE, READONLY, ALIGN=2
IsKeyDownDown PROC
;;;63 static uint8_t IsKeyDownUp(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15) == Bit_SET) return 0; return 1;}
;;;64 static uint8_t IsKeyDownDown(void) {if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 2108 MOVS r1,#8
000004 4804 LDR r0,|L1.24|
000006 f7fffffe BL GPIO_ReadInputDataBit
00000a 2801 CMP r0,#1
00000c d101 BNE |L1.18|
00000e 2000 MOVS r0,#0
|L1.16|
000010 bd10 POP {r4,pc}
|L1.18|
000012 2001 MOVS r0,#1
000014 e7fc B |L1.16|
;;;65 static uint8_t IsKeyDownLeft(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_14) == Bit_SET) return 0; return 1;}
ENDP
000016 0000 DCW 0x0000
|L1.24|
DCD 0x40011400
AREA ||i.IsKeyDownLeft||, CODE, READONLY, ALIGN=2
IsKeyDownLeft PROC
;;;64 static uint8_t IsKeyDownDown(void) {if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == Bit_SET) return 0; return 1;}
;;;65 static uint8_t IsKeyDownLeft(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_14) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 f44f4180 MOV r1,#0x4000
000006 4804 LDR r0,|L2.24|
000008 f7fffffe BL GPIO_ReadInputDataBit
00000c 2801 CMP r0,#1
00000e d101 BNE |L2.20|
000010 2000 MOVS r0,#0
|L2.18|
000012 bd10 POP {r4,pc}
|L2.20|
000014 2001 MOVS r0,#1
000016 e7fc B |L2.18|
;;;66 static uint8_t IsKeyDownRight(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
ENDP
|L2.24|
DCD 0x40012000
AREA ||i.IsKeyDownOk||, CODE, READONLY, ALIGN=2
IsKeyDownOk PROC
;;;66 static uint8_t IsKeyDownRight(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
;;;67 static uint8_t IsKeyDownOk(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_7) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 2180 MOVS r1,#0x80
000004 4804 LDR r0,|L3.24|
000006 f7fffffe BL GPIO_ReadInputDataBit
00000a 2801 CMP r0,#1
00000c d101 BNE |L3.18|
00000e 2000 MOVS r0,#0
|L3.16|
000010 bd10 POP {r4,pc}
|L3.18|
000012 2001 MOVS r0,#1
000014 e7fc B |L3.16|
;;;68 static uint8_t IsKeyDownUserTamper(void) {if (IsKeyDownUser() && IsKeyDownTamper()) return 1; return 0;} /* 组合键 */
ENDP
000016 0000 DCW 0x0000
|L3.24|
DCD 0x40012000
AREA ||i.IsKeyDownRight||, CODE, READONLY, ALIGN=2
IsKeyDownRight PROC
;;;65 static uint8_t IsKeyDownLeft(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_14) == Bit_SET) return 0; return 1;}
;;;66 static uint8_t IsKeyDownRight(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 f44f5100 MOV r1,#0x2000
000006 4804 LDR r0,|L4.24|
000008 f7fffffe BL GPIO_ReadInputDataBit
00000c 2801 CMP r0,#1
00000e d101 BNE |L4.20|
000010 2000 MOVS r0,#0
|L4.18|
000012 bd10 POP {r4,pc}
|L4.20|
000014 2001 MOVS r0,#1
000016 e7fc B |L4.18|
;;;67 static uint8_t IsKeyDownOk(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_7) == Bit_SET) return 0; return 1;}
ENDP
|L4.24|
DCD 0x40012000
AREA ||i.IsKeyDownTamper||, CODE, READONLY, ALIGN=2
IsKeyDownTamper PROC
;;;60 static uint8_t IsKeyDownUser(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_8) == Bit_SET) return 0; return 1;}
;;;61 static uint8_t IsKeyDownTamper(void) {if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 f44f5100 MOV r1,#0x2000
000006 4804 LDR r0,|L5.24|
000008 f7fffffe BL GPIO_ReadInputDataBit
00000c 2801 CMP r0,#1
00000e d101 BNE |L5.20|
000010 2000 MOVS r0,#0
|L5.18|
000012 bd10 POP {r4,pc}
|L5.20|
000014 2001 MOVS r0,#1
000016 e7fc B |L5.18|
;;;62 static uint8_t IsKeyDownWakeUp(void) {if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET) return 1; return 0;}
ENDP
|L5.24|
DCD 0x40011000
AREA ||i.IsKeyDownUp||, CODE, READONLY, ALIGN=2
IsKeyDownUp PROC
;;;62 static uint8_t IsKeyDownWakeUp(void) {if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET) return 1; return 0;}
;;;63 static uint8_t IsKeyDownUp(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 f44f4100 MOV r1,#0x8000
000006 4804 LDR r0,|L6.24|
000008 f7fffffe BL GPIO_ReadInputDataBit
00000c 2801 CMP r0,#1
00000e d101 BNE |L6.20|
000010 2000 MOVS r0,#0
|L6.18|
000012 bd10 POP {r4,pc}
|L6.20|
000014 2001 MOVS r0,#1
000016 e7fc B |L6.18|
;;;64 static uint8_t IsKeyDownDown(void) {if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == Bit_SET) return 0; return 1;}
ENDP
|L6.24|
DCD 0x40012000
AREA ||i.IsKeyDownUser||, CODE, READONLY, ALIGN=2
IsKeyDownUser PROC
;;;59 */
;;;60 static uint8_t IsKeyDownUser(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_8) == Bit_SET) return 0; return 1;}
000000 b510 PUSH {r4,lr}
000002 f44f7180 MOV r1,#0x100
000006 4804 LDR r0,|L7.24|
000008 f7fffffe BL GPIO_ReadInputDataBit
00000c 2801 CMP r0,#1
00000e d101 BNE |L7.20|
000010 2000 MOVS r0,#0
|L7.18|
000012 bd10 POP {r4,pc}
|L7.20|
000014 2001 MOVS r0,#1
000016 e7fc B |L7.18|
;;;61 static uint8_t IsKeyDownTamper(void) {if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
ENDP
|L7.24|
DCD 0x40012000
AREA ||i.IsKeyDownUserTamper||, CODE, READONLY, ALIGN=1
IsKeyDownUserTamper PROC
;;;67 static uint8_t IsKeyDownOk(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_7) == Bit_SET) return 0; return 1;}
;;;68 static uint8_t IsKeyDownUserTamper(void) {if (IsKeyDownUser() && IsKeyDownTamper()) return 1; return 0;} /* 组合键 */
000000 b510 PUSH {r4,lr}
000002 f7fffffe BL IsKeyDownUser
000006 b120 CBZ r0,|L8.18|
000008 f7fffffe BL IsKeyDownTamper
00000c b108 CBZ r0,|L8.18|
00000e 2001 MOVS r0,#1
|L8.16|
000010 bd10 POP {r4,pc}
|L8.18|
000012 2000 MOVS r0,#0
000014 e7fc B |L8.16|
;;;69
ENDP
AREA ||i.IsKeyDownWakeUp||, CODE, READONLY, ALIGN=2
IsKeyDownWakeUp PROC
;;;61 static uint8_t IsKeyDownTamper(void) {if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == Bit_SET) return 0; return 1;}
;;;62 static uint8_t IsKeyDownWakeUp(void) {if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET) return 1; return 0;}
000000 b510 PUSH {r4,lr}
000002 2101 MOVS r1,#1
000004 4803 LDR r0,|L9.20|
000006 f7fffffe BL GPIO_ReadInputDataBit
00000a 2801 CMP r0,#1
00000c d100 BNE |L9.16|
|L9.14|
00000e bd10 POP {r4,pc}
|L9.16|
000010 2000 MOVS r0,#0
000012 e7fc B |L9.14|
;;;63 static uint8_t IsKeyDownUp(void) {if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15) == Bit_SET) return 0; return 1;}
ENDP
|L9.20|
DCD 0x40010800
AREA ||i.bsp_DetectButton||, CODE, READONLY, ALIGN=1
bsp_DetectButton PROC
;;;358 */
;;;359 static void bsp_DetectButton(BUTTON_T *_pBtn)
000000 b510 PUSH {r4,lr}
;;;360 {
000002 4604 MOV r4,r0
;;;361 /* 如果没有初始化按键函数,则报错
;;;362 if (_pBtn->IsKeyDownFunc == 0)
;;;363 {
;;;364 printf("Fault : DetectButton(), _pBtn->IsKeyDownFunc undefine");
;;;365 }
;;;366 */
;;;367
;;;368 if (_pBtn->IsKeyDownFunc())
000004 6820 LDR r0,[r4,#0]
000006 4780 BLX r0
000008 2800 CMP r0,#0
00000a d03b BEQ |L10.132|
;;;369 {
;;;370 if (_pBtn->Count < _pBtn->FilterTime)
00000c 7920 LDRB r0,[r4,#4]
00000e 7961 LDRB r1,[r4,#5]
000010 4288 CMP r0,r1
000012 da02 BGE |L10.26|
;;;371 {
;;;372 _pBtn->Count = _pBtn->FilterTime;
000014 7960 LDRB r0,[r4,#5]
000016 7120 STRB r0,[r4,#4]
000018 e04f B |L10.186|
|L10.26|
;;;373 }
;;;374 else if(_pBtn->Count < 2 * _pBtn->FilterTime)
00001a 7920 LDRB r0,[r4,#4]
00001c 7961 LDRB r1,[r4,#5]
00001e 0049 LSLS r1,r1,#1
000020 4288 CMP r0,r1
000022 da03 BGE |L10.44|
;;;375 {
;;;376 _pBtn->Count++;
000024 7920 LDRB r0,[r4,#4]
000026 1c40 ADDS r0,r0,#1
000028 7120 STRB r0,[r4,#4]
00002a e046 B |L10.186|
|L10.44|
;;;377 }
;;;378 else
;;;379 {
;;;380 if (_pBtn->State == 0)
00002c 7aa0 LDRB r0,[r4,#0xa]
00002e b938 CBNZ r0,|L10.64|
;;;381 {
;;;382 _pBtn->State = 1;
000030 2001 MOVS r0,#1
000032 72a0 STRB r0,[r4,#0xa]
;;;383
;;;384 /* 发送按钮按下的消息 */
;;;385 if (_pBtn->KeyCodeDown > 0)
000034 7b20 LDRB r0,[r4,#0xc]
000036 2800 CMP r0,#0
000038 dd02 BLE |L10.64|
;;;386 {
;;;387 /* 键值放入按键FIFO */
;;;388 bsp_PutKey(_pBtn->KeyCodeDown);
00003a 7b20 LDRB r0,[r4,#0xc]
00003c f7fffffe BL bsp_PutKey
|L10.64|
;;;389 }
;;;390 }
;;;391
;;;392 if (_pBtn->LongTime > 0)
000040 8920 LDRH r0,[r4,#8]
000042 2800 CMP r0,#0
000044 dd39 BLE |L10.186|
;;;393 {
;;;394 if (_pBtn->LongCount < _pBtn->LongTime)
000046 88e0 LDRH r0,[r4,#6]
000048 8921 LDRH r1,[r4,#8]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -