?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000000 00800100 0000122c 000012c0 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000122c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000024 00800100 00800100 000012c0 2**0
ALLOC
3 .noinit 00000000 00800124 00800124 000012c0 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000012c0 2**0
CONTENTS
5 .stab 00001830 00000000 00000000 000012c0 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000c22 00000000 00000000 00002af0 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c
4: 0c 94 63 00 jmp 0xc6
8: 0c 94 63 00 jmp 0xc6
c: 0c 94 63 00 jmp 0xc6
10: 0c 94 63 00 jmp 0xc6
14: 0c 94 63 00 jmp 0xc6
18: 0c 94 63 00 jmp 0xc6
1c: 0c 94 63 00 jmp 0xc6
20: 0c 94 f4 00 jmp 0x1e8
24: 0c 94 63 00 jmp 0xc6
28: 0c 94 63 00 jmp 0xc6
2c: 0c 94 63 00 jmp 0xc6
30: 0c 94 63 00 jmp 0xc6
34: 0c 94 63 00 jmp 0xc6
38: 0c 94 63 00 jmp 0xc6
3c: 0c 94 63 00 jmp 0xc6
40: 0c 94 63 00 jmp 0xc6
44: 0c 94 63 00 jmp 0xc6
48: 0c 94 65 00 jmp 0xca
4c: 0c 94 63 00 jmp 0xc6
50: 0c 94 63 00 jmp 0xc6
54: 0c 94 63 00 jmp 0xc6
58: 0c 94 63 00 jmp 0xc6
5c: 0c 94 63 00 jmp 0xc6
60: 0c 94 63 00 jmp 0xc6
64: 0c 94 63 00 jmp 0xc6
68: 0c 94 63 00 jmp 0xc6
6c: 0c 94 63 00 jmp 0xc6
70: 0c 94 63 00 jmp 0xc6
74: 0c 94 63 00 jmp 0xc6
78: 0c 94 63 00 jmp 0xc6
7c: 0c 94 63 00 jmp 0xc6
80: 0c 94 63 00 jmp 0xc6
84: 0c 94 63 00 jmp 0xc6
88: 0c 94 63 00 jmp 0xc6
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 11 e0 ldi r17, 0x01 ; 1
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: ec e2 ldi r30, 0x2C ; 44
a0: f2 e1 ldi r31, 0x12 ; 18
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac
000000a8 <.__do_copy_data_loop>:
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
000000ac <.__do_copy_data_start>:
ac: a0 30 cpi r26, 0x00 ; 0
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8
000000b2 <__do_clear_bss>:
b2: 11 e0 ldi r17, 0x01 ; 1
b4: a0 e0 ldi r26, 0x00 ; 0
b6: b1 e0 ldi r27, 0x01 ; 1
b8: 01 c0 rjmp .+2 ; 0xbc
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a4 32 cpi r26, 0x24 ; 36
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba
c2: 0c 94 48 02 jmp 0x490
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0
000000ca <__vector_18>:
uint16_t global_voltage_counter;//操作電壓地址計數(shù)器
uint8_t global_ad_finish_flag;//AD轉(zhuǎn)換結(jié)束標志
//串口接收中斷////////////////////////
SIGNAL(SIG_UART0_RECV)
{
ca: 1f 92 push r1
cc: 0f 92 push r0
ce: 0f b6 in r0, 0x3f ; 63
d0: 0f 92 push r0
d2: 11 24 eor r1, r1
d4: 2f 93 push r18
d6: 3f 93 push r19
d8: 4f 93 push r20
da: 5f 93 push r21
dc: 6f 93 push r22
de: 7f 93 push r23
e0: 8f 93 push r24
e2: 9f 93 push r25
e4: af 93 push r26
e6: bf 93 push r27
e8: ef 93 push r30
ea: ff 93 push r31
ec: cf 93 push r28
ee: df 93 push r29
f0: cd b7 in r28, 0x3d ; 61
f2: de b7 in r29, 0x3e ; 62
f4: 25 97 sbiw r28, 0x05 ; 5
f6: de bf out 0x3e, r29 ; 62
f8: cd bf out 0x3d, r28 ; 61
//變量定義
uint8_t temp_data;
uint16_t i;
//關(guān)全局中斷
cli();
fa: f8 94 cli
//等待接收到數(shù)據(jù)標志被置位
loop_until_bit_is_set(UCSR0A,RXC0);
fc: 80 91 2b 00 lds r24, 0x002B
100: 88 23 and r24, r24
102: e4 f7 brge .-8 ; 0xfc
//對接收到的字節(jié)進行判斷
temp_data=UDR0;//讀取接收的字節(jié)
104: 80 91 2c 00 lds r24, 0x002C
108: 89 83 std Y+1, r24 ; 0x01
if(temp_data!=0)//如果接收到非零
10a: 89 81 ldd r24, Y+1 ; 0x01
10c: 88 23 and r24, r24
10e: 09 f4 brne .+2 ; 0x112
110: 4e c0 rjmp .+156 ; 0x1ae
{
if(global_flag_serie==0)//如果接收到的為第一字節(jié)
112: 80 91 0f 01 lds r24, 0x010F
116: 88 23 and r24, r24
118: 51 f5 brne .+84 ; 0x16e
{
switch (temp_data)
11a: 89 81 ldd r24, Y+1 ; 0x01
11c: 28 2f mov r18, r24
11e: 33 27 eor r19, r19
120: 2c 83 std Y+4, r18 ; 0x04
122: 3d 83 std Y+5, r19 ; 0x05
124: 8c 81 ldd r24, Y+4 ; 0x04
126: 9d 81 ldd r25, Y+5 ; 0x05
128: 80 31 cpi r24, 0x10 ; 16
12a: 91 05 cpc r25, r1
12c: d1 f0 breq .+52 ; 0x162
12e: 2c 81 ldd r18, Y+4 ; 0x04
130: 3d 81 ldd r19, Y+5 ; 0x05
132: 21 31 cpi r18, 0x11 ; 17
134: 31 05 cpc r19, r1
136: 34 f4 brge .+12 ; 0x144
138: 8c 81 ldd r24, Y+4 ; 0x04
13a: 9d 81 ldd r25, Y+5 ; 0x05
13c: 82 30 cpi r24, 0x02 ; 2
13e: 91 05 cpc r25, r1
140: 39 f0 breq .+14 ; 0x150
142: 35 c0 rjmp .+106 ; 0x1ae
144: 2c 81 ldd r18, Y+4 ; 0x04
146: 3d 81 ldd r19, Y+5 ; 0x05
148: 22 32 cpi r18, 0x22 ; 34
14a: 31 05 cpc r19, r1
14c: 69 f0 breq .+26 ; 0x168
14e: 2f c0 rjmp .+94 ; 0x1ae
{
case 2://接到本機地址
global_flag_serie=1;//準備接收第二字節(jié)數(shù)據(jù)
150: 81 e0 ldi r24, 0x01 ; 1
152: 80 93 0f 01 sts 0x010F, r24
UCSR0A&=~(1<<MPCM0);//清零MPCM0,允許繼續(xù)接收數(shù)據(jù)包
156: 80 91 2b 00 lds r24, 0x002B
15a: 8e 7f andi r24, 0xFE ; 254
15c: 80 93 2b 00 sts 0x002B, r24
break;
160: 26 c0 rjmp .+76 ; 0x1ae
// case 0://接到復位命令
// global_start_sample_flag=0xff;//復位開始
// break;
case 0x10://接到采集命令
global_start_sample_flag=0;//開始采集數(shù)據(jù)
162: 10 92 17 01 sts 0x0117, r1
// sbi(PORTG,3);//測試用///////////////
break;
166: 23 c0 rjmp .+70 ; 0x1ae
// case 17://接到采集結(jié)束命令
// global_start_sample_flag=0xff;//結(jié)束采集數(shù)據(jù)
// break;
case 0x22://接收到自動測試信號
global_sample_mode_flag=0;
168: 10 92 14 01 sts 0x0114, r1
break;
16c: 20 c0 rjmp .+64 ; 0x1ae
default:
break;
}
}
else if((global_flag_serie==1)&&(temp_data<=32))//如果接收的是第二字節(jié)
16e: 80 91 0f 01 lds r24, 0x010F
172: 81 30 cpi r24, 0x01 ; 1
174: e1 f4 brne .+56 ; 0x1ae
176: 89 81 ldd r24, Y+1 ; 0x01
178: 81 32 cpi r24, 0x21 ; 33
17a: c8 f4 brcc .+50 ; 0x1ae
{
for(i=0;i<0xfff;i++){;}//延時等待
17c: 1a 82 std Y+2, r1 ; 0x02
17e: 1b 82 std Y+3, r1 ; 0x03
180: 8a 81 ldd r24, Y+2 ; 0x02
182: 9b 81 ldd r25, Y+3 ; 0x03
184: 3f e0 ldi r19, 0x0F ; 15
186: 8f 3f cpi r24, 0xFF ; 255
188: 93 07 cpc r25, r19
18a: 08 f0 brcs .+2 ; 0x18e
18c: 06 c0 rjmp .+12 ; 0x19a
18e: 8a 81 ldd r24, Y+2 ; 0x02
190: 9b 81 ldd r25, Y+3 ; 0x03
192: 01 96 adiw r24, 0x01 ; 1
194: 8a 83 std Y+2, r24 ; 0x02
196: 9b 83 std Y+3, r25 ; 0x03
198: f3 cf rjmp .-26 ; 0x180
SEND_ONE_PACKAGE(temp_data);//發(fā)送數(shù)據(jù)包,temp_data為包序號
19a: 89 81 ldd r24, Y+1 ; 0x01
19c: 0e 94 9a 06 call 0xd34
// if(temp_data==17){sbi(PORTG,3);}//測試用////////////
global_flag_serie=0;
1a0: 10 92 0f 01 sts 0x010F, r1
UCSR0A|=(1<<MPCM0);//準備接收地址
1a4: 80 91 2b 00 lds r24, 0x002B
1a8: 81 60 ori r24, 0x01 ; 1
1aa: 80 93 2b 00 sts 0x002B, r24
}
}
cbi(PORTE,2);//改為接收狀態(tài)
1ae: 80 91 23 00 lds r24, 0x0023
1b2: 8b 7f andi r24, 0xFB ; 251
1b4: 80 93 23 00 sts 0x0023, r24
sei();
1b8: 78 94 sei
}
1ba: 25 96 adiw r28, 0x05 ; 5
1bc: f8 94 cli
1be: de bf out 0x3e, r29 ; 62
1c0: cd bf out 0x3d, r28 ; 61
1c2: df 91 pop r29
1c4: cf 91 pop r28
1c6: ff 91 pop r31
1c8: ef 91 pop r30
1ca: bf 91 pop r27
1cc: af 91 pop r26
1ce: 9f 91 pop r25
1d0: 8f 91 pop r24
1d2: 7f 91 pop r23
1d4: 6f 91 pop r22
1d6: 5f 91 pop r21
1d8: 4f 91 pop r20
1da: 3f 91 pop r19
1dc: 2f 91 pop r18
1de: 0f 90 pop r0
1e0: 0f be out 0x3f, r0 ; 63
1e2: 0f 90 pop r0
1e4: 1f 90 pop r1
1e6: 18 95 reti
000001e8 <__vector_8>:
//AD轉(zhuǎn)換結(jié)束中斷int7//////////////////
SIGNAL(SIG_INTERRUPT7)
{
1e8: 1f 92 push r1
1ea: 0f 92 push r0
1ec: 0f b6 in r0, 0x3f ; 63
1ee: 0f 92 push r0
1f0: 11 24 eor r1, r1
1f2: 2f 93 push r18
1f4: 3f 93 push r19
1f6: 4f 93 push r20
1f8: 5f 93 push r21
1fa: 6f 93 push r22
1fc: 7f 93 push r23
1fe: 8f 93 push r24
200: 9f 93 push r25
202: af 93 push r26
204: bf 93 push r27
206: ef 93 push r30
208: ff 93 push r31
20a: cf 93 push r28
20c: df 93 push r29
20e: cd b7 in r28, 0x3d ; 61
210: de b7 in r29, 0x3e ; 62
212: 27 97 sbiw r28, 0x07 ; 7
214: de bf out 0x3e, r29 ; 62
216: cd bf out 0x3d, r28 ; 61
//變量定義
uint16_t int16_temp1;
uint8_t temp1,temp2,i;
//關(guān)中斷
cli();
218: f8 94 cli
//讀取ad轉(zhuǎn)換結(jié)果
int16_temp1=AD7891_READ();
21a: 0e 94 c6 04 call 0x98c
21e: 89 83 std Y+1, r24 ; 0x01
220: 9a 83 std Y+2, r25 ; 0x02
//如果是需要保存到RAM的采樣
if(global_sample_mode_flag==0xFF)
222: 80 91 14 01 lds r24, 0x0114
226: 8f 3f cpi r24, 0xFF ; 255
228: 09 f0 breq .+2 ; 0x22c
22a: 96 c0 rjmp .+300 ; 0x358
{
//AD7891 deselect,否則數(shù)據(jù)總線與RAM沖突
sbi(PORTD,5);
22c: 80 91 32 00 lds r24, 0x0032
230: 80 62 ori r24, 0x20 ; 32
232: 80 93 32 00 sts 0x0032, r24
//AD轉(zhuǎn)換結(jié)果存入RAM
temp1=int16_temp1/256;
236: 89 81 ldd r24, Y+1 ; 0x01
238: 9a 81 ldd r25, Y+2 ; 0x02
23a: 89 2f mov r24, r25
23c: 99 27 eor r25, r25
23e: 8b 83 std Y+3, r24 ; 0x03
temp2=int16_temp1%256;
240: 89 81 ldd r24, Y+1 ; 0x01
242: 9a 81 ldd r25, Y+2 ; 0x02
244: 90 70 andi r25, 0x00 ; 0
246: 8c 83 std Y+4, r24 ; 0x04
//保存數(shù)據(jù)
switch(global_channel_flag)
248: 80 91 00 01 lds r24, 0x0100
24c: 28 2f mov r18, r24
24e: 33 27 eor r19, r19
250: 2e 83 std Y+6, r18 ; 0x06
252: 3f 83 std Y+7, r19 ; 0x07
254: 8e 81 ldd r24, Y+6 ; 0x06
256: 9f 81 ldd r25, Y+7 ; 0x07
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -