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

📄 main.lss

📁 基于CC1100和ATMEGA128开发的无线机器人控制程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000124  00800100  000006ae  00000742  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         000006ae  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          0000009c  00800224  00800224  00000866  2**0
                  ALLOC
  3 .noinit       00000000  008002c0  008002c0  00000866  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000866  2**0
                  CONTENTS
  5 .stab         00000408  00000000  00000000  00000868  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000c70  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000028  00000000  00000000  00000cf4  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 0000016e  00000000  00000000  00000d1c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000aaf  00000000  00000000  00000e8a  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000241  00000000  00000000  00001939  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   0000067a  00000000  00000000  00001b7a  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    0000034a  00000000  00000000  000021f4  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 46 00 	jmp	0x8c <__ctors_end>
   4:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
   8:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
   c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  10:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  14:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  18:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  1c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  20:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  24:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  28:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  2c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  30:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  34:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  38:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  3c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  40:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  44:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  48:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  4c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  50:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  54:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  58:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  5c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  60:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  64:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  68:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  6c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  70:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  74:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  78:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  7c:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  80:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  84:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>
  88:	0c 94 63 00 	jmp	0xc6 <__bad_interrupt>

0000008c <__ctors_end>:
  8c:	11 24       	eor	r1, r1
  8e:	1f be       	out	0x3f, r1	; 63
  90:	cf ef       	ldi	r28, 0xFF	; 255
  92:	d0 e1       	ldi	r29, 0x10	; 16
  94:	de bf       	out	0x3e, r29	; 62
  96:	cd bf       	out	0x3d, r28	; 61

00000098 <__do_copy_data>:
  98:	12 e0       	ldi	r17, 0x02	; 2
  9a:	a0 e0       	ldi	r26, 0x00	; 0
  9c:	b1 e0       	ldi	r27, 0x01	; 1
  9e:	ee ea       	ldi	r30, 0xAE	; 174
  a0:	f6 e0       	ldi	r31, 0x06	; 6
  a2:	00 e0       	ldi	r16, 0x00	; 0
  a4:	0b bf       	out	0x3b, r16	; 59
  a6:	02 c0       	rjmp	.+4      	; 0xac <__do_copy_data+0x14>
  a8:	07 90       	elpm	r0, Z+
  aa:	0d 92       	st	X+, r0
  ac:	a4 32       	cpi	r26, 0x24	; 36
  ae:	b1 07       	cpc	r27, r17
  b0:	d9 f7       	brne	.-10     	; 0xa8 <__do_copy_data+0x10>

000000b2 <__do_clear_bss>:
  b2:	12 e0       	ldi	r17, 0x02	; 2
  b4:	a4 e2       	ldi	r26, 0x24	; 36
  b6:	b2 e0       	ldi	r27, 0x02	; 2
  b8:	01 c0       	rjmp	.+2      	; 0xbc <.do_clear_bss_start>

000000ba <.do_clear_bss_loop>:
  ba:	1d 92       	st	X+, r1

000000bc <.do_clear_bss_start>:
  bc:	a0 3c       	cpi	r26, 0xC0	; 192
  be:	b1 07       	cpc	r27, r17
  c0:	e1 f7       	brne	.-8      	; 0xba <.do_clear_bss_loop>
  c2:	0c 94 0b 01 	jmp	0x216 <main>

000000c6 <__bad_interrupt>:
  c6:	0c 94 00 00 	jmp	0x0 <__vectors>

000000ca <write>:
BYTE BrBwTable[9][9];

BYTE asciiString[11];
void  write(unsigned char *str)
{ 
  ca:	fc 01       	movw	r30, r24
	while (*str != 0) 
	{ 
		UART0_WAIT_AND_SEND(*str++); 
  cc:	80 81       	ld	r24, Z
  ce:	88 23       	and	r24, r24
  d0:	69 f0       	breq	.+26     	; 0xec <write+0x22>
  d2:	80 91 9b 00 	lds	r24, 0x009B
  d6:	85 ff       	sbrs	r24, 5
  d8:	fc cf       	rjmp	.-8      	; 0xd2 <write+0x8>
  da:	80 91 9b 00 	lds	r24, 0x009B
  de:	8f 7d       	andi	r24, 0xDF	; 223
  e0:	80 93 9b 00 	sts	0x009B, r24
  e4:	81 91       	ld	r24, Z+
  e6:	80 93 9c 00 	sts	0x009C, r24
  ea:	f0 cf       	rjmp	.-32     	; 0xcc <write+0x2>
  ec:	08 95       	ret

000000ee <writeln>:
	} 
} 

void writeln(unsigned char *str) 
{ 
	write(str); 
  ee:	0e 94 65 00 	call	0xca <write>
	write("\n\r"); 
  f2:	83 e2       	ldi	r24, 0x23	; 35
  f4:	91 e0       	ldi	r25, 0x01	; 1
  f6:	0e 94 65 00 	call	0xca <write>
  fa:	08 95       	ret

000000fc <sysInit>:
} 


void sysInit(void);

int main(void)
{   UINT32 i;
	UINT32 packetsReceived = 0;
	UINT8 *length;
	BOOL flag;
    for (i=0;i<100;i++) halWait(200);	
	//系统初始化
	sysInit();	
	//一些提示信息
	writeln("Welcome to IBSS");	
	writeln("This is written by Wang Chaoyan");
	writeln("This is a Simple Demo RX  for CCxx00...");
	// Reset CCxx00 and write rf setting to config registers
	// CC1100芯片上电复位
	writeln("wait for Reset CCxxx0!!!!");
    POWER_UP_RESET_CCxxx0();
	writeln("Reset Cxxx0 oK!!"); 
	//寄存器设置
	halRfWriteRfSettings(&rfSettings);
	writeln("Config resister oK!!"); 
    //发射功率设定
    halSpiWriteBurstReg(CCxxx0_PATABLE, paTable, sizeof(paTable));
	writeln("Config paTable OK!!!"); 
	//提示信息
	writeln("Now Enjoying the show!!!");	
	while(1)
	{
		
	   //初始化接收的数据包长度
		length = sizeof(rxBuffer);
		//若收到显示接收结果
		flag=halRfReceivePacket(rxBuffer, length);		
		if (flag)
        {					
		  SET_LED_RDY();
          intToAscii(++packetsReceived);
          write("Received: ");
          write(asciiString);
          write("  -  "); 
          writeln(rxBuffer);
		  CLR_LED_RDY();
		     
        }
		
		
    }
	
	
}
void sysInit(void)
{
  fc:	cf 93       	push	r28
	unsigned char i;
	//口初始化
	PORT_INIT();
  fe:	87 e0       	ldi	r24, 0x07	; 7
 100:	87 bb       	out	0x17, r24	; 23
 102:	8f e3       	ldi	r24, 0x3F	; 63
 104:	88 bb       	out	0x18, r24	; 24
 106:	14 ba       	out	0x14, r1	; 20
 108:	85 bb       	out	0x15, r24	; 21
 10a:	88 e8       	ldi	r24, 0x88	; 136
 10c:	81 bb       	out	0x11, r24	; 17
 10e:	8f e7       	ldi	r24, 0x7F	; 127
 110:	82 bb       	out	0x12, r24	; 18
	//SPI 初始化
	SPI_INIT ();
 112:	80 e5       	ldi	r24, 0x50	; 80
 114:	8d b9       	out	0x0d, r24	; 13
 116:	c4 e0       	ldi	r28, 0x04	; 4
	
	//等待一下,晶振稳定
	for (i=0;i<5;i++) halWait(200);
 118:	88 ec       	ldi	r24, 0xC8	; 200
 11a:	0e 94 2e 03 	call	0x65c <halWait>
 11e:	c1 50       	subi	r28, 0x01	; 1
 120:	c7 ff       	sbrs	r28, 7
 122:	fa cf       	rjmp	.-12     	; 0x118 <sysInit+0x1c>
	//初始化串口为: 9600,8N1
	INIT_UART0 ( UART_BAUDRATE_9K6, (
 124:	10 92 98 00 	sts	0x0098, r1
 128:	83 e3       	ldi	r24, 0x33	; 51
 12a:	80 93 99 00 	sts	0x0099, r24
 12e:	86 e8       	ldi	r24, 0x86	; 134
 130:	80 93 9d 00 	sts	0x009D, r24
				UART_OPT_8_BITS_PER_CHAR |
				UART_OPT_NO_PARITY |
				UART_OPT_ONE_STOP_BIT ) );
	//串口开			
	ENABLE_UART0();	
 134:	80 91 9a 00 	lds	r24, 0x009A
 138:	88 61       	ori	r24, 0x18	; 24
 13a:	80 93 9a 00 	sts	0x009A, r24
	DISABLE_UART0_INT();
 13e:	80 91 9a 00 	lds	r24, 0x009A
 142:	8f 75       	andi	r24, 0x5F	; 95
 144:	80 93 9a 00 	sts	0x009A, r24
	
//	ENABLE_UART0_RX_INT();		// Enable Receive interrupt
	
//	ENABLE_GLOBAL_INT();	// Enable all interrupts
	

	SET_LED_RDY();
 148:	97 9a       	sbi	0x12, 7	; 18
 14a:	cf 91       	pop	r28
 14c:	08 95       	ret

0000014e <intToAscii>:
	
}




//-------------------------------------------------------------------------------------------------------
//  void intToAscii(UINT32 value)
//
//  DESCRIPTION:
//		Takes a 32 bits interger as input and converts it to ascii. Puts the result in the global
//      variable asciiString[]
//
//	ARGUMENTS:
//		UINT32 value
//			The value to be converted
//-------------------------------------------------------------------------------------------------------
void intToAscii(UINT32 value) {
 14e:	7f 92       	push	r7
 150:	8f 92       	push	r8
 152:	9f 92       	push	r9
 154:	af 92       	push	r10
 156:	bf 92       	push	r11
 158:	cf 92       	push	r12
 15a:	df 92       	push	r13
 15c:	ef 92       	push	r14
 15e:	ff 92       	push	r15
 160:	0f 93       	push	r16
 162:	1f 93       	push	r17
 164:	cf 93       	push	r28
 166:	df 93       	push	r29
 168:	7b 01       	movw	r14, r22
 16a:	8c 01       	movw	r16, r24
    UINT8 i;
    UINT8 j = 0;
 16c:	99 24       	eor	r9, r9
    UINT8 digit_start = 0;
 16e:	79 2c       	mov	r7, r9
    UINT16 digit = 0;
    UINT32 denom = 1000000000;
 170:	a1 2c       	mov	r10, r1
 172:	2a ec       	ldi	r18, 0xCA	; 202
 174:	b2 2e       	mov	r11, r18
 176:	2a e9       	ldi	r18, 0x9A	; 154
 178:	c2 2e       	mov	r12, r18
 17a:	2b e3       	ldi	r18, 0x3B	; 59
 17c:	d2 2e       	mov	r13, r18

    if (value == 0) {
 17e:	61 15       	cp	r22, r1
 180:	71 05       	cpc	r23, r1
 182:	81 05       	cpc	r24, r1
 184:	91 05       	cpc	r25, r1
 186:	31 f4       	brne	.+12     	; 0x194 <intToAscii+0x46>
        asciiString[0] = '0';
 188:	80 e3       	ldi	r24, 0x30	; 48
 18a:	80 93 75 02 	sts	0x0275, r24
        asciiString[1] = NULL;
 18e:	90 92 76 02 	sts	0x0276, r9
 192:	33 c0       	rjmp	.+102    	; 0x1fa <intToAscii+0xac>
    } else {
        for(i = 10; i > 0; i--) {
 194:	9a e0       	ldi	r25, 0x0A	; 10
 196:	89 2e       	mov	r8, r25

⌨️ 快捷键说明

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