📄 treater.lss
字号:
treater.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000002a8 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000006 00800060 000002a8 0000033c 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000008 00800066 00800066 00000342 2**0
ALLOC
3 .noinit 00000000 0080006e 0080006e 00000342 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000342 2**0
CONTENTS
5 .stab 000008a0 00000000 00000000 00000344 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 0000077b 00000000 00000000 00000be4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 09 c0 rjmp .+18 ; 0x14 <__ctors_end>
2: 21 c0 rjmp .+66 ; 0x46 <__bad_interrupt>
4: 20 c0 rjmp .+64 ; 0x46 <__bad_interrupt>
6: 20 c0 rjmp .+64 ; 0x48 <__vector_3>
8: 1e c0 rjmp .+60 ; 0x46 <__bad_interrupt>
a: 1d c0 rjmp .+58 ; 0x46 <__bad_interrupt>
c: 1c c0 rjmp .+56 ; 0x46 <__bad_interrupt>
e: 1b c0 rjmp .+54 ; 0x46 <__bad_interrupt>
10: 1a c0 rjmp .+52 ; 0x46 <__bad_interrupt>
12: 19 c0 rjmp .+50 ; 0x46 <__bad_interrupt>
00000014 <__ctors_end>:
14: 11 24 eor r1, r1
16: 1f be out 0x3f, r1 ; 63
18: cf e9 ldi r28, 0x9F ; 159
1a: cd bf out 0x3d, r28 ; 61
0000001c <__do_copy_data>:
1c: 10 e0 ldi r17, 0x00 ; 0
1e: a0 e6 ldi r26, 0x60 ; 96
20: b0 e0 ldi r27, 0x00 ; 0
22: e8 ea ldi r30, 0xA8 ; 168
24: f2 e0 ldi r31, 0x02 ; 2
26: 03 c0 rjmp .+6 ; 0x2e <.do_copy_data_start>
00000028 <.do_copy_data_loop>:
28: c8 95 lpm
2a: 31 96 adiw r30, 0x01 ; 1
2c: 0d 92 st X+, r0
0000002e <.do_copy_data_start>:
2e: a6 36 cpi r26, 0x66 ; 102
30: b1 07 cpc r27, r17
32: d1 f7 brne .-12 ; 0x28 <.do_copy_data_loop>
00000034 <__do_clear_bss>:
34: 10 e0 ldi r17, 0x00 ; 0
36: a6 e6 ldi r26, 0x66 ; 102
38: b0 e0 ldi r27, 0x00 ; 0
3a: 01 c0 rjmp .+2 ; 0x3e <.do_clear_bss_start>
0000003c <.do_clear_bss_loop>:
3c: 1d 92 st X+, r1
0000003e <.do_clear_bss_start>:
3e: ae 36 cpi r26, 0x6E ; 110
40: b1 07 cpc r27, r17
42: e1 f7 brne .-8 ; 0x3c <.do_clear_bss_loop>
44: 18 c1 rjmp .+560 ; 0x276 <main>
00000046 <__bad_interrupt>:
46: dc cf rjmp .-72 ; 0x0 <__vectors>
00000048 <__vector_3>:
#include <avr/interrupt.h>
#include <avr/sleep.h>
ISR(TIM0_OVF_vect)
{
48: 1f 92 push r1
4a: 0f 92 push r0
4c: 0f b6 in r0, 0x3f ; 63
4e: 0f 92 push r0
50: 11 24 eor r1, r1
52: 2f 93 push r18
54: 3f 93 push r19
56: 4f 93 push r20
58: 5f 93 push r21
5a: 8f 93 push r24
5c: 9f 93 push r25
5e: af 93 push r26
60: bf 93 push r27
static unsigned char pulse = 0;
static unsigned int envelope = 0;
static unsigned char enval = 255;
static unsigned char endrv = 255;
static long temp;
static unsigned char acosum = 0;
static unsigned long timeout = 67500000L;
if(timeout > 0) --timeout;
62: 80 91 62 00 lds r24, 0x0062
66: 90 91 63 00 lds r25, 0x0063
6a: a0 91 64 00 lds r26, 0x0064
6e: b0 91 65 00 lds r27, 0x0065
72: 00 97 sbiw r24, 0x00 ; 0
74: a1 05 cpc r26, r1
76: b1 05 cpc r27, r1
78: 59 f0 breq .+22 ; 0x90 <__vector_3+0x48>
7a: 01 97 sbiw r24, 0x01 ; 1
7c: a1 09 sbc r26, r1
7e: b1 09 sbc r27, r1
80: 80 93 62 00 sts 0x0062, r24
84: 90 93 63 00 sts 0x0063, r25
88: a0 93 64 00 sts 0x0064, r26
8c: b0 93 65 00 sts 0x0065, r27
if((pulse < 102) || (timeout == 0)) PORTB &= ~(1 << PB2);
90: 30 91 66 00 lds r19, 0x0066
94: 36 36 cpi r19, 0x66 ; 102
96: 60 f0 brcs .+24 ; 0xb0 <__stack+0x11>
98: 80 91 62 00 lds r24, 0x0062
9c: 90 91 63 00 lds r25, 0x0063
a0: a0 91 64 00 lds r26, 0x0064
a4: b0 91 65 00 lds r27, 0x0065
a8: 00 97 sbiw r24, 0x00 ; 0
aa: a1 05 cpc r26, r1
ac: b1 05 cpc r27, r1
ae: 11 f4 brne .+4 ; 0xb4 <__stack+0x15>
b0: c2 98 cbi 0x18, 2 ; 24
b2: 01 c0 rjmp .+2 ; 0xb6 <__stack+0x17>
else PORTB |= (1 << PB2);
b4: c2 9a sbi 0x18, 2 ; 24
acosum += (ACSR & (1 << ACO)) >> ACO;
b6: 88 b1 in r24, 0x08 ; 8
b8: 99 27 eor r25, r25
ba: 80 72 andi r24, 0x20 ; 32
bc: 90 70 andi r25, 0x00 ; 0
be: 45 e0 ldi r20, 0x05 ; 5
c0: 95 95 asr r25
c2: 87 95 ror r24
c4: 4a 95 dec r20
c6: e1 f7 brne .-8 ; 0xc0 <__stack+0x21>
c8: 20 91 6d 00 lds r18, 0x006D
cc: 28 0f add r18, r24
ce: 20 93 6d 00 sts 0x006D, r18
if(++pulse == 106)
d2: 83 2f mov r24, r19
d4: 8f 5f subi r24, 0xFF ; 255
d6: 80 93 66 00 sts 0x0066, r24
da: 8a 36 cpi r24, 0x6A ; 106
dc: 09 f0 breq .+2 ; 0xe0 <__stack+0x41>
de: be c0 rjmp .+380 ; 0x25c <__stack+0x1bd>
{
pulse = 0;
e0: 10 92 66 00 sts 0x0066, r1
if(envelope < 45) endrv = 255;
e4: 80 91 67 00 lds r24, 0x0067
e8: 90 91 68 00 lds r25, 0x0068
ec: 8d 32 cpi r24, 0x2D ; 45
ee: 91 05 cpc r25, r1
f0: d8 f1 brcs .+118 ; 0x168 <__stack+0xc9>
else if(envelope < 65) endrv = 0;
f2: 81 34 cpi r24, 0x41 ; 65
f4: 91 05 cpc r25, r1
f6: 60 f0 brcs .+24 ; 0x110 <__stack+0x71>
else if(envelope < 95) endrv = 60;
f8: 8f 35 cpi r24, 0x5F ; 95
fa: 91 05 cpc r25, r1
fc: 10 f4 brcc .+4 ; 0x102 <__stack+0x63>
fe: 8c e3 ldi r24, 0x3C ; 60
100: 34 c0 rjmp .+104 ; 0x16a <__stack+0xcb>
else if(envelope < 140) endrv = 40;
102: 8c 38 cpi r24, 0x8C ; 140
104: 91 05 cpc r25, r1
106: 58 f0 brcs .+22 ; 0x11e <__stack+0x7f>
else if(envelope < 335) endrv = 0;
108: 21 e0 ldi r18, 0x01 ; 1
10a: 8f 34 cpi r24, 0x4F ; 79
10c: 92 07 cpc r25, r18
10e: 18 f4 brcc .+6 ; 0x116 <__stack+0x77>
110: 10 92 61 00 sts 0x0061, r1
114: 2c c0 rjmp .+88 ; 0x16e <__stack+0xcf>
else if(envelope < 340) endrv = 40;
116: 21 e0 ldi r18, 0x01 ; 1
118: 84 35 cpi r24, 0x54 ; 84
11a: 92 07 cpc r25, r18
11c: 10 f4 brcc .+4 ; 0x122 <__stack+0x83>
11e: 88 e2 ldi r24, 0x28 ; 40
120: 24 c0 rjmp .+72 ; 0x16a <__stack+0xcb>
else if(envelope < 400) endrv = 75;
122: 21 e0 ldi r18, 0x01 ; 1
124: 80 39 cpi r24, 0x90 ; 144
126: 92 07 cpc r25, r18
128: 10 f4 brcc .+4 ; 0x12e <__stack+0x8f>
12a: 8b e4 ldi r24, 0x4B ; 75
12c: 1e c0 rjmp .+60 ; 0x16a <__stack+0xcb>
else if(envelope < 440) endrv = 90;
12e: 21 e0 ldi r18, 0x01 ; 1
130: 88 3b cpi r24, 0xB8 ; 184
132: 92 07 cpc r25, r18
134: 10 f4 brcc .+4 ; 0x13a <__stack+0x9b>
136: 8a e5 ldi r24, 0x5A ; 90
138: 18 c0 rjmp .+48 ; 0x16a <__stack+0xcb>
else if(envelope < 480) endrv = 110;
13a: 21 e0 ldi r18, 0x01 ; 1
13c: 80 3e cpi r24, 0xE0 ; 224
13e: 92 07 cpc r25, r18
140: 10 f4 brcc .+4 ; 0x146 <__stack+0xa7>
142: 8e e6 ldi r24, 0x6E ; 110
144: 12 c0 rjmp .+36 ; 0x16a <__stack+0xcb>
else if(envelope < 490) endrv = 180;
146: 21 e0 ldi r18, 0x01 ; 1
148: 8a 3e cpi r24, 0xEA ; 234
14a: 92 07 cpc r25, r18
14c: 10 f4 brcc .+4 ; 0x152 <__stack+0xb3>
14e: 84 eb ldi r24, 0xB4 ; 180
150: 0c c0 rjmp .+24 ; 0x16a <__stack+0xcb>
else if(envelope < 510) endrv = 190;
152: 21 e0 ldi r18, 0x01 ; 1
154: 8e 3f cpi r24, 0xFE ; 254
156: 92 07 cpc r25, r18
158: 10 f4 brcc .+4 ; 0x15e <__stack+0xbf>
15a: 8e eb ldi r24, 0xBE ; 190
15c: 06 c0 rjmp .+12 ; 0x16a <__stack+0xcb>
else if(envelope < 530) endrv = 200;
15e: 82 51 subi r24, 0x12 ; 18
160: 92 40 sbci r25, 0x02 ; 2
162: 10 f4 brcc .+4 ; 0x168 <__stack+0xc9>
164: 88 ec ldi r24, 0xC8 ; 200
166: 01 c0 rjmp .+2 ; 0x16a <__stack+0xcb>
else endrv = 255;
168: 8f ef ldi r24, 0xFF ; 255
16a: 80 93 61 00 sts 0x0061, r24
temp = temp + (endrv - enval);
16e: 80 91 61 00 lds r24, 0x0061
172: 99 27 eor r25, r25
174: 20 91 60 00 lds r18, 0x0060
178: 82 1b sub r24, r18
17a: 91 09 sbc r25, r1
17c: 28 2f mov r18, r24
17e: 39 2f mov r19, r25
180: 44 27 eor r20, r20
182: 37 fd sbrc r19, 7
184: 40 95 com r20
186: 54 2f mov r21, r20
188: 80 91 69 00 lds r24, 0x0069
18c: 90 91 6a 00 lds r25, 0x006A
190: a0 91 6b 00 lds r26, 0x006B
194: b0 91 6c 00 lds r27, 0x006C
198: 82 0f add r24, r18
19a: 93 1f adc r25, r19
19c: a4 1f adc r26, r20
19e: b5 1f adc r27, r21
1a0: 80 93 69 00 sts 0x0069, r24
1a4: 90 93 6a 00 sts 0x006A, r25
1a8: a0 93 6b 00 sts 0x006B, r26
1ac: b0 93 6c 00 sts 0x006C, r27
enval = temp >> 5;
1b0: 25 e0 ldi r18, 0x05 ; 5
1b2: b5 95 asr r27
1b4: a7 95 ror r26
1b6: 97 95 ror r25
1b8: 87 95 ror r24
1ba: 2a 95 dec r18
1bc: d1 f7 brne .-12 ; 0x1b2 <__stack+0x113>
1be: 80 93 60 00 sts 0x0060, r24
if((acosum > 50) || (timeout == 0))
1c2: 80 91 6d 00 lds r24, 0x006D
1c6: 83 33 cpi r24, 0x33 ; 51
1c8: 60 f4 brcc .+24 ; 0x1e2 <__stack+0x143>
1ca: 80 91 62 00 lds r24, 0x0062
1ce: 90 91 63 00 lds r25, 0x0063
1d2: a0 91 64 00 lds r26, 0x0064
1d6: b0 91 65 00 lds r27, 0x0065
1da: 00 97 sbiw r24, 0x00 ; 0
1dc: a1 05 cpc r26, r1
1de: b1 05 cpc r27, r1
1e0: c9 f4 brne .+50 ; 0x214 <__stack+0x175>
{
if(envelope < ((timeout)?272:520)) PORTB &= ~(1 << PB3);
1e2: 80 91 62 00 lds r24, 0x0062
1e6: 90 91 63 00 lds r25, 0x0063
1ea: a0 91 64 00 lds r26, 0x0064
1ee: b0 91 65 00 lds r27, 0x0065
1f2: 20 91 67 00 lds r18, 0x0067
1f6: 30 91 68 00 lds r19, 0x0068
1fa: 00 97 sbiw r24, 0x00 ; 0
1fc: a1 05 cpc r26, r1
1fe: b1 05 cpc r27, r1
200: 21 f0 breq .+8 ; 0x20a <__stack+0x16b>
202: 20 51 subi r18, 0x10 ; 16
204: 31 40 sbci r19, 0x01 ; 1
206: 20 f0 brcs .+8 ; 0x210 <__stack+0x171>
208: 05 c0 rjmp .+10 ; 0x214 <__stack+0x175>
20a: 28 50 subi r18, 0x08 ; 8
20c: 32 40 sbci r19, 0x02 ; 2
20e: 10 f4 brcc .+4 ; 0x214 <__stack+0x175>
210: c3 98 cbi 0x18, 3 ; 24
212: 01 c0 rjmp .+2 ; 0x216 <__stack+0x177>
else PORTB |= (1 << PB3);
}
else PORTB |= (1 << PB3);
214: c3 9a sbi 0x18, 3 ; 24
acosum = 0;
216: 10 92 6d 00 sts 0x006D, r1
if(++envelope == 544)
21a: 80 91 67 00 lds r24, 0x0067
21e: 90 91 68 00 lds r25, 0x0068
222: 01 96 adiw r24, 0x01 ; 1
224: 90 93 68 00 sts 0x0068, r25
228: 80 93 67 00 sts 0x0067, r24
22c: 80 52 subi r24, 0x20 ; 32
22e: 92 40 sbci r25, 0x02 ; 2
230: 21 f4 brne .+8 ; 0x23a <__stack+0x19b>
{
envelope = 0;
232: 10 92 68 00 sts 0x0068, r1
236: 10 92 67 00 sts 0x0067, r1
}
OCR0A = (timeout) ? enval : 255;
23a: 80 91 62 00 lds r24, 0x0062
23e: 90 91 63 00 lds r25, 0x0063
242: a0 91 64 00 lds r26, 0x0064
246: b0 91 65 00 lds r27, 0x0065
24a: 00 97 sbiw r24, 0x00 ; 0
24c: a1 05 cpc r26, r1
24e: b1 05 cpc r27, r1
250: 19 f0 breq .+6 ; 0x258 <__stack+0x1b9>
252: 80 91 60 00 lds r24, 0x0060
256: 01 c0 rjmp .+2 ; 0x25a <__stack+0x1bb>
258: 8f ef ldi r24, 0xFF ; 255
25a: 86 bf out 0x36, r24 ; 54
25c: bf 91 pop r27
25e: af 91 pop r26
260: 9f 91 pop r25
262: 8f 91 pop r24
264: 5f 91 pop r21
266: 4f 91 pop r20
268: 3f 91 pop r19
26a: 2f 91 pop r18
26c: 0f 90 pop r0
26e: 0f be out 0x3f, r0 ; 63
270: 0f 90 pop r0
272: 1f 90 pop r1
274: 18 95 reti
00000276 <main>:
}
}
int main(void)
{
276: cf e9 ldi r28, 0x9F ; 159
278: d0 e0 ldi r29, 0x00 ; 0
27a: de bf out 0x3e, r29 ; 62
27c: cd bf out 0x3d, r28 ; 61
ACSR = 0x40;
27e: 80 e4 ldi r24, 0x40 ; 64
280: 88 b9 out 0x08, r24 ; 8
TCCR0A = 0xc3;
282: 83 ec ldi r24, 0xC3 ; 195
284: 8f bd out 0x2f, r24 ; 47
TCCR0B = 0x01;
286: 81 e0 ldi r24, 0x01 ; 1
288: 83 bf out 0x33, r24 ; 51
OCR0A = 0xff;
28a: 8f ef ldi r24, 0xFF ; 255
28c: 86 bf out 0x36, r24 ; 54
DDRB = 0x0d;
28e: 8d e0 ldi r24, 0x0D ; 13
290: 87 bb out 0x17, r24 ; 23
TIMSK0 = 0x02;
292: 82 e0 ldi r24, 0x02 ; 2
294: 89 bf out 0x39, r24 ; 57
sei();
296: 78 94 sei
for (;;)
{
sleep_mode();
298: 85 b7 in r24, 0x35 ; 53
29a: 80 62 ori r24, 0x20 ; 32
29c: 85 bf out 0x35, r24 ; 53
29e: 88 95 sleep
2a0: 85 b7 in r24, 0x35 ; 53
2a2: 8f 7d andi r24, 0xDF ; 223
2a4: 85 bf out 0x35, r24 ; 53
2a6: f8 cf rjmp .-16 ; 0x298 <main+0x22>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -