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

📄 m16spi.lss

📁 GCC-AVR application builder : 2007-8-31 18:00:11 Target : M16 Crystal: 7.3728Mhz 作者:小马哈 功能:SP
💻 LSS
字号:

m16spi.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000014a  00000000  00000000  00000054  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .stab         00000378  00000000  00000000  000001a0  2**2
                  CONTENTS, READONLY, DEBUGGING
  2 .stabstr      00000071  00000000  00000000  00000518  2**0
                  CONTENTS, READONLY, DEBUGGING
  3 .debug_aranges 00000020  00000000  00000000  00000589  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 0000005a  00000000  00000000  000005a9  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   0000010f  00000000  00000000  00000603  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 000000a1  00000000  00000000  00000712  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   00000170  00000000  00000000  000007b3  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  00000060  00000000  00000000  00000924  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    000000ae  00000000  00000000  00000984  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_loc    00000038  00000000  00000000  00000a32  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  24:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__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:	ea e4       	ldi	r30, 0x4A	; 74
  68:	f1 e0       	ldi	r31, 0x01	; 1
  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 36       	cpi	r26, 0x60	; 96
  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 e6       	ldi	r26, 0x60	; 96
  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 36       	cpi	r26, 0x60	; 96
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 90 00 	call	0x120	; 0x120 <main>
  8a:	0c 94 a4 00 	jmp	0x148	; 0x148 <_exit>

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

00000092 <spi_init>:
#include <avr/io.h>  

//SPI initialize 
void spi_init(void) 
{ 
  92:	88 b3       	in	r24, 0x18	; 24
  94:	80 6f       	ori	r24, 0xF0	; 240
  96:	88 bb       	out	0x18, r24	; 24
	PORTB |= (1<<PB4) | (1<<PB5) | (1<<PB6) | (1<<PB7); // 
	DDRB |= (1<<DDB5) | (1<<DDB7) | (1<<DDB4);     //Set MOSI, SCK AND SS as outputs  
  98:	87 b3       	in	r24, 0x17	; 23
  9a:	80 6b       	ori	r24, 0xB0	; 176
  9c:	87 bb       	out	0x17, r24	; 23
	SPCR = 0x73; //SPI使能,低位首发,主机模式,时钟模式00,上升沿采样;时钟速率Fosc/128 
  9e:	83 e7       	ldi	r24, 0x73	; 115
  a0:	8d b9       	out	0x0d, r24	; 13
	SPSR = 0x00; //SPI2x=0 
  a2:	1e b8       	out	0x0e, r1	; 14
  a4:	08 95       	ret

000000a6 <init_devices>:
} 


void init_devices(void) 
{ 
  a6:	0e 94 49 00 	call	0x92	; 0x92 <spi_init>
  aa:	08 95       	ret

000000ac <SPI_MasterTransmit>:
	spi_init(); 
} 

void SPI_MasterTransmit(char cData) 
{ 
  ac:	c4 98       	cbi	0x18, 4	; 24
	PORTB &=~ (1<<PB4); //强制接收方进入从模式 
	SPCR |= (1<<MSTR); // MSTR有时会被清零,这里强制进入主机模式 
  ae:	6c 9a       	sbi	0x0d, 4	; 13
	PORTB&=~0x10; 
  b0:	c4 98       	cbi	0x18, 4	; 24
	//asm("nop"); 
	asm("nop"); 
  b2:	00 00       	nop
	/* 启动数据传输 */ 
	SPDR =cData; 
  b4:	8f b9       	out	0x0f, r24	; 15
  b6:	01 c0       	rjmp	.+2      	; 0xba <SPI_MasterTransmit+0xe>
	/* 等待传输结束 */ 
	while(!(SPSR & (1<<SPIF))) 
		asm("nop"); 
  b8:	00 00       	nop
  ba:	77 9b       	sbis	0x0e, 7	; 14
  bc:	fd cf       	rjmp	.-6      	; 0xb8 <SPI_MasterTransmit+0xc>
	PORTB |= (1<<PB4); 
  be:	c4 9a       	sbi	0x18, 4	; 24
  c0:	08 95       	ret

000000c2 <Delay>:
} 

void Delay(void) // 
{ 
  c2:	cf 93       	push	r28
  c4:	df 93       	push	r29
  c6:	cd b7       	in	r28, 0x3d	; 61
  c8:	de b7       	in	r29, 0x3e	; 62
  ca:	24 97       	sbiw	r28, 0x04	; 4
  cc:	0f b6       	in	r0, 0x3f	; 63
  ce:	f8 94       	cli
  d0:	de bf       	out	0x3e, r29	; 62
  d2:	0f be       	out	0x3f, r0	; 63
  d4:	cd bf       	out	0x3d, r28	; 61
	volatile unsigned int i,j; 
	for(i=500;i>0;i--) 
  d6:	84 ef       	ldi	r24, 0xF4	; 244
  d8:	91 e0       	ldi	r25, 0x01	; 1
  da:	9c 83       	std	Y+4, r25	; 0x04
  dc:	8b 83       	std	Y+3, r24	; 0x03
  de:	28 ec       	ldi	r18, 0xC8	; 200
  e0:	30 e0       	ldi	r19, 0x00	; 0
  e2:	11 c0       	rjmp	.+34     	; 0x106 <Delay+0x44>
	{ 
		for(j=200;j>0;j--) 
  e4:	3a 83       	std	Y+2, r19	; 0x02
  e6:	29 83       	std	Y+1, r18	; 0x01
  e8:	05 c0       	rjmp	.+10     	; 0xf4 <Delay+0x32>
  ea:	89 81       	ldd	r24, Y+1	; 0x01
  ec:	9a 81       	ldd	r25, Y+2	; 0x02
  ee:	01 97       	sbiw	r24, 0x01	; 1
  f0:	9a 83       	std	Y+2, r25	; 0x02
  f2:	89 83       	std	Y+1, r24	; 0x01
  f4:	89 81       	ldd	r24, Y+1	; 0x01
  f6:	9a 81       	ldd	r25, Y+2	; 0x02
  f8:	89 2b       	or	r24, r25
  fa:	b9 f7       	brne	.-18     	; 0xea <Delay+0x28>
  fc:	8b 81       	ldd	r24, Y+3	; 0x03
  fe:	9c 81       	ldd	r25, Y+4	; 0x04
 100:	01 97       	sbiw	r24, 0x01	; 1
 102:	9c 83       	std	Y+4, r25	; 0x04
 104:	8b 83       	std	Y+3, r24	; 0x03
 106:	8b 81       	ldd	r24, Y+3	; 0x03
 108:	9c 81       	ldd	r25, Y+4	; 0x04
 10a:	89 2b       	or	r24, r25
 10c:	59 f7       	brne	.-42     	; 0xe4 <Delay+0x22>
 10e:	24 96       	adiw	r28, 0x04	; 4
 110:	0f b6       	in	r0, 0x3f	; 63
 112:	f8 94       	cli
 114:	de bf       	out	0x3e, r29	; 62
 116:	0f be       	out	0x3f, r0	; 63
 118:	cd bf       	out	0x3d, r28	; 61
 11a:	df 91       	pop	r29
 11c:	cf 91       	pop	r28
 11e:	08 95       	ret

00000120 <main>:
		; 
	} 
} 

int main(void) 
{ 
 120:	cf 93       	push	r28
 122:	df 93       	push	r29
	unsigned int i=0; 
	init_devices(); 
 124:	0e 94 53 00 	call	0xa6	; 0xa6 <init_devices>
 128:	80 e0       	ldi	r24, 0x00	; 0
 12a:	90 e0       	ldi	r25, 0x00	; 0
 12c:	ec 01       	movw	r28, r24
	while(1) 
	{ 
		for(i=0;i<255;i++) 
		{ 
			SPI_MasterTransmit(i); 
 12e:	8c 2f       	mov	r24, r28
 130:	0e 94 56 00 	call	0xac	; 0xac <SPI_MasterTransmit>
			Delay(); 
 134:	0e 94 61 00 	call	0xc2	; 0xc2 <Delay>
 138:	ce 01       	movw	r24, r28
 13a:	01 96       	adiw	r24, 0x01	; 1
 13c:	c0 e0       	ldi	r28, 0x00	; 0
 13e:	d0 e0       	ldi	r29, 0x00	; 0
 140:	8f 3f       	cpi	r24, 0xFF	; 255
 142:	91 05       	cpc	r25, r1
 144:	a0 f7       	brcc	.-24     	; 0x12e <main+0xe>
 146:	f2 cf       	rjmp	.-28     	; 0x12c <main+0xc>

00000148 <_exit>:
 148:	ff cf       	rjmp	.-2      	; 0x148 <_exit>

⌨️ 快捷键说明

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