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

📄 main.lss

📁 avr单片机的一些实际应用源码
💻 LSS
📖 第 1 页 / 共 5 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000e3e  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000052  00800060  00000e3e  00000ed2  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000005b  008000b2  008000b2  00000f24  2**0
                  ALLOC
  3 .noinit       00000000  0080010d  0080010d  00000f24  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000f24  2**0
                  CONTENTS
  5 .stab         00000480  00000000  00000000  00000f24  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      0000078c  00000000  00000000  000013a4  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	24 c0       	rjmp	.+72     	; 0x4a
   2:	3d c0       	rjmp	.+122    	; 0x7e
   4:	3c c0       	rjmp	.+120    	; 0x7e
   6:	3b c0       	rjmp	.+118    	; 0x7e
   8:	3a c0       	rjmp	.+116    	; 0x7e
   a:	39 c0       	rjmp	.+114    	; 0x7e
   c:	38 c0       	rjmp	.+112    	; 0x7e
   e:	37 c0       	rjmp	.+110    	; 0x7e
  10:	36 c0       	rjmp	.+108    	; 0x7e
  12:	35 c0       	rjmp	.+106    	; 0x7e
  14:	34 c0       	rjmp	.+104    	; 0x7e
  16:	33 c0       	rjmp	.+102    	; 0x7e
  18:	32 c0       	rjmp	.+100    	; 0x7e
  1a:	31 c0       	rjmp	.+98     	; 0x7e
  1c:	30 c0       	rjmp	.+96     	; 0x7e
  1e:	2f c0       	rjmp	.+94     	; 0x7e
  20:	2e c0       	rjmp	.+92     	; 0x7e
  22:	2d c0       	rjmp	.+90     	; 0x7e
  24:	2c c0       	rjmp	.+88     	; 0x7e

00000026 <__ctors_end>:
  26:	b2 e2       	ldi	r27, 0x22	; 34
  28:	ca d4       	rcall	.+2452   	; 0x9be
  2a:	33 5b       	subi	r19, 0xB3	; 179
  2c:	ca e4       	ldi	r28, 0x4A	; 74
  2e:	c8 eb       	ldi	r28, 0xB8	; 184
  30:	ca fd       	.word	0xfdca	; ????
  32:	d7 d6       	rcall	.+3502   	; 0xde2
  34:	5d 3a       	cpi	r21, 0xAD	; 173
  36:	0a 00       	.word	0x000a	; ????

00000038 <__c.1>:
  38:	25 64 00                                            %d.

0000003b <__c.2>:
  3b:	c4 fa b5 c4 ca e4 c8 eb ce aa 3a 25 64 0a 00        ..........:%d..

0000004a <__init>:
  4a:	11 24       	eor	r1, r1
  4c:	1f be       	out	0x3f, r1	; 63
  4e:	cf e5       	ldi	r28, 0x5F	; 95
  50:	d4 e0       	ldi	r29, 0x04	; 4
  52:	de bf       	out	0x3e, r29	; 62
  54:	cd bf       	out	0x3d, r28	; 61

00000056 <__do_copy_data>:
  56:	10 e0       	ldi	r17, 0x00	; 0
  58:	a0 e6       	ldi	r26, 0x60	; 96
  5a:	b0 e0       	ldi	r27, 0x00	; 0
  5c:	ee e3       	ldi	r30, 0x3E	; 62
  5e:	fe e0       	ldi	r31, 0x0E	; 14
  60:	02 c0       	rjmp	.+4      	; 0x66

00000062 <.do_copy_data_loop>:
  62:	05 90       	lpm	r0, Z+
  64:	0d 92       	st	X+, r0

00000066 <.do_copy_data_start>:
  66:	a2 3b       	cpi	r26, 0xB2	; 178
  68:	b1 07       	cpc	r27, r17
  6a:	d9 f7       	brne	.-10     	; 0x62

0000006c <__do_clear_bss>:
  6c:	11 e0       	ldi	r17, 0x01	; 1
  6e:	a2 eb       	ldi	r26, 0xB2	; 178
  70:	b0 e0       	ldi	r27, 0x00	; 0
  72:	01 c0       	rjmp	.+2      	; 0x76

00000074 <.do_clear_bss_loop>:
  74:	1d 92       	st	X+, r1

00000076 <.do_clear_bss_start>:
  76:	ad 30       	cpi	r26, 0x0D	; 13
  78:	b1 07       	cpc	r27, r17
  7a:	e1 f7       	brne	.-8      	; 0x74
  7c:	1f c0       	rjmp	.+62     	; 0xbc

0000007e <__bad_interrupt>:
  7e:	c0 cf       	rjmp	.-128    	; 0x0

00000080 <usart_putchar>:
char g_aString[81];

//
int usart_putchar(char c)
{
  80:	cf 93       	push	r28
  82:	c8 2f       	mov	r28, r24
	if(c=='\n')
  84:	8a 30       	cpi	r24, 0x0A	; 10
  86:	11 f4       	brne	.+4      	; 0x8c
		usart_putchar('\r');
  88:	8d e0       	ldi	r24, 0x0D	; 13
  8a:	fa df       	rcall	.-12     	; 0x80
	loop_until_bit_is_set(UCSRA,UDRE);
  8c:	5d 9b       	sbis	0x0b, 5	; 11
  8e:	fe cf       	rjmp	.-4      	; 0x8c
	UDR=c;
  90:	cc b9       	out	0x0c, r28	; 12
	return 0;
}
  92:	80 e0       	ldi	r24, 0x00	; 0
  94:	90 e0       	ldi	r25, 0x00	; 0
  96:	cf 91       	pop	r28
  98:	08 95       	ret

0000009a <usart_getchar>:
//
int usart_getchar(void)
{
	loop_until_bit_is_set(UCSRA,RXC);
  9a:	5f 9b       	sbis	0x0b, 7	; 11
  9c:	fe cf       	rjmp	.-4      	; 0x9a
	return UDR;
  9e:	8c b1       	in	r24, 0x0c	; 12
}
  a0:	99 27       	eor	r25, r25
  a2:	08 95       	ret

000000a4 <IoInit>:

void IoInit(void)
{
	//UART初始化
	UCSRB=_BV(RXEN)|_BV(TXEN);/*(1<<RXCIE)|(1<<TXCIE)|*/
  a4:	88 e1       	ldi	r24, 0x18	; 24
  a6:	8a b9       	out	0x0a, r24	; 10
	UBRRL=25;	//9600 baud 6MHz:38  4MHz:25	
  a8:	89 e1       	ldi	r24, 0x19	; 25
  aa:	89 b9       	out	0x09, r24	; 9
	
	//i/o流UART连接
	fdevopen(usart_putchar,usart_getchar,0);	
  ac:	40 e0       	ldi	r20, 0x00	; 0
  ae:	50 e0       	ldi	r21, 0x00	; 0
  b0:	6d e4       	ldi	r22, 0x4D	; 77
  b2:	70 e0       	ldi	r23, 0x00	; 0
  b4:	80 e4       	ldi	r24, 0x40	; 64
  b6:	90 e0       	ldi	r25, 0x00	; 0
  b8:	96 d3       	rcall	.+1836   	; 0x7e6
  ba:	08 95       	ret

000000bc <main>:
}

