📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000004e 00800100 00000748 000007dc 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000748 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000073 0080014e 0080014e 0000082a 2**0
ALLOC
3 .debug_aranges 000000a0 00000000 00000000 0000082a 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 0000027d 00000000 00000000 000008ca 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00000f8f 00000000 00000000 00000b47 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000541 00000000 00000000 00001ad6 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000cec 00000000 00000000 00002017 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000230 00000000 00000000 00002d04 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000003f1 00000000 00000000 00002f34 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000002a8 00000000 00000000 00003325 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 29 c0 rjmp .+82 ; 0x54 <__ctors_end>
2: 43 c0 rjmp .+134 ; 0x8a <__bad_interrupt>
4: 42 c0 rjmp .+132 ; 0x8a <__bad_interrupt>
6: 41 c0 rjmp .+130 ; 0x8a <__bad_interrupt>
8: 40 c0 rjmp .+128 ; 0x8a <__bad_interrupt>
a: 3f c0 rjmp .+126 ; 0x8a <__bad_interrupt>
c: 3e c0 rjmp .+124 ; 0x8a <__bad_interrupt>
e: 3d c0 rjmp .+122 ; 0x8a <__bad_interrupt>
10: 3c c0 rjmp .+120 ; 0x8a <__bad_interrupt>
12: 3b c0 rjmp .+118 ; 0x8a <__bad_interrupt>
14: 3a c0 rjmp .+116 ; 0x8a <__bad_interrupt>
16: 39 c0 rjmp .+114 ; 0x8a <__bad_interrupt>
18: 38 c0 rjmp .+112 ; 0x8a <__bad_interrupt>
1a: 37 c0 rjmp .+110 ; 0x8a <__bad_interrupt>
1c: 36 c0 rjmp .+108 ; 0x8a <__bad_interrupt>
1e: 35 c0 rjmp .+106 ; 0x8a <__bad_interrupt>
20: 77 c1 rjmp .+750 ; 0x310 <__vector_16>
22: 33 c0 rjmp .+102 ; 0x8a <__bad_interrupt>
24: 77 c0 rjmp .+238 ; 0x114 <__vector_18>
26: 97 c0 rjmp .+302 ; 0x156 <__vector_19>
28: 30 c0 rjmp .+96 ; 0x8a <__bad_interrupt>
2a: 2f c0 rjmp .+94 ; 0x8a <__bad_interrupt>
2c: 2e c0 rjmp .+92 ; 0x8a <__bad_interrupt>
2e: 2d c0 rjmp .+90 ; 0x8a <__bad_interrupt>
30: 2c c0 rjmp .+88 ; 0x8a <__bad_interrupt>
32: 2b c0 rjmp .+86 ; 0x8a <__bad_interrupt>
00000034 <hex>:
34: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0123456789ABCDEF
00000044 <usarthex>:
44: 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 0123456789ABCDEF
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf ef ldi r28, 0xFF ; 255
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 11 e0 ldi r17, 0x01 ; 1
62: a0 e0 ldi r26, 0x00 ; 0
64: b1 e0 ldi r27, 0x01 ; 1
66: e8 e4 ldi r30, 0x48 ; 72
68: f7 e0 ldi r31, 0x07 ; 7
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: ae 34 cpi r26, 0x4E ; 78
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 11 e0 ldi r17, 0x01 ; 1
78: ae e4 ldi r26, 0x4E ; 78
7a: b1 e0 ldi r27, 0x01 ; 1
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: a1 3c cpi r26, 0xC1 ; 193
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 07 d0 rcall .+14 ; 0x96 <main>
88: 5e c3 rjmp .+1724 ; 0x746 <_exit>
0000008a <__bad_interrupt>:
8a: ba cf rjmp .-140 ; 0x0 <__vectors>
0000008c <init_io>:
void init_io (void)
{
8c: 80 ec ldi r24, 0xC0 ; 192
8e: 8a b9 out 0x0a, r24 ; 10
DDRD = 0b11000000;
PORTD = 0b11100000;
90: 80 ee ldi r24, 0xE0 ; 224
92: 8b b9 out 0x0b, r24 ; 11
94: 08 95 ret
00000096 <main>:
96: 64 e6 ldi r22, 0x64 ; 100
98: 70 e0 ldi r23, 0x00 ; 0
9a: 80 e0 ldi r24, 0x00 ; 0
9c: 90 e0 ldi r25, 0x00 ; 0
9e: 0c d1 rcall .+536 ; 0x2b8 <delay_ms>
a0: 80 ec ldi r24, 0xC0 ; 192
a2: 8a b9 out 0x0a, r24 ; 10
a4: 80 ee ldi r24, 0xE0 ; 224
a6: 8b b9 out 0x0b, r24 ; 11
a8: 5c d1 rcall .+696 ; 0x362 <Timer0_Init>
aa: 10 92 4f 01 sts 0x014F, r1
ae: 10 92 4e 01 sts 0x014E, r1
b2: 78 94 sei
b4: 87 e4 ldi r24, 0x47 ; 71
b6: 90 e0 ldi r25, 0x00 ; 0
b8: 18 d0 rcall .+48 ; 0xea <usart_init>
ba: 80 e0 ldi r24, 0x00 ; 0
bc: 91 e0 ldi r25, 0x01 ; 1
be: ad d0 rcall .+346 ; 0x21a <usart_puts>
c0: 61 d1 rcall .+706 ; 0x384 <SPI_MasterInit>
c2: 65 d1 rcall .+714 ; 0x38e <CSN_HIGH>
c4: 68 d1 rcall .+720 ; 0x396 <CE_HIGH>
c6: fc d2 rcall .+1528 ; 0x6c0 <NRF_init>
c8: 66 d1 rcall .+716 ; 0x396 <CE_HIGH>
ca: 68 d2 rcall .+1232 ; 0x59c <check_recieve_nrf24L01>
cc: 0a c0 rjmp .+20 ; 0xe2 <main+0x4c>
ce: 6d d0 rcall .+218 ; 0x1aa <usart_getc>
d0: 80 93 50 01 sts 0x0150, r24
d4: 80 91 50 01 lds r24, 0x0150
d8: 7d d0 rcall .+250 ; 0x1d4 <usart_putc>
da: 80 91 50 01 lds r24, 0x0150
de: b3 d2 rcall .+1382 ; 0x646 <NRF_send>
e0: 56 d2 rcall .+1196 ; 0x58e <NRF_prepareForReceive>
e2: a7 d0 rcall .+334 ; 0x232 <DataInReceiveBuffer>
e4: 89 2b or r24, r25
e6: 99 f7 brne .-26 ; 0xce <main+0x38>
e8: ef cf rjmp .-34 ; 0xc8 <main+0x32>
000000ea <usart_init>:
const prog_char usarthex[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
void usart_init( unsigned int baudrate )
{
ea: 29 2f mov r18, r25
ec: 33 27 eor r19, r19
ee: 20 93 c5 00 sts 0x00C5, r18
/* Set the baud rate */
UBRR0H = (unsigned char) (baudrate>>8);
UBRR0L = (unsigned char) baudrate;
f2: 80 93 c4 00 sts 0x00C4, r24
//cbi(UCSR0A,U2X0) ;
/* Enable UART receiver and transmitter */
UCSR0B = ((1<<RXCIE0) | (1<<RXEN0) | (1<<TXEN0));
f6: 88 e9 ldi r24, 0x98 ; 152
f8: 80 93 c1 00 sts 0x00C1, r24
/*For devices without Extended IO*/
UCSR0C = (0<<USBS0) | (0<<UCSZ02)| (1<<UCSZ01)| (1<<UCSZ00);
fc: 86 e0 ldi r24, 0x06 ; 6
fe: 80 93 c2 00 sts 0x00C2, r24
USART_RxTail = 0;
102: 10 92 92 01 sts 0x0192, r1
USART_RxHead = 0;
106: 10 92 91 01 sts 0x0191, r1
USART_TxTail = 0;
10a: 10 92 b4 01 sts 0x01B4, r1
USART_TxHead = 0;
10e: 10 92 b3 01 sts 0x01B3, r1
112: 08 95 ret
00000114 <__vector_18>:
}
SIGNAL( USART_RECEIVE_INTERRUPT )
{
114: 1f 92 push r1
116: 0f 92 push r0
118: 0f b6 in r0, 0x3f ; 63
11a: 0f 92 push r0
11c: 11 24 eor r1, r1
11e: 8f 93 push r24
120: 9f 93 push r25
122: ef 93 push r30
124: ff 93 push r31
unsigned char tmphead;
if(!(UCSR0A & (0<<RXC0)))
126: 80 91 c0 00 lds r24, 0x00C0
{
tmphead = ( USART_RxHead + 1 ) & USART_RX_BUFFER_MASK;
12a: 80 91 91 01 lds r24, 0x0191
12e: 8f 5f subi r24, 0xFF ; 255
130: 8f 73 andi r24, 0x3F ; 63
USART_RxHead = tmphead;
132: 80 93 91 01 sts 0x0191, r24
USART_RxBuf[tmphead] = UDR0;
136: 90 91 c6 00 lds r25, 0x00C6
13a: e1 e5 ldi r30, 0x51 ; 81
13c: f1 e0 ldi r31, 0x01 ; 1
13e: e8 0f add r30, r24
140: f1 1d adc r31, r1
142: 90 83 st Z, r25
144: ff 91 pop r31
146: ef 91 pop r30
148: 9f 91 pop r25
14a: 8f 91 pop r24
14c: 0f 90 pop r0
14e: 0f be out 0x3f, r0 ; 63
150: 0f 90 pop r0
152: 1f 90 pop r1
154: 18 95 reti
00000156 <__vector_19>:
}
}
SIGNAL( USART_TRANSMIT_INTERRUPT )
{
156: 1f 92 push r1
158: 0f 92 push r0
15a: 0f b6 in r0, 0x3f ; 63
15c: 0f 92 push r0
15e: 11 24 eor r1, r1
160: 8f 93 push r24
162: 9f 93 push r25
164: ef 93 push r30
166: ff 93 push r31
unsigned char tmptail;
if ( USART_TxHead != USART_TxTail )
168: 90 91 b3 01 lds r25, 0x01B3
16c: 80 91 b4 01 lds r24, 0x01B4
170: 98 17 cp r25, r24
172: 69 f0 breq .+26 ; 0x18e <__vector_19+0x38>
{
tmptail = ( USART_TxTail + 1 ) & USART_TX_BUFFER_MASK;
174: e0 91 b4 01 lds r30, 0x01B4
178: ef 5f subi r30, 0xFF ; 255
17a: ef 71 andi r30, 0x1F ; 31
USART_TxTail = tmptail;
17c: e0 93 b4 01 sts 0x01B4, r30
UDR0 = USART_TxBuf[tmptail];
180: ff 27 eor r31, r31
182: ed 56 subi r30, 0x6D ; 109
184: fe 4f sbci r31, 0xFE ; 254
186: 80 81 ld r24, Z
188: 80 93 c6 00 sts 0x00C6, r24
18c: 05 c0 rjmp .+10 ; 0x198 <__vector_19+0x42>
}
else
{
UCSR0B &= ~(1<<UDRIE0);
18e: 80 91 c1 00 lds r24, 0x00C1
192: 8f 7d andi r24, 0xDF ; 223
194: 80 93 c1 00 sts 0x00C1, r24
198: ff 91 pop r31
19a: ef 91 pop r30
19c: 9f 91 pop r25
19e: 8f 91 pop r24
1a0: 0f 90 pop r0
1a2: 0f be out 0x3f, r0 ; 63
1a4: 0f 90 pop r0
1a6: 1f 90 pop r1
1a8: 18 95 reti
000001aa <usart_getc>:
}
}
unsigned int usart_getc(void)
{
1aa: 90 91 91 01 lds r25, 0x0191
1ae: 80 91 92 01 lds r24, 0x0192
1b2: 98 17 cp r25, r24
1b4: 19 f4 brne .+6 ; 0x1bc <usart_getc+0x12>
unsigned char tmptail;
unsigned char data;
if ( USART_RxHead == USART_RxTail ) {
1b6: 80 e0 ldi r24, 0x00 ; 0
1b8: 91 e0 ldi r25, 0x01 ; 1
1ba: 08 95 ret
return USART_NO_DATA;
}
tmptail = (USART_RxTail + 1) & USART_RX_BUFFER_MASK;
1bc: e0 91 92 01 lds r30, 0x0192
1c0: ef 5f subi r30, 0xFF ; 255
1c2: ef 73 andi r30, 0x3F ; 63
USART_RxTail = tmptail;
1c4: e0 93 92 01 sts 0x0192, r30
data = USART_RxBuf[tmptail];
1c8: ff 27 eor r31, r31
1ca: ef 5a subi r30, 0xAF ; 175
1cc: fe 4f sbci r31, 0xFE ; 254
1ce: 80 81 ld r24, Z
return data;
1d0: 99 27 eor r25, r25
}
1d2: 08 95 ret
000001d4 <usart_putc>:
void usart_puts(const char *s )
{
while (*s)
usart_putc(*s++);
}
void usart_puts_p(const char *progmem_s )
{
register char c;
while ( (c = pgm_read_byte(progmem_s++)) )
usart_putc(c);
}
void usart_putc(unsigned char data)
{
1d4: 28 2f mov r18, r24
unsigned char tmphead;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -