📄 avrx.lss
字号:
avrx.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000074 00800100 00000702 00000796 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000702 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000000cf 00800174 00800174 0000080a 2**2
ALLOC
3 .stab 000029b8 00000000 00000000 0000080c 2**2
CONTENTS, READONLY, DEBUGGING
4 .stabstr 00000f81 00000000 00000000 000031c4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__ctors_end>
4: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
8: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
10: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
14: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
18: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
1c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
20: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
24: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
28: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
2c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
30: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
34: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
38: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
3c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
40: 0c 94 ed 00 jmp 0x1da ; 0x1da <__vector_16>
44: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
48: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
4c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
50: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
54: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
58: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
5c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
60: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
64: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
68: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
6c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
70: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
74: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
78: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
7c: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
80: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
84: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
88: 0c 94 6e 00 jmp 0xdc ; 0xdc <__bad_interrupt>
0000008c <task1Tcb>:
8c: 36 02 e2 00 fa 01 01 6......
00000093 <task2Tcb>:
93: f3 01 ca 00 b7 01 02 .......
0000009a <task3Tcb>:
9a: b6 01 70 00 74 01 03 00 ..p.t...
000000a2 <__ctors_end>:
a2: 11 24 eor r1, r1
a4: 1f be out 0x3f, r1 ; 63
a6: cf ef ldi r28, 0xFF ; 255
a8: d0 e1 ldi r29, 0x10 ; 16
aa: de bf out 0x3e, r29 ; 62
ac: cd bf out 0x3d, r28 ; 61
000000ae <__do_copy_data>:
ae: 11 e0 ldi r17, 0x01 ; 1
b0: a0 e0 ldi r26, 0x00 ; 0
b2: b1 e0 ldi r27, 0x01 ; 1
b4: e2 e0 ldi r30, 0x02 ; 2
b6: f7 e0 ldi r31, 0x07 ; 7
b8: 02 c0 rjmp .+4 ; 0xbe <.do_copy_data_start>
000000ba <.do_copy_data_loop>:
ba: 05 90 lpm r0, Z+
bc: 0d 92 st X+, r0
000000be <.do_copy_data_start>:
be: a4 37 cpi r26, 0x74 ; 116
c0: b1 07 cpc r27, r17
c2: d9 f7 brne .-10 ; 0xba <.do_copy_data_loop>
000000c4 <__do_clear_bss>:
c4: 12 e0 ldi r17, 0x02 ; 2
c6: a4 e7 ldi r26, 0x74 ; 116
c8: b1 e0 ldi r27, 0x01 ; 1
ca: 01 c0 rjmp .+2 ; 0xce <.do_clear_bss_start>
000000cc <.do_clear_bss_loop>:
cc: 1d 92 st X+, r1
000000ce <.do_clear_bss_start>:
ce: a3 34 cpi r26, 0x43 ; 67
d0: b1 07 cpc r27, r17
d2: e1 f7 brne .-8 ; 0xcc <.do_clear_bss_loop>
d4: 0e 94 f5 00 call 0x1ea ; 0x1ea <main>
d8: 0c 94 80 03 jmp 0x700 ; 0x700 <_exit>
000000dc <__bad_interrupt>:
dc: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000e0 <task3>:
NAKEDFUNC(task3) //任务3:检测按键
{
while (1)
{
switch(Key())
e0: 0e 94 5d 01 call 0x2ba ; 0x2ba <Key>
e4: 88 30 cpi r24, 0x08 ; 8
e6: c9 f1 breq .+114 ; 0x15a <task3+0x7a>
e8: 89 30 cpi r24, 0x09 ; 9
ea: 80 f4 brcc .+32 ; 0x10c <task3+0x2c>
ec: 84 30 cpi r24, 0x04 ; 4
ee: 49 f1 breq .+82 ; 0x142 <task3+0x62>
f0: 85 30 cpi r24, 0x05 ; 5
f2: 38 f4 brcc .+14 ; 0x102 <task3+0x22>
f4: 82 30 cpi r24, 0x02 ; 2
f6: f9 f0 breq .+62 ; 0x136 <task3+0x56>
f8: 83 30 cpi r24, 0x03 ; 3
fa: 00 f5 brcc .+64 ; 0x13c <task3+0x5c>
fc: 81 30 cpi r24, 0x01 ; 1
fe: 81 f7 brne .-32 ; 0xe0 <task3>
100: 17 c0 rjmp .+46 ; 0x130 <task3+0x50>
102: 86 30 cpi r24, 0x06 ; 6
104: 21 f1 breq .+72 ; 0x14e <task3+0x6e>
106: 87 30 cpi r24, 0x07 ; 7
108: 28 f5 brcc .+74 ; 0x154 <task3+0x74>
10a: 1e c0 rjmp .+60 ; 0x148 <task3+0x68>
10c: 8c 30 cpi r24, 0x0C ; 12
10e: 89 f1 breq .+98 ; 0x172 <task3+0x92>
110: 8d 30 cpi r24, 0x0D ; 13
112: 28 f4 brcc .+10 ; 0x11e <task3+0x3e>
114: 8a 30 cpi r24, 0x0A ; 10
116: 39 f1 breq .+78 ; 0x166 <task3+0x86>
118: 8b 30 cpi r24, 0x0B ; 11
11a: 40 f5 brcc .+80 ; 0x16c <task3+0x8c>
11c: 21 c0 rjmp .+66 ; 0x160 <task3+0x80>
11e: 8e 30 cpi r24, 0x0E ; 14
120: 71 f1 breq .+92 ; 0x17e <task3+0x9e>
122: 8e 30 cpi r24, 0x0E ; 14
124: 48 f1 brcs .+82 ; 0x178 <task3+0x98>
126: 8f 30 cpi r24, 0x0F ; 15
128: 69 f1 breq .+90 ; 0x184 <task3+0xa4>
12a: 80 31 cpi r24, 0x10 ; 16
12c: c9 f6 brne .-78 ; 0xe0 <task3>
12e: 2d c0 rjmp .+90 ; 0x18a <task3+0xaa>
{
case 1:
SendString("Key1\n");
130: 80 e0 ldi r24, 0x00 ; 0
132: 91 e0 ldi r25, 0x01 ; 1
134: 2c c0 rjmp .+88 ; 0x18e <task3+0xae>
break;
case 2:
SendString("Key2\n");
136: 86 e0 ldi r24, 0x06 ; 6
138: 91 e0 ldi r25, 0x01 ; 1
13a: 29 c0 rjmp .+82 ; 0x18e <task3+0xae>
break;
case 3:
SendString("Key3\n");
13c: 8c e0 ldi r24, 0x0C ; 12
13e: 91 e0 ldi r25, 0x01 ; 1
140: 26 c0 rjmp .+76 ; 0x18e <task3+0xae>
break;
case 4:
SendString("Key4\n");
142: 82 e1 ldi r24, 0x12 ; 18
144: 91 e0 ldi r25, 0x01 ; 1
146: 23 c0 rjmp .+70 ; 0x18e <task3+0xae>
break;
case 5:
SendString("Key5\n");
148: 88 e1 ldi r24, 0x18 ; 24
14a: 91 e0 ldi r25, 0x01 ; 1
14c: 20 c0 rjmp .+64 ; 0x18e <task3+0xae>
break;
case 6:
SendString("Key6\n");
14e: 8e e1 ldi r24, 0x1E ; 30
150: 91 e0 ldi r25, 0x01 ; 1
152: 1d c0 rjmp .+58 ; 0x18e <task3+0xae>
break;
case 7:
SendString("Key7\n");
154: 84 e2 ldi r24, 0x24 ; 36
156: 91 e0 ldi r25, 0x01 ; 1
158: 1a c0 rjmp .+52 ; 0x18e <task3+0xae>
break;
case 8:
SendString("Key8\n");
15a: 8a e2 ldi r24, 0x2A ; 42
15c: 91 e0 ldi r25, 0x01 ; 1
15e: 17 c0 rjmp .+46 ; 0x18e <task3+0xae>
break;
case 9:
SendString("Key9\n");
160: 80 e3 ldi r24, 0x30 ; 48
162: 91 e0 ldi r25, 0x01 ; 1
164: 14 c0 rjmp .+40 ; 0x18e <task3+0xae>
break;
case 10:
SendString("Key10\n");
166: 86 e3 ldi r24, 0x36 ; 54
168: 91 e0 ldi r25, 0x01 ; 1
16a: 11 c0 rjmp .+34 ; 0x18e <task3+0xae>
break;
case 11:
SendString("Key11\n");
16c: 8d e3 ldi r24, 0x3D ; 61
16e: 91 e0 ldi r25, 0x01 ; 1
170: 0e c0 rjmp .+28 ; 0x18e <task3+0xae>
break;
case 12:
SendString("Key12\n");
172: 84 e4 ldi r24, 0x44 ; 68
174: 91 e0 ldi r25, 0x01 ; 1
176: 0b c0 rjmp .+22 ; 0x18e <task3+0xae>
break;
case 13:
SendString("Key13\n");
178: 8b e4 ldi r24, 0x4B ; 75
17a: 91 e0 ldi r25, 0x01 ; 1
17c: 08 c0 rjmp .+16 ; 0x18e <task3+0xae>
break;
case 14:
SendString("Key14\n");
17e: 82 e5 ldi r24, 0x52 ; 82
180: 91 e0 ldi r25, 0x01 ; 1
182: 05 c0 rjmp .+10 ; 0x18e <task3+0xae>
break;
case 15:
SendString("Key15\n");
184: 89 e5 ldi r24, 0x59 ; 89
186: 91 e0 ldi r25, 0x01 ; 1
188: 02 c0 rjmp .+4 ; 0x18e <task3+0xae>
break;
case 16:
SendString("Key16\n");
18a: 80 e6 ldi r24, 0x60 ; 96
18c: 91 e0 ldi r25, 0x01 ; 1
18e: 0e 94 7c 01 call 0x2f8 ; 0x2f8 <SendString>
192: a6 cf rjmp .-180 ; 0xe0 <task3>
00000194 <task2>:
194: 8d ef ldi r24, 0xFD ; 253
196: 8b bb out 0x1b, r24 ; 27
198: 0a e7 ldi r16, 0x7A ; 122
19a: 11 e0 ldi r17, 0x01 ; 1
19c: 68 ec ldi r22, 0xC8 ; 200
19e: 70 e0 ldi r23, 0x00 ; 0
1a0: c8 01 movw r24, r16
1a2: 0e 94 75 02 call 0x4ea ; 0x4ea <AvrXDelay>
1a6: 8b ef ldi r24, 0xFB ; 251
1a8: 8b bb out 0x1b, r24 ; 27
1aa: 68 ec ldi r22, 0xC8 ; 200
1ac: 70 e0 ldi r23, 0x00 ; 0
1ae: c8 01 movw r24, r16
1b0: 0e 94 75 02 call 0x4ea ; 0x4ea <AvrXDelay>
1b4: 87 ef ldi r24, 0xF7 ; 247
1b6: 8b bb out 0x1b, r24 ; 27
1b8: 68 ec ldi r22, 0xC8 ; 200
1ba: 70 e0 ldi r23, 0x00 ; 0
1bc: c8 01 movw r24, r16
1be: 0e 94 75 02 call 0x4ea ; 0x4ea <AvrXDelay>
1c2: e8 cf rjmp .-48 ; 0x194 <task2>
000001c4 <task1>:
1c4: 87 e6 ldi r24, 0x67 ; 103
1c6: 91 e0 ldi r25, 0x01 ; 1
1c8: 0e 94 7c 01 call 0x2f8 ; 0x2f8 <SendString>
1cc: 68 ee ldi r22, 0xE8 ; 232
1ce: 73 e0 ldi r23, 0x03 ; 3
1d0: 84 ef ldi r24, 0xF4 ; 244
1d2: 91 e0 ldi r25, 0x01 ; 1
1d4: 0e 94 75 02 call 0x4ea ; 0x4ea <AvrXDelay>
1d8: f5 cf rjmp .-22 ; 0x1c4 <task1>
000001da <__vector_16>:
1da: 0e 94 8b 01 call 0x316 ; 0x316 <IntProlog>
1de: 85 ed ldi r24, 0xD5 ; 213
1e0: 82 bf out 0x32, r24 ; 50
1e2: 0e 94 a3 02 call 0x546 ; 0x546 <AvrXTimerHandler>
1e6: 0e 94 d7 01 call 0x3ae ; 0x3ae <Epilog>
000001ea <main>:
1ea: 80 e0 ldi r24, 0x00 ; 0
1ec: 90 e0 ldi r25, 0x00 ; 0
1ee: 0e 94 10 02 call 0x420 ; 0x420 <AvrXSetKernelStack>
1f2: 15 be out 0x35, r1 ; 53
1f4: 85 ed ldi r24, 0xD5 ; 213
1f6: 82 bf out 0x32, r24 ; 50
1f8: 96 e0 ldi r25, 0x06 ; 6
1fa: 93 bf out 0x33, r25 ; 51
1fc: 81 e0 ldi r24, 0x01 ; 1
1fe: 87 bf out 0x37, r24 ; 55
200: 8f ef ldi r24, 0xFF ; 255
202: 8b bb out 0x1b, r24 ; 27
204: 8a bb out 0x1a, r24 ; 26
206: 88 bb out 0x18, r24 ; 24
208: 87 bb out 0x17, r24 ; 23
20a: 85 bb out 0x15, r24 ; 21
20c: 84 bb out 0x14, r24 ; 20
20e: 82 bb out 0x12, r24 ; 18
210: 81 bb out 0x11, r24 ; 17
212: 83 b9 out 0x03, r24 ; 3
214: 82 b9 out 0x02, r24 ; 2
216: 80 93 62 00 sts 0x0062, r24
21a: 80 93 61 00 sts 0x0061, r24
21e: 80 93 65 00 sts 0x0065, r24
222: 80 93 64 00 sts 0x0064, r24
226: 1a b8 out 0x0a, r1 ; 10
228: 1b b8 out 0x0b, r1 ; 11
22a: 90 93 95 00 sts 0x0095, r25
22e: 85 e0 ldi r24, 0x05 ; 5
230: 89 b9 out 0x09, r24 ; 9
232: 10 92 90 00 sts 0x0090, r1
236: 88 e9 ldi r24, 0x98 ; 152
238: 8a b9 out 0x0a, r24 ; 10
23a: 8c e8 ldi r24, 0x8C ; 140
23c: 90 e0 ldi r25, 0x00 ; 0
23e: 0e 94 1c 02 call 0x438 ; 0x438 <AvrXRunTask>
242: 83 e9 ldi r24, 0x93 ; 147
244: 90 e0 ldi r25, 0x00 ; 0
246: 0e 94 1c 02 call 0x438 ; 0x438 <AvrXRunTask>
24a: 8a e9 ldi r24, 0x9A ; 154
24c: 90 e0 ldi r25, 0x00 ; 0
24e: 0e 94 1c 02 call 0x438 ; 0x438 <AvrXRunTask>
252: 0e 94 d7 01 call 0x3ae ; 0x3ae <Epilog>
256: ff cf rjmp .-2 ; 0x256 <main+0x6c>
00000258 <Key_DOWN>:
#include "includes.h"
unsigned char Key_DOWN(void)
{
unsigned char i;
DDRC=0x0F;
258: 8f e0 ldi r24, 0x0F ; 15
25a: 84 bb out 0x14, r24 ; 20
PORTC=0xFE;
25c: 8e ef ldi r24, 0xFE ; 254
25e: 85 bb out 0x15, r24 ; 21
260: 20 e0 ldi r18, 0x00 ; 0
262: 30 e0 ldi r19, 0x00 ; 0
264: 42 e1 ldi r20, 0x12 ; 18
266: 92 2f mov r25, r18
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
268: 84 2f mov r24, r20
26a: 8a 95 dec r24
26c: f1 f7 brne .-4 ; 0x26a <Key_DOWN+0x12>
for(i=0;i<=3;i++)
{
_delay_us(5);
if(!(PINC & 0x10))
26e: 9c 99 sbic 0x13, 4 ; 19
270: 04 c0 rjmp .+8 ; 0x27a <Key_DOWN+0x22>
{
return (i<<2)+1;
272: 99 0f add r25, r25
274: 99 0f add r25, r25
276: 9f 5f subi r25, 0xFF ; 255
278: 11 c0 rjmp .+34 ; 0x29c <Key_DOWN+0x44>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -