📄 myusart.lss
字号:
myusart.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000280 00800100 0000266e 000026e2 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000266e 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .debug_aranges 00000060 00000000 00000000 00002962 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_pubnames 00000179 00000000 00000000 000029c2 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_info 00000a62 00000000 00000000 00002b3b 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 000001e2 00000000 00000000 0000359d 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_line 00000a92 00000000 00000000 0000377f 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_frame 000000d0 00000000 00000000 00004214 2**2
CONTENTS, READONLY, DEBUGGING
8 .debug_str 000001e0 00000000 00000000 000042e4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c ; 0x8c <__ctors_end>
4: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
8: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
10: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
14: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
18: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
1c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
20: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
24: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
28: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
2c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
30: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
34: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
38: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
3c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
40: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
44: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
48: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
4c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
50: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
54: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
58: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
5c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
60: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
64: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
68: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
6c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
70: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
74: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
78: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
7c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
80: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
84: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
88: 0c 94 65 00 jmp 0xca ; 0xca <__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: 13 e0 ldi r17, 0x03 ; 3
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: ee e6 ldi r30, 0x6E ; 110
a0: f6 e2 ldi r31, 0x26 ; 38
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: a0 38 cpi r26, 0x80 ; 128
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
000000b2 <__do_clear_bss>:
b2: 13 e0 ldi r17, 0x03 ; 3
b4: a0 e8 ldi r26, 0x80 ; 128
b6: b3 e0 ldi r27, 0x03 ; 3
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: a0 38 cpi r26, 0x80 ; 128
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
c2: 0e 94 9b 0d call 0x1b36 ; 0x1b36 <main>
c6: 0c 94 35 13 jmp 0x266a ; 0x266a <_exit>
000000ca <__bad_interrupt>:
ca: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000ce <usart_transmit>:
unsigned char data_11[]={"AVR ISP下载接口\n\r"};
unsigned char data_12[]={"I2C,SPI接口单独引出,方便扩展\n\r"};
unsigned char data_13[]={"所有IO口全部引出,方便扩展实验及测试\n\r"};
void usart_transmit(unsigned char data)
{
ce: df 93 push r29
d0: cf 93 push r28
d2: 0f 92 push r0
d4: cd b7 in r28, 0x3d ; 61
d6: de b7 in r29, 0x3e ; 62
d8: 89 83 std Y+1, r24 ; 0x01
while(!(UCSR1A & (1<<UDRE1)));
da: eb e9 ldi r30, 0x9B ; 155
dc: f0 e0 ldi r31, 0x00 ; 0
de: 80 81 ld r24, Z
e0: 88 2f mov r24, r24
e2: 90 e0 ldi r25, 0x00 ; 0
e4: 80 72 andi r24, 0x20 ; 32
e6: 90 70 andi r25, 0x00 ; 0
e8: 00 97 sbiw r24, 0x00 ; 0
ea: b9 f3 breq .-18 ; 0xda <usart_transmit+0xc>
UDR1 = data;
ec: ec e9 ldi r30, 0x9C ; 156
ee: f0 e0 ldi r31, 0x00 ; 0
f0: 89 81 ldd r24, Y+1 ; 0x01
f2: 80 83 st Z, r24
}
f4: 0f 90 pop r0
f6: cf 91 pop r28
f8: df 91 pop r29
fa: 08 95 ret
000000fc <usart_receive>:
unsigned char usart_receive(void)
{
fc: df 93 push r29
fe: cf 93 push r28
100: cd b7 in r28, 0x3d ; 61
102: de b7 in r29, 0x3e ; 62
while(!(UCSR1A & (1<<RXC1)));
104: eb e9 ldi r30, 0x9B ; 155
106: f0 e0 ldi r31, 0x00 ; 0
108: 80 81 ld r24, Z
10a: 88 23 and r24, r24
10c: dc f7 brge .-10 ; 0x104 <usart_receive+0x8>
return UDR1;
10e: ec e9 ldi r30, 0x9C ; 156
110: f0 e0 ldi r31, 0x00 ; 0
112: 80 81 ld r24, Z
}
114: cf 91 pop r28
116: df 91 pop r29
118: 08 95 ret
0000011a <data_write>:
void data_write(unsigned char *data,unsigned char data_len)
{
11a: df 93 push r29
11c: cf 93 push r28
11e: 00 d0 rcall .+0 ; 0x120 <data_write+0x6>
120: 00 d0 rcall .+0 ; 0x122 <data_write+0x8>
122: cd b7 in r28, 0x3d ; 61
124: de b7 in r29, 0x3e ; 62
126: 9b 83 std Y+3, r25 ; 0x03
128: 8a 83 std Y+2, r24 ; 0x02
12a: 6c 83 std Y+4, r22 ; 0x04
unsigned char i;
for(i=0;i<data_len;i++)
12c: 19 82 std Y+1, r1 ; 0x01
12e: 0e c0 rjmp .+28 ; 0x14c <data_write+0x32>
{
usart_transmit(data[i]);
130: 89 81 ldd r24, Y+1 ; 0x01
132: 28 2f mov r18, r24
134: 30 e0 ldi r19, 0x00 ; 0
136: 8a 81 ldd r24, Y+2 ; 0x02
138: 9b 81 ldd r25, Y+3 ; 0x03
13a: fc 01 movw r30, r24
13c: e2 0f add r30, r18
13e: f3 1f adc r31, r19
140: 80 81 ld r24, Z
142: 0e 94 67 00 call 0xce ; 0xce <usart_transmit>
}
void data_write(unsigned char *data,unsigned char data_len)
{
unsigned char i;
for(i=0;i<data_len;i++)
146: 89 81 ldd r24, Y+1 ; 0x01
148: 8f 5f subi r24, 0xFF ; 255
14a: 89 83 std Y+1, r24 ; 0x01
14c: 99 81 ldd r25, Y+1 ; 0x01
14e: 8c 81 ldd r24, Y+4 ; 0x04
150: 98 17 cp r25, r24
152: 70 f3 brcs .-36 ; 0x130 <data_write+0x16>
{
usart_transmit(data[i]);
//_delay_ms(5);此处若延时则会使中文显示为乱码;
}
}
154: 0f 90 pop r0
156: 0f 90 pop r0
158: 0f 90 pop r0
15a: 0f 90 pop r0
15c: cf 91 pop r28
15e: df 91 pop r29
160: 08 95 ret
00000162 <info_display>:
void info_display(void)
{
162: 0f 93 push r16
164: 1f 93 push r17
166: df 93 push r29
168: cf 93 push r28
16a: cd b7 in r28, 0x3d ; 61
16c: de b7 in r29, 0x3e ; 62
16e: c4 5c subi r28, 0xC4 ; 196
170: d0 40 sbci r29, 0x00 ; 0
172: 0f b6 in r0, 0x3f ; 63
174: f8 94 cli
176: de bf out 0x3e, r29 ; 62
178: 0f be out 0x3f, r0 ; 63
17a: cd bf out 0x3d, r28 ; 61
data_write(data_00,16); _delay_ms(256);
17c: 80 e0 ldi r24, 0x00 ; 0
17e: 91 e0 ldi r25, 0x01 ; 1
180: 60 e1 ldi r22, 0x10 ; 16
182: 0e 94 8d 00 call 0x11a ; 0x11a <data_write>
186: fe 01 movw r30, r28
188: ef 53 subi r30, 0x3F ; 63
18a: ff 4f sbci r31, 0xFF ; 255
18c: 80 e0 ldi r24, 0x00 ; 0
18e: 90 e0 ldi r25, 0x00 ; 0
190: a0 e8 ldi r26, 0x80 ; 128
192: b3 e4 ldi r27, 0x43 ; 67
194: 80 83 st Z, r24
196: 91 83 std Z+1, r25 ; 0x01
198: a2 83 std Z+2, r26 ; 0x02
19a: b3 83 std Z+3, r27 ; 0x03
*/
void
_delay_ms(double __ms)
{
uint16_t __ticks;
double __tmp = ((F_CPU) / 4e3) * __ms;
19c: 8e 01 movw r16, r28
19e: 03 54 subi r16, 0x43 ; 67
1a0: 1f 4f sbci r17, 0xFF ; 255
1a2: fe 01 movw r30, r28
1a4: ef 53 subi r30, 0x3F ; 63
1a6: ff 4f sbci r31, 0xFF ; 255
1a8: 20 e0 ldi r18, 0x00 ; 0
1aa: 30 e0 ldi r19, 0x00 ; 0
1ac: 4a e7 ldi r20, 0x7A ; 122
1ae: 55 e4 ldi r21, 0x45 ; 69
1b0: 60 81 ld r22, Z
1b2: 71 81 ldd r23, Z+1 ; 0x01
1b4: 82 81 ldd r24, Z+2 ; 0x02
1b6: 93 81 ldd r25, Z+3 ; 0x03
1b8: 0e 94 7a 0f call 0x1ef4 ; 0x1ef4 <__mulsf3>
1bc: dc 01 movw r26, r24
1be: cb 01 movw r24, r22
1c0: f8 01 movw r30, r16
1c2: 80 83 st Z, r24
1c4: 91 83 std Z+1, r25 ; 0x01
1c6: a2 83 std Z+2, r26 ; 0x02
1c8: b3 83 std Z+3, r27 ; 0x03
if (__tmp < 1.0)
1ca: fe 01 movw r30, r28
1cc: e3 54 subi r30, 0x43 ; 67
1ce: ff 4f sbci r31, 0xFF ; 255
1d0: 20 e0 ldi r18, 0x00 ; 0
1d2: 30 e0 ldi r19, 0x00 ; 0
1d4: 40 e8 ldi r20, 0x80 ; 128
1d6: 5f e3 ldi r21, 0x3F ; 63
1d8: 60 81 ld r22, Z
1da: 71 81 ldd r23, Z+1 ; 0x01
1dc: 82 81 ldd r24, Z+2 ; 0x02
1de: 93 81 ldd r25, Z+3 ; 0x03
1e0: 0e 94 d4 10 call 0x21a8 ; 0x21a8 <__ltsf2>
1e4: 88 23 and r24, r24
1e6: 44 f4 brge .+16 ; 0x1f8 <info_display+0x96>
__ticks = 1;
1e8: fe 01 movw r30, r28
1ea: e5 54 subi r30, 0x45 ; 69
1ec: ff 4f sbci r31, 0xFF ; 255
1ee: 81 e0 ldi r24, 0x01 ; 1
1f0: 90 e0 ldi r25, 0x00 ; 0
1f2: 91 83 std Z+1, r25 ; 0x01
1f4: 80 83 st Z, r24
1f6: 64 c0 rjmp .+200 ; 0x2c0 <info_display+0x15e>
else if (__tmp > 65535)
1f8: fe 01 movw r30, r28
1fa: e3 54 subi r30, 0x43 ; 67
1fc: ff 4f sbci r31, 0xFF ; 255
1fe: 20 e0 ldi r18, 0x00 ; 0
200: 3f ef ldi r19, 0xFF ; 255
202: 4f e7 ldi r20, 0x7F ; 127
204: 57 e4 ldi r21, 0x47 ; 71
206: 60 81 ld r22, Z
208: 71 81 ldd r23, Z+1 ; 0x01
20a: 82 81 ldd r24, Z+2 ; 0x02
20c: 93 81 ldd r25, Z+3 ; 0x03
20e: 0e 94 74 10 call 0x20e8 ; 0x20e8 <__gtsf2>
212: 18 16 cp r1, r24
214: 0c f0 brlt .+2 ; 0x218 <info_display+0xb6>
216: 43 c0 rjmp .+134 ; 0x29e <info_display+0x13c>
{
// __ticks = requested delay in 1/10 ms
__ticks = (uint16_t) (__ms * 10.0);
218: fe 01 movw r30, r28
21a: ef 53 subi r30, 0x3F ; 63
21c: ff 4f sbci r31, 0xFF ; 255
21e: 20 e0 ldi r18, 0x00 ; 0
220: 30 e0 ldi r19, 0x00 ; 0
222: 40 e2 ldi r20, 0x20 ; 32
224: 51 e4 ldi r21, 0x41 ; 65
226: 60 81 ld r22, Z
228: 71 81 ldd r23, Z+1 ; 0x01
22a: 82 81 ldd r24, Z+2 ; 0x02
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -