📄 gui_onkey.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\gui_onkey.o --depend=.\Obj\gui_onkey.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Core\GUI_OnKey.c]
THUMB
AREA ||i.GUI_ClearKeyBuffer||, CODE, READONLY, ALIGN=2
GUI_ClearKeyBuffer PROC
;;;84 */
;;;85 void GUI_ClearKeyBuffer(void) {
000000 b500 PUSH {lr}
;;;86 while (GUI_GetKey());
000002 bf00 NOP
|L1.4|
000004 f7fffffe BL GUI_GetKey
000008 2800 CMP r0,#0
00000a d1fb BNE |L1.4|
;;;87 }
00000c bd00 POP {pc}
;;;88
ENDP
AREA ||i.GUI_GetKey||, CODE, READONLY, ALIGN=2
GUI_GetKey PROC
;;;63 */
;;;64 int GUI_GetKey(void) {
000000 4902 LDR r1,|L2.12|
;;;65 int r = _Key;
;;;66 _Key = 0;
000002 2200 MOVS r2,#0
000004 6848 LDR r0,[r1,#4] ; _Key
;;;67 return r;
000006 604a STR r2,[r1,#4] ; _Key
;;;68 }
000008 4770 BX lr
;;;69
ENDP
00000a 0000 DCW 0x0000
|L2.12|
DCD ||.data||
AREA ||i.GUI_PollKeyMsg||, CODE, READONLY, ALIGN=2
GUI_PollKeyMsg PROC
;;;109 #if GUI_WINSUPPORT /* If 0, WM will not generate any code */
;;;110 int GUI_PollKeyMsg(void) {
000000 b570 PUSH {r4-r6,lr}
;;;111 int r = 0;
;;;112 GUI_LOCK();
;;;113 if (_KeyMsgCnt) {
000002 4a0b LDR r2,|L3.48|
000004 2000 MOVS r0,#0 ;111
000006 6811 LDR r1,[r2,#0] ; _KeyMsgCnt
000008 2900 CMP r1,#0
00000a d00f BEQ |L3.44|
;;;114 int Key;
;;;115 _KeyMsgCnt--;
00000c 1e49 SUBS r1,r1,#1
;;;116 Key = _KeyMsg.Key;
00000e f1020408 ADD r4,r2,#8
000012 6011 STR r1,[r2,#0] ; _KeyMsgCnt
;;;117 WM_OnKey(Key, _KeyMsg.PressedCnt);
000014 e9d45100 LDRD r5,r1,[r4,#0]
000018 4628 MOV r0,r5
00001a f7fffffe BL WM_OnKey
;;;118 if (_KeyMsg.PressedCnt == 1) {
00001e 6860 LDR r0,[r4,#4] ; _KeyMsg
000020 2801 CMP r0,#1
000022 d102 BNE |L3.42|
;;;119 GUI_StoreKey(Key);
000024 4628 MOV r0,r5
000026 f7fffffe BL GUI_StoreKey
|L3.42|
;;;120 }
;;;121 r = 1; /* We have done something */
00002a 2001 MOVS r0,#1
|L3.44|
;;;122 }
;;;123 GUI_UNLOCK();
;;;124 return r;
;;;125 }
00002c bd70 POP {r4-r6,pc}
;;;126 #endif
ENDP
00002e 0000 DCW 0x0000
|L3.48|
DCD ||.data||
AREA ||i.GUI_SendKeyMsg||, CODE, READONLY, ALIGN=1
GUI_SendKeyMsg PROC
;;;136 */
;;;137 void GUI_SendKeyMsg(int Key, int PressedCnt) {
000000 b570 PUSH {r4-r6,lr}
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;138 #if GUI_WINSUPPORT /* If 0, WM will not generate any code */
;;;139 if (!WM_OnKey(Key, PressedCnt)) {
000006 f7fffffe BL WM_OnKey
00000a 2800 CMP r0,#0
00000c d105 BNE |L4.26|
;;;140 GUI_StoreKeyMsg(Key, PressedCnt);
00000e 4629 MOV r1,r5
000010 4620 MOV r0,r4
000012 e8bd4070 POP {r4-r6,lr}
000016 f7ffbffe B.W GUI_StoreKeyMsg
|L4.26|
;;;141 }
;;;142 #else
;;;143 GUI_StoreKeyMsg(Key, PressedCnt);
;;;144 #endif
;;;145 }
00001a bd70 POP {r4-r6,pc}
;;;146
ENDP
AREA ||i.GUI_StoreKey||, CODE, READONLY, ALIGN=2
GUI_StoreKey PROC
;;;73 */
;;;74 void GUI_StoreKey(int Key) {
000000 4902 LDR r1,|L5.12|
;;;75 if (!_Key) {
000002 684a LDR r2,[r1,#4] ; _Key
000004 2a00 CMP r2,#0
000006 d100 BNE |L5.10|
;;;76 _Key = Key;
000008 6048 STR r0,[r1,#4] ; _Key
|L5.10|
;;;77 }
;;;78 GUI_X_SIGNAL_EVENT();
;;;79 }
00000a 4770 BX lr
;;;80
ENDP
|L5.12|
DCD ||.data||
AREA ||i.GUI_StoreKeyMsg||, CODE, READONLY, ALIGN=2
GUI_StoreKeyMsg PROC
;;;92 */
;;;93 void GUI_StoreKeyMsg(int Key, int PressedCnt) {
000000 4a03 LDR r2,|L6.16|
;;;94 #if GUI_WINSUPPORT /* If 0, WM will not generate any code */
;;;95 _KeyMsg.Key = Key;
;;;96 _KeyMsg.PressedCnt = PressedCnt;
;;;97 _KeyMsgCnt = 1;
000002 c203 STM r2!,{r0,r1}
000004 2001 MOVS r0,#1
000006 f1a20110 SUB r1,r2,#0x10
;;;98 GUI_X_SIGNAL_EVENT();
;;;99 #else
;;;100 GUI_USE_PARA(PressedCnt);
;;;101 GUI_StoreKey(Key);
;;;102 #endif
;;;103 }
00000a 6008 STR r0,[r1,#0] ; _KeyMsgCnt
00000c 4770 BX lr
;;;104
ENDP
00000e 0000 DCW 0x0000
|L6.16|
DCD ||.data||+0x8
AREA ||.data||, DATA, ALIGN=2
_KeyMsgCnt
DCD 0x00000000
_Key
DCD 0x00000000
_KeyMsg
% 8
AREA ||area_number.10||, DATA, ALIGN=2
EXPORTAS ||area_number.10||, ||.data||
GUI_pfKeyMsgHook
DCD 0x00000000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -