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

📄 main.lss

📁 the code connect Atmega 32 uC to 1 module Bluetooth ARF32
💻 LSS
📖 第 1 页 / 共 5 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000054a  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .bss          00000025  00800060  00800060  000005be  2**0
                  ALLOC
  2 .stab         000006b4  00000000  00000000  000005c0  2**2
                  CONTENTS, READONLY, DEBUGGING
  3 .stabstr      0000005f  00000000  00000000  00000c74  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_aranges 00000020  00000000  00000000  00000cd3  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_pubnames 000001fa  00000000  00000000  00000cf3  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_info   00000ceb  00000000  00000000  00000eed  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_abbrev 000001f8  00000000  00000000  00001bd8  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_line   00000a2e  00000000  00000000  00001dd0  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_frame  00000170  00000000  00000000  00002800  2**2
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    000002c4  00000000  00000000  00002970  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_loc    00000217  00000000  00000000  00002c34  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_ranges 00000030  00000000  00000000  00002e4b  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:	d8 e0       	ldi	r29, 0x08	; 8
  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:	f5 e0       	ldi	r31, 0x05	; 5
  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:	a5 38       	cpi	r26, 0x85	; 133
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 51 02 	call	0x4a2	; 0x4a2 <main>
  8a:	0c 94 a3 02 	jmp	0x546	; 0x546 <_exit>

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

00000092 <UART_Init>:
/*********************************************/
/*----Chon Baudrate cho cong USART + set Frame: 8 data bit+ 1 Stop bit----*/
void UART_Init(unsigned int baud)
	{
		/* Set baud rate */
		UBRRH = (unsigned char)(baud>>8);
  92:	90 bd       	out	0x20, r25	; 32
		UBRRL = (unsigned char)baud;
  94:	89 b9       	out	0x09, r24	; 9
		
		/* Enable receiver and transmitter */
		UCSRB |= (1<<RXEN)|(1<<TXEN);
  96:	8a b1       	in	r24, 0x0a	; 10
  98:	88 61       	ori	r24, 0x18	; 24
  9a:	8a b9       	out	0x0a, r24	; 10
		
		/* Set frame format: 8data, 1stop bit */
		UCSRC |= (1<<URSEL)|(0<<USBS)|(3<<UCSZ0);
  9c:	80 b5       	in	r24, 0x20	; 32
  9e:	86 68       	ori	r24, 0x86	; 134
  a0:	80 bd       	out	0x20, r24	; 32
        
	}
  a2:	08 95       	ret

000000a4 <Send_Byte_To_UART>:
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  a4:	5d 9b       	sbis	0x0b, 5	; 11
  a6:	fe cf       	rjmp	.-4      	; 0xa4 <Send_Byte_To_UART>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  a8:	8c b9       	out	0x0c, r24	; 12
        
	}
  aa:	08 95       	ret

000000ac <Receive_Byte_From_UART>:
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
  ac:	5f 9b       	sbis	0x0b, 7	; 11
  ae:	fe cf       	rjmp	.-4      	; 0xac <Receive_Byte_From_UART>
		
		/* Get and return received data from buffer */
		return UDR;
  b0:	8c b1       	in	r24, 0x0c	; 12
  b2:	08 95       	ret

000000b4 <Reset_Module>:
#include "LMX9820.h"
#include "uart.c"
/*----Ham Reset Module---*/
void Reset_Module(void)
	{
  b4:	80 e1       	ldi	r24, 0x10	; 16
  b6:	97 e2       	ldi	r25, 0x27	; 39
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  b8:	2c e5       	ldi	r18, 0x5C	; 92
  ba:	30 e0       	ldi	r19, 0x00	; 0
  bc:	f9 01       	movw	r30, r18
  be:	31 97       	sbiw	r30, 0x01	; 1
  c0:	f1 f7       	brne	.-4      	; 0xbe <Reset_Module+0xa>
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  c2:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  c4:	d9 f7       	brne	.-10     	; 0xbc <Reset_Module+0x8>
  c6:	80 e1       	ldi	r24, 0x10	; 16
  c8:	97 e2       	ldi	r25, 0x27	; 39
  ca:	2c e5       	ldi	r18, 0x5C	; 92
  cc:	30 e0       	ldi	r19, 0x00	; 0
  ce:	f9 01       	movw	r30, r18
  d0:	31 97       	sbiw	r30, 0x01	; 1
  d2:	f1 f7       	brne	.-4      	; 0xd0 <Reset_Module+0x1c>
		{
			// wait 1/10 ms
			_delay_loop_2(((F_CPU) / 4e3) / 10);
			__ticks --;
  d4:	01 97       	sbiw	r24, 0x01	; 1
		__ticks = 1;
	else if (__tmp > 65535)
	{
		//	__ticks = requested delay in 1/10 ms
		__ticks = (uint16_t) (__ms * 10.0);
		while(__ticks)
  d6:	d9 f7       	brne	.-10     	; 0xce <Reset_Module+0x1a>
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  d8:	5d 9b       	sbis	0x0b, 5	; 11
  da:	fe cf       	rjmp	.-4      	; 0xd8 <Reset_Module+0x24>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  dc:	82 e0       	ldi	r24, 0x02	; 2
  de:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  e0:	5d 9b       	sbis	0x0b, 5	; 11
  e2:	fe cf       	rjmp	.-4      	; 0xe0 <Reset_Module+0x2c>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  e4:	82 e5       	ldi	r24, 0x52	; 82
  e6:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  e8:	5d 9b       	sbis	0x0b, 5	; 11
  ea:	fe cf       	rjmp	.-4      	; 0xe8 <Reset_Module+0x34>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  ec:	86 e2       	ldi	r24, 0x26	; 38
  ee:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  f0:	5d 9b       	sbis	0x0b, 5	; 11
  f2:	fe cf       	rjmp	.-4      	; 0xf0 <Reset_Module+0x3c>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  f4:	1c b8       	out	0x0c, r1	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  f6:	5d 9b       	sbis	0x0b, 5	; 11
  f8:	fe cf       	rjmp	.-4      	; 0xf6 <Reset_Module+0x42>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
  fa:	1c b8       	out	0x0c, r1	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
  fc:	5d 9b       	sbis	0x0b, 5	; 11
  fe:	fe cf       	rjmp	.-4      	; 0xfc <Reset_Module+0x48>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 100:	88 e7       	ldi	r24, 0x78	; 120
 102:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 104:	5d 9b       	sbis	0x0b, 5	; 11
 106:	fe cf       	rjmp	.-4      	; 0x104 <Reset_Module+0x50>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 108:	83 e0       	ldi	r24, 0x03	; 3
 10a:	8c b9       	out	0x0c, r24	; 12
		Send_Byte_To_UART(RESET);	/*Truyen byte Opcode=Reset*/
		Send_Byte_To_UART(0x00);	/*Truyen 2 byte Data Length=0x0000*/
		Send_Byte_To_UART(0x00);
		Send_Byte_To_UART(0x78);	/*Truyen Data=Null*/
		Send_Byte_To_UART(ETX);		/*Truyen Byte ETX: End*/
	}
 10c:	08 95       	ret

0000010e <Get_Data_From_Module>:
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
 10e:	5f 9b       	sbis	0x0b, 7	; 11
 110:	fe cf       	rjmp	.-4      	; 0x10e <Get_Data_From_Module>
		
		/* Get and return received data from buffer */
		return UDR;
 112:	8c b1       	in	r24, 0x0c	; 12
/*---Ham tra ve gia tri TRUE-->Truyen khong co loi
	 Ham tra ve gia tri FALSE-->Truyen co loi*/
unsigned char Get_Data_From_Module(void )	
	{
		int i=0, j;
		Receive_Cmd[0]=Receive_Byte_From_UART(); 	/*Nhan byte STX*/
 114:	80 93 60 00 	sts	0x0060, r24
		if (Receive_Cmd[0] != STX) return FALSE; 	/*Neu byte dau tien ko phai STX-->False*/	
 118:	82 30       	cpi	r24, 0x02	; 2
 11a:	a9 f5       	brne	.+106    	; 0x186 <Get_Data_From_Module+0x78>
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
 11c:	5f 9b       	sbis	0x0b, 7	; 11
 11e:	fe cf       	rjmp	.-4      	; 0x11c <Get_Data_From_Module+0xe>
		
		/* Get and return received data from buffer */
		return UDR;
 120:	8c b1       	in	r24, 0x0c	; 12
		Receive_Cmd[1] = Receive_Byte_From_UART(); 	//Packet 
 122:	80 93 61 00 	sts	0x0061, r24
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */

⌨️ 快捷键说明

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