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

📄 slave.lss

📁 《AVR单片机GCC程序设计》
💻 LSS
📖 第 1 页 / 共 5 页
字号:

slave.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000d1c  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000030  00800060  00000d1c  00000db0  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000a  00800090  00800090  00000de0  2**0
                  ALLOC
  3 .noinit       00000000  0080009a  0080009a  00000de0  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000de0  2**0
                  CONTENTS
  5 .stab         00000408  00000000  00000000  00000de0  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      000005da  00000000  00000000  000011e8  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26
   2:	2b c0       	rjmp	.+86     	; 0x5a
   4:	2a c0       	rjmp	.+84     	; 0x5a
   6:	29 c0       	rjmp	.+82     	; 0x5a
   8:	28 c0       	rjmp	.+80     	; 0x5a
   a:	27 c0       	rjmp	.+78     	; 0x5a
   c:	26 c0       	rjmp	.+76     	; 0x5a
   e:	25 c0       	rjmp	.+74     	; 0x5a
  10:	24 c0       	rjmp	.+72     	; 0x5a
  12:	23 c0       	rjmp	.+70     	; 0x5a
  14:	22 c0       	rjmp	.+68     	; 0x5a
  16:	21 c0       	rjmp	.+66     	; 0x5a
  18:	20 c0       	rjmp	.+64     	; 0x5a
  1a:	1f c0       	rjmp	.+62     	; 0x5a
  1c:	1e c0       	rjmp	.+60     	; 0x5a
  1e:	1d c0       	rjmp	.+58     	; 0x5a
  20:	1c c0       	rjmp	.+56     	; 0x5a
  22:	1b c0       	rjmp	.+54     	; 0x5a
  24:	1a c0       	rjmp	.+52     	; 0x5a

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:	ec e1       	ldi	r30, 0x1C	; 28
  3a:	fd e0       	ldi	r31, 0x0D	; 13
  3c:	02 c0       	rjmp	.+4      	; 0x42

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	a0 39       	cpi	r26, 0x90	; 144
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a0 e9       	ldi	r26, 0x90	; 144
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	aa 39       	cpi	r26, 0x9A	; 154
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50
  58:	1d c0       	rjmp	.+58     	; 0x94

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0

0000005c <usart_putchar>:
#define TWI_ADDRESS 0X32

//标准I/O输出函数
int usart_putchar(char c)
{
  5c:	cf 93       	push	r28
  5e:	c8 2f       	mov	r28, r24
	if(c=='\n')
  60:	8a 30       	cpi	r24, 0x0A	; 10
  62:	11 f4       	brne	.+4      	; 0x68
		usart_putchar('\r');
  64:	8d e0       	ldi	r24, 0x0D	; 13
  66:	fa df       	rcall	.-12     	; 0x5c
	loop_until_bit_is_set(UCSRA,UDRE);
  68:	5d 9b       	sbis	0x0b, 5	; 11
  6a:	fe cf       	rjmp	.-4      	; 0x68
	UDR=c;
  6c:	cc b9       	out	0x0c, r28	; 12
	return 0;
}
  6e:	80 e0       	ldi	r24, 0x00	; 0
  70:	90 e0       	ldi	r25, 0x00	; 0
  72:	cf 91       	pop	r28
  74:	08 95       	ret

00000076 <IoInit>:

//初始化
void IoInit(void)
{
	//串行口初始化
	UCSRB=_BV(RXEN)|_BV(TXEN);/*(1<<RXCIE)|(1<<TXCIE)|*/
  76:	88 e1       	ldi	r24, 0x18	; 24
  78:	8a b9       	out	0x0a, r24	; 10
	UBRRL=25;	//9600 baud 6MHz:38  4MHz:25	
  7a:	89 e1       	ldi	r24, 0x19	; 25
  7c:	89 b9       	out	0x09, r24	; 9
	
	//UART用于标准I/O输入输出
	fdevopen(usart_putchar,0,0);	
  7e:	40 e0       	ldi	r20, 0x00	; 0
  80:	50 e0       	ldi	r21, 0x00	; 0
  82:	ba 01       	movw	r22, r20
  84:	8e e2       	ldi	r24, 0x2E	; 46
  86:	90 e0       	ldi	r25, 0x00	; 0
  88:	81 d3       	rcall	.+1794   	; 0x78c
	
	//TWI接口初始化,从器件模式
	TWAR=TWI_ADDRESS | _BV(TWGCE);
  8a:	83 e3       	ldi	r24, 0x33	; 51
  8c:	82 b9       	out	0x02, r24	; 2
	TWCR=_BV(TWEA) | _BV(TWEN);
  8e:	84 e4       	ldi	r24, 0x44	; 68
  90:	86 bf       	out	0x36, r24	; 54
  92:	08 95       	ret

00000094 <main>:
}

int main(void)
{
  94:	cf e5       	ldi	r28, 0x5F	; 95
  96:	d4 e0       	ldi	r29, 0x04	; 4
  98:	de bf       	out	0x3e, r29	; 62
  9a:	cd bf       	out	0x3d, r28	; 61
	uchar i,j=0;
  9c:	c0 e0       	ldi	r28, 0x00	; 0
	
	IoInit();
  9e:	eb df       	rcall	.-42     	; 0x76
	
	while(1)
	{
		while ((TWCR & _BV(TWINT)) == 0);
  a0:	06 b6       	in	r0, 0x36	; 54
  a2:	07 fe       	sbrs	r0, 7
  a4:	fd cf       	rjmp	.-6      	; 0xa0
		i=TW_STATUS;
  a6:	81 b1       	in	r24, 0x01	; 1
  a8:	88 7f       	andi	r24, 0xF8	; 248
		
		switch(i)
  aa:	99 27       	eor	r25, r25
  ac:	80 38       	cpi	r24, 0x80	; 128
  ae:	91 05       	cpc	r25, r1
  b0:	79 f0       	breq	.+30     	; 0xd0
  b2:	81 38       	cpi	r24, 0x81	; 129
  b4:	91 05       	cpc	r25, r1
  b6:	24 f4       	brge	.+8      	; 0xc0
  b8:	80 36       	cpi	r24, 0x60	; 96
  ba:	91 05       	cpc	r25, r1
  bc:	29 f0       	breq	.+10     	; 0xc8
  be:	25 c0       	rjmp	.+74     	; 0x10a
  c0:	80 3a       	cpi	r24, 0xA0	; 160
  c2:	91 05       	cpc	r25, r1
  c4:	e9 f0       	breq	.+58     	; 0x100
  c6:	21 c0       	rjmp	.+66     	; 0x10a
		{
			case TW_SR_SLA_ACK:
				printf("START\nSLA+W\n");
  c8:	80 e6       	ldi	r24, 0x60	; 96
  ca:	90 e0       	ldi	r25, 0x00	; 0
  cc:	20 d4       	rcall	.+2112   	; 0x90e
				break;
  ce:	28 c0       	rjmp	.+80     	; 0x120
			case TW_SR_DATA_ACK:
				if(j==0)
  d0:	cc 23       	and	r28, r28
  d2:	39 f4       	brne	.+14     	; 0xe2
					printf("收到:%d",TWDR);
  d4:	83 b1       	in	r24, 0x03	; 3
  d6:	99 27       	eor	r25, r25
  d8:	9f 93       	push	r25
  da:	8f 93       	push	r24
  dc:	8c e6       	ldi	r24, 0x6C	; 108
  de:	90 e0       	ldi	r25, 0x00	; 0
  e0:	06 c0       	rjmp	.+12     	; 0xee
				else
					printf(" %d",TWDR);
  e2:	83 b1       	in	r24, 0x03	; 3
  e4:	99 27       	eor	r25, r25
  e6:	9f 93       	push	r25
  e8:	8f 93       	push	r24
  ea:	84 e7       	ldi	r24, 0x74	; 116
  ec:	90 e0       	ldi	r25, 0x00	; 0
  ee:	9f 93       	push	r25
  f0:	8f 93       	push	r24
  f2:	f9 d3       	rcall	.+2034   	; 0x8e6
  f4:	0f 90       	pop	r0
  f6:	0f 90       	pop	r0
  f8:	0f 90       	pop	r0
  fa:	0f 90       	pop	r0
				j++;
  fc:	cf 5f       	subi	r28, 0xFF	; 255
				break;
  fe:	10 c0       	rjmp	.+32     	; 0x120
			case TW_SR_STOP:
				printf(";\nSTOP\n\n");
 100:	88 e7       	ldi	r24, 0x78	; 120
 102:	90 e0       	ldi	r25, 0x00	; 0
 104:	04 d4       	rcall	.+2056   	; 0x90e
				j=0;
 106:	c0 e0       	ldi	r28, 0x00	; 0
				break;
 108:	0b c0       	rjmp	.+22     	; 0x120
			default:
				printf("error:%x",(int)i);
 10a:	9f 93       	push	r25
 10c:	8f 93       	push	r24
 10e:	80 e8       	ldi	r24, 0x80	; 128
 110:	90 e0       	ldi	r25, 0x00	; 0
 112:	9f 93       	push	r25
 114:	8f 93       	push	r24
 116:	e7 d3       	rcall	.+1998   	; 0x8e6
				break;
 118:	0f 90       	pop	r0
 11a:	0f 90       	pop	r0
 11c:	0f 90       	pop	r0
 11e:	0f 90       	pop	r0
		}
		TWCR=_BV(TWEA) | _BV(TWEN)|_BV(TWINT);	//清除TWINT位
 120:	84 ec       	ldi	r24, 0xC4	; 196
 122:	86 bf       	out	0x36, r24	; 54
 124:	bd cf       	rjmp	.-134    	; 0xa0

00000126 <vfprintf>:
 126:	af e0       	ldi	r26, 0x0F	; 15
 128:	b0 e0       	ldi	r27, 0x00	; 0
 12a:	e8 e9       	ldi	r30, 0x98	; 152
 12c:	f0 e0       	ldi	r31, 0x00	; 0
 12e:	9d c5       	rjmp	.+2874   	; 0xc6a
 130:	aa 24       	eor	r10, r10
 132:	bb 24       	eor	r11, r11
 134:	65 01       	movw	r12, r10
 136:	3c 01       	movw	r6, r24
 138:	2b 01       	movw	r4, r22
 13a:	4d 87       	std	Y+13, r20	; 0x0d
 13c:	5e 87       	std	Y+14, r21	; 0x0e
 13e:	22 24       	eor	r2, r2
 140:	fc 01       	movw	r30, r24
 142:	16 82       	std	Z+6, r1	; 0x06
 144:	17 82       	std	Z+7, r1	; 0x07
 146:	83 81       	ldd	r24, Z+3	; 0x03
 148:	81 fd       	sbrc	r24, 1
 14a:	47 c1       	rjmp	.+654    	; 0x3da
 14c:	8f ef       	ldi	r24, 0xFF	; 255
 14e:	9f ef       	ldi	r25, 0xFF	; 255
 150:	57 c1       	rjmp	.+686    	; 0x400
 152:	20 fe       	sbrs	r2, 0
 154:	34 c1       	rjmp	.+616    	; 0x3be
 156:	83 2d       	mov	r24, r3
 158:	80 53       	subi	r24, 0x30	; 48
 15a:	8a 30       	cpi	r24, 0x0A	; 10
 15c:	08 f4       	brcc	.+2      	; 0x160
 15e:	3d c1       	rjmp	.+634    	; 0x3da
 160:	83 2d       	mov	r24, r3
 162:	99 27       	eor	r25, r25
 164:	87 fd       	sbrc	r24, 7
 166:	90 95       	com	r25
 168:	88 36       	cpi	r24, 0x68	; 104
 16a:	91 05       	cpc	r25, r1
 16c:	3c f5       	brge	.+78     	; 0x1bc
 16e:	85 36       	cpi	r24, 0x65	; 101
 170:	91 05       	cpc	r25, r1
 172:	0c f0       	brlt	.+2      	; 0x176
 174:	4c c0       	rjmp	.+152    	; 0x20e
 176:	88 35       	cpi	r24, 0x58	; 88
 178:	91 05       	cpc	r25, r1
 17a:	09 f4       	brne	.+2      	; 0x17e
 17c:	99 c0       	rjmp	.+306    	; 0x2b0
 17e:	89 35       	cpi	r24, 0x59	; 89
 180:	91 05       	cpc	r25, r1
 182:	a4 f4       	brge	.+40     	; 0x1ac
 184:	8b 32       	cpi	r24, 0x2B	; 43
 186:	91 05       	cpc	r25, r1
 188:	09 f4       	brne	.+2      	; 0x18c
 18a:	27 c1       	rjmp	.+590    	; 0x3da
 18c:	8c 32       	cpi	r24, 0x2C	; 44
 18e:	91 05       	cpc	r25, r1
 190:	44 f4       	brge	.+16     	; 0x1a2
 192:	80 32       	cpi	r24, 0x20	; 32
 194:	91 05       	cpc	r25, r1
 196:	09 f4       	brne	.+2      	; 0x19a
 198:	20 c1       	rjmp	.+576    	; 0x3da
 19a:	83 97       	sbiw	r24, 0x23	; 35
 19c:	09 f4       	brne	.+2      	; 0x1a0
 19e:	1d c1       	rjmp	.+570    	; 0x3da
 1a0:	06 c1       	rjmp	.+524    	; 0x3ae
 1a2:	8d 97       	sbiw	r24, 0x2d	; 45
 1a4:	02 97       	sbiw	r24, 0x02	; 2
 1a6:	08 f0       	brcs	.+2      	; 0x1aa
 1a8:	02 c1       	rjmp	.+516    	; 0x3ae
 1aa:	17 c1       	rjmp	.+558    	; 0x3da
 1ac:	83 36       	cpi	r24, 0x63	; 99
 1ae:	91 05       	cpc	r25, r1
 1b0:	b9 f1       	breq	.+110    	; 0x220
 1b2:	84 36       	cpi	r24, 0x64	; 100
 1b4:	91 05       	cpc	r25, r1
 1b6:	09 f4       	brne	.+2      	; 0x1ba
 1b8:	4b c0       	rjmp	.+150    	; 0x250
 1ba:	f9 c0       	rjmp	.+498    	; 0x3ae
 1bc:	80 37       	cpi	r24, 0x70	; 112
 1be:	91 05       	cpc	r25, r1
 1c0:	09 f4       	brne	.+2      	; 0x1c4
 1c2:	72 c0       	rjmp	.+228    	; 0x2a8
 1c4:	81 37       	cpi	r24, 0x71	; 113
 1c6:	91 05       	cpc	r25, r1
 1c8:	7c f4       	brge	.+30     	; 0x1e8
 1ca:	8c 36       	cpi	r24, 0x6C	; 108
 1cc:	91 05       	cpc	r25, r1
 1ce:	e1 f0       	breq	.+56     	; 0x208
 1d0:	8d 36       	cpi	r24, 0x6D	; 109
 1d2:	91 05       	cpc	r25, r1
 1d4:	24 f4       	brge	.+8      	; 0x1de
 1d6:	89 36       	cpi	r24, 0x69	; 105
 1d8:	91 05       	cpc	r25, r1
 1da:	d1 f1       	breq	.+116    	; 0x250
 1dc:	e8 c0       	rjmp	.+464    	; 0x3ae
 1de:	8f 36       	cpi	r24, 0x6F	; 111
 1e0:	91 05       	cpc	r25, r1
 1e2:	09 f4       	brne	.+2      	; 0x1e6
 1e4:	5e c0       	rjmp	.+188    	; 0x2a2
 1e6:	e3 c0       	rjmp	.+454    	; 0x3ae
 1e8:	85 37       	cpi	r24, 0x75	; 117
 1ea:	91 05       	cpc	r25, r1
 1ec:	09 f4       	brne	.+2      	; 0x1f0
 1ee:	62 c0       	rjmp	.+196    	; 0x2b4
 1f0:	86 37       	cpi	r24, 0x76	; 118
 1f2:	91 05       	cpc	r25, r1
 1f4:	24 f4       	brge	.+8      	; 0x1fe
 1f6:	83 37       	cpi	r24, 0x73	; 115
 1f8:	91 05       	cpc	r25, r1
 1fa:	d1 f0       	breq	.+52     	; 0x230
 1fc:	d8 c0       	rjmp	.+432    	; 0x3ae

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -