?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000348 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000348 000003dc 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000010 00800060 00800060 000003dc 2**0
ALLOC
3 .noinit 00000000 00800070 00800070 000003dc 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000003dc 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 000003dc 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000748 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 000007cc 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000046 00000000 00000000 000007e0 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 000001d0 00000000 00000000 00000826 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 0000010c 00000000 00000000 000009f6 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 0000015c 00000000 00000000 00000b02 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000000b6 00000000 00000000 00000c5e 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 2b c0 rjmp .+86 ; 0x5a <__bad_interrupt>
4: 2a c0 rjmp .+84 ; 0x5a <__bad_interrupt>
6: 29 c0 rjmp .+82 ; 0x5a <__bad_interrupt>
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: 1e c0 rjmp .+60 ; 0x5a <__bad_interrupt>
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: e8 e4 ldi r30, 0x48 ; 72
3a: f3 e0 ldi r31, 0x03 ; 3
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: a0 36 cpi r26, 0x60 ; 96
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: a0 e6 ldi r26, 0x60 ; 96
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: a0 37 cpi r26, 0x70 ; 112
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop>
58: 3a c0 rjmp .+116 ; 0xce <main>
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0 <__vectors>
0000005c <delayMS>:
#define uchar unsigned char
uint RESULT_BUFF[8];
void delayMS(uint t)
{
5c: 9c 01 movw r18, r24
uint m=0;
5e: 40 e0 ldi r20, 0x00 ; 0
60: 50 e0 ldi r21, 0x00 ; 0
for(;m<t;t++)
62: 42 17 cp r20, r18
64: 53 07 cpc r21, r19
66: 38 f4 brcc .+14 ; 0x76 <delayMS+0x1a>
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
68: 88 ee ldi r24, 0xE8 ; 232
6a: 93 e0 ldi r25, 0x03 ; 3
__asm__ volatile (
6c: 01 97 sbiw r24, 0x01 ; 1
6e: f1 f7 brne .-4 ; 0x6c <delayMS+0x10>
70: 2f 5f subi r18, 0xFF ; 255
72: 3f 4f sbci r19, 0xFF ; 255
74: f6 cf rjmp .-20 ; 0x62 <delayMS+0x6>
76: 08 95 ret
00000078 <AdcConvert>:
_delay_loop_2(250*4);
}
unsigned int AdcConvert(void)
{
unsigned int i;
unsigned int ret;
// ADMUX=0xc0; ///內(nèi)部2.56v參考電壓,通道0
ADCSRA|=_BV(ADEN); //使能ADC,單次轉(zhuǎn)換模式
78: 37 9a sbi 0x06, 7 ; 6
7a: e0 e6 ldi r30, 0x60 ; 96
7c: f0 e0 ldi r31, 0x00 ; 0
///連續(xù)轉(zhuǎn)換8次
for(i=0;i<8;i++)
{
ADCSRA|=_BV(ADSC);
7e: 36 9a sbi 0x06, 6 ; 6
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
80: 8c e3 ldi r24, 0x3C ; 60
__asm__ volatile (
82: 8a 95 dec r24
84: f1 f7 brne .-4 ; 0x82 <AdcConvert+0xa>
_delay_loop_1(60);
ret=(uint)ADCL;
86: 84 b1 in r24, 0x04 ; 4
88: 28 2f mov r18, r24
8a: 33 27 eor r19, r19
ret|=(uint)(ADCH<<8);
8c: 85 b1 in r24, 0x05 ; 5
8e: 99 27 eor r25, r25
90: 98 2f mov r25, r24
92: 88 27 eor r24, r24
94: 28 2b or r18, r24
96: 39 2b or r19, r25
RESULT_BUFF[i]=ret;
98: 21 93 st Z+, r18
9a: 31 93 st Z+, r19
9c: 80 e0 ldi r24, 0x00 ; 0
9e: ee 36 cpi r30, 0x6E ; 110
a0: f8 07 cpc r31, r24
a2: 69 f3 breq .-38 ; 0x7e <AdcConvert+0x6>
a4: 60 f3 brcs .-40 ; 0x7e <AdcConvert+0x6>
}
ret=0;
a6: 20 e0 ldi r18, 0x00 ; 0
a8: 30 e0 ldi r19, 0x00 ; 0
aa: e2 e6 ldi r30, 0x62 ; 98
ac: f0 e0 ldi r31, 0x00 ; 0
for(i=1;i<8;i++)
{
ret+=RESULT_BUFF[i];
ae: 81 91 ld r24, Z+
b0: 91 91 ld r25, Z+
b2: 28 0f add r18, r24
b4: 39 1f adc r19, r25
b6: 80 e0 ldi r24, 0x00 ; 0
b8: ee 36 cpi r30, 0x6E ; 110
ba: f8 07 cpc r31, r24
bc: c1 f3 breq .-16 ; 0xae <AdcConvert+0x36>
be: b8 f3 brcs .-18 ; 0xae <AdcConvert+0x36>
}
ret=ret/8;
return(ret);
}
c0: c9 01 movw r24, r18
c2: 23 e0 ldi r18, 0x03 ; 3
c4: 96 95 lsr r25
c6: 87 95 ror r24
c8: 2a 95 dec r18
ca: e1 f7 brne .-8 ; 0xc4 <AdcConvert+0x4c>
cc: 08 95 ret
000000ce <main>:
int main(void)
{
ce: cf e5 ldi r28, 0x5F ; 95
d0: d4 e0 ldi r29, 0x04 ; 4
d2: de bf out 0x3e, r29 ; 62
d4: cd bf out 0x3d, r28 ; 61
DDRB=0xff;
d6: 8f ef ldi r24, 0xFF ; 255
d8: 87 bb out 0x17, r24 ; 23
DDRD=0xff;
da: 81 bb out 0x11, r24 ; 17
PORTD=0xff;
dc: 82 bb out 0x12, r24 ; 18
ADMUX=(1<<REFS1)|(1<<REFS0)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(1<<MUX0)/*|(1<<ADLAR)*/;
de: 81 ec ldi r24, 0xC1 ; 193
e0: 87 b9 out 0x07, r24 ; 7
///基準電壓為內(nèi)部基準電壓 選通ADC0
///置位ADLAR, 轉(zhuǎn)換結(jié)果為左對齊
ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADFR)|(0<<ADIF)|(0<<ADIE)|(0<<ADPS2)|(0<<ADPS1)|(0<<ADPS0);
e2: 80 ec ldi r24, 0xC0 ; 192
e4: 86 b9 out 0x06, r24 ; 6
ADCSRA|=_BV(ADEN);
e6: 37 9a sbi 0x06, 7 ; 6
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
e8: 84 e1 ldi r24, 0x14 ; 20
ea: 90 e0 ldi r25, 0x00 ; 0
__asm__ volatile (
ec: 01 97 sbiw r24, 0x01 ; 1
ee: f1 f7 brne .-4 ; 0xec <main+0x1e>
f0: 8a e0 ldi r24, 0x0A ; 10
f2: 90 e0 ldi r25, 0x00 ; 0
f4: 01 97 sbiw r24, 0x01 ; 1
f6: f1 f7 brne .-4 ; 0xf4 <main+0x26>
_delay_loop_2(20);
_delay_loop_2(10);
while(1)
{
uint temp;
temp=AdcConvert();
f8: bf df rcall .-130 ; 0x78 <AdcConvert>
fa: 8c 01 movw r16, r24
PORTD=(temp*2.56)/1024;
fc: c8 01 movw r24, r16
fe: aa 27 eor r26, r26
100: 97 fd sbrc r25, 7
102: a0 95 com r26
104: ba 2f mov r27, r26
106: bc 01 movw r22, r24
108: cd 01 movw r24, r26
10a: 7e d0 rcall .+252 ; 0x208 <__floatsisf>
10c: 17 ff sbrs r17, 7
10e: 05 c0 rjmp .+10 ; 0x11a <main+0x4c>
110: 20 e0 ldi r18, 0x00 ; 0
112: 30 e0 ldi r19, 0x00 ; 0
114: 40 e8 ldi r20, 0x80 ; 128
116: 57 e4 ldi r21, 0x47 ; 71
118: 18 d0 rcall .+48 ; 0x14a <__addsf3>
11a: 2a e0 ldi r18, 0x0A ; 10
11c: 37 ed ldi r19, 0xD7 ; 215
11e: 43 e2 ldi r20, 0x23 ; 35
120: 50 e4 ldi r21, 0x40 ; 64
122: c7 d0 rcall .+398 ; 0x2b2 <__mulsf3>
124: dc 01 movw r26, r24
126: cb 01 movw r24, r22
128: 20 e0 ldi r18, 0x00 ; 0
12a: 30 e0 ldi r19, 0x00 ; 0
12c: 40 e8 ldi r20, 0x80 ; 128
12e: 5a e3 ldi r21, 0x3A ; 58
130: bc 01 movw r22, r24
132: cd 01 movw r24, r26
134: be d0 rcall .+380 ; 0x2b2 <__mulsf3>
136: dc 01 movw r26, r24
138: cb 01 movw r24, r22
13a: bc 01 movw r22, r24
13c: cd 01 movw r24, r26
13e: 47 d0 rcall .+142 ; 0x1ce <__fixsfsi>
140: dc 01 movw r26, r24
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -