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

📄 main.lss

📁 avr单片机的api编程
💻 LSS
📖 第 1 页 / 共 3 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000007fc  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000038  00800060  000007fc  00000890  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000006  00800098  00800098  000008c8  2**0
                  ALLOC
  3 .noinit       00000000  0080009e  0080009e  000008c8  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000008c8  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  000008c8  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000c34  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000cb8  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000035  00000000  00000000  00000ccc  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   0000027b  00000000  00000000  00000d01  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 0000018b  00000000  00000000  00000f7c  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   00000199  00000000  00000000  00001107  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    0000010a  00000000  00000000  000012a0  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  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:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	ec ef       	ldi	r30, 0xFC	; 252
  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:	a8 39       	cpi	r26, 0x98	; 152
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	a8 e9       	ldi	r26, 0x98	; 152
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  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:	ae 39       	cpi	r26, 0x9E	; 158
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 78 00 	jmp	0xf0 <main>

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0 <__vectors>

0000008e <uart_putchar>:
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);

//发送函数
static int uart_putchar(char c, FILE *stream)
{
  8e:	cf 93       	push	r28
  90:	c8 2f       	mov	r28, r24
  if (c == '\n')
  92:	8a 30       	cpi	r24, 0x0A	; 10
  94:	19 f4       	brne	.+6      	; 0x9c <uart_putchar+0xe>
    uart_putchar('\r',stream);
  96:	8d e0       	ldi	r24, 0x0D	; 13
  98:	0e 94 47 00 	call	0x8e <uart_putchar>
	
    loop_until_bit_is_set(UCSRA,UDRE);     //UDRE为1,则说明发送字符为空
  9c:	5d 9b       	sbis	0x0b, 5	; 11
  9e:	fe cf       	rjmp	.-4      	; 0x9c <uart_putchar+0xe>
    UDR = c;
  a0:	cc b9       	out	0x0c, r28	; 12
    return 0;
}
  a2:	80 e0       	ldi	r24, 0x00	; 0
  a4:	90 e0       	ldi	r25, 0x00	; 0
  a6:	cf 91       	pop	r28
  a8:	08 95       	ret

000000aa <StdIoInit>:
//初始化io口
void StdIoInit(void)
{
  UCSRB=0;
  aa:	1a b8       	out	0x0a, r1	; 10
  UBRRH=0;
  ac:	10 bc       	out	0x20, r1	; 32
  UBRRL=0x2f;      //9600   
  ae:	8f e2       	ldi	r24, 0x2F	; 47
  b0:	89 b9       	out	0x09, r24	; 9

  UCSRB=_BV(TXEN);
  b2:	88 e0       	ldi	r24, 0x08	; 8
  b4:	8a b9       	out	0x0a, r24	; 10
  
  stdout = &mystdout;
  b6:	80 e6       	ldi	r24, 0x60	; 96
  b8:	90 e0       	ldi	r25, 0x00	; 0
  ba:	90 93 9b 00 	sts	0x009B, r25
  be:	80 93 9a 00 	sts	0x009A, r24
  stderr = &mystdout;
  c2:	90 93 9d 00 	sts	0x009D, r25
  c6:	80 93 9c 00 	sts	0x009C, r24
  printf("Uart初始化完成!\n");
  ca:	8e e6       	ldi	r24, 0x6E	; 110
  cc:	90 e0       	ldi	r25, 0x00	; 0
  ce:	0e 94 9d 00 	call	0x13a <puts>
  d2:	08 95       	ret

000000d4 <DelayMs>:
                              //若不定义,只能使程序进入一个无限循
#include <assert.h>

void DelayMs(uint16_t t)
{
  d4:	ac 01       	movw	r20, r24
  uint16_t i;
  for(i=0;i<t;i++)
  d6:	20 e0       	ldi	r18, 0x00	; 0
  d8:	30 e0       	ldi	r19, 0x00	; 0
  da:	24 17       	cp	r18, r20
  dc:	35 07       	cpc	r19, r21
  de:	38 f4       	brcc	.+14     	; 0xee <DelayMs+0x1a>
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
  e0:	88 ee       	ldi	r24, 0xE8	; 232
  e2:	93 e0       	ldi	r25, 0x03	; 3
	__asm__ volatile (
  e4:	01 97       	sbiw	r24, 0x01	; 1
  e6:	f1 f7       	brne	.-4      	; 0xe4 <DelayMs+0x10>
  e8:	2f 5f       	subi	r18, 0xFF	; 255
  ea:	3f 4f       	sbci	r19, 0xFF	; 255
  ec:	f6 cf       	rjmp	.-20     	; 0xda <DelayMs+0x6>
  ee:	08 95       	ret

000000f0 <main>:
    _delay_loop_2(250*4);
}

//io口访问测试
int main(void)
{	
  f0:	cf e5       	ldi	r28, 0x5F	; 95
  f2:	d4 e0       	ldi	r29, 0x04	; 4
  f4:	de bf       	out	0x3e, r29	; 62
  f6:	cd bf       	out	0x3d, r28	; 61
//	uchar a;
	StdIoInit();  
  f8:	0e 94 55 00 	call	0xaa <StdIoInit>
	printf("hello!\nwelcome to here!\n>");    //发送测试字符 
  fc:	8e e7       	ldi	r24, 0x7E	; 126
  fe:	90 e0       	ldi	r25, 0x00	; 0
 100:	9f 93       	push	r25
 102:	8f 93       	push	r24
 104:	0e 94 88 00 	call	0x110 <printf>
	sei();									//使能全局中断
 108:	78 94       	sei
	
	/*//测试loop_until_bit_is_clear(),loop_until_bit_is_set();
	loop_until_bit_is_clear(PINB,0);
	printf("bit is clear\n");*/
	/*//cbi(DDRB,0);读端口测试bit_is_set(),bit_is_clesr();
	assert(bit_is_set(PINB,0));*/
	/*{
		DDRB = 0;
		a =  inp(PINB);
		printf("%d\n>",a);
	}*/
	
	while(1);
 10a:	0f 90       	pop	r0
 10c:	0f 90       	pop	r0
 10e:	ff cf       	rjmp	.-2      	; 0x10e <main+0x1e>

00000110 <printf>:
 110:	cf 93       	push	r28
 112:	df 93       	push	r29
 114:	cd b7       	in	r28, 0x3d	; 61
 116:	de b7       	in	r29, 0x3e	; 62
 118:	e5 e0       	ldi	r30, 0x05	; 5
 11a:	f0 e0       	ldi	r31, 0x00	; 0
 11c:	ec 0f       	add	r30, r28
 11e:	fd 1f       	adc	r31, r29
 120:	81 91       	ld	r24, Z+
 122:	91 91       	ld	r25, Z+
 124:	af 01       	movw	r20, r30
 126:	bc 01       	movw	r22, r24
 128:	80 91 9a 00 	lds	r24, 0x009A
 12c:	90 91 9b 00 	lds	r25, 0x009B
 130:	0e 94 d3 00 	call	0x1a6 <vfprintf>
 134:	df 91       	pop	r29
 136:	cf 91       	pop	r28
 138:	08 95       	ret

0000013a <puts>:
 13a:	0f 93       	push	r16
 13c:	1f 93       	push	r17
 13e:	cf 93       	push	r28
 140:	df 93       	push	r29
 142:	ec 01       	movw	r28, r24
 144:	00 e0       	ldi	r16, 0x00	; 0
 146:	10 e0       	ldi	r17, 0x00	; 0
 148:	e0 91 9a 00 	lds	r30, 0x009A
 14c:	f0 91 9b 00 	lds	r31, 0x009B
 150:	83 81       	ldd	r24, Z+3	; 0x03
 152:	81 fd       	sbrc	r24, 1
 154:	03 c0       	rjmp	.+6      	; 0x15c <puts+0x22>
 156:	8f ef       	ldi	r24, 0xFF	; 255
 158:	9f ef       	ldi	r25, 0xFF	; 255
 15a:	20 c0       	rjmp	.+64     	; 0x19c <puts+0x62>
 15c:	89 91       	ld	r24, Y+
 15e:	88 23       	and	r24, r24
 160:	71 f0       	breq	.+28     	; 0x17e <puts+0x44>
 162:	e0 91 9a 00 	lds	r30, 0x009A
 166:	f0 91 9b 00 	lds	r31, 0x009B
 16a:	20 85       	ldd	r18, Z+8	; 0x08
 16c:	31 85       	ldd	r19, Z+9	; 0x09
 16e:	bf 01       	movw	r22, r30
 170:	f9 01       	movw	r30, r18
 172:	09 95       	icall
 174:	89 2b       	or	r24, r25
 176:	91 f3       	breq	.-28     	; 0x15c <puts+0x22>
 178:	0f ef       	ldi	r16, 0xFF	; 255
 17a:	1f ef       	ldi	r17, 0xFF	; 255
 17c:	ef cf       	rjmp	.-34     	; 0x15c <puts+0x22>
 17e:	e0 91 9a 00 	lds	r30, 0x009A
 182:	f0 91 9b 00 	lds	r31, 0x009B
 186:	20 85       	ldd	r18, Z+8	; 0x08
 188:	31 85       	ldd	r19, Z+9	; 0x09
 18a:	bf 01       	movw	r22, r30
 18c:	8a e0       	ldi	r24, 0x0A	; 10
 18e:	f9 01       	movw	r30, r18
 190:	09 95       	icall
 192:	89 2b       	or	r24, r25
 194:	11 f0       	breq	.+4      	; 0x19a <puts+0x60>
 196:	0f ef       	ldi	r16, 0xFF	; 255
 198:	1f ef       	ldi	r17, 0xFF	; 255
 19a:	c8 01       	movw	r24, r16
 19c:	df 91       	pop	r29
 19e:	cf 91       	pop	r28
 1a0:	1f 91       	pop	r17
 1a2:	0f 91       	pop	r16
 1a4:	08 95       	ret

000001a6 <vfprintf>:
 1a6:	2f 92       	push	r2
 1a8:	3f 92       	push	r3
 1aa:	4f 92       	push	r4
 1ac:	5f 92       	push	r5
 1ae:	6f 92       	push	r6
 1b0:	7f 92       	push	r7
 1b2:	8f 92       	push	r8
 1b4:	9f 92       	push	r9
 1b6:	af 92       	push	r10
 1b8:	bf 92       	push	r11
 1ba:	cf 92       	push	r12
 1bc:	df 92       	push	r13
 1be:	ef 92       	push	r14
 1c0:	ff 92       	push	r15
 1c2:	0f 93       	push	r16
 1c4:	1f 93       	push	r17
 1c6:	cf 93       	push	r28
 1c8:	df 93       	push	r29
 1ca:	cd b7       	in	r28, 0x3d	; 61
 1cc:	de b7       	in	r29, 0x3e	; 62
 1ce:	62 97       	sbiw	r28, 0x12	; 18
 1d0:	0f b6       	in	r0, 0x3f	; 63
 1d2:	f8 94       	cli
 1d4:	de bf       	out	0x3e, r29	; 62
 1d6:	0f be       	out	0x3f, r0	; 63
 1d8:	cd bf       	out	0x3d, r28	; 61
 1da:	ee 24       	eor	r14, r14
 1dc:	ff 24       	eor	r15, r15
 1de:	87 01       	movw	r16, r14
 1e0:	1c 01       	movw	r2, r24
 1e2:	7e 87       	std	Y+14, r23	; 0x0e
 1e4:	6d 87       	std	Y+13, r22	; 0x0d
 1e6:	2a 01       	movw	r4, r20
 1e8:	cc 24       	eor	r12, r12
 1ea:	dd 24       	eor	r13, r13
 1ec:	fc 01       	movw	r30, r24
 1ee:	d7 82       	std	Z+7, r13	; 0x07
 1f0:	c6 82       	std	Z+6, r12	; 0x06
 1f2:	83 81       	ldd	r24, Z+3	; 0x03
 1f4:	81 fd       	sbrc	r24, 1
 1f6:	68 c2       	rjmp	.+1232   	; 0x6c8 <__stack+0x269>
 1f8:	8f ef       	ldi	r24, 0xFF	; 255
 1fa:	9f ef       	ldi	r25, 0xFF	; 255
 1fc:	78 c2       	rjmp	.+1264   	; 0x6ee <__stack+0x28f>
 1fe:	8d 85       	ldd	r24, Y+13	; 0x0d
 200:	9e 85       	ldd	r25, Y+14	; 0x0e
 202:	01 96       	adiw	r24, 0x01	; 1
 204:	9e 87       	std	Y+14, r25	; 0x0e
 206:	8d 87       	std	Y+13, r24	; 0x0d
 208:	c0 fe       	sbrs	r12, 0
 20a:	4b c2       	rjmp	.+1174   	; 0x6a2 <__stack+0x243>
 20c:	8f 85       	ldd	r24, Y+15	; 0x0f
 20e:	80 53       	subi	r24, 0x30	; 48
 210:	8a 30       	cpi	r24, 0x0A	; 10
 212:	d0 f4       	brcc	.+52     	; 0x248 <vfprintf+0xa2>
 214:	9f 85       	ldd	r25, Y+15	; 0x0f
 216:	90 33       	cpi	r25, 0x30	; 48
 218:	39 f4       	brne	.+14     	; 0x228 <vfprintf+0x82>
 21a:	66 20       	and	r6, r6
 21c:	29 f4       	brne	.+10     	; 0x228 <vfprintf+0x82>
 21e:	c3 fc       	sbrc	r12, 3
 220:	03 c0       	rjmp	.+6      	; 0x228 <vfprintf+0x82>
 222:	e0 e0       	ldi	r30, 0x00	; 0
 224:	f1 e0       	ldi	r31, 0x01	; 1
 226:	8d c0       	rjmp	.+282    	; 0x342 <vfprintf+0x19c>
 228:	8a e0       	ldi	r24, 0x0A	; 10
 22a:	68 9e       	mul	r6, r24
 22c:	60 2c       	mov	r6, r0
 22e:	11 24       	eor	r1, r1
 230:	ff 85       	ldd	r31, Y+15	; 0x0f
 232:	6f 0e       	add	r6, r31
 234:	20 ed       	ldi	r18, 0xD0	; 208
 236:	62 0e       	add	r6, r18

⌨️ 快捷键说明

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