📄 change.lss
字号:
change.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000836 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000004 00800060 00000836 000008ca 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 0000001a 00800064 00800064 000008ce 2**0
ALLOC
3 .noinit 00000000 0080007e 0080007e 000008ce 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000008ce 2**0
CONTENTS
5 .stab 00001440 00000000 00000000 000008d0 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000ab0 00000000 00000000 00001d10 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 67 c2 rjmp .+1230 ; 0x4d2 <__vector_1>
4: 83 c2 rjmp .+1286 ; 0x50c <__vector_2>
6: 38 c1 rjmp .+624 ; 0x278 <__vector_3>
8: 28 c0 rjmp .+80 ; 0x5a <__bad_interrupt>
a: 27 c0 rjmp .+78 ; 0x5a <__bad_interrupt>
c: 26 c0 rjmp .+76 ; 0x5a <__bad_interrupt>
e: 25 c0 rjmp .+74 ; 0x5a <__bad_interrupt>
10: 24 c0 rjmp .+72 ; 0x5a <__bad_interrupt>
12: 23 c0 rjmp .+70 ; 0x5a <__bad_interrupt>
14: 22 c0 rjmp .+68 ; 0x5a <__bad_interrupt>
16: 21 c0 rjmp .+66 ; 0x5a <__bad_interrupt>
18: 20 c0 rjmp .+64 ; 0x5a <__bad_interrupt>
1a: 1f c0 rjmp .+62 ; 0x5a <__bad_interrupt>
1c: 51 c0 rjmp .+162 ; 0xc0 <__vector_14>
1e: 1d c0 rjmp .+58 ; 0x5a <__bad_interrupt>
20: 1c c0 rjmp .+56 ; 0x5a <__bad_interrupt>
22: 1b c0 rjmp .+54 ; 0x5a <__bad_interrupt>
24: 1a c0 rjmp .+52 ; 0x5a <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
00000032 <__do_copy_data>:
32: 10 e0 ldi r17, 0x00 ; 0
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: e6 e3 ldi r30, 0x36 ; 54
3a: f8 e0 ldi r31, 0x08 ; 8
3c: 02 c0 rjmp .+4 ; 0x42 <.do_copy_data_start>
0000003e <.do_copy_data_loop>:
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
00000042 <.do_copy_data_start>:
42: a4 36 cpi r26, 0x64 ; 100
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e <.do_copy_data_loop>
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a4 e6 ldi r26, 0x64 ; 100
4c: b0 e0 ldi r27, 0x00 ; 0
4e: 01 c0 rjmp .+2 ; 0x52 <.do_clear_bss_start>
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
00000052 <.do_clear_bss_start>:
52: ae 37 cpi r26, 0x7E ; 126
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop>
58: c2 c2 rjmp .+1412 ; 0x5de <main>
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0 <__vectors>
0000005c <delay>:
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
5c: 9c 01 movw r18, r24
5e: 21 50 subi r18, 0x01 ; 1
60: 30 40 sbci r19, 0x00 ; 0
62: 8f ef ldi r24, 0xFF ; 255
64: 2f 3f cpi r18, 0xFF ; 255
66: 38 07 cpc r19, r24
68: 29 f0 breq .+10 ; 0x74 <delay+0x18>
6a: 88 ea ldi r24, 0xA8 ; 168
6c: 97 e0 ldi r25, 0x07 ; 7
6e: 01 97 sbiw r24, 0x01 ; 1
70: f1 f7 brne .-4 ; 0x6e <delay+0x12>
72: f5 cf rjmp .-22 ; 0x5e <delay+0x2>
74: 08 95 ret
00000076 <s_ini>:
void s_ini(void)
{
OSCCAL= 0xBF;
76: 8f eb ldi r24, 0xBF ; 191
78: 81 bf out 0x31, r24 ; 49
PORTB = 0x2A;
7a: 8a e2 ldi r24, 0x2A ; 42
7c: 88 bb out 0x18, r24 ; 24
DDRB = 0xff;
7e: 8f ef ldi r24, 0xFF ; 255
80: 87 bb out 0x17, r24 ; 23
PORTC = 0x20;
82: 80 e2 ldi r24, 0x20 ; 32
84: 85 bb out 0x15, r24 ; 21
DDRC = 0x30;
86: 80 e3 ldi r24, 0x30 ; 48
88: 84 bb out 0x14, r24 ; 20
PORTD = 0x00;
8a: 12 ba out 0x12, r1 ; 18
DDRD = 0x01;
8c: 81 e0 ldi r24, 0x01 ; 1
8e: 81 bb out 0x11, r24 ; 17
MCUCR = 0x0E; //INT1 raising edg cause intterupt, INT0 falling edg
90: 8e e0 ldi r24, 0x0E ; 14
92: 85 bf out 0x35, r24 ; 53
GICR = 0xC0; //enable INT1,INT0
94: 90 ec ldi r25, 0xC0 ; 192
96: 9b bf out 0x3b, r25 ; 59
ADCSRA= 0xED; //enabel ADC, enable interrupt, ADCck=fck/128
98: 8d ee ldi r24, 0xED ; 237
9a: 86 b9 out 0x06, r24 ; 6
ADMUX = 0xc0; //CH0
9c: 97 b9 out 0x07, r25 ; 7
TCCR2 = 0x0f;
9e: 8f e0 ldi r24, 0x0F ; 15
a0: 85 bd out 0x25, r24 ; 37
OCR2 = 77; //timer for 10mS
a2: 8d e4 ldi r24, 0x4D ; 77
a4: 83 bd out 0x23, r24 ; 35
TIMSK = 0x80; //enable intterrupt
a6: 80 e8 ldi r24, 0x80 ; 128
a8: 89 bf out 0x39, r24 ; 57
UCSRB = 0x00; //serial port setting
aa: 1a b8 out 0x0a, r1 ; 10
UCSRA = 0x00;
ac: 1b b8 out 0x0b, r1 ; 11
UCSRC = 0x80 | 0x06;
ae: 86 e8 ldi r24, 0x86 ; 134
b0: 80 bd out 0x20, r24 ; 32
UBRRL = 51; //set baud rate lo baud rate=9600, fck=8.00MHz
b2: 83 e3 ldi r24, 0x33 ; 51
b4: 89 b9 out 0x09, r24 ; 9
UBRRH = 0x00; //set baud rate hi
b6: 10 bc out 0x20, r1 ; 32
UCSRB = 0x08; //enable to sent receive and 8 bits per bits//*/
b8: 88 e0 ldi r24, 0x08 ; 8
ba: 8a b9 out 0x0a, r24 ; 10
sei();
bc: 78 94 sei
be: 08 95 ret
000000c0 <__vector_14>:
}
SIGNAL(SIG_ADC) //adc interrupt
{
c0: 1f 92 push r1
c2: 0f 92 push r0
c4: 0f b6 in r0, 0x3f ; 63
c6: 0f 92 push r0
c8: 11 24 eor r1, r1
ca: 2f 93 push r18
cc: 3f 93 push r19
ce: 5f 93 push r21
d0: 6f 93 push r22
d2: 7f 93 push r23
d4: 8f 93 push r24
d6: 9f 93 push r25
d8: af 93 push r26
da: bf 93 push r27
uint tmp;
if(((ringtime<395)&&(ringtime>375))||((ringtime<270)&&(ringtime>250))
dc: 80 91 60 00 lds r24, 0x0060
e0: 90 91 61 00 lds r25, 0x0061
e4: 8b 58 subi r24, 0x8B ; 139
e6: 91 40 sbci r25, 0x01 ; 1
e8: 38 f4 brcc .+14 ; 0xf8 <__vector_14+0x38>
ea: 80 91 60 00 lds r24, 0x0060
ee: 90 91 61 00 lds r25, 0x0061
f2: 88 57 subi r24, 0x78 ; 120
f4: 91 40 sbci r25, 0x01 ; 1
f6: 50 f5 brcc .+84 ; 0x14c <__vector_14+0x8c>
f8: 80 91 60 00 lds r24, 0x0060
fc: 90 91 61 00 lds r25, 0x0061
100: 8e 50 subi r24, 0x0E ; 14
102: 91 40 sbci r25, 0x01 ; 1
104: 38 f4 brcc .+14 ; 0x114 <__vector_14+0x54>
106: 80 91 60 00 lds r24, 0x0060
10a: 90 91 61 00 lds r25, 0x0061
10e: 8b 3f cpi r24, 0xFB ; 251
110: 91 05 cpc r25, r1
112: e0 f4 brcc .+56 ; 0x14c <__vector_14+0x8c>
114: 80 91 60 00 lds r24, 0x0060
118: 90 91 61 00 lds r25, 0x0061
11c: 81 39 cpi r24, 0x91 ; 145
11e: 91 05 cpc r25, r1
120: 38 f4 brcc .+14 ; 0x130 <__vector_14+0x70>
122: 80 91 60 00 lds r24, 0x0060
126: 90 91 61 00 lds r25, 0x0061
12a: 8e 37 cpi r24, 0x7E ; 126
12c: 91 05 cpc r25, r1
12e: 70 f4 brcc .+28 ; 0x14c <__vector_14+0x8c>
130: 80 91 60 00 lds r24, 0x0060
134: 90 91 61 00 lds r25, 0x0061
138: 44 97 sbiw r24, 0x14 ; 20
13a: 08 f0 brcs .+2 ; 0x13e <__vector_14+0x7e>
13c: 8d c0 rjmp .+282 ; 0x258 <__vector_14+0x198>
13e: 80 91 60 00 lds r24, 0x0060
142: 90 91 61 00 lds r25, 0x0061
146: 89 2b or r24, r25
148: 09 f4 brne .+2 ; 0x14c <__vector_14+0x8c>
14a: 86 c0 rjmp .+268 ; 0x258 <__vector_14+0x198>
||((ringtime<145)&&(ringtime>125)) || ((ringtime<20)&&(ringtime>0))) //铃响期间不进行摘机检测
{
adadd+=ADC; //
14c: 80 91 7c 00 lds r24, 0x007C
150: 90 91 7d 00 lds r25, 0x007D
154: 24 b1 in r18, 0x04 ; 4
156: 35 b1 in r19, 0x05 ; 5
158: 82 0f add r24, r18
15a: 93 1f adc r25, r19
15c: 90 93 7d 00 sts 0x007D, r25
160: 80 93 7c 00 sts 0x007C, r24
adcou--;
164: 80 91 62 00 lds r24, 0x0062
168: 81 50 subi r24, 0x01 ; 1
16a: 80 93 62 00 sts 0x0062, r24
if(adcou==0) //完成ADC0,切换到ADC3
16e: 20 91 62 00 lds r18, 0x0062
172: 22 23 and r18, r18
174: b1 f4 brne .+44 ; 0x1a2 <__vector_14+0xe2>
{
adcou=240;
176: 80 ef ldi r24, 0xF0 ; 240
178: 80 93 62 00 sts 0x0062, r24
ADMUX=0xC3;
17c: 83 ec ldi r24, 0xC3 ; 195
17e: 87 b9 out 0x07, r24 ; 7
if((adadd/50)>GATE) //取结果
180: 80 91 7c 00 lds r24, 0x007C
184: 90 91 7d 00 lds r25, 0x007D
188: 62 e3 ldi r22, 0x32 ; 50
18a: 70 e0 ldi r23, 0x00 ; 0
18c: 40 d3 rcall .+1664 ; 0x80e <__udivmodhi4>
18e: 65 31 cpi r22, 0x15 ; 21
190: 71 05 cpc r23, r1
192: 20 f0 brcs .+8 ; 0x19c <__vector_14+0xdc>
hu[3]=1;
194: 81 e0 ldi r24, 0x01 ; 1
196: 80 93 7b 00 sts 0x007B, r24
19a: 60 c0 rjmp .+192 ; 0x25c <__vector_14+0x19c>
else
hu[3]=0;
19c: 20 93 7b 00 sts 0x007B, r18
1a0: 5d c0 rjmp .+186 ; 0x25c <__vector_14+0x19c>
}
else if(adcou==230) //开始记录ADC3
1a2: 80 91 62 00 lds r24, 0x0062
1a6: 86 3e cpi r24, 0xE6 ; 230
1a8: 09 f4 brne .+2 ; 0x1ac <__vector_14+0xec>
1aa: 51 c0 rjmp .+162 ; 0x24e <__vector_14+0x18e>
{
adadd=0;
}
else if(adcou==180) //完成ADC3,切换到ADC2
1ac: 80 91 62 00 lds r24, 0x0062
1b0: 84 3b cpi r24, 0xB4 ; 180
1b2: 99 f4 brne .+38 ; 0x1da <__vector_14+0x11a>
{
ADMUX=0xc2;
1b4: 82 ec ldi r24, 0xC2 ; 194
1b6: 87 b9 out 0x07, r24 ; 7
if((adadd/50)>GATE) //取结果
1b8: 80 91 7c 00 lds r24, 0x007C
1bc: 90 91 7d 00 lds r25, 0x007D
1c0: 62 e3 ldi r22, 0x32 ; 50
1c2: 70 e0 ldi r23, 0x00 ; 0
1c4: 24 d3 rcall .+1608 ; 0x80e <__udivmodhi4>
1c6: 65 31 cpi r22, 0x15 ; 21
1c8: 71 05 cpc r23, r1
1ca: 20 f0 brcs .+8 ; 0x1d4 <__vector_14+0x114>
hu[0]=1;
1cc: 81 e0 ldi r24, 0x01 ; 1
1ce: 80 93 78 00 sts 0x0078, r24
1d2: 44 c0 rjmp .+136 ; 0x25c <__vector_14+0x19c>
else
hu[0]=0;
1d4: 10 92 78 00 sts 0x0078, r1
1d8: 41 c0 rjmp .+130 ; 0x25c <__vector_14+0x19c>
}
else if(adcou==170) //开始记录ADC2
1da: 80 91 62 00 lds r24, 0x0062
1de: 8a 3a cpi r24, 0xAA ; 170
1e0: b1 f1 breq .+108 ; 0x24e <__vector_14+0x18e>
{
adadd=0;
}
else if(adcou==120) //完成ADC2, 切换到ADC1
1e2: 80 91 62 00 lds r24, 0x0062
1e6: 88 37 cpi r24, 0x78 ; 120
1e8: 99 f4 brne .+38 ; 0x210 <__vector_14+0x150>
{
ADMUX=0xc1;
1ea: 81 ec ldi r24, 0xC1 ; 193
1ec: 87 b9 out 0x07, r24 ; 7
if((adadd/50)>GATE) //取结果
1ee: 80 91 7c 00 lds r24, 0x007C
1f2: 90 91 7d 00 lds r25, 0x007D
1f6: 62 e3 ldi r22, 0x32 ; 50
1f8: 70 e0 ldi r23, 0x00 ; 0
1fa: 09 d3 rcall .+1554 ; 0x80e <__udivmodhi4>
1fc: 65 31 cpi r22, 0x15 ; 21
1fe: 71 05 cpc r23, r1
200: 20 f0 brcs .+8 ; 0x20a <__vector_14+0x14a>
hu[1]=1;
202: 81 e0 ldi r24, 0x01 ; 1
204: 80 93 79 00 sts 0x0079, r24
208: 29 c0 rjmp .+82 ; 0x25c <__vector_14+0x19c>
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -