?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000022 00800100 00000ac0 00000b54 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000ac0 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000004 00800122 00800122 00000b76 2**0
ALLOC
3 .noinit 00000000 00800126 00800126 00000b76 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000b76 2**0
CONTENTS
5 .stab 00000408 00000000 00000000 00000b78 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000f80 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00001004 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 000000bf 00000000 00000000 00001018 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 000002ac 00000000 00000000 000010d7 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 000000be 00000000 00000000 00001383 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000001e6 00000000 00000000 00001441 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 0000000d 00000000 00000000 00001627 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c <__ctors_end>
4: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
8: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
10: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
14: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
18: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
1c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
20: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
24: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
28: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
2c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
30: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
34: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
38: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
3c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
40: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
44: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
48: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
4c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
50: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
54: 0c 94 23 01 jmp 0x246 <__vector_21>
58: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
5c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
60: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
64: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
68: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
6c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
70: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
74: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
78: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
7c: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
80: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
84: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
88: 0c 94 63 00 jmp 0xc6 <__bad_interrupt>
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: e0 ec ldi r30, 0xC0 ; 192
a0: fa e0 ldi r31, 0x0A ; 10
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14>
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
ac: a2 32 cpi r26, 0x22 ; 34
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
000000b2 <__do_clear_bss>:
b2: 11 e0 ldi r17, 0x01 ; 1
b4: a2 e2 ldi r26, 0x22 ; 34
b6: b1 e0 ldi r27, 0x01 ; 1
b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a6 32 cpi r26, 0x26 ; 38
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
c2: 0c 94 c0 01 jmp 0x380 <main>
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0 <__vectors>
000000ca <USART_Init>:
/////////////////////////////////////////////////
void USART_Init(void )
{
ca: cf 93 push r28
cc: df 93 push r29
ce: cd b7 in r28, 0x3d ; 61
d0: de b7 in r29, 0x3e ; 62
/* 設置波特率*/
UBRR0H=0;
d2: 10 92 90 00 sts 0x0090, r1
UBRR0L=47;//9600
d6: 8f e2 ldi r24, 0x2F ; 47
d8: 80 93 29 00 sts 0x0029, r24
/* 接收器與發送器使能 */
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
dc: 88 e1 ldi r24, 0x18 ; 24
de: 80 93 2a 00 sts 0x002A, r24
/* 設置幀格式: 8 個數據位, 2個停止位 */
UCSR0C = (1<<USBS0)|(3<<UCSZ0);
e2: 8e e0 ldi r24, 0x0E ; 14
e4: 80 93 95 00 sts 0x0095, r24
e8: df 91 pop r29
ea: cf 91 pop r28
ec: 08 95 ret
000000ee <USART_Transmit_bit>:
}
void USART_Transmit_bit( unsigned char data )
{
ee: cf 93 push r28
f0: df 93 push r29
f2: cd b7 in r28, 0x3d ; 61
f4: de b7 in r29, 0x3e ; 62
f6: 21 97 sbiw r28, 0x01 ; 1
f8: 0f b6 in r0, 0x3f ; 63
fa: f8 94 cli
fc: de bf out 0x3e, r29 ; 62
fe: 0f be out 0x3f, r0 ; 63
100: cd bf out 0x3d, r28 ; 61
102: 89 83 std Y+1, r24 ; 0x01
/* 等待發送緩沖器為空 */
while ( !( UCSR0A & (1<<UDRE0)) );
104: 80 91 2b 00 lds r24, 0x002B
108: 99 27 eor r25, r25
10a: 80 72 andi r24, 0x20 ; 32
10c: 90 70 andi r25, 0x00 ; 0
10e: 00 97 sbiw r24, 0x00 ; 0
110: 09 f4 brne .+2 ; 0x114 <USART_Transmit_bit+0x26>
112: f8 cf rjmp .-16 ; 0x104 <USART_Transmit_bit+0x16>
/* 將數據放入緩沖器,發送數據 */
UDR0 = data;
114: 89 81 ldd r24, Y+1 ; 0x01
116: 80 93 2c 00 sts 0x002C, r24
11a: 21 96 adiw r28, 0x01 ; 1
11c: 0f b6 in r0, 0x3f ; 63
11e: f8 94 cli
120: de bf out 0x3e, r29 ; 62
122: 0f be out 0x3f, r0 ; 63
124: cd bf out 0x3d, r28 ; 61
126: df 91 pop r29
128: cf 91 pop r28
12a: 08 95 ret
0000012c <USART_Transmit_str>:
}
void USART_Transmit_str (unsigned char *str)
{
12c: cf 93 push r28
12e: df 93 push r29
130: cd b7 in r28, 0x3d ; 61
132: de b7 in r29, 0x3e ; 62
134: 22 97 sbiw r28, 0x02 ; 2
136: 0f b6 in r0, 0x3f ; 63
138: f8 94 cli
13a: de bf out 0x3e, r29 ; 62
13c: 0f be out 0x3f, r0 ; 63
13e: cd bf out 0x3d, r28 ; 61
140: 9a 83 std Y+2, r25 ; 0x02
142: 89 83 std Y+1, r24 ; 0x01
while (1)
{
if (*str == '\0') break; // 遇到結束符,退出
144: e9 81 ldd r30, Y+1 ; 0x01
146: fa 81 ldd r31, Y+2 ; 0x02
148: 80 81 ld r24, Z
14a: 88 23 and r24, r24
14c: 09 f4 brne .+2 ; 0x150 <USART_Transmit_str+0x24>
14e: 09 c0 rjmp .+18 ; 0x162 <USART_Transmit_str+0x36>
USART_Transmit_bit(*str++); // 發送數據
150: e9 81 ldd r30, Y+1 ; 0x01
152: fa 81 ldd r31, Y+2 ; 0x02
154: 80 81 ld r24, Z
156: 31 96 adiw r30, 0x01 ; 1
158: fa 83 std Y+2, r31 ; 0x02
15a: e9 83 std Y+1, r30 ; 0x01
15c: 0e 94 77 00 call 0xee <USART_Transmit_bit>
160: f1 cf rjmp .-30 ; 0x144 <USART_Transmit_str+0x18>
162: 22 96 adiw r28, 0x02 ; 2
164: 0f b6 in r0, 0x3f ; 63
166: f8 94 cli
168: de bf out 0x3e, r29 ; 62
16a: 0f be out 0x3f, r0 ; 63
16c: cd bf out 0x3d, r28 ; 61
16e: df 91 pop r29
170: cf 91 pop r28
172: 08 95 ret
00000174 <USART_Receive_bit>:
}
}
unsigned char USART_Receive_bit( void )
{
174: cf 93 push r28
176: df 93 push r29
178: cd b7 in r28, 0x3d ; 61
17a: de b7 in r29, 0x3e ; 62
/* 等待接收數據 */
while ( !(UCSR0A & (1<<RXC0)) );
17c: 80 91 2b 00 lds r24, 0x002B
180: 88 23 and r24, r24
182: 0c f0 brlt .+2 ; 0x186 <USART_Receive_bit+0x12>
184: fb cf rjmp .-10 ; 0x17c <USART_Receive_bit+0x8>
/* 從緩沖器中獲取并返回數據 */
return UDR0;
186: 80 91 2c 00 lds r24, 0x002C
18a: 99 27 eor r25, r25
18c: df 91 pop r29
18e: cf 91 pop r28
190: 08 95 ret
00000192 <USART_Receive_str>:
}
void USART_Receive_str (unsigned char *s, int n)
{
192: cf 93 push r28
194: df 93 push r29
196: cd b7 in r28, 0x3d ; 61
198: de b7 in r29, 0x3e ; 62
19a: 24 97 sbiw r28, 0x04 ; 4
19c: 0f b6 in r0, 0x3f ; 63
19e: f8 94 cli
1a0: de bf out 0x3e, r29 ; 62
1a2: 0f be out 0x3f, r0 ; 63
1a4: cd bf out 0x3d, r28 ; 61
1a6: 9a 83 std Y+2, r25 ; 0x02
1a8: 89 83 std Y+1, r24 ; 0x01
1aa: 7c 83 std Y+4, r23 ; 0x04
1ac: 6b 83 std Y+3, r22 ; 0x03
for ( ; n>0; n--)
1ae: 8b 81 ldd r24, Y+3 ; 0x03
1b0: 9c 81 ldd r25, Y+4 ; 0x04
1b2: 18 16 cp r1, r24
1b4: 19 06 cpc r1, r25
1b6: 84 f4 brge .+32 ; 0x1d8 <USART_Receive_str+0x46>
{
*s++ = USART_Receive_bit();
1b8: 0e 94 ba 00 call 0x174 <USART_Receive_bit>
1bc: 28 2f mov r18, r24
1be: 89 81 ldd r24, Y+1 ; 0x01
1c0: 9a 81 ldd r25, Y+2 ; 0x02
1c2: fc 01 movw r30, r24
1c4: 20 83 st Z, r18
1c6: 01 96 adiw r24, 0x01 ; 1
1c8: 9a 83 std Y+2, r25 ; 0x02
1ca: 89 83 std Y+1, r24 ; 0x01
1cc: 8b 81 ldd r24, Y+3 ; 0x03
1ce: 9c 81 ldd r25, Y+4 ; 0x04
1d0: 01 97 sbiw r24, 0x01 ; 1
1d2: 9c 83 std Y+4, r25 ; 0x04
1d4: 8b 83 std Y+3, r24 ; 0x03
1d6: eb cf rjmp .-42 ; 0x1ae <USART_Receive_str+0x1c>
1d8: 24 96 adiw r28, 0x04 ; 4
1da: 0f b6 in r0, 0x3f ; 63
1dc: f8 94 cli
1de: de bf out 0x3e, r29 ; 62
1e0: 0f be out 0x3f, r0 ; 63
1e2: cd bf out 0x3d, r28 ; 61
1e4: df 91 pop r29
1e6: cf 91 pop r28
1e8: 08 95 ret
000001ea <delay100ms>:
unsigned int LED_Volt; //變換后的電壓mV
//仿真時在watch窗口,監控這些全局變量。
void delay100ms(void)
{
1ea: cf 93 push r28
1ec: df 93 push r29
1ee: cd b7 in r28, 0x3d ; 61
1f0: de b7 in r29, 0x3e ; 62
1f2: 24 97 sbiw r28, 0x04 ; 4
1f4: 0f b6 in r0, 0x3f ; 63
1f6: f8 94 cli
1f8: de bf out 0x3e, r29 ; 62
1fa: 0f be out 0x3f, r0 ; 63
1fc: cd bf out 0x3d, r28 ; 61
int i,j;
for(j = 0;j<31;j++)
1fe: 1c 82 std Y+4, r1 ; 0x04
200: 1b 82 std Y+3, r1 ; 0x03
202: 8b 81 ldd r24, Y+3 ; 0x03
204: 9c 81 ldd r25, Y+4 ; 0x04
206: 8f 31 cpi r24, 0x1F ; 31
208: 91 05 cpc r25, r1
20a: a4 f4 brge .+40 ; 0x234 <delay100ms+0x4a>
for(i = 0;i<2330;i++);//7.3728MHz的晶振
20c: 1a 82 std Y+2, r1 ; 0x02
20e: 19 82 std Y+1, r1 ; 0x01
210: 89 81 ldd r24, Y+1 ; 0x01
212: 9a 81 ldd r25, Y+2 ; 0x02
214: 29 e0 ldi r18, 0x09 ; 9
216: 8a 31 cpi r24, 0x1A ; 26
218: 92 07 cpc r25, r18
21a: 34 f4 brge .+12 ; 0x228 <delay100ms+0x3e>
21c: 89 81 ldd r24, Y+1 ; 0x01
21e: 9a 81 ldd r25, Y+2 ; 0x02
220: 01 96 adiw r24, 0x01 ; 1
222: 9a 83 std Y+2, r25 ; 0x02
224: 89 83 std Y+1, r24 ; 0x01
226: f4 cf rjmp .-24 ; 0x210 <delay100ms+0x26>
228: 8b 81 ldd r24, Y+3 ; 0x03
22a: 9c 81 ldd r25, Y+4 ; 0x04
22c: 01 96 adiw r24, 0x01 ; 1
22e: 9c 83 std Y+4, r25 ; 0x04
230: 8b 83 std Y+3, r24 ; 0x03
232: e7 cf rjmp .-50 ; 0x202 <delay100ms+0x18>
234: 24 96 adiw r28, 0x04 ; 4
236: 0f b6 in r0, 0x3f ; 63
238: f8 94 cli
23a: de bf out 0x3e, r29 ; 62
23c: 0f be out 0x3f, r0 ; 63
23e: cd bf out 0x3d, r28 ; 61
240: df 91 pop r29
242: cf 91 pop r28
244: 08 95 ret
00000246 <__vector_21>:
}
SIGNAL(SIG_ADC) //ADC中斷服務程序
{
246: 1f 92 push r1
248: 0f 92 push r0
24a: 0f b6 in r0, 0x3f ; 63
24c: 0f 92 push r0
24e: 11 24 eor r1, r1
250: 2f 93 push r18
252: 3f 93 push r19
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -