📄 485.lss
字号:
485.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000001b6 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000003c 00800060 000001b6 0000024a 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000069 0080009c 0080009c 00000286 2**0
ALLOC
3 .noinit 00000000 00800105 00800105 00000286 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000286 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000288 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 000005f4 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00000678 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 000000d8 00000000 00000000 0000068c 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 00000222 00000000 00000000 00000764 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 000000f0 00000000 00000000 00000986 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000001c4 00000000 00000000 00000a76 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000000e0 00000000 00000000 00000c3a 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: c3 c0 rjmp .+390 ; 0x198 <__vector_8>
12: 23 c0 rjmp .+70 ; 0x5a <__bad_interrupt>
14: 22 c0 rjmp .+68 ; 0x5a <__bad_interrupt>
16: 7d c0 rjmp .+250 ; 0x112 <__vector_11>
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: e6 eb ldi r30, 0xB6 ; 182
3a: f1 e0 ldi r31, 0x01 ; 1
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: ac 39 cpi r26, 0x9C ; 156
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e <.do_copy_data_loop>
00000048 <__do_clear_bss>:
48: 11 e0 ldi r17, 0x01 ; 1
4a: ac e9 ldi r26, 0x9C ; 156
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: a5 30 cpi r26, 0x05 ; 5
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50 <.do_clear_bss_loop>
58: 2d c0 rjmp .+90 ; 0xb4 <main>
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0 <__vectors>
0000005c <delay_us>:
void delay_us(int time)
{
do
time--;
5c: 01 97 sbiw r24, 0x01 ; 1
5e: 82 30 cpi r24, 0x02 ; 2
60: 91 05 cpc r25, r1
62: e4 f7 brge .-8 ; 0x5c <delay_us>
64: 08 95 ret
00000066 <delay_ms>:
while(time>1);
}
void delay_ms(unsigned int time)
{
66: cf 93 push r28
68: df 93 push r29
6a: ec 01 movw r28, r24
while(time!=0)
{
delay_us(1000);
time--;
6c: 89 2b or r24, r25
6e: 29 f0 breq .+10 ; 0x7a <delay_ms+0x14>
70: 88 ee ldi r24, 0xE8 ; 232
72: 93 e0 ldi r25, 0x03 ; 3
74: f3 df rcall .-26 ; 0x5c <delay_us>
76: 21 97 sbiw r28, 0x01 ; 1
78: d9 f7 brne .-10 ; 0x70 <delay_ms+0xa>
7a: df 91 pop r29
7c: cf 91 pop r28
7e: 08 95 ret
00000080 <comInit>:
}
}
int main(void)
{
// uchar Trans_OK;
memset(buffer,0,100);
PORTd_INIT();
cli();
comInit();
sei();
t_485("ni hao ma?\n");
t_485("Hello! da jia hao,wo shi tiao zao tuan zhang;\n");
while(1)
{
#if INT==0
do
{
buffer[buf_p++]=r_485();
}
while(buffer[buf_p-1]!=0xff);
t_485(buffer);
memset(buffer,0,100);
buf_p=0;
#else
if(T_flag)
{
t_485(buffer);
memset(buffer,0,100);
buf_p=0;
T_flag = 0;
}
#endif
}
}
void comInit(void) //串口初始化
{
//UCSRB=0x98;
UCSRB =
80: 88 e9 ldi r24, 0x98 ; 152
82: 8a b9 out 0x0a, r24 ; 10
#if INT == 1
(1<<RXCIE)/*接收结束中断使能|*/|
#endif
(1<<RXEN)/*接收使能*/|(1<<TXEN)/*发送使能*/;
UBRRL=25;//25;//25; // baud=9600 UBRR=CK/(baud*16) -1 for 脉冲
84: 89 e1 ldi r24, 0x19 ; 25
86: 89 b9 out 0x09, r24 ; 9
88: 08 95 ret
0000008a <USART_Transmit>:
}
void USART_Transmit( unsigned char usrdata )
{
while (!( UCSRA & (1<<UDRE)) );
8a: 5d 9b sbis 0x0b, 5 ; 11
8c: fe cf rjmp .-4 ; 0x8a <USART_Transmit>
UDR = usrdata;
8e: 8c b9 out 0x0c, r24 ; 12
90: 08 95 ret
00000092 <t_485>:
}
//-----------------------
void t_485(unsigned char *s)
{
92: cf 93 push r28
94: df 93 push r29
96: ec 01 movw r28, r24
set_485_enable();
98: 94 9a sbi 0x12, 4 ; 18
while(*s!=0)
{
USART_Transmit(*s++);
9a: 88 81 ld r24, Y
9c: 88 23 and r24, r24
9e: 19 f0 breq .+6 ; 0xa6 <t_485+0x14>
a0: 89 91 ld r24, Y+
a2: f3 df rcall .-26 ; 0x8a <USART_Transmit>
a4: fa cf rjmp .-12 ; 0x9a <t_485+0x8>
}
delay_us(1350);
a6: 86 e4 ldi r24, 0x46 ; 70
a8: 95 e0 ldi r25, 0x05 ; 5
aa: d8 df rcall .-80 ; 0x5c <delay_us>
clr_485_disable();
ac: 94 98 cbi 0x12, 4 ; 18
ae: df 91 pop r29
b0: cf 91 pop r28
b2: 08 95 ret
000000b4 <main>:
b4: cf e5 ldi r28, 0x5F ; 95
b6: d4 e0 ldi r29, 0x04 ; 4
b8: de bf out 0x3e, r29 ; 62
ba: cd bf out 0x3d, r28 ; 61
bc: c1 ea ldi r28, 0xA1 ; 161
be: d0 e0 ldi r29, 0x00 ; 0
c0: 84 e6 ldi r24, 0x64 ; 100
c2: fe 01 movw r30, r28
c4: 11 92 st Z+, r1
c6: 8a 95 dec r24
c8: e9 f7 brne .-6 ; 0xc4 <main+0x10>
ca: 8c 9a sbi 0x11, 4 ; 17
cc: 94 98 cbi 0x12, 4 ; 18
ce: f8 94 cli
d0: d7 df rcall .-82 ; 0x80 <comInit>
d2: 78 94 sei
d4: 80 e6 ldi r24, 0x60 ; 96
d6: 90 e0 ldi r25, 0x00 ; 0
d8: dc df rcall .-72 ; 0x92 <t_485>
da: 8c e6 ldi r24, 0x6C ; 108
dc: 90 e0 ldi r25, 0x00 ; 0
de: d9 df rcall .-78 ; 0x92 <t_485>
e0: 80 91 9f 00 lds r24, 0x009F
e4: 88 23 and r24, r24
e6: e1 f3 breq .-8 ; 0xe0 <main+0x2c>
e8: 81 ea ldi r24, 0xA1 ; 161
ea: 90 e0 ldi r25, 0x00 ; 0
ec: d2 df rcall .-92 ; 0x92 <t_485>
ee: 84 e6 ldi r24, 0x64 ; 100
f0: fe 01 movw r30, r28
f2: 11 92 st Z+, r1
f4: 8a 95 dec r24
f6: e9 f7 brne .-6 ; 0xf2 <main+0x3e>
f8: 10 92 9e 00 sts 0x009E, r1
fc: 10 92 9f 00 sts 0x009F, r1
100: ef cf rjmp .-34 ; 0xe0 <main+0x2c>
00000102 <r_485>:
}
uchar r_485(void)
{
// clr_485_disable();
uchar num;
while(!(UCSRA & (1<<RXC)));
102: 5f 9b sbis 0x0b, 7 ; 11
104: fe cf rjmp .-4 ; 0x102 <r_485>
delay_us(50);
106: 82 e3 ldi r24, 0x32 ; 50
108: 90 e0 ldi r25, 0x00 ; 0
10a: a8 df rcall .-176 ; 0x5c <delay_us>
num = UDR;
10c: 8c b1 in r24, 0x0c ; 12
return num;
}
10e: 99 27 eor r25, r25
110: 08 95 ret
00000112 <__vector_11>:
#if INT==1
ISR(SIG_UART_RECV) //串口接受中断
{
112: 1f 92 push r1
114: 0f 92 push r0
116: 0f b6 in r0, 0x3f ; 63
118: 0f 92 push r0
11a: 11 24 eor r1, r1
11c: 2f 93 push r18
11e: 3f 93 push r19
120: 4f 93 push r20
122: 5f 93 push r21
124: 6f 93 push r22
126: 7f 93 push r23
128: 8f 93 push r24
12a: 9f 93 push r25
12c: af 93 push r26
12e: bf 93 push r27
130: ef 93 push r30
132: ff 93 push r31
buffer[buf_p]=UDR;
134: 80 91 9e 00 lds r24, 0x009E
138: e8 2f mov r30, r24
13a: ff 27 eor r31, r31
13c: ef 55 subi r30, 0x5F ; 95
13e: ff 4f sbci r31, 0xFF ; 255
140: 8c b1 in r24, 0x0c ; 12
142: 80 83 st Z, r24
delay_us(40);
144: 88 e2 ldi r24, 0x28 ; 40
146: 90 e0 ldi r25, 0x00 ; 0
148: 89 df rcall .-238 ; 0x5c <delay_us>
if(buffer[buf_p]==0xff)T_flag=1;
14a: 90 91 9e 00 lds r25, 0x009E
14e: e9 2f mov r30, r25
150: ff 27 eor r31, r31
152: ef 55 subi r30, 0x5F ; 95
154: ff 4f sbci r31, 0xFF ; 255
156: 80 81 ld r24, Z
158: 8f 3f cpi r24, 0xFF ; 255
15a: 19 f4 brne .+6 ; 0x162 <__vector_11+0x50>
15c: 81 e0 ldi r24, 0x01 ; 1
15e: 80 93 9f 00 sts 0x009F, r24
buf_p++;
162: 9f 5f subi r25, 0xFF ; 255
164: 90 93 9e 00 sts 0x009E, r25
168: ff 91 pop r31
16a: ef 91 pop r30
16c: bf 91 pop r27
16e: af 91 pop r26
170: 9f 91 pop r25
172: 8f 91 pop r24
174: 7f 91 pop r23
176: 6f 91 pop r22
178: 5f 91 pop r21
17a: 4f 91 pop r20
17c: 3f 91 pop r19
17e: 2f 91 pop r18
180: 0f 90 pop r0
182: 0f be out 0x3f, r0 ; 63
184: 0f 90 pop r0
186: 1f 90 pop r1
188: 18 95 reti
0000018a <Timer1_init>:
}
#endif
void Timer1_init(void)
{
TCCR1B = 0b00000001; //无分频
18a: 81 e0 ldi r24, 0x01 ; 1
18c: 8e bd out 0x2e, r24 ; 46
TCNT1 = 0xf70c; //4M时0.5个字符-0.000573s产生一个中断
18e: 8c e0 ldi r24, 0x0C ; 12
190: 97 ef ldi r25, 0xF7 ; 247
192: 9d bd out 0x2d, r25 ; 45
194: 8c bd out 0x2c, r24 ; 44
196: 08 95 ret
00000198 <__vector_8>:
// TIMSK = 0b00000100; //使能T1中断
}
ISR(SIG_OVERFLOW1)
{
198: 1f 92 push r1
19a: 0f 92 push r0
19c: 0f b6 in r0, 0x3f ; 63
19e: 0f 92 push r0
1a0: 11 24 eor r1, r1
1a2: 8f 93 push r24
CLR_T1_INTR();
1a4: 89 b7 in r24, 0x39 ; 57
1a6: 8b 7f andi r24, 0xFB ; 251
1a8: 89 bf out 0x39, r24 ; 57
1aa: 8f 91 pop r24
1ac: 0f 90 pop r0
1ae: 0f be out 0x3f, r0 ; 63
1b0: 0f 90 pop r0
1b2: 1f 90 pop r1
1b4: 18 95 reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -