⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lss

📁 AVR Mega88 + nRF24L01 wireless 2.4GHz >> Driver nRF24L01 >> AVRSTUDIO project
💻 LSS
📖 第 1 页 / 共 4 页
字号:

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 + -