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

📄 main.lss

📁 这是用M16做的jtag与stk500(正确说应该是ISP)合二为一的
💻 LSS
📖 第 1 页 / 共 5 页
字号:

Main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000c4c  00002da0  00002da0  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000002  00800060  000039ec  00000ce0  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000234  00800062  00800062  00000ce2  2**0
                  ALLOC
  3 .stab         00000378  00000000  00000000  00000ce4  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000071  00000000  00000000  0000105c  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000020  00000000  00000000  000010cd  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 00000302  00000000  00000000  000010ed  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   00000dca  00000000  00000000  000013ef  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 00000228  00000000  00000000  000021b9  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   0000126d  00000000  00000000  000023e1  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  00000210  00000000  00000000  00003650  2**2
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    000002fd  00000000  00000000  00003860  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    00000150  00000000  00000000  00003b5d  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00002da0 <__vectors>:
    2da0:	0c 94 17 17 	jmp	0x2e2e	; 0x2e2e <__ctors_end>
    2da4:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2da8:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dac:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2db0:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2db4:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2db8:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dbc:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dc0:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dc4:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dc8:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dcc:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dd0:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dd4:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dd8:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2ddc:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2de0:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2de4:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2de8:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2dec:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2df0:	0c 94 34 17 	jmp	0x2e68	; 0x2e68 <__bad_interrupt>
    2df4:	8b 1c       	adc	r8, r11
    2df6:	91 1c       	adc	r9, r1
    2df8:	8e 1c       	adc	r8, r14
    2dfa:	cb 1c       	adc	r12, r11
    2dfc:	c1 1c       	adc	r12, r1
    2dfe:	b5 1c       	adc	r11, r5
    2e00:	cb 1c       	adc	r12, r11
    2e02:	cb 1c       	adc	r12, r11
    2e04:	cb 1c       	adc	r12, r11
    2e06:	cb 1c       	adc	r12, r11
    2e08:	cb 1c       	adc	r12, r11
    2e0a:	cb 1c       	adc	r12, r11
    2e0c:	cb 1c       	adc	r12, r11
    2e0e:	cb 1c       	adc	r12, r11
    2e10:	cb 1c       	adc	r12, r11
    2e12:	94 1c       	adc	r9, r4
    2e14:	97 1c       	adc	r9, r7
    2e16:	af 1c       	adc	r10, r15
    2e18:	b2 1c       	adc	r11, r2
    2e1a:	b8 1c       	adc	r11, r8
    2e1c:	bb 1c       	adc	r11, r11
    2e1e:	be 1c       	adc	r11, r14
    2e20:	a3 1c       	adc	r10, r3
    2e22:	a0 1c       	adc	r10, r0
    2e24:	a9 1c       	adc	r10, r9
    2e26:	a6 1c       	adc	r10, r6
    2e28:	9a 1c       	adc	r9, r10
    2e2a:	9d 1c       	adc	r9, r13
    2e2c:	ac 1c       	adc	r10, r12

00002e2e <__ctors_end>:
    2e2e:	11 24       	eor	r1, r1
    2e30:	1f be       	out	0x3f, r1	; 63
    2e32:	cf e5       	ldi	r28, 0x5F	; 95
    2e34:	d4 e0       	ldi	r29, 0x04	; 4
    2e36:	de bf       	out	0x3e, r29	; 62
    2e38:	cd bf       	out	0x3d, r28	; 61

00002e3a <__do_copy_data>:
    2e3a:	10 e0       	ldi	r17, 0x00	; 0
    2e3c:	a0 e6       	ldi	r26, 0x60	; 96
    2e3e:	b0 e0       	ldi	r27, 0x00	; 0
    2e40:	ec ee       	ldi	r30, 0xEC	; 236
    2e42:	f9 e3       	ldi	r31, 0x39	; 57
    2e44:	02 c0       	rjmp	.+4      	; 0x2e4a <.do_copy_data_start>

00002e46 <.do_copy_data_loop>:
    2e46:	05 90       	lpm	r0, Z+
    2e48:	0d 92       	st	X+, r0

00002e4a <.do_copy_data_start>:
    2e4a:	a2 36       	cpi	r26, 0x62	; 98
    2e4c:	b1 07       	cpc	r27, r17
    2e4e:	d9 f7       	brne	.-10     	; 0x2e46 <.do_copy_data_loop>

00002e50 <__do_clear_bss>:
    2e50:	12 e0       	ldi	r17, 0x02	; 2
    2e52:	a2 e6       	ldi	r26, 0x62	; 98
    2e54:	b0 e0       	ldi	r27, 0x00	; 0
    2e56:	01 c0       	rjmp	.+2      	; 0x2e5a <.do_clear_bss_start>

00002e58 <.do_clear_bss_loop>:
    2e58:	1d 92       	st	X+, r1

00002e5a <.do_clear_bss_start>:
    2e5a:	a6 39       	cpi	r26, 0x96	; 150
    2e5c:	b1 07       	cpc	r27, r17
    2e5e:	e1 f7       	brne	.-8      	; 0x2e58 <.do_clear_bss_loop>
    2e60:	0e 94 58 1c 	call	0x38b0	; 0x38b0 <main>
    2e64:	0c 94 f5 1c 	jmp	0x39ea	; 0x39ea <_exit>

00002e68 <__bad_interrupt>:
    2e68:	0c 94 d0 16 	jmp	0x2da0	; 0x2da0 <__vectors>

00002e6c <putch>:
    return;
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void putch(char ch)
{
    2e6c:	5d 9b       	sbis	0x0b, 5	; 11
    2e6e:	fe cf       	rjmp	.-4      	; 0x2e6c <putch>
    while (!(UCSRA & _BV(UDRE)));
    UDR = ch;
    2e70:	8c b9       	out	0x0c, r24	; 12
    2e72:	08 95       	ret

00002e74 <getch>:
}

char getch(void)
{
    2e74:	5f 9b       	sbis	0x0b, 7	; 11
    2e76:	fe cf       	rjmp	.-4      	; 0x2e74 <getch>
    while(!(UCSRA & _BV(RXC)));
    return UDR;
    2e78:	8c b1       	in	r24, 0x0c	; 12
}
    2e7a:	99 27       	eor	r25, r25
    2e7c:	08 95       	ret

00002e7e <flash_led>:


void flash_led(uint8_t count)
{
    2e7e:	88 23       	and	r24, r24
    2e80:	09 f4       	brne	.+2      	; 0x2e84 <flash_led+0x6>
    uint32_t ll;
	uint8_t ii;
    if (count == 0) {
    2e82:	83 e0       	ldi	r24, 0x03	; 3
    2e84:	90 e0       	ldi	r25, 0x00	; 0
    2e86:	03 c0       	rjmp	.+6      	; 0x2e8e <flash_led+0x10>
      count = 3;
    }
    
    for (ii = 0; ii < count; ++ii) {
	LED_PORT &= ~_BV(LED);
    2e88:	c2 98       	cbi	0x18, 2	; 24
	for(ll = 0; ll < (F_CPU / 5); ++ll);
	LED_PORT |= _BV(LED);
    2e8a:	c2 9a       	sbi	0x18, 2	; 24
    2e8c:	9f 5f       	subi	r25, 0xFF	; 255
    2e8e:	98 17       	cp	r25, r24
    2e90:	d9 f7       	brne	.-10     	; 0x2e88 <flash_led+0xa>
    2e92:	08 95       	ret

00002e94 <get_message_body>:
	for(ll = 0; ll < (2 * F_CPU); ++ll);
    }	
}

void get_message(void)
{
		
		rx_ptr=0;
		rx_buf[rx_ptr]=getch();									//get MESSAGE_START
		rx_chm^=rx_buf[rx_ptr];
		rx_ptr++;
		
		//////////////////LED_PORT &= ~_BV(LED);										//turn led on
		
		rx_buf[rx_ptr]=getch();									//get SEQUENCE_NUMBER
		rx_chm^=rx_buf[rx_ptr];
		rx_ptr++;

		rx_buf[rx_ptr]=getch();									//get MESSAGE_SIZE[1]
		rx_chm^=rx_buf[rx_ptr];
		rx_ptr++;

		rx_buf[rx_ptr]=getch();									//get MESSAGE_SIZE[0]
		rx_chm^=rx_buf[rx_ptr];
		rx_ptr++;
		
		rx_buf[rx_ptr]=getch();									//get TOKEN
		rx_chm^=rx_buf[rx_ptr];
		rx_ptr++;

		get_message_body();												//get message body
		
		rx_buf[rx_ptr]=getch();									//get CHECKSUM
		rx_chm^=rx_buf[rx_ptr];
		
		if(rx_chm==0)													//message recived Ok!
		{
			rx_chm=0;
			rx_ptr=0;
			//go to start
		}
	////////////////////////////LED_PORT |= _BV(LED);									//turn led off
	
	
}
void get_message_body(void)
{
    2e94:	80 91 72 00 	lds	r24, 0x0072
    2e98:	99 27       	eor	r25, r25
    2e9a:	58 2f       	mov	r21, r24
    2e9c:	44 27       	eor	r20, r20
    2e9e:	80 91 73 00 	lds	r24, 0x0073
    2ea2:	48 0f       	add	r20, r24
    2ea4:	51 1d       	adc	r21, r1
    2ea6:	20 91 62 00 	lds	r18, 0x0062
    2eaa:	30 91 63 00 	lds	r19, 0x0063
    2eae:	e0 91 66 00 	lds	r30, 0x0066
    2eb2:	d9 01       	movw	r26, r18
    2eb4:	a0 59       	subi	r26, 0x90	; 144
    2eb6:	bf 4f       	sbci	r27, 0xFF	; 255
    2eb8:	60 e0       	ldi	r22, 0x00	; 0
    2eba:	70 e0       	ldi	r23, 0x00	; 0
    2ebc:	0a c0       	rjmp	.+20     	; 0x2ed2 <get_message_body+0x3e>
    2ebe:	5f 9b       	sbis	0x0b, 7	; 11
    2ec0:	fe cf       	rjmp	.-4      	; 0x2ebe <get_message_body+0x2a>
    2ec2:	8c b1       	in	r24, 0x0c	; 12
	int j,k;
	j=rx_buf[2]*256+rx_buf[3];								//calculate message size
	
	for(k=0;k<j;k++)
	{
		rx_buf[rx_ptr]=getch();
    2ec4:	99 27       	eor	r25, r25
    2ec6:	8d 93       	st	X+, r24
		rx_chm^=rx_buf[rx_ptr];
    2ec8:	e8 27       	eor	r30, r24
    2eca:	6f 5f       	subi	r22, 0xFF	; 255
    2ecc:	7f 4f       	sbci	r23, 0xFF	; 255
    2ece:	2f 5f       	subi	r18, 0xFF	; 255
    2ed0:	3f 4f       	sbci	r19, 0xFF	; 255
    2ed2:	64 17       	cp	r22, r20
    2ed4:	75 07       	cpc	r23, r21
    2ed6:	9c f3       	brlt	.-26     	; 0x2ebe <get_message_body+0x2a>
    2ed8:	30 93 63 00 	sts	0x0063, r19
    2edc:	20 93 62 00 	sts	0x0062, r18
    2ee0:	e0 93 66 00 	sts	0x0066, r30
    2ee4:	08 95       	ret

00002ee6 <get_message>:
    2ee6:	5f 9b       	sbis	0x0b, 7	; 11
    2ee8:	fe cf       	rjmp	.-4      	; 0x2ee6 <get_message>
    2eea:	8c b1       	in	r24, 0x0c	; 12
    2eec:	99 27       	eor	r25, r25
    2eee:	68 2f       	mov	r22, r24
    2ef0:	80 93 70 00 	sts	0x0070, r24
    2ef4:	20 91 66 00 	lds	r18, 0x0066
    2ef8:	5f 9b       	sbis	0x0b, 7	; 11
    2efa:	fe cf       	rjmp	.-4      	; 0x2ef8 <get_message+0x12>
    2efc:	8c b1       	in	r24, 0x0c	; 12
    2efe:	99 27       	eor	r25, r25
    2f00:	58 2f       	mov	r21, r24
    2f02:	80 93 71 00 	sts	0x0071, r24
    2f06:	5f 9b       	sbis	0x0b, 7	; 11
    2f08:	fe cf       	rjmp	.-4      	; 0x2f06 <get_message+0x20>
    2f0a:	8c b1       	in	r24, 0x0c	; 12
    2f0c:	99 27       	eor	r25, r25
    2f0e:	38 2f       	mov	r19, r24
    2f10:	80 93 72 00 	sts	0x0072, r24
    2f14:	5f 9b       	sbis	0x0b, 7	; 11
    2f16:	fe cf       	rjmp	.-4      	; 0x2f14 <get_message+0x2e>
    2f18:	8c b1       	in	r24, 0x0c	; 12
    2f1a:	99 27       	eor	r25, r25
    2f1c:	48 2f       	mov	r20, r24
    2f1e:	80 93 73 00 	sts	0x0073, r24
    2f22:	5f 9b       	sbis	0x0b, 7	; 11
    2f24:	fe cf       	rjmp	.-4      	; 0x2f22 <get_message+0x3c>
    2f26:	8c b1       	in	r24, 0x0c	; 12
    2f28:	99 27       	eor	r25, r25
    2f2a:	80 93 74 00 	sts	0x0074, r24
    2f2e:	35 27       	eor	r19, r21
    2f30:	38 27       	eor	r19, r24
    2f32:	26 27       	eor	r18, r22
    2f34:	24 27       	eor	r18, r20
    2f36:	23 27       	eor	r18, r19
    2f38:	20 93 66 00 	sts	0x0066, r18
    2f3c:	85 e0       	ldi	r24, 0x05	; 5
    2f3e:	90 e0       	ldi	r25, 0x00	; 0
    2f40:	90 93 63 00 	sts	0x0063, r25
    2f44:	80 93 62 00 	sts	0x0062, r24
    2f48:	0e 94 4a 17 	call	0x2e94	; 0x2e94 <get_message_body>
    2f4c:	e0 91 62 00 	lds	r30, 0x0062
    2f50:	f0 91 63 00 	lds	r31, 0x0063
    2f54:	5f 9b       	sbis	0x0b, 7	; 11
    2f56:	fe cf       	rjmp	.-4      	; 0x2f54 <get_message+0x6e>
    2f58:	8c b1       	in	r24, 0x0c	; 12
    2f5a:	99 27       	eor	r25, r25
    2f5c:	e0 59       	subi	r30, 0x90	; 144
    2f5e:	ff 4f       	sbci	r31, 0xFF	; 255
    2f60:	80 83       	st	Z, r24
    2f62:	20 91 66 00 	lds	r18, 0x0066
    2f66:	28 27       	eor	r18, r24
    2f68:	20 93 66 00 	sts	0x0066, r18
    2f6c:	22 23       	and	r18, r18
    2f6e:	31 f4       	brne	.+12     	; 0x2f7c <get_message+0x96>
    2f70:	10 92 66 00 	sts	0x0066, r1
    2f74:	10 92 63 00 	sts	0x0063, r1
    2f78:	10 92 62 00 	sts	0x0062, r1
    2f7c:	08 95       	ret

00002f7e <sendResponse>:
		rx_ptr++;
	}
	
}


void sendResponse(void)
{
    2f7e:	10 92 67 00 	sts	0x0067, r1
	int j,k;
	tx_chm=0;
		
	tx_buf[0]=MESSAGE_START;								//MESSAGE_START
    2f82:	8b e1       	ldi	r24, 0x1B	; 27
    2f84:	80 93 83 01 	sts	0x0183, r24
		
	tx_buf[1]=rx_buf[1];									//SEQUENCE_NUMBER
    2f88:	80 91 71 00 	lds	r24, 0x0071
    2f8c:	80 93 84 01 	sts	0x0184, r24
		
	tx_buf[4]=TOKEN;										//token
    2f90:	8e e0       	ldi	r24, 0x0E	; 14
    2f92:	80 93 87 01 	sts	0x0187, r24
    2f96:	60 e0       	ldi	r22, 0x00	; 0
    2f98:	e3 e8       	ldi	r30, 0x83	; 131
    2f9a:	f1 e0       	ldi	r31, 0x01	; 1
	
	for(j=0;j<5;j++)
	{	
		tx_chm^=tx_buf[j];
    2f9c:	80 81       	ld	r24, Z
    2f9e:	68 27       	eor	r22, r24
    2fa0:	5d 9b       	sbis	0x0b, 5	; 11
    2fa2:	fe cf       	rjmp	.-4      	; 0x2fa0 <sendResponse+0x22>
    2fa4:	8c b9       	out	0x0c, r24	; 12
    2fa6:	31 96       	adiw	r30, 0x01	; 1
    2fa8:	81 e0       	ldi	r24, 0x01	; 1
    2faa:	e8 38       	cpi	r30, 0x88	; 136

⌨️ 快捷键说明

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