int main(void)
{
  bc:	cd e5       	ldi	r28, 0x5D	; 93
  be:	d4 e0       	ldi	r29, 0x04	; 4
  c0:	de bf       	out	0x3e, r29	; 62
  c2:	cd bf       	out	0x3d, r28	; 61
	int tmp;
	
	IoInit();
  c4:	ef df       	rcall	.-34     	; 0xa4
	
	while(1)
	{
		tmp=0xffff;//如果没有这条语句,vfprintf/vfscanf工作不正常,可能是vfprintf/vfscanf的bug.
  c6:	8f ef       	ldi	r24, 0xFF	; 255
  c8:	9f ef       	ldi	r25, 0xFF	; 255
  ca:	89 83       	std	Y+1, r24	; 0x01
  cc:	9a 83       	std	Y+2, r25	; 0x02

		//测试1
		vfprintf(stdout,"测试1[输入数字]:\n",0);
  ce:	40 e0       	ldi	r20, 0x00	; 0
  d0:	50 e0       	ldi	r21, 0x00	; 0
  d2:	60 e6       	ldi	r22, 0x60	; 96
  d4:	70 e0       	ldi	r23, 0x00	; 0
  d6:	80 91 09 01 	lds	r24, 0x0109
  da:	90 91 0a 01 	lds	r25, 0x010A
  de:	50 d0       	rcall	.+160    	; 0x180
		vfscanf(stdin,"%d",&tmp);
  e0:	ae 01       	movw	r20, r28
  e2:	4f 5f       	subi	r20, 0xFF	; 255
  e4:	5f 4f       	sbci	r21, 0xFF	; 255
  e6:	62 e7       	ldi	r22, 0x72	; 114
  e8:	70 e0       	ldi	r23, 0x00	; 0
  ea:	80 91 07 01 	lds	r24, 0x0107
  ee:	90 91 08 01 	lds	r25, 0x0108
  f2:	b6 d1       	rcall	.+876    	; 0x460
		vfprintf(stdout,"您的输入为:%d\n",tmp);
  f4:	49 81       	ldd	r20, Y+1	; 0x01
  f6:	5a 81       	ldd	r21, Y+2	; 0x02
  f8:	65 e7       	ldi	r22, 0x75	; 117
  fa:	70 e0       	ldi	r23, 0x00	; 0
  fc:	80 91 09 01 	lds	r24, 0x0109
 100:	90 91 0a 01 	lds	r25, 0x010A
 104:	3d d0       	rcall	.+122    	; 0x180

		//测试2
		printf("测试2[输入一字符串]:\n");
 106:	84 e8       	ldi	r24, 0x84	; 132
 108:	90 e0       	ldi	r25, 0x00	; 0
 10a:	56 d4       	rcall	.+2220   	; 0x9b8
		scanf("%s",g_aString);
 10c:	06 eb       	ldi	r16, 0xB6	; 182
 10e:	10 e0       	ldi	r17, 0x00	; 0
 110:	1f 93       	push	r17
 112:	0f 93       	push	r16
 114:	89 e9       	ldi	r24, 0x99	; 153
 116:	90 e0       	ldi	r25, 0x00	; 0
 118:	9f 93       	push	r25
 11a:	8f 93       	push	r24
 11c:	83 d4       	rcall	.+2310   	; 0xa24
		printf("您的输入为:%s\n",g_aString);
 11e:	1f 93       	push	r17
 120:	0f 93       	push	r16
 122:	8c e9       	ldi	r24, 0x9C	; 156
 124:	90 e0       	ldi	r25, 0x00	; 0
 126:	9f 93       	push	r25
 128:	8f 93       	push	r24
 12a:	0a d4       	rcall	.+2068   	; 0x940
		
		//测试3
		printf_P(PSTR("测试3[输入数字]:\n"));
 12c:	8d b7       	in	r24, 0x3d	; 61
 12e:	9e b7       	in	r25, 0x3e	; 62
 130:	08 96       	adiw	r24, 0x08	; 8
 132:	0f b6       	in	r0, 0x3f	; 63
 134:	f8 94       	cli
 136:	9e bf       	out	0x3e, r25	; 62
 138:	0f be       	out	0x3f, r0	; 63
 13a:	8d bf       	out	0x3d, r24	; 61
 13c:	86 e2       	ldi	r24, 0x26	; 38
 13e:	90 e0       	ldi	r25, 0x00	; 0
 140:	9f 93       	push	r25
 142:	8f 93       	push	r24
 144:	11 d4       	rcall	.+2082   	; 0x968
		scanf_P(PSTR("%d"),&tmp);
 146:	0f 90       	pop	r0
 148:	0f 90       	pop	r0
 14a:	ce 01       	movw	r24, r28
 14c:	01 96       	adiw	r24, 0x01	; 1
 14e:	9f 93       	push	r25
 150:	8f 93       	push	r24
 152:	88 e3       	ldi	r24, 0x38	; 56
 154:	90 e0       	ldi	r25, 0x00	; 0
 156:	9f 93       	push	r25
 158:	8f 93       	push	r24
 15a:	78 d4       	rcall	.+2288   	; 0xa4c
		printf_P(PSTR("您的输入为:%d\n"),tmp);
 15c:	0f 90       	pop	r0
 15e:	0f 90       	pop	r0
 160:	0f 90       	pop	r0
 162:	0f 90       	pop	r0
 164:	89 81       	ldd	r24, Y+1	; 0x01
 166:	9a 81       	ldd	r25, Y+2	; 0x02
 168:	9f 93       	push	r25
 16a:	8f 93       	push	r24
 16c:	8b e3       	ldi	r24, 0x3B	; 59
 16e:	90 e0       	ldi	r25, 0x00	; 0
 170:	9f 93       	push	r25
 172:	8f 93       	push	r24
 174:	f9 d3       	rcall	.+2034   	; 0x968
 176:	0f 90       	pop	r0
 178:	0f 90       	pop	r0
 17a:	0f 90       	pop	r0
 17c:	0f 90       	pop	r0
 17e:	a3 cf       	rjmp	.-186    	; 0xc6

00000180 <vfprintf>:
 180:	af e0       	ldi	r26, 0x0F	; 15
 182:	b0 e0       	ldi	r27, 0x00	; 0
 184:	e5 ec       	ldi	r30, 0xC5	; 197
 186:	f0 e0       	ldi	r31, 0x00	; 0
 188:	01 c6       	rjmp	.+3074   	; 0xd8c
 18a:	aa 24       	eor	r10, r10
 18c:	bb 24       	eor	r11, r11
 18e:	65 01       	movw	r12, r10
 190:	3c 01       	movw	r6, r24
 192:	2b 01       	movw	r4, r22
 194:	4d 87       	std	Y+13, r20	; 0x0d
 196:	5e 87       	std	Y+14, r21	; 0x0e
 198:	22 24       	eor	r2, r2
 19a:	fc 01       	movw	r30, r24
 19c:	16 82       	std	Z+6, r1	; 0x06
 19e:	17 82       	std	Z+7, r1	; 0x07
 1a0:	83 81       	ldd	r24, Z+3	; 0x03
 1a2:	81 fd       	sbrc	r24, 1
 1a4:	47 c1       	rjmp	.+654    	; 0x434
 1a6:	8f ef       	ldi	r24, 0xFF	; 255
 1a8:	9f ef       	ldi	r25, 0xFF	; 255
 1aa:	57 c1       	rjmp	.+686    	; 0x45a
 1ac:	20 fe       	sbrs	r2, 0
 1ae:	34 c1       	rjmp	.+616    	; 0x418
 1b0:	83 2d       	mov	r24, r3
 1b2:	80 53       	subi	r24, 0x30	; 48
 1b4:	8a 30       	cpi	r24, 0x0A	; 10
 1b6:	08 f4       	brcc	.+2      	; 0x1ba
 1b8:	3d c1       	rjmp	.+634    	; 0x434
 1ba:	83 2d       	mov	r24, r3
 1bc:	99 27       	eor	r25, r25
 1be:	87 fd       	sbrc	r24, 7
 1c0:	90 95       	com	r25
 1c2:	88 36       	cpi	r24, 0x68	; 104
 1c4:	91 05       	cpc	r25, r1
 1c6:	3c f5       	brge	.+78     	; 0x216
 1c8:	85 36       	cpi	r24, 0x65	; 101
 1ca:	91 05       	cpc	r25, r1
 1cc:	0c f0       	brlt	.+2      	; 0x1d0
 1ce:	4c c0       	rjmp	.+152    	; 0x268
 1d0:	88 35       	cpi	r24, 0x58	; 88
 1d2:	91 05       	cpc	r25, r1
 1d4:	09 f4       	brne	.+2      	; 0x1d8
 1d6:	99 c0       	rjmp	.+306    	; 0x30a
 1d8:	89 35       	cpi	r24, 0x59	; 89
 1da:	91 05       	cpc	r25, r1
 1dc:	a4 f4       	brge	.+40     	; 0x206
 1de:	8b 32       	cpi	r24, 0x2B	; 43
 1e0:	91 05       	cpc	r25, r1
 1e2:	09 f4       	brne	.+2      	; 0x1e6
 1e4:	27 c1       	rjmp	.+590    	; 0x434
 1e6:	8c 32       	cpi	r24, 0x2C	; 44
 1e8:	91 05       	cpc	r25, r1
 1ea:	44 f4       	brge	.+16     	; 0x1fc
 1ec:	80 32       	cpi	r24, 0x20	; 32
 1ee:	91 05       	cpc	r25, r1
 1f0:	09 f4       	brne	.+2      	; 0x1f4
 1f2:	20 c1       	rjmp	.+576    	; 0x434
 1f4:	83 97       	sbiw	r24, 0x23	; 35
 1f6:	09 f4       	brne	.+2      	; 0x1fa
 1f8:	1d c1       	rjmp	.+570    	; 0x434
 1fa:	06 c1       	rjmp	.+524    	; 0x408
 1fc:	8d 97       	sbiw	r24, 0x2d	; 45
 1fe:	02 97       	sbiw	r24, 0x02	; 2
 200:	08 f0       	brcs	.+2      	; 0x204
 202:	02 c1       	rjmp	.+516    	; 0x408
 204:	17 c1       	rjmp	.+558    	; 0x434
 206:	83 36       	cpi	r24, 0x63	; 99
 208:	91 05       	cpc	r25, r1
 20a:	b9 f1       	breq	.+110    	; 0x27a
 20c:	84 36       	cpi	r24, 0x64	; 100
 20e:	91 05       	cpc	r25, r1
 210:	09 f4       	brne	.+2      	; 0x214
 212:	4b c0       	rjmp	.+150    	; 0x2aa
 214:	f9 c0       	rjmp	.+498    	; 0x408
 216:	80 37       	cpi	r24, 0x70	; 112
 218:	91 05       	cpc	r25, r1
 21a:	09 f4       	brne	.+2      	; 0x21e
 21c:	72 c0       	rjmp	.+228    	; 0x302
 21e:	81 37       	cpi	r24, 0x71	; 113
 220:	91 05       	cpc	r25, r1
 222:	7c f4       	brge	.+30     	; 0x242
 224:	8c 36       	cpi	r24, 0x6C	; 108
 226:	91 05       	cpc	r25, r1
 228:	e1 f0       	breq	.+56     	; 0x262
 22a:	8d 36       	cpi	r24, 0x6D	; 109
 22c:	91 05       	cpc	r25, r1
 22e:	24 f4       	brge	.+8      	; 0x238

⌨️ 快捷键说明

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