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

📄 main.lss

📁 通过这个程序
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000002ac  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000040  00800060  000002ac  00000340  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000040  008000a0  008000a0  00000380  2**0
                  ALLOC
  3 .noinit       00000000  008000e0  008000e0  00000380  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000380  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000380  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  000006ec  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000014  00000000  00000000  00000770  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000091  00000000  00000000  00000784  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   000001b1  00000000  00000000  00000815  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 000000e5  00000000  00000000  000009c6  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   00000171  00000000  00000000  00000aab  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    000000f9  00000000  00000000  00000c1c  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 3b 01 	jmp	0x276 <__vector_9>
  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 6d 00 	jmp	0xda <__vector_14>
  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 ea       	ldi	r30, 0xAC	; 172
  68:	f2 e0       	ldi	r31, 0x02	; 2
  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:	a0 3a       	cpi	r26, 0xA0	; 160
  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:	a0 ea       	ldi	r26, 0xA0	; 160
  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:	a0 3e       	cpi	r26, 0xE0	; 224
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 4a 01 	jmp	0x294 <main>

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

0000008e <ADC_INT>:
int FIR_coefficient[steps_N]={ -1,1,2,4,5,3,-4,-15,-24,-27,-14,18,67,123,172,201,201,172,
                                123,67,18,-14,-27,-24,-15,-4,3,5,4,2,1,-1};//2^10  >>10  */
unsigned int FIR_data[steps_N]={0};
void ADC_INT()
{  ADMUX=0xc1;//|_BV(ADLAR);//2.56v片内基准电压,通道1,//数据左对齐
  8e:	81 ec       	ldi	r24, 0xC1	; 193
  90:	87 b9       	out	0x07, r24	; 7
   //ADC使能 ADC开中断  64分频(ADC时钟) 单次转换模式
   ADCSRA=_BV(ADEN)|_BV(ADIE)|_BV(ADPS1)|_BV(ADPS2);//|_BV(ADATE);//在ATMEGA128中 ADATE 是 ADFR
  92:	8e e8       	ldi	r24, 0x8E	; 142
  94:	86 b9       	out	0x06, r24	; 6
   ADCSRA|=_BV(ADSC);//start first ADC convert
  96:	36 9a       	sbi	0x06, 6	; 6
  98:	08 95       	ret

0000009a <time0_INT>:
}
void time0_INT()
{  TCNT0=194;//每500US进一次定时器0中断
  9a:	82 ec       	ldi	r24, 0xC2	; 194
  9c:	82 bf       	out	0x32, r24	; 50
   TCCR0=_BV(CS01)|_BV(CS00);//64分频//ATMEGA128:............
  9e:	83 e0       	ldi	r24, 0x03	; 3
  a0:	83 bf       	out	0x33, r24	; 51
   TIMSK=_BV(TOIE0);
  a2:	81 e0       	ldi	r24, 0x01	; 1
  a4:	89 bf       	out	0x39, r24	; 57
  a6:	08 95       	ret

000000a8 <UART_INT>:
}
void UART_INT()////////////////////test
{   //接收使能,发送使能,接收中断允许
   UCSRB=_BV(RXEN)|_BV(TXEN)|_BV(RXCIE);
  a8:	88 e9       	ldi	r24, 0x98	; 152
  aa:	8a b9       	out	0x0a, r24	; 10
   UBRRL=8;//波特率 57600//UBRRL 8M       *******************************************
  ac:	88 e0       	ldi	r24, 0x08	; 8
  ae:	89 b9       	out	0x09, r24	; 9
  b0:	08 95       	ret

000000b2 <send_Nbyte>:
}
void send_Nbyte(uchar *UART_TXD_buf,unsigned int N )///////////test
{ unsigned int i=0; 
  while(N--)
   { while( !(UCSRA&( _BV(UDRE) ) ) );
     UDR=*(UART_TXD_buf+i++);
  b2:	61 50       	subi	r22, 0x01	; 1
  b4:	70 40       	sbci	r23, 0x00	; 0
  b6:	2f ef       	ldi	r18, 0xFF	; 255
  b8:	6f 3f       	cpi	r22, 0xFF	; 255
  ba:	72 07       	cpc	r23, r18
  bc:	69 f0       	breq	.+26     	; 0xd8 <send_Nbyte+0x26>
  be:	fc 01       	movw	r30, r24
  c0:	31 97       	sbiw	r30, 0x01	; 1
  c2:	5d 9b       	sbis	0x0b, 5	; 11
  c4:	fe cf       	rjmp	.-4      	; 0xc2 <send_Nbyte+0x10>
  c6:	31 96       	adiw	r30, 0x01	; 1
  c8:	80 81       	ld	r24, Z
  ca:	8c b9       	out	0x0c, r24	; 12
  cc:	61 50       	subi	r22, 0x01	; 1
  ce:	70 40       	sbci	r23, 0x00	; 0
  d0:	8f ef       	ldi	r24, 0xFF	; 255
  d2:	6f 3f       	cpi	r22, 0xFF	; 255
  d4:	78 07       	cpc	r23, r24
  d6:	a9 f7       	brne	.-22     	; 0xc2 <send_Nbyte+0x10>
  d8:	08 95       	ret

000000da <__vector_14>:
   }
}
SIGNAL(SIG_ADC)
{ volatile long FIR_data1=0;
  da:	1f 92       	push	r1
  dc:	0f 92       	push	r0
  de:	0f b6       	in	r0, 0x3f	; 63
  e0:	0f 92       	push	r0
  e2:	11 24       	eor	r1, r1
  e4:	ff 92       	push	r15
  e6:	0f 93       	push	r16
  e8:	1f 93       	push	r17
  ea:	2f 93       	push	r18
  ec:	3f 93       	push	r19
  ee:	4f 93       	push	r20
  f0:	5f 93       	push	r21
  f2:	6f 93       	push	r22
  f4:	7f 93       	push	r23
  f6:	8f 93       	push	r24
  f8:	9f 93       	push	r25
  fa:	af 93       	push	r26
  fc:	bf 93       	push	r27
  fe:	ef 93       	push	r30
 100:	ff 93       	push	r31
 102:	cf 93       	push	r28
 104:	df 93       	push	r29
 106:	cd b7       	in	r28, 0x3d	; 61
 108:	de b7       	in	r29, 0x3e	; 62
 10a:	28 97       	sbiw	r28, 0x08	; 8
 10c:	de bf       	out	0x3e, r29	; 62
 10e:	cd bf       	out	0x3d, r28	; 61
 110:	19 82       	std	Y+1, r1	; 0x01
 112:	1a 82       	std	Y+2, r1	; 0x02
 114:	1b 82       	std	Y+3, r1	; 0x03
 116:	1c 82       	std	Y+4, r1	; 0x04
  uint data_lo,data_hi;
  char N;
  N=steps_N-1;
 118:	5f e1       	ldi	r21, 0x1F	; 31
 11a:	f5 2e       	mov	r15, r21
  data_lo=ADCL;
 11c:	84 b1       	in	r24, 0x04	; 4
 11e:	28 2f       	mov	r18, r24
 120:	33 27       	eor	r19, r19
 122:	38 87       	std	Y+8, r19	; 0x08
 124:	2f 83       	std	Y+7, r18	; 0x07
  data_hi=ADCH;  
 126:	85 b1       	in	r24, 0x05	; 5
 128:	99 27       	eor	r25, r25
 12a:	9e 83       	std	Y+6, r25	; 0x06
 12c:	8d 83       	std	Y+5, r24	; 0x05
  FIR_data[0]=data_hi<<8;
 12e:	98 2f       	mov	r25, r24
 130:	88 27       	eor	r24, r24
  FIR_data[0]|=data_lo;
 132:	82 2b       	or	r24, r18
 134:	93 2b       	or	r25, r19
 136:	90 93 a1 00 	sts	0x00A1, r25
 13a:	80 93 a0 00 	sts	0x00A0, r24
 13e:	0e e9       	ldi	r16, 0x9E	; 158
 140:	10 e0       	ldi	r17, 0x00	; 0
 142:	6e ed       	ldi	r22, 0xDE	; 222
 144:	70 e0       	ldi	r23, 0x00	; 0
  for(;N>0;N--)
     { FIR_data1+=FIR_coefficient[N]*FIR_data[N];
 146:	d8 01       	movw	r26, r16
 148:	2d 91       	ld	r18, X+
 14a:	3c 91       	ld	r19, X
 14c:	02 50       	subi	r16, 0x02	; 2
 14e:	10 40       	sbci	r17, 0x00	; 0
 150:	fb 01       	movw	r30, r22
 152:	80 81       	ld	r24, Z
 154:	91 81       	ldd	r25, Z+1	; 0x01
 156:	28 9f       	mul	r18, r24
 158:	a0 01       	movw	r20, r0
 15a:	29 9f       	mul	r18, r25
 15c:	50 0d       	add	r21, r0
 15e:	38 9f       	mul	r19, r24
 160:	50 0d       	add	r21, r0
 162:	11 24       	eor	r1, r1
 164:	ca 01       	movw	r24, r20
 166:	9c 01       	movw	r18, r24
 168:	44 27       	eor	r20, r20
 16a:	55 27       	eor	r21, r21
 16c:	89 81       	ldd	r24, Y+1	; 0x01
 16e:	9a 81       	ldd	r25, Y+2	; 0x02
 170:	ab 81       	ldd	r26, Y+3	; 0x03
 172:	bc 81       	ldd	r27, Y+4	; 0x04
 174:	82 0f       	add	r24, r18
 176:	93 1f       	adc	r25, r19
 178:	a4 1f       	adc	r26, r20
 17a:	b5 1f       	adc	r27, r21
 17c:	89 83       	std	Y+1, r24	; 0x01
 17e:	9a 83       	std	Y+2, r25	; 0x02
 180:	ab 83       	std	Y+3, r26	; 0x03
 182:	bc 83       	std	Y+4, r27	; 0x04
	   FIR_data[N]=FIR_data[N-1];  
 184:	32 97       	sbiw	r30, 0x02	; 2
 186:	80 81       	ld	r24, Z
 188:	91 81       	ldd	r25, Z+1	; 0x01
 18a:	db 01       	movw	r26, r22
 18c:	8d 93       	st	X+, r24
 18e:	9c 93       	st	X, r25
 190:	fa 94       	dec	r15
 192:	bf 01       	movw	r22, r30
 194:	c1 f6       	brne	.-80     	; 0x146 <__vector_14+0x6c>
	 } 
  FIR_data1+=FIR_data[0]*FIR_coefficient[0];
 196:	20 91 a0 00 	lds	r18, 0x00A0
 19a:	30 91 a1 00 	lds	r19, 0x00A1
 19e:	80 91 60 00 	lds	r24, 0x0060
 1a2:	90 91 61 00 	lds	r25, 0x0061
 1a6:	28 9f       	mul	r18, r24
 1a8:	f0 01       	movw	r30, r0
 1aa:	29 9f       	mul	r18, r25
 1ac:	f0 0d       	add	r31, r0
 1ae:	38 9f       	mul	r19, r24
 1b0:	f0 0d       	add	r31, r0
 1b2:	11 24       	eor	r1, r1
 1b4:	9f 01       	movw	r18, r30
 1b6:	44 27       	eor	r20, r20
 1b8:	55 27       	eor	r21, r21
 1ba:	89 81       	ldd	r24, Y+1	; 0x01
 1bc:	9a 81       	ldd	r25, Y+2	; 0x02
 1be:	ab 81       	ldd	r26, Y+3	; 0x03
 1c0:	bc 81       	ldd	r27, Y+4	; 0x04
 1c2:	82 0f       	add	r24, r18
 1c4:	93 1f       	adc	r25, r19
 1c6:	a4 1f       	adc	r26, r20
 1c8:	b5 1f       	adc	r27, r21
 1ca:	89 83       	std	Y+1, r24	; 0x01
 1cc:	9a 83       	std	Y+2, r25	; 0x02
 1ce:	ab 83       	std	Y+3, r26	; 0x03
 1d0:	bc 83       	std	Y+4, r27	; 0x04
  FIR_data1>>=10;
 1d2:	89 81       	ldd	r24, Y+1	; 0x01
 1d4:	9a 81       	ldd	r25, Y+2	; 0x02
 1d6:	ab 81       	ldd	r26, Y+3	; 0x03
 1d8:	bc 81       	ldd	r27, Y+4	; 0x04
 1da:	2a e0       	ldi	r18, 0x0A	; 10
 1dc:	b5 95       	asr	r27
 1de:	a7 95       	ror	r26
 1e0:	97 95       	ror	r25
 1e2:	87 95       	ror	r24
 1e4:	2a 95       	dec	r18
 1e6:	d1 f7       	brne	.-12     	; 0x1dc <__vector_14+0x102>
 1e8:	89 83       	std	Y+1, r24	; 0x01
 1ea:	9a 83       	std	Y+2, r25	; 0x02
 1ec:	ab 83       	std	Y+3, r26	; 0x03
 1ee:	bc 83       	std	Y+4, r27	; 0x04
  data_hi=0;
 1f0:	1e 82       	std	Y+6, r1	; 0x06
 1f2:	1d 82       	std	Y+5, r1	; 0x05
  if(FIR_data1&0x100) data_hi|=0x01;
 1f4:	89 81       	ldd	r24, Y+1	; 0x01
 1f6:	9a 81       	ldd	r25, Y+2	; 0x02
 1f8:	ab 81       	ldd	r26, Y+3	; 0x03
 1fa:	bc 81       	ldd	r27, Y+4	; 0x04
 1fc:	90 ff       	sbrs	r25, 0
 1fe:	04 c0       	rjmp	.+8      	; 0x208 <__vector_14+0x12e>
 200:	81 e0       	ldi	r24, 0x01	; 1
 202:	90 e0       	ldi	r25, 0x00	; 0
 204:	9e 83       	std	Y+6, r25	; 0x06
 206:	8d 83       	std	Y+5, r24	; 0x05
  if(FIR_data1&0x200) data_hi|=0x02;
 208:	89 81       	ldd	r24, Y+1	; 0x01
 20a:	9a 81       	ldd	r25, Y+2	; 0x02
 20c:	ab 81       	ldd	r26, Y+3	; 0x03
 20e:	bc 81       	ldd	r27, Y+4	; 0x04
 210:	91 ff       	sbrs	r25, 1
 212:	05 c0       	rjmp	.+10     	; 0x21e <__vector_14+0x144>
 214:	8d 81       	ldd	r24, Y+5	; 0x05
 216:	9e 81       	ldd	r25, Y+6	; 0x06
 218:	82 60       	ori	r24, 0x02	; 2
 21a:	9e 83       	std	Y+6, r25	; 0x06
 21c:	8d 83       	std	Y+5, r24	; 0x05
  send_Nbyte(&data_hi,1);
 21e:	61 e0       	ldi	r22, 0x01	; 1
 220:	70 e0       	ldi	r23, 0x00	; 0
 222:	ce 01       	movw	r24, r28
 224:	05 96       	adiw	r24, 0x05	; 5
 226:	0e 94 59 00 	call	0xb2 <send_Nbyte>
  data_lo=FIR_data1; 
 22a:	89 81       	ldd	r24, Y+1	; 0x01
 22c:	9a 81       	ldd	r25, Y+2	; 0x02
 22e:	ab 81       	ldd	r26, Y+3	; 0x03
 230:	bc 81       	ldd	r27, Y+4	; 0x04
 232:	98 87       	std	Y+8, r25	; 0x08
 234:	8f 83       	std	Y+7, r24	; 0x07
  send_Nbyte(&data_lo,1);
 236:	61 e0       	ldi	r22, 0x01	; 1
 238:	70 e0       	ldi	r23, 0x00	; 0
 23a:	ce 01       	movw	r24, r28
 23c:	07 96       	adiw	r24, 0x07	; 7
 23e:	0e 94 59 00 	call	0xb2 <send_Nbyte>
 242:	28 96       	adiw	r28, 0x08	; 8
 244:	f8 94       	cli
 246:	de bf       	out	0x3e, r29	; 62
 248:	cd bf       	out	0x3d, r28	; 61
 24a:	df 91       	pop	r29
 24c:	cf 91       	pop	r28
 24e:	ff 91       	pop	r31
 250:	ef 91       	pop	r30
 252:	bf 91       	pop	r27
 254:	af 91       	pop	r26
 256:	9f 91       	pop	r25
 258:	8f 91       	pop	r24
 25a:	7f 91       	pop	r23
 25c:	6f 91       	pop	r22
 25e:	5f 91       	pop	r21
 260:	4f 91       	pop	r20
 262:	3f 91       	pop	r19
 264:	2f 91       	pop	r18
 266:	1f 91       	pop	r17
 268:	0f 91       	pop	r16
 26a:	ff 90       	pop	r15
 26c:	0f 90       	pop	r0
 26e:	0f be       	out	0x3f, r0	; 63
 270:	0f 90       	pop	r0
 272:	1f 90       	pop	r1
 274:	18 95       	reti

00000276 <__vector_9>:
}
SIGNAL(SIG_OVERFLOW0)//ADC sample rate is 2k 
{  TCNT0=194;//重新装载初值  
 276:	1f 92       	push	r1
 278:	0f 92       	push	r0
 27a:	0f b6       	in	r0, 0x3f	; 63
 27c:	0f 92       	push	r0
 27e:	11 24       	eor	r1, r1
 280:	8f 93       	push	r24
 282:	82 ec       	ldi	r24, 0xC2	; 194
 284:	82 bf       	out	0x32, r24	; 50
   ADCSRA|=_BV(ADSC);//start ADC convert
 286:	36 9a       	sbi	0x06, 6	; 6
 288:	8f 91       	pop	r24
 28a:	0f 90       	pop	r0
 28c:	0f be       	out	0x3f, r0	; 63
 28e:	0f 90       	pop	r0
 290:	1f 90       	pop	r1
 292:	18 95       	reti

00000294 <main>:
}
void main()
{ ADC_INT();
 294:	cf e5       	ldi	r28, 0x5F	; 95
 296:	d4 e0       	ldi	r29, 0x04	; 4
 298:	de bf       	out	0x3e, r29	; 62
 29a:	cd bf       	out	0x3d, r28	; 61
 29c:	0e 94 47 00 	call	0x8e <ADC_INT>
  time0_INT();
 2a0:	0e 94 4d 00 	call	0x9a <time0_INT>
  UART_INT();////////test
 2a4:	0e 94 54 00 	call	0xa8 <UART_INT>
  sei();
 2a8:	78 94       	sei
  while(1);
 2aa:	ff cf       	rjmp	.-2      	; 0x2aa <main+0x16>

⌨️ 快捷键说明

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