📄 button.lst
字号:
75
76 if (~thisscan & 0x02)
\ ??ButtonScan_7:
\ 000000C8 0400B0E1 MOVS R0,R4
\ 000000CC 0000F0E1 MVNS R0,R0
\ 000000D0 020010E3 TST R0,#0x2
\ 000000D4 0100000A BEQ ??ButtonScan_8
77 button_event(BTN_SW3_UP);
\ 000000D8 0600A0E3 MOV R0,#+6
\ 000000DC ........ BL button_event
78 SendLine("key2\r\n");
\ ??ButtonScan_8:
\ 000000E0 C4009FE5 LDR R0,??ButtonScan_0+0xC ;; `?<Constant "key2\\r\\n">`
\ 000000E4 ........ _BLF SendLine,??SendLine??rA
79 AT91UartPutchar(0x02);
\ 000000E8 0200A0E3 MOV R0,#+2
\ 000000EC ........ _BLF AT91UartPutchar,??AT91UartPutchar??rA
80 }
81
82 if ((thisscan ^ lastscan) & 0x04)
\ ??ButtonScan_6:
\ 000000F0 0400B0E1 MOVS R0,R4
\ 000000F4 A8109FE5 LDR R1,??ButtonScan_0+0x4 ;; ??lastscan
\ 000000F8 001091E5 LDR R1,[R1, #+0]
\ 000000FC 000031E0 EORS R0,R1,R0
\ 00000100 040010E3 TST R0,#0x4
\ 00000104 0D00000A BEQ ??ButtonScan_9
83 {
84 if (thisscan & 0x04)
\ 00000108 040014E3 TST R4,#0x4
\ 0000010C 0100000A BEQ ??ButtonScan_10
85 button_event(BTN_SW2_DOWN);
\ 00000110 0300A0E3 MOV R0,#+3
\ 00000114 ........ BL button_event
86
87 if (~thisscan & 0x04)
\ ??ButtonScan_10:
\ 00000118 0400B0E1 MOVS R0,R4
\ 0000011C 0000F0E1 MVNS R0,R0
\ 00000120 040010E3 TST R0,#0x4
\ 00000124 0100000A BEQ ??ButtonScan_11
88 button_event(BTN_SW2_UP);
\ 00000128 0400A0E3 MOV R0,#+4
\ 0000012C ........ BL button_event
89 SendLine("key4\r\n");
\ ??ButtonScan_11:
\ 00000130 78009FE5 LDR R0,??ButtonScan_0+0x10 ;; `?<Constant "key4\\r\\n">`
\ 00000134 ........ _BLF SendLine,??SendLine??rA
90 AT91UartPutchar(0x04);
\ 00000138 0400A0E3 MOV R0,#+4
\ 0000013C ........ _BLF AT91UartPutchar,??AT91UartPutchar??rA
91 }
92
93 if ((thisscan ^ lastscan) & 0x08)
\ ??ButtonScan_9:
\ 00000140 0400B0E1 MOVS R0,R4
\ 00000144 58109FE5 LDR R1,??ButtonScan_0+0x4 ;; ??lastscan
\ 00000148 001091E5 LDR R1,[R1, #+0]
\ 0000014C 000031E0 EORS R0,R1,R0
\ 00000150 080010E3 TST R0,#0x8
\ 00000154 0D00000A BEQ ??ButtonScan_12
94 {
95 if (thisscan & 0x08)
\ 00000158 080014E3 TST R4,#0x8
\ 0000015C 0100000A BEQ ??ButtonScan_13
96 button_event(BTN_SW1_DOWN);
\ 00000160 0100A0E3 MOV R0,#+1
\ 00000164 ........ BL button_event
97
98 if (~thisscan & 0x08)
\ ??ButtonScan_13:
\ 00000168 0400B0E1 MOVS R0,R4
\ 0000016C 0000F0E1 MVNS R0,R0
\ 00000170 080010E3 TST R0,#0x8
\ 00000174 0100000A BEQ ??ButtonScan_14
99 button_event(BTN_SW1_UP);
\ 00000178 0200A0E3 MOV R0,#+2
\ 0000017C ........ BL button_event
100 SendLine("key8\r\n");
\ ??ButtonScan_14:
\ 00000180 2C009FE5 LDR R0,??ButtonScan_0+0x14 ;; `?<Constant "key8\\r\\n">`
\ 00000184 ........ _BLF SendLine,??SendLine??rA
101 AT91UartPutchar(0x08);
\ 00000188 0800A0E3 MOV R0,#+8
\ 0000018C ........ _BLF AT91UartPutchar,??AT91UartPutchar??rA
102 }
103
104 lastscan = thisscan;
\ ??ButtonScan_12:
\ 00000190 0C009FE5 LDR R0,??ButtonScan_0+0x4 ;; ??lastscan
\ 00000194 004080E5 STR R4,[R0, #+0]
105 }
106 }
\ ??ButtonScan_2:
\ 00000198 1040BDE8 POP {R4,LR}
\ 0000019C 1EFF2FE1 BX LR ;; return
\ ??ButtonScan_0:
\ 000001A0 ........ DC32 ??first
\ 000001A4 ........ DC32 ??lastscan
\ 000001A8 ........ DC32 `?<Constant "key1\\r\\n">`
\ 000001AC ........ DC32 `?<Constant "key2\\r\\n">`
\ 000001B0 ........ DC32 `?<Constant "key4\\r\\n">`
\ 000001B4 ........ DC32 `?<Constant "key8\\r\\n">`
\ In segment DATA_I, align 4, align-sorted
\ ??first:
\ 00000000 DS8 4
\ 00000004 REQUIRE `?<Initializer for first>`
\ In segment DATA_Z, align 4, align-sorted
\ ??lastscan:
\ 00000000 DS8 4
\ In segment CODE, align 4, keep-with-next
\ ??DataTable1:
\ 00000000 ........ DC32 button_function
\ In segment DATA_ID, align 4, align-sorted
\ `?<Initializer for first>`:
\ 00000000 01000000 DC32 1
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "key1\\r\\n">`:
\ 00000000 6B6579310D0A DC8 "key1\015\012"
\ 00
\ 00000007 00 DC8 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "key2\\r\\n">`:
\ 00000000 6B6579320D0A DC8 "key2\015\012"
\ 00
\ 00000007 00 DC8 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "key4\\r\\n">`:
\ 00000000 6B6579340D0A DC8 "key4\015\012"
\ 00
\ 00000007 00 DC8 0
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "key8\\r\\n">`:
\ 00000000 6B6579380D0A DC8 "key8\015\012"
\ 00
\ 00000007 00 DC8 0
107
Maximum stack usage in bytes:
Function CSTACK
-------- ------
ButtonInit 0
ButtonScan 8
button_event 0
Segment part sizes:
Function/Label Bytes
-------------- -----
button_function 4
led_slow_speed 4
button_event 48
ButtonInit 12
ButtonScan 440
first 4
lastscan 4
??DataTable1 4
?<Initializer for first> 4
?<Constant "key1\r\n"> 8
?<Constant "key2\r\n"> 8
?<Constant "key4\r\n"> 8
?<Constant "key8\r\n"> 8
Others 60
540 bytes in segment CODE
32 bytes in segment DATA_C
4 bytes in segment DATA_I
4 bytes in segment DATA_ID
12 bytes in segment DATA_Z
24 bytes in segment INITTAB
504 bytes of CODE memory (+ 60 bytes shared)
36 bytes of CONST memory
16 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -