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

📄 main.lss

📁 16位的AD芯片的ADS1158的驱动程序。
💻 LSS
📖 第 1 页 / 共 3 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000598  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00000001  00800060  00000598  0000060c  2**0
                  ALLOC
  2 .debug_aranges 00000020  00000000  00000000  0000060c  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_pubnames 000000e2  00000000  00000000  0000062c  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_info   00000310  00000000  00000000  0000070e  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_abbrev 000000fd  00000000  00000000  00000a1e  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_line   0000043d  00000000  00000000  00000b1b  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_frame  000000f0  00000000  00000000  00000f58  2**2
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_str    000000e3  00000000  00000000  00001048  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	2c c0       	rjmp	.+88     	; 0x5c <__bad_interrupt>
   4:	2b c0       	rjmp	.+86     	; 0x5c <__bad_interrupt>
   6:	2a c0       	rjmp	.+84     	; 0x5c <__bad_interrupt>
   8:	29 c0       	rjmp	.+82     	; 0x5c <__bad_interrupt>
   a:	28 c0       	rjmp	.+80     	; 0x5c <__bad_interrupt>
   c:	27 c0       	rjmp	.+78     	; 0x5c <__bad_interrupt>
   e:	26 c0       	rjmp	.+76     	; 0x5c <__bad_interrupt>
  10:	25 c0       	rjmp	.+74     	; 0x5c <__bad_interrupt>
  12:	24 c0       	rjmp	.+72     	; 0x5c <__bad_interrupt>
  14:	23 c0       	rjmp	.+70     	; 0x5c <__bad_interrupt>
  16:	6b c0       	rjmp	.+214    	; 0xee <__vector_11>
  18:	21 c0       	rjmp	.+66     	; 0x5c <__bad_interrupt>
  1a:	84 c0       	rjmp	.+264    	; 0x124 <__vector_13>
  1c:	1f c0       	rjmp	.+62     	; 0x5c <__bad_interrupt>
  1e:	1e c0       	rjmp	.+60     	; 0x5c <__bad_interrupt>
  20:	1d c0       	rjmp	.+58     	; 0x5c <__bad_interrupt>
  22:	1c c0       	rjmp	.+56     	; 0x5c <__bad_interrupt>
  24:	1b c0       	rjmp	.+54     	; 0x5c <__bad_interrupt>

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:	e8 e9       	ldi	r30, 0x98	; 152
  3a:	f5 e0       	ldi	r31, 0x05	; 5
  3c:	02 c0       	rjmp	.+4      	; 0x42 <.do_copy_data_start>

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

00000042 <.do_copy_data_start>:
  42:	a0 36       	cpi	r26, 0x60	; 96
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

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

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

00000052 <.do_clear_bss_start>:
  52:	a1 36       	cpi	r26, 0x61	; 97
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	3b d2       	rcall	.+1142   	; 0x4d0 <main>
  5a:	9c c2       	rjmp	.+1336   	; 0x594 <_exit>

0000005c <__bad_interrupt>:
  5c:	d1 cf       	rjmp	.-94     	; 0x0 <__vectors>

0000005e <USART_Init>:

volatile unsigned char sum=0;    //定义全局的指令变量

//设置串口的参数
void USART_Init( unsigned int baud )
{
  5e:	df 93       	push	r29
  60:	cf 93       	push	r28
  62:	00 d0       	rcall	.+0      	; 0x64 <USART_Init+0x6>
  64:	cd b7       	in	r28, 0x3d	; 61
  66:	de b7       	in	r29, 0x3e	; 62
  68:	9a 83       	std	Y+2, r25	; 0x02
  6a:	89 83       	std	Y+1, r24	; 0x01
/* 设置波特率9600*/
UBRRH = 0;
  6c:	e0 e4       	ldi	r30, 0x40	; 64
  6e:	f0 e0       	ldi	r31, 0x00	; 0
  70:	10 82       	st	Z, r1
UBRRL = 47;
  72:	e9 e2       	ldi	r30, 0x29	; 41
  74:	f0 e0       	ldi	r31, 0x00	; 0
  76:	8f e2       	ldi	r24, 0x2F	; 47
  78:	80 83       	st	Z, r24
/* 接收器与发送器使能*/
UCSRB = (1<<TXCIE)|(1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
  7a:	ea e2       	ldi	r30, 0x2A	; 42
  7c:	f0 e0       	ldi	r31, 0x00	; 0
  7e:	88 ed       	ldi	r24, 0xD8	; 216
  80:	80 83       	st	Z, r24
/* 设置帧格式: 8 个数据位, 2 个停止位*/
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
  82:	e0 e4       	ldi	r30, 0x40	; 64
  84:	f0 e0       	ldi	r31, 0x00	; 0
  86:	8e e8       	ldi	r24, 0x8E	; 142
  88:	80 83       	st	Z, r24
}
  8a:	0f 90       	pop	r0
  8c:	0f 90       	pop	r0
  8e:	cf 91       	pop	r28
  90:	df 91       	pop	r29
  92:	08 95       	ret

00000094 <USART_Transmit>:



void USART_Transmit( unsigned char data )
{PORTD|=(1<<PD2);   //485输出使能
  94:	df 93       	push	r29
  96:	cf 93       	push	r28
  98:	0f 92       	push	r0
  9a:	cd b7       	in	r28, 0x3d	; 61
  9c:	de b7       	in	r29, 0x3e	; 62
  9e:	89 83       	std	Y+1, r24	; 0x01
  a0:	a2 e3       	ldi	r26, 0x32	; 50
  a2:	b0 e0       	ldi	r27, 0x00	; 0
  a4:	e2 e3       	ldi	r30, 0x32	; 50
  a6:	f0 e0       	ldi	r31, 0x00	; 0
  a8:	80 81       	ld	r24, Z
  aa:	84 60       	ori	r24, 0x04	; 4
  ac:	8c 93       	st	X, r24
/* 等待发送缓冲器为空 */
while ( !( UCSRA & (1<<UDRE)) )
  ae:	eb e2       	ldi	r30, 0x2B	; 43
  b0:	f0 e0       	ldi	r31, 0x00	; 0
  b2:	80 81       	ld	r24, Z
  b4:	88 2f       	mov	r24, r24
  b6:	90 e0       	ldi	r25, 0x00	; 0
  b8:	80 72       	andi	r24, 0x20	; 32
  ba:	90 70       	andi	r25, 0x00	; 0
  bc:	00 97       	sbiw	r24, 0x00	; 0
  be:	b9 f3       	breq	.-18     	; 0xae <USART_Transmit+0x1a>
;
/* 将数据放入缓冲器,发送数据 */
UDR = data;
  c0:	ec e2       	ldi	r30, 0x2C	; 44
  c2:	f0 e0       	ldi	r31, 0x00	; 0
  c4:	89 81       	ldd	r24, Y+1	; 0x01
  c6:	80 83       	st	Z, r24
}
  c8:	0f 90       	pop	r0
  ca:	cf 91       	pop	r28
  cc:	df 91       	pop	r29
  ce:	08 95       	ret

000000d0 <USART_Receive>:



unsigned char USART_Receive( void )
{
  d0:	df 93       	push	r29
  d2:	cf 93       	push	r28
  d4:	cd b7       	in	r28, 0x3d	; 61
  d6:	de b7       	in	r29, 0x3e	; 62
/* 等待接收数据*/
while ( !(UCSRA & (1<<RXC)) )
  d8:	eb e2       	ldi	r30, 0x2B	; 43
  da:	f0 e0       	ldi	r31, 0x00	; 0
  dc:	80 81       	ld	r24, Z
  de:	88 23       	and	r24, r24
  e0:	dc f7       	brge	.-10     	; 0xd8 <USART_Receive+0x8>
;
/* 从缓冲器中获取并返回数据*/
return UDR;
  e2:	ec e2       	ldi	r30, 0x2C	; 44
  e4:	f0 e0       	ldi	r31, 0x00	; 0
  e6:	80 81       	ld	r24, Z
}
  e8:	cf 91       	pop	r28
  ea:	df 91       	pop	r29
  ec:	08 95       	ret

000000ee <__vector_11>:



SIGNAL (SIG_UART_RECV)  //接收中断
 {sum=UDR;}   
  ee:	1f 92       	push	r1
  f0:	0f 92       	push	r0
  f2:	0f b6       	in	r0, 0x3f	; 63
  f4:	0f 92       	push	r0
  f6:	11 24       	eor	r1, r1
  f8:	8f 93       	push	r24
  fa:	ef 93       	push	r30
  fc:	ff 93       	push	r31
  fe:	df 93       	push	r29
 100:	cf 93       	push	r28
 102:	cd b7       	in	r28, 0x3d	; 61
 104:	de b7       	in	r29, 0x3e	; 62
 106:	ec e2       	ldi	r30, 0x2C	; 44
 108:	f0 e0       	ldi	r31, 0x00	; 0
 10a:	80 81       	ld	r24, Z
 10c:	80 93 60 00 	sts	0x0060, r24
 110:	cf 91       	pop	r28
 112:	df 91       	pop	r29
 114:	ff 91       	pop	r31
 116:	ef 91       	pop	r30
 118:	8f 91       	pop	r24
 11a:	0f 90       	pop	r0
 11c:	0f be       	out	0x3f, r0	; 63
 11e:	0f 90       	pop	r0
 120:	1f 90       	pop	r1
 122:	18 95       	reti

00000124 <__vector_13>:

SIGNAL (SIG_UART_TRANS) //发送结束中断
 {PORTD&=~(1<<PD2); }    //485输入使能
 124:	1f 92       	push	r1
 126:	0f 92       	push	r0
 128:	0f b6       	in	r0, 0x3f	; 63
 12a:	0f 92       	push	r0
 12c:	11 24       	eor	r1, r1
 12e:	8f 93       	push	r24
 130:	af 93       	push	r26
 132:	bf 93       	push	r27
 134:	ef 93       	push	r30
 136:	ff 93       	push	r31
 138:	df 93       	push	r29
 13a:	cf 93       	push	r28
 13c:	cd b7       	in	r28, 0x3d	; 61
 13e:	de b7       	in	r29, 0x3e	; 62
 140:	a2 e3       	ldi	r26, 0x32	; 50
 142:	b0 e0       	ldi	r27, 0x00	; 0
 144:	e2 e3       	ldi	r30, 0x32	; 50
 146:	f0 e0       	ldi	r31, 0x00	; 0
 148:	80 81       	ld	r24, Z
 14a:	8b 7f       	andi	r24, 0xFB	; 251
 14c:	8c 93       	st	X, r24
 14e:	cf 91       	pop	r28
 150:	df 91       	pop	r29
 152:	ff 91       	pop	r31
 154:	ef 91       	pop	r30
 156:	bf 91       	pop	r27
 158:	af 91       	pop	r26
 15a:	8f 91       	pop	r24
 15c:	0f 90       	pop	r0
 15e:	0f be       	out	0x3f, r0	; 63
 160:	0f 90       	pop	r0
 162:	1f 90       	pop	r1
 164:	18 95       	reti

00000166 <delay_us>:


/*************************************************************************************/
volatile void delay_us(unsigned char a)   //挺时1uS
{ 
 166:	df 93       	push	r29
 168:	cf 93       	push	r28
 16a:	00 d0       	rcall	.+0      	; 0x16c <delay_us+0x6>
 16c:	00 d0       	rcall	.+0      	; 0x16e <delay_us+0x8>
 16e:	0f 92       	push	r0
 170:	cd b7       	in	r28, 0x3d	; 61
 172:	de b7       	in	r29, 0x3e	; 62
 174:	8d 83       	std	Y+5, r24	; 0x05
 volatile unsigned int i=0,j=0;
 176:	1a 82       	std	Y+2, r1	; 0x02
 178:	19 82       	std	Y+1, r1	; 0x01
 17a:	1c 82       	std	Y+4, r1	; 0x04
 17c:	1b 82       	std	Y+3, r1	; 0x03
 for(i=0;i<a;i++)
 17e:	1a 82       	std	Y+2, r1	; 0x02
 180:	19 82       	std	Y+1, r1	; 0x01
 182:	12 c0       	rjmp	.+36     	; 0x1a8 <delay_us+0x42>
 for(j=0;j<100;j++)
 184:	1c 82       	std	Y+4, r1	; 0x04
 186:	1b 82       	std	Y+3, r1	; 0x03
 188:	05 c0       	rjmp	.+10     	; 0x194 <delay_us+0x2e>
 18a:	8b 81       	ldd	r24, Y+3	; 0x03
 18c:	9c 81       	ldd	r25, Y+4	; 0x04
 18e:	01 96       	adiw	r24, 0x01	; 1
 190:	9c 83       	std	Y+4, r25	; 0x04
 192:	8b 83       	std	Y+3, r24	; 0x03
 194:	8b 81       	ldd	r24, Y+3	; 0x03
 196:	9c 81       	ldd	r25, Y+4	; 0x04
 198:	84 36       	cpi	r24, 0x64	; 100
 19a:	91 05       	cpc	r25, r1
 19c:	b0 f3       	brcs	.-20     	; 0x18a <delay_us+0x24>

/*************************************************************************************/
volatile void delay_us(unsigned char a)   //挺时1uS
{ 
 volatile unsigned int i=0,j=0;
 for(i=0;i<a;i++)
 19e:	89 81       	ldd	r24, Y+1	; 0x01
 1a0:	9a 81       	ldd	r25, Y+2	; 0x02
 1a2:	01 96       	adiw	r24, 0x01	; 1
 1a4:	9a 83       	std	Y+2, r25	; 0x02
 1a6:	89 83       	std	Y+1, r24	; 0x01
 1a8:	8d 81       	ldd	r24, Y+5	; 0x05
 1aa:	28 2f       	mov	r18, r24
 1ac:	30 e0       	ldi	r19, 0x00	; 0
 1ae:	89 81       	ldd	r24, Y+1	; 0x01
 1b0:	9a 81       	ldd	r25, Y+2	; 0x02
 1b2:	82 17       	cp	r24, r18
 1b4:	93 07       	cpc	r25, r19
 1b6:	30 f3       	brcs	.-52     	; 0x184 <delay_us+0x1e>
 for(j=0;j<100;j++)
 ;
}
 1b8:	0f 90       	pop	r0
 1ba:	0f 90       	pop	r0
 1bc:	0f 90       	pop	r0

⌨️ 快捷键说明

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