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

📄 spi_test.lss

📁 AVR ATmega48 SPI最簡單測試碼! 透過spi_data[x]陣列寫入想要傳送的資料
💻 LSS
字号:

SPI_test.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000006  00800100  0000016e  00000202  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         0000016e  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000003  00800106  00800106  00000208  2**0
                  ALLOC
  3 .debug_aranges 00000020  00000000  00000000  00000208  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 00000052  00000000  00000000  00000228  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   000000de  00000000  00000000  0000027a  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 0000008f  00000000  00000000  00000358  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   0000010a  00000000  00000000  000003e7  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  00000040  00000000  00000000  000004f4  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    00000090  00000000  00000000  00000534  2**0
                  CONTENTS, READONLY, DEBUGGING

Disassembly of section .text:

00000000 <__vectors>:
   0:	19 c0       	rjmp	.+50     	; 0x34 <__ctors_end>
   2:	33 c0       	rjmp	.+102    	; 0x6a <__bad_interrupt>
   4:	32 c0       	rjmp	.+100    	; 0x6a <__bad_interrupt>
   6:	31 c0       	rjmp	.+98     	; 0x6a <__bad_interrupt>
   8:	30 c0       	rjmp	.+96     	; 0x6a <__bad_interrupt>
   a:	2f c0       	rjmp	.+94     	; 0x6a <__bad_interrupt>
   c:	2e c0       	rjmp	.+92     	; 0x6a <__bad_interrupt>
   e:	2d c0       	rjmp	.+90     	; 0x6a <__bad_interrupt>
  10:	2c c0       	rjmp	.+88     	; 0x6a <__bad_interrupt>
  12:	2b c0       	rjmp	.+86     	; 0x6a <__bad_interrupt>
  14:	2a c0       	rjmp	.+84     	; 0x6a <__bad_interrupt>
  16:	29 c0       	rjmp	.+82     	; 0x6a <__bad_interrupt>
  18:	28 c0       	rjmp	.+80     	; 0x6a <__bad_interrupt>
  1a:	27 c0       	rjmp	.+78     	; 0x6a <__bad_interrupt>
  1c:	26 c0       	rjmp	.+76     	; 0x6a <__bad_interrupt>
  1e:	25 c0       	rjmp	.+74     	; 0x6a <__bad_interrupt>
  20:	24 c0       	rjmp	.+72     	; 0x6a <__bad_interrupt>
  22:	24 c0       	rjmp	.+72     	; 0x6c <__vector_17>
  24:	22 c0       	rjmp	.+68     	; 0x6a <__bad_interrupt>
  26:	21 c0       	rjmp	.+66     	; 0x6a <__bad_interrupt>
  28:	20 c0       	rjmp	.+64     	; 0x6a <__bad_interrupt>
  2a:	1f c0       	rjmp	.+62     	; 0x6a <__bad_interrupt>
  2c:	1e c0       	rjmp	.+60     	; 0x6a <__bad_interrupt>
  2e:	1d c0       	rjmp	.+58     	; 0x6a <__bad_interrupt>
  30:	1c c0       	rjmp	.+56     	; 0x6a <__bad_interrupt>
  32:	1b c0       	rjmp	.+54     	; 0x6a <__bad_interrupt>

00000034 <__ctors_end>:
  34:	11 24       	eor	r1, r1
  36:	1f be       	out	0x3f, r1	; 63
  38:	cf ef       	ldi	r28, 0xFF	; 255
  3a:	d2 e0       	ldi	r29, 0x02	; 2
  3c:	de bf       	out	0x3e, r29	; 62
  3e:	cd bf       	out	0x3d, r28	; 61

00000040 <__do_copy_data>:
  40:	11 e0       	ldi	r17, 0x01	; 1
  42:	a0 e0       	ldi	r26, 0x00	; 0
  44:	b1 e0       	ldi	r27, 0x01	; 1
  46:	ee e6       	ldi	r30, 0x6E	; 110
  48:	f1 e0       	ldi	r31, 0x01	; 1
  4a:	02 c0       	rjmp	.+4      	; 0x50 <.do_copy_data_start>

0000004c <.do_copy_data_loop>:
  4c:	05 90       	lpm	r0, Z+
  4e:	0d 92       	st	X+, r0

00000050 <.do_copy_data_start>:
  50:	a6 30       	cpi	r26, 0x06	; 6
  52:	b1 07       	cpc	r27, r17
  54:	d9 f7       	brne	.-10     	; 0x4c <.do_copy_data_loop>

00000056 <__do_clear_bss>:
  56:	11 e0       	ldi	r17, 0x01	; 1
  58:	a6 e0       	ldi	r26, 0x06	; 6
  5a:	b1 e0       	ldi	r27, 0x01	; 1
  5c:	01 c0       	rjmp	.+2      	; 0x60 <.do_clear_bss_start>

0000005e <.do_clear_bss_loop>:
  5e:	1d 92       	st	X+, r1

00000060 <.do_clear_bss_start>:
  60:	a9 30       	cpi	r26, 0x09	; 9
  62:	b1 07       	cpc	r27, r17
  64:	e1 f7       	brne	.-8      	; 0x5e <.do_clear_bss_loop>
  66:	5d d0       	rcall	.+186    	; 0x122 <main>
  68:	80 c0       	rjmp	.+256    	; 0x16a <_exit>

0000006a <__bad_interrupt>:
  6a:	ca cf       	rjmp	.-108    	; 0x0 <__vectors>

0000006c <__vector_17>:

unsigned char spi_data[6]={0xd0,0x01,0x42,0x80,0x8C,0x00};
unsigned char x;
int gg=0;
ISR(SPI_STC_vect)
{
  6c:	1f 92       	push	r1
  6e:	0f 92       	push	r0
  70:	0f b6       	in	r0, 0x3f	; 63
  72:	0f 92       	push	r0
  74:	11 24       	eor	r1, r1
  76:	8f 93       	push	r24
  78:	9f 93       	push	r25
  7a:	af 93       	push	r26
  7c:	bf 93       	push	r27
  7e:	ef 93       	push	r30
  80:	ff 93       	push	r31
  82:	df 93       	push	r29
  84:	cf 93       	push	r28
  86:	cd b7       	in	r28, 0x3d	; 61
  88:	de b7       	in	r29, 0x3e	; 62
	//asm("nop");
	if(x==1||x==3)
  8a:	80 91 08 01 	lds	r24, 0x0108
  8e:	81 30       	cpi	r24, 0x01	; 1
  90:	21 f0       	breq	.+8      	; 0x9a <__vector_17+0x2e>
  92:	80 91 08 01 	lds	r24, 0x0108
  96:	83 30       	cpi	r24, 0x03	; 3
  98:	e9 f4       	brne	.+58     	; 0xd4 <__vector_17+0x68>
	{
		PORTB|=0x04;
  9a:	a5 e2       	ldi	r26, 0x25	; 37
  9c:	b0 e0       	ldi	r27, 0x00	; 0
  9e:	e5 e2       	ldi	r30, 0x25	; 37
  a0:	f0 e0       	ldi	r31, 0x00	; 0
  a2:	80 81       	ld	r24, Z
  a4:	84 60       	ori	r24, 0x04	; 4
  a6:	8c 93       	st	X, r24
		for(gg=0;gg<=1;gg++)
  a8:	10 92 07 01 	sts	0x0107, r1
  ac:	10 92 06 01 	sts	0x0106, r1
  b0:	0a c0       	rjmp	.+20     	; 0xc6 <__vector_17+0x5a>
		asm("nop");
  b2:	00 00       	nop
{
	//asm("nop");
	if(x==1||x==3)
	{
		PORTB|=0x04;
		for(gg=0;gg<=1;gg++)
  b4:	80 91 06 01 	lds	r24, 0x0106
  b8:	90 91 07 01 	lds	r25, 0x0107
  bc:	01 96       	adiw	r24, 0x01	; 1
  be:	90 93 07 01 	sts	0x0107, r25
  c2:	80 93 06 01 	sts	0x0106, r24
  c6:	80 91 06 01 	lds	r24, 0x0106
  ca:	90 91 07 01 	lds	r25, 0x0107
  ce:	82 30       	cpi	r24, 0x02	; 2
  d0:	91 05       	cpc	r25, r1
  d2:	7c f3       	brlt	.-34     	; 0xb2 <__vector_17+0x46>
		asm("nop");
	}
	x++;
  d4:	80 91 08 01 	lds	r24, 0x0108
  d8:	8f 5f       	subi	r24, 0xFF	; 255
  da:	80 93 08 01 	sts	0x0108, r24
	if(x>3)
  de:	80 91 08 01 	lds	r24, 0x0108
  e2:	84 30       	cpi	r24, 0x04	; 4
  e4:	10 f0       	brcs	.+4      	; 0xea <__vector_17+0x7e>
	{
		x=0;
  e6:	10 92 08 01 	sts	0x0108, r1
	}
}
  ea:	cf 91       	pop	r28
  ec:	df 91       	pop	r29
  ee:	ff 91       	pop	r31
  f0:	ef 91       	pop	r30
  f2:	bf 91       	pop	r27
  f4:	af 91       	pop	r26
  f6:	9f 91       	pop	r25
  f8:	8f 91       	pop	r24
  fa:	0f 90       	pop	r0
  fc:	0f be       	out	0x3f, r0	; 63
  fe:	0f 90       	pop	r0
 100:	1f 90       	pop	r1
 102:	18 95       	reti

00000104 <spi_init>:

void spi_init()
{
 104:	df 93       	push	r29
 106:	cf 93       	push	r28
 108:	cd b7       	in	r28, 0x3d	; 61
 10a:	de b7       	in	r29, 0x3e	; 62
	SPCR=0xD6;
 10c:	ec e4       	ldi	r30, 0x4C	; 76
 10e:	f0 e0       	ldi	r31, 0x00	; 0
 110:	86 ed       	ldi	r24, 0xD6	; 214
 112:	80 83       	st	Z, r24
	SPSR=0x01;
 114:	ed e4       	ldi	r30, 0x4D	; 77
 116:	f0 e0       	ldi	r31, 0x00	; 0
 118:	81 e0       	ldi	r24, 0x01	; 1
 11a:	80 83       	st	Z, r24
}
 11c:	cf 91       	pop	r28
 11e:	df 91       	pop	r29
 120:	08 95       	ret

00000122 <main>:

void main()
{
 122:	df 93       	push	r29
 124:	cf 93       	push	r28
 126:	cd b7       	in	r28, 0x3d	; 61
 128:	de b7       	in	r29, 0x3e	; 62
	
	//PORTC=0x01;
	DDRB=0x2C;
 12a:	e4 e2       	ldi	r30, 0x24	; 36
 12c:	f0 e0       	ldi	r31, 0x00	; 0
 12e:	8c e2       	ldi	r24, 0x2C	; 44
 130:	80 83       	st	Z, r24
	PORTB=0x2C;
 132:	e5 e2       	ldi	r30, 0x25	; 37
 134:	f0 e0       	ldi	r31, 0x00	; 0
 136:	8c e2       	ldi	r24, 0x2C	; 44
 138:	80 83       	st	Z, r24
	x=0;
 13a:	10 92 08 01 	sts	0x0108, r1
	spi_init();
 13e:	e2 df       	rcall	.-60     	; 0x104 <spi_init>
	sei();
 140:	78 94       	sei
	while(1)
	{
		
		PORTB&=0xFB;
 142:	a5 e2       	ldi	r26, 0x25	; 37
 144:	b0 e0       	ldi	r27, 0x00	; 0
 146:	e5 e2       	ldi	r30, 0x25	; 37
 148:	f0 e0       	ldi	r31, 0x00	; 0
 14a:	80 81       	ld	r24, Z
 14c:	8b 7f       	andi	r24, 0xFB	; 251
 14e:	8c 93       	st	X, r24
		asm("nop");
 150:	00 00       	nop
		SPDR=spi_data[x];
 152:	ae e4       	ldi	r26, 0x4E	; 78
 154:	b0 e0       	ldi	r27, 0x00	; 0
 156:	80 91 08 01 	lds	r24, 0x0108
 15a:	88 2f       	mov	r24, r24
 15c:	90 e0       	ldi	r25, 0x00	; 0
 15e:	fc 01       	movw	r30, r24
 160:	e0 50       	subi	r30, 0x00	; 0
 162:	ff 4f       	sbci	r31, 0xFF	; 255
 164:	80 81       	ld	r24, Z
 166:	8c 93       	st	X, r24
 168:	ec cf       	rjmp	.-40     	; 0x142 <main+0x20>

0000016a <_exit>:
 16a:	f8 94       	cli

0000016c <__stop_program>:
 16c:	ff cf       	rjmp	.-2      	; 0x16c <__stop_program>

⌨️ 快捷键说明

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