📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000598 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .bss 00000001 00800060 00000598 0000060c 2**0
ALLOC
2 .debug_aranges 00000020 00000000 00000000 0000060c 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_pubnames 000000e2 00000000 00000000 0000062c 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_info 00000310 00000000 00000000 0000070e 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 000000fd 00000000 00000000 00000a1e 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_line 0000043d 00000000 00000000 00000b1b 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_frame 000000f0 00000000 00000000 00000f58 2**2
CONTENTS, READONLY, DEBUGGING
8 .debug_str 000000e3 00000000 00000000 00001048 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 2c c0 rjmp .+88 ; 0x5c <__bad_interrupt>
4: 2b c0 rjmp .+86 ; 0x5c <__bad_interrupt>
6: 2a c0 rjmp .+84 ; 0x5c <__bad_interrupt>
8: 29 c0 rjmp .+82 ; 0x5c <__bad_interrupt>
a: 28 c0 rjmp .+80 ; 0x5c <__bad_interrupt>
c: 27 c0 rjmp .+78 ; 0x5c <__bad_interrupt>
e: 26 c0 rjmp .+76 ; 0x5c <__bad_interrupt>
10: 25 c0 rjmp .+74 ; 0x5c <__bad_interrupt>
12: 24 c0 rjmp .+72 ; 0x5c <__bad_interrupt>
14: 23 c0 rjmp .+70 ; 0x5c <__bad_interrupt>
16: 6b c0 rjmp .+214 ; 0xee <__vector_11>
18: 21 c0 rjmp .+66 ; 0x5c <__bad_interrupt>
1a: 84 c0 rjmp .+264 ; 0x124 <__vector_13>
1c: 1f c0 rjmp .+62 ; 0x5c <__bad_interrupt>
1e: 1e c0 rjmp .+60 ; 0x5c <__bad_interrupt>
20: 1d c0 rjmp .+58 ; 0x5c <__bad_interrupt>
22: 1c c0 rjmp .+56 ; 0x5c <__bad_interrupt>
24: 1b c0 rjmp .+54 ; 0x5c <__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 e9 ldi r30, 0x98 ; 152
3a: f5 e0 ldi r31, 0x05 ; 5
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: a1 36 cpi r26, 0x61 ; 97
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop>
58: 3b d2 rcall .+1142 ; 0x4d0 <main>
5a: 9c c2 rjmp .+1336 ; 0x594 <_exit>
0000005c <__bad_interrupt>:
5c: d1 cf rjmp .-94 ; 0x0 <__vectors>
0000005e <USART_Init>:
volatile unsigned char sum=0; //定义全局的指令变量
//设置串口的参数
void USART_Init( unsigned int baud )
{
5e: df 93 push r29
60: cf 93 push r28
62: 00 d0 rcall .+0 ; 0x64 <USART_Init+0x6>
64: cd b7 in r28, 0x3d ; 61
66: de b7 in r29, 0x3e ; 62
68: 9a 83 std Y+2, r25 ; 0x02
6a: 89 83 std Y+1, r24 ; 0x01
/* 设置波特率9600*/
UBRRH = 0;
6c: e0 e4 ldi r30, 0x40 ; 64
6e: f0 e0 ldi r31, 0x00 ; 0
70: 10 82 st Z, r1
UBRRL = 47;
72: e9 e2 ldi r30, 0x29 ; 41
74: f0 e0 ldi r31, 0x00 ; 0
76: 8f e2 ldi r24, 0x2F ; 47
78: 80 83 st Z, r24
/* 接收器与发送器使能*/
UCSRB = (1<<TXCIE)|(1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
7a: ea e2 ldi r30, 0x2A ; 42
7c: f0 e0 ldi r31, 0x00 ; 0
7e: 88 ed ldi r24, 0xD8 ; 216
80: 80 83 st Z, r24
/* 设置帧格式: 8 个数据位, 2 个停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
82: e0 e4 ldi r30, 0x40 ; 64
84: f0 e0 ldi r31, 0x00 ; 0
86: 8e e8 ldi r24, 0x8E ; 142
88: 80 83 st Z, r24
}
8a: 0f 90 pop r0
8c: 0f 90 pop r0
8e: cf 91 pop r28
90: df 91 pop r29
92: 08 95 ret
00000094 <USART_Transmit>:
void USART_Transmit( unsigned char data )
{PORTD|=(1<<PD2); //485输出使能
94: df 93 push r29
96: cf 93 push r28
98: 0f 92 push r0
9a: cd b7 in r28, 0x3d ; 61
9c: de b7 in r29, 0x3e ; 62
9e: 89 83 std Y+1, r24 ; 0x01
a0: a2 e3 ldi r26, 0x32 ; 50
a2: b0 e0 ldi r27, 0x00 ; 0
a4: e2 e3 ldi r30, 0x32 ; 50
a6: f0 e0 ldi r31, 0x00 ; 0
a8: 80 81 ld r24, Z
aa: 84 60 ori r24, 0x04 ; 4
ac: 8c 93 st X, r24
/* 等待发送缓冲器为空 */
while ( !( UCSRA & (1<<UDRE)) )
ae: eb e2 ldi r30, 0x2B ; 43
b0: f0 e0 ldi r31, 0x00 ; 0
b2: 80 81 ld r24, Z
b4: 88 2f mov r24, r24
b6: 90 e0 ldi r25, 0x00 ; 0
b8: 80 72 andi r24, 0x20 ; 32
ba: 90 70 andi r25, 0x00 ; 0
bc: 00 97 sbiw r24, 0x00 ; 0
be: b9 f3 breq .-18 ; 0xae <USART_Transmit+0x1a>
;
/* 将数据放入缓冲器,发送数据 */
UDR = data;
c0: ec e2 ldi r30, 0x2C ; 44
c2: f0 e0 ldi r31, 0x00 ; 0
c4: 89 81 ldd r24, Y+1 ; 0x01
c6: 80 83 st Z, r24
}
c8: 0f 90 pop r0
ca: cf 91 pop r28
cc: df 91 pop r29
ce: 08 95 ret
000000d0 <USART_Receive>:
unsigned char USART_Receive( void )
{
d0: df 93 push r29
d2: cf 93 push r28
d4: cd b7 in r28, 0x3d ; 61
d6: de b7 in r29, 0x3e ; 62
/* 等待接收数据*/
while ( !(UCSRA & (1<<RXC)) )
d8: eb e2 ldi r30, 0x2B ; 43
da: f0 e0 ldi r31, 0x00 ; 0
dc: 80 81 ld r24, Z
de: 88 23 and r24, r24
e0: dc f7 brge .-10 ; 0xd8 <USART_Receive+0x8>
;
/* 从缓冲器中获取并返回数据*/
return UDR;
e2: ec e2 ldi r30, 0x2C ; 44
e4: f0 e0 ldi r31, 0x00 ; 0
e6: 80 81 ld r24, Z
}
e8: cf 91 pop r28
ea: df 91 pop r29
ec: 08 95 ret
000000ee <__vector_11>:
SIGNAL (SIG_UART_RECV) //接收中断
{sum=UDR;}
ee: 1f 92 push r1
f0: 0f 92 push r0
f2: 0f b6 in r0, 0x3f ; 63
f4: 0f 92 push r0
f6: 11 24 eor r1, r1
f8: 8f 93 push r24
fa: ef 93 push r30
fc: ff 93 push r31
fe: df 93 push r29
100: cf 93 push r28
102: cd b7 in r28, 0x3d ; 61
104: de b7 in r29, 0x3e ; 62
106: ec e2 ldi r30, 0x2C ; 44
108: f0 e0 ldi r31, 0x00 ; 0
10a: 80 81 ld r24, Z
10c: 80 93 60 00 sts 0x0060, r24
110: cf 91 pop r28
112: df 91 pop r29
114: ff 91 pop r31
116: ef 91 pop r30
118: 8f 91 pop r24
11a: 0f 90 pop r0
11c: 0f be out 0x3f, r0 ; 63
11e: 0f 90 pop r0
120: 1f 90 pop r1
122: 18 95 reti
00000124 <__vector_13>:
SIGNAL (SIG_UART_TRANS) //发送结束中断
{PORTD&=~(1<<PD2); } //485输入使能
124: 1f 92 push r1
126: 0f 92 push r0
128: 0f b6 in r0, 0x3f ; 63
12a: 0f 92 push r0
12c: 11 24 eor r1, r1
12e: 8f 93 push r24
130: af 93 push r26
132: bf 93 push r27
134: ef 93 push r30
136: ff 93 push r31
138: df 93 push r29
13a: cf 93 push r28
13c: cd b7 in r28, 0x3d ; 61
13e: de b7 in r29, 0x3e ; 62
140: a2 e3 ldi r26, 0x32 ; 50
142: b0 e0 ldi r27, 0x00 ; 0
144: e2 e3 ldi r30, 0x32 ; 50
146: f0 e0 ldi r31, 0x00 ; 0
148: 80 81 ld r24, Z
14a: 8b 7f andi r24, 0xFB ; 251
14c: 8c 93 st X, r24
14e: cf 91 pop r28
150: df 91 pop r29
152: ff 91 pop r31
154: ef 91 pop r30
156: bf 91 pop r27
158: af 91 pop r26
15a: 8f 91 pop r24
15c: 0f 90 pop r0
15e: 0f be out 0x3f, r0 ; 63
160: 0f 90 pop r0
162: 1f 90 pop r1
164: 18 95 reti
00000166 <delay_us>:
/*************************************************************************************/
volatile void delay_us(unsigned char a) //挺时1uS
{
166: df 93 push r29
168: cf 93 push r28
16a: 00 d0 rcall .+0 ; 0x16c <delay_us+0x6>
16c: 00 d0 rcall .+0 ; 0x16e <delay_us+0x8>
16e: 0f 92 push r0
170: cd b7 in r28, 0x3d ; 61
172: de b7 in r29, 0x3e ; 62
174: 8d 83 std Y+5, r24 ; 0x05
volatile unsigned int i=0,j=0;
176: 1a 82 std Y+2, r1 ; 0x02
178: 19 82 std Y+1, r1 ; 0x01
17a: 1c 82 std Y+4, r1 ; 0x04
17c: 1b 82 std Y+3, r1 ; 0x03
for(i=0;i<a;i++)
17e: 1a 82 std Y+2, r1 ; 0x02
180: 19 82 std Y+1, r1 ; 0x01
182: 12 c0 rjmp .+36 ; 0x1a8 <delay_us+0x42>
for(j=0;j<100;j++)
184: 1c 82 std Y+4, r1 ; 0x04
186: 1b 82 std Y+3, r1 ; 0x03
188: 05 c0 rjmp .+10 ; 0x194 <delay_us+0x2e>
18a: 8b 81 ldd r24, Y+3 ; 0x03
18c: 9c 81 ldd r25, Y+4 ; 0x04
18e: 01 96 adiw r24, 0x01 ; 1
190: 9c 83 std Y+4, r25 ; 0x04
192: 8b 83 std Y+3, r24 ; 0x03
194: 8b 81 ldd r24, Y+3 ; 0x03
196: 9c 81 ldd r25, Y+4 ; 0x04
198: 84 36 cpi r24, 0x64 ; 100
19a: 91 05 cpc r25, r1
19c: b0 f3 brcs .-20 ; 0x18a <delay_us+0x24>
/*************************************************************************************/
volatile void delay_us(unsigned char a) //挺时1uS
{
volatile unsigned int i=0,j=0;
for(i=0;i<a;i++)
19e: 89 81 ldd r24, Y+1 ; 0x01
1a0: 9a 81 ldd r25, Y+2 ; 0x02
1a2: 01 96 adiw r24, 0x01 ; 1
1a4: 9a 83 std Y+2, r25 ; 0x02
1a6: 89 83 std Y+1, r24 ; 0x01
1a8: 8d 81 ldd r24, Y+5 ; 0x05
1aa: 28 2f mov r18, r24
1ac: 30 e0 ldi r19, 0x00 ; 0
1ae: 89 81 ldd r24, Y+1 ; 0x01
1b0: 9a 81 ldd r25, Y+2 ; 0x02
1b2: 82 17 cp r24, r18
1b4: 93 07 cpc r25, r19
1b6: 30 f3 brcs .-52 ; 0x184 <delay_us+0x1e>
for(j=0;j<100;j++)
;
}
1b8: 0f 90 pop r0
1ba: 0f 90 pop r0
1bc: 0f 90 pop r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -