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

📄 older_m88.lss

📁 脱机ISP编程器
💻 LSS
📖 第 1 页 / 共 5 页
字号:

OLDer_M88.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .data         00000138  00800100  0000196e  000019e2  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  1 .text         0000196e  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .bss          00000227  00800238  00001aa6  00001b1a  2**0
                  ALLOC
  3 .debug_aranges 000000e0  00000000  00000000  00001b1a  2**0
                  CONTENTS, READONLY, DEBUGGING
  4 .debug_pubnames 00000650  00000000  00000000  00001bfa  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_info   00002595  00000000  00000000  0000224a  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_abbrev 00000c13  00000000  00000000  000047df  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_line   00002626  00000000  00000000  000053f2  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_frame  000004a0  00000000  00000000  00007a18  2**2
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_str    00000685  00000000  00000000  00007eb8  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_loc    00000e09  00000000  00000000  0000853d  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_ranges 00000180  00000000  00000000  00009346  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	ee c0       	rjmp	.+476    	; 0x1de <__ctors_end>
       2:	08 c1       	rjmp	.+528    	; 0x214 <__bad_interrupt>
       4:	07 c1       	rjmp	.+526    	; 0x214 <__bad_interrupt>
       6:	06 c1       	rjmp	.+524    	; 0x214 <__bad_interrupt>
       8:	05 c1       	rjmp	.+522    	; 0x214 <__bad_interrupt>
       a:	04 c1       	rjmp	.+520    	; 0x214 <__bad_interrupt>
       c:	03 c1       	rjmp	.+518    	; 0x214 <__bad_interrupt>
       e:	02 c1       	rjmp	.+516    	; 0x214 <__bad_interrupt>
      10:	01 c1       	rjmp	.+514    	; 0x214 <__bad_interrupt>
      12:	00 c1       	rjmp	.+512    	; 0x214 <__bad_interrupt>
      14:	ff c0       	rjmp	.+510    	; 0x214 <__bad_interrupt>
      16:	fe c0       	rjmp	.+508    	; 0x214 <__bad_interrupt>
      18:	fd c0       	rjmp	.+506    	; 0x214 <__bad_interrupt>
      1a:	fc c0       	rjmp	.+504    	; 0x214 <__bad_interrupt>
      1c:	fb c0       	rjmp	.+502    	; 0x214 <__bad_interrupt>
      1e:	fa c0       	rjmp	.+500    	; 0x214 <__bad_interrupt>
      20:	f9 c0       	rjmp	.+498    	; 0x214 <__bad_interrupt>
      22:	f8 c0       	rjmp	.+496    	; 0x214 <__bad_interrupt>
      24:	fe c9       	rjmp	.-3076   	; 0xfffff422 <__eeprom_end+0xff7ef422>
      26:	f6 c0       	rjmp	.+492    	; 0x214 <__bad_interrupt>
      28:	f5 c0       	rjmp	.+490    	; 0x214 <__bad_interrupt>
      2a:	f4 c0       	rjmp	.+488    	; 0x214 <__bad_interrupt>
      2c:	f3 c0       	rjmp	.+486    	; 0x214 <__bad_interrupt>
      2e:	f2 c0       	rjmp	.+484    	; 0x214 <__bad_interrupt>
      30:	f1 c0       	rjmp	.+482    	; 0x214 <__bad_interrupt>
      32:	f0 c0       	rjmp	.+480    	; 0x214 <__bad_interrupt>

00000034 <instr_sheet>:
      34:	68 00 00 00 01 eb 04 5b 68 5d 53 68 6f 77 20 48     h......[h]Show H
      44:	65 6c 70 00 00 00 00 00 00 73 74 70 00 03 80 01     elp......stp....
      54:	5b 73 74 70 5d 53 65 74 20 54 79 70 65 00 00 00     [stp]Set Type...
      64:	00 00 72 73 74 00 03 e1 04 5b 72 73 74 5d 52 65     ..rst....[rst]Re
      74:	73 65 74 00 00 00 00 00 00 00 00 65 72 73 00 03     set........ers..
      84:	26 04 5b 65 72 73 5d 45 72 61 73 65 00 00 00 00     &.[ers]Erase....
      94:	00 00 00 00 72 69 64 00 03 19 04 5b 72 69 64 5d     ....rid....[rid]
      a4:	52 65 61 64 20 49 44 00 00 00 00 00 00 72 66 73     Read ID......rfs
      b4:	00 03 0c 04 5b 72 66 73 5d 52 65 61 64 20 46 55     ....[rfs]Read FU
      c4:	53 45 00 00 00 00 72 6c 62 00 03 bb 02 5b 72 6c     SE....rlb....[rl
      d4:	62 5d 52 65 61 64 20 4c 4f 43 4b 42 49 54 00 73     b]Read LOCKBIT.s
      e4:	66 73 00 03 79 01 5b 73 66 73 5d 53 65 74 20 46     fs..y.[sfs]Set F
      f4:	55 53 45 00 00 00 00 00 73 6c 62 00 03 72 01 5b     USE.....slb..r.[
     104:	73 6c 62 5d 53 65 74 20 4c 4f 43 4b 42 49 54 00     slb]Set LOCKBIT.
     114:	00 64 66 6c 00 03 b4 02 5b 64 66 6c 5d 44 6f 77     .dfl....[dfl]Dow
     124:	6e 20 46 4c 41 53 48 00 00 00 64 65 65 00 03 a6     n FLASH...dee...
     134:	02 5b 64 65 65 5d 44 6f 77 6e 20 45 45 50 52 4f     .[dee]Down EEPRO
     144:	4d 00 00 70 66 73 00 03 73 02 5b 70 66 73 5d 50     M..pfs..s.[pfs]P
     154:	72 6f 67 20 46 55 53 45 00 00 00 00 70 6c 62 00     rog FUSE....plb.
     164:	03 5b 02 5b 70 6c 62 5d 50 72 6f 67 20 4c 4f 43     .[.[plb]Prog LOC
     174:	4b 42 49 54 00 70 66 6c 00 03 30 04 5b 70 66 6c     KBIT.pfl..0.[pfl
     184:	5d 50 72 6f 67 20 46 4c 41 53 48 00 00 00 70 65     ]Prog FLASH...pe
     194:	65 00 03 d3 01 5b 70 65 65 5d 50 72 6f 67 20 45     e....[pee]Prog E
     1a4:	45 50 52 4f 4d 00 00 70 61 6c 00 03 bf 04 5b 70     EPROM..pal....[p
     1b4:	61 6c 5d 50 72 6f 67 20 41 6c 6c 00 00 00 00 00     al]Prog All.....
     1c4:	75 70 66 00 03 6e 01 5b 75 70 66 5d 55 70 64 61     upf..n.[upf]Upda
     1d4:	74 65 00 00 00 00 00 00 00 00                       te........

000001de <__ctors_end>:
     1de:	11 24       	eor	r1, r1
     1e0:	1f be       	out	0x3f, r1	; 63
     1e2:	cf ef       	ldi	r28, 0xFF	; 255
     1e4:	d4 e0       	ldi	r29, 0x04	; 4
     1e6:	de bf       	out	0x3e, r29	; 62
     1e8:	cd bf       	out	0x3d, r28	; 61

000001ea <__do_copy_data>:
     1ea:	12 e0       	ldi	r17, 0x02	; 2
     1ec:	a0 e0       	ldi	r26, 0x00	; 0
     1ee:	b1 e0       	ldi	r27, 0x01	; 1
     1f0:	ee e6       	ldi	r30, 0x6E	; 110
     1f2:	f9 e1       	ldi	r31, 0x19	; 25
     1f4:	02 c0       	rjmp	.+4      	; 0x1fa <.do_copy_data_start>

000001f6 <.do_copy_data_loop>:
     1f6:	05 90       	lpm	r0, Z+
     1f8:	0d 92       	st	X+, r0

000001fa <.do_copy_data_start>:
     1fa:	a8 33       	cpi	r26, 0x38	; 56
     1fc:	b1 07       	cpc	r27, r17
     1fe:	d9 f7       	brne	.-10     	; 0x1f6 <.do_copy_data_loop>

00000200 <__do_clear_bss>:
     200:	14 e0       	ldi	r17, 0x04	; 4
     202:	a8 e3       	ldi	r26, 0x38	; 56
     204:	b2 e0       	ldi	r27, 0x02	; 2
     206:	01 c0       	rjmp	.+2      	; 0x20a <.do_clear_bss_start>

00000208 <.do_clear_bss_loop>:
     208:	1d 92       	st	X+, r1

0000020a <.do_clear_bss_start>:
     20a:	af 35       	cpi	r26, 0x5F	; 95
     20c:	b1 07       	cpc	r27, r17
     20e:	e1 f7       	brne	.-8      	; 0x208 <.do_clear_bss_loop>
     210:	0d d8       	rcall	.-4070   	; 0xfffff22c <__eeprom_end+0xff7ef22c>
     212:	ab cb       	rjmp	.-2218   	; 0xfffff96a <__eeprom_end+0xff7ef96a>

00000214 <__bad_interrupt>:
     214:	f5 ce       	rjmp	.-534    	; 0x0 <__vectors>

00000216 <ascii2hex>:

#define Ascii2Hex(data)  (data >= '0' && data <= '9')? (data - '0') : \
	((data >= 'A' && data <= 'F')? (data - 'A' + 10) : \
	((data >= 'a' && data <= 'f')? (data - 'a' + 10) : 0))
unsigned char ascii2hex(unsigned char *pBuf)
{
     216:	fc 01       	movw	r30, r24
	unsigned char temp;
	unsigned char c;
	
	c = *pBuf++;
     218:	90 81       	ld	r25, Z
	temp = ((unsigned char)Ascii2Hex(c)) << 4;
     21a:	89 2f       	mov	r24, r25
     21c:	80 53       	subi	r24, 0x30	; 48
     21e:	8a 30       	cpi	r24, 0x0A	; 10
     220:	10 f4       	brcc	.+4      	; 0x226 <ascii2hex+0x10>
     222:	28 2f       	mov	r18, r24
     224:	0f c0       	rjmp	.+30     	; 0x244 <ascii2hex+0x2e>
     226:	89 2f       	mov	r24, r25
     228:	81 54       	subi	r24, 0x41	; 65
     22a:	86 30       	cpi	r24, 0x06	; 6
     22c:	18 f4       	brcc	.+6      	; 0x234 <ascii2hex+0x1e>
     22e:	29 2f       	mov	r18, r25
     230:	27 53       	subi	r18, 0x37	; 55
     232:	08 c0       	rjmp	.+16     	; 0x244 <ascii2hex+0x2e>
     234:	89 2f       	mov	r24, r25
     236:	81 56       	subi	r24, 0x61	; 97
     238:	86 30       	cpi	r24, 0x06	; 6
     23a:	10 f0       	brcs	.+4      	; 0x240 <ascii2hex+0x2a>
     23c:	20 e0       	ldi	r18, 0x00	; 0
     23e:	04 c0       	rjmp	.+8      	; 0x248 <ascii2hex+0x32>
     240:	29 2f       	mov	r18, r25
     242:	27 55       	subi	r18, 0x57	; 87
     244:	22 95       	swap	r18
     246:	20 7f       	andi	r18, 0xF0	; 240
	c = *pBuf;
     248:	91 81       	ldd	r25, Z+1	; 0x01
	temp += Ascii2Hex(c);
     24a:	89 2f       	mov	r24, r25
     24c:	80 53       	subi	r24, 0x30	; 48
     24e:	8a 30       	cpi	r24, 0x0A	; 10
     250:	68 f0       	brcs	.+26     	; 0x26c <ascii2hex+0x56>
     252:	81 51       	subi	r24, 0x11	; 17
     254:	86 30       	cpi	r24, 0x06	; 6
     256:	10 f4       	brcc	.+4      	; 0x25c <ascii2hex+0x46>
     258:	86 5f       	subi	r24, 0xF6	; 246
     25a:	08 c0       	rjmp	.+16     	; 0x26c <ascii2hex+0x56>
     25c:	89 2f       	mov	r24, r25
     25e:	81 56       	subi	r24, 0x61	; 97
     260:	86 30       	cpi	r24, 0x06	; 6
     262:	10 f0       	brcs	.+4      	; 0x268 <ascii2hex+0x52>
     264:	80 e0       	ldi	r24, 0x00	; 0
     266:	02 c0       	rjmp	.+4      	; 0x26c <ascii2hex+0x56>
     268:	89 2f       	mov	r24, r25
     26a:	87 55       	subi	r24, 0x57	; 87
	
	return temp;
}
     26c:	82 0f       	add	r24, r18
     26e:	08 95       	ret

00000270 <str_compare>:
};


unsigned char str_compare(const unsigned char *c, unsigned char *p,
                          unsigned char size)
{
     270:	dc 01       	movw	r26, r24
     272:	fb 01       	movw	r30, r22
	if (size == 0 || c == NULL || p == NULL)
     274:	44 23       	and	r20, r20
     276:	81 f0       	breq	.+32     	; 0x298 <str_compare+0x28>
     278:	00 97       	sbiw	r24, 0x00	; 0
     27a:	71 f0       	breq	.+28     	; 0x298 <str_compare+0x28>
     27c:	61 15       	cp	r22, r1
     27e:	71 05       	cpc	r23, r1
     280:	59 f0       	breq	.+22     	; 0x298 <str_compare+0x28>
     282:	41 50       	subi	r20, 0x01	; 1
		return 0;
		
	while (size--)
	{
		if (*c != *p)
     284:	9c 91       	ld	r25, X
     286:	80 81       	ld	r24, Z
     288:	98 17       	cp	r25, r24
     28a:	31 f4       	brne	.+12     	; 0x298 <str_compare+0x28>
			return 0;
			
		c++;
     28c:	11 96       	adiw	r26, 0x01	; 1
		
		p++;
     28e:	31 96       	adiw	r30, 0x01	; 1
                          unsigned char size)
{
	if (size == 0 || c == NULL || p == NULL)
		return 0;
		
	while (size--)
     290:	44 23       	and	r20, r20
     292:	b9 f7       	brne	.-18     	; 0x282 <str_compare+0x12>
     294:	81 e0       	ldi	r24, 0x01	; 1
     296:	08 95       	ret
     298:	80 e0       	ldi	r24, 0x00	; 0
		
		p++;
	}
	
	return (!0);
}
     29a:	08 95       	ret

0000029c <pgm_str_compare>:

unsigned char pgm_str_compare(const unsigned char *c, unsigned char *p,
                              unsigned char size)
{
     29c:	cf 93       	push	r28
     29e:	df 93       	push	r29
     2a0:	ec 01       	movw	r28, r24
     2a2:	db 01       	movw	r26, r22
	if (size == 0 || c == NULL || p == NULL)
     2a4:	44 23       	and	r20, r20
     2a6:	b1 f0       	breq	.+44     	; 0x2d4 <pgm_str_compare+0x38>
     2a8:	00 97       	sbiw	r24, 0x00	; 0
     2aa:	a1 f0       	breq	.+40     	; 0x2d4 <pgm_str_compare+0x38>
     2ac:	61 15       	cp	r22, r1
     2ae:	71 05       	cpc	r23, r1
     2b0:	89 f0       	breq	.+34     	; 0x2d4 <pgm_str_compare+0x38>
     2b2:	20 e0       	ldi	r18, 0x00	; 0
     2b4:	30 e0       	ldi	r19, 0x00	; 0
     2b6:	0a c0       	rjmp	.+20     	; 0x2cc <pgm_str_compare+0x30>
		return 0;
		
	while (size--)
	{
		if (pgm_read_byte(c) != *p)
     2b8:	fe 01       	movw	r30, r28
     2ba:	e2 0f       	add	r30, r18
     2bc:	f3 1f       	adc	r31, r19
     2be:	e4 91       	lpm	r30, Z+
     2c0:	2f 5f       	subi	r18, 0xFF	; 255
     2c2:	3f 4f       	sbci	r19, 0xFF	; 255
     2c4:	8c 91       	ld	r24, X
     2c6:	e8 17       	cp	r30, r24
     2c8:	29 f4       	brne	.+10     	; 0x2d4 <pgm_str_compare+0x38>
			return 0;
			
		c++;
		
		p++;
     2ca:	11 96       	adiw	r26, 0x01	; 1
                              unsigned char size)
{
	if (size == 0 || c == NULL || p == NULL)
		return 0;
		
	while (size--)
     2cc:	42 17       	cp	r20, r18
     2ce:	a1 f7       	brne	.-24     	; 0x2b8 <pgm_str_compare+0x1c>
     2d0:	81 e0       	ldi	r24, 0x01	; 1
     2d2:	01 c0       	rjmp	.+2      	; 0x2d6 <pgm_str_compare+0x3a>
     2d4:	80 e0       	ldi	r24, 0x00	; 0
		
		p++;
	}
	
	return (!0);
}
     2d6:	df 91       	pop	r29
     2d8:	cf 91       	pop	r28
     2da:	08 95       	ret

000002dc <exe_updatefirmware>:
	_delay_ms(100);
	exe_proglockbit();
}

void exe_updatefirmware(void)
{
     2dc:	e0 e0       	ldi	r30, 0x00	; 0
     2de:	fe e0       	ldi	r31, 0x0E	; 14
     2e0:	09 95       	icall
	(*((void(*)(void))(0x0e00UL)))();
}
     2e2:	08 95       	ret

000002e4 <exe_setlockbit>:
	sendstr("FUSE VALUE:[LOW HIGH EXT]");
	
}

void exe_setlockbit(void)
{
     2e4:	81 e0       	ldi	r24, 0x01	; 1
     2e6:	80 93 39 02 	sts	0x0239, r24
	//pgm_sendstr(&instr_sheet[10].explain[0]);
	getlockbit_flag=1;
	sendstr("LOCKBIT:");
     2ea:	80 e0       	ldi	r24, 0x00	; 0
     2ec:	91 e0       	ldi	r25, 0x01	; 1
     2ee:	63 d8       	rcall	.-3898   	; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
}
     2f0:	08 95       	ret

000002f2 <exe_setfuse>:
	
	else sendstr(msg_fail);
}

void exe_setfuse(void)
{
     2f2:	81 e0       	ldi	r24, 0x01	; 1
     2f4:	80 93 38 02 	sts	0x0238, r24
	//pgm_sendstr(&instr_sheet[9].explain[0]);
	getfuse_flag=1;
	sendstr("FUSE VALUE:[LOW HIGH EXT]");
     2f8:	89 e0       	ldi	r24, 0x09	; 9
     2fa:	91 e0       	ldi	r25, 0x01	; 1
     2fc:	5c d8       	rcall	.-3912   	; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
	
}
     2fe:	08 95       	ret

00000300 <exe_settype>:
	sendstr("aven.mail@163.com 2008.10.1");
	sendstr(msg_done);
}*/

void exe_settype(void)
{
     300:	81 e0       	ldi	r24, 0x01	; 1
     302:	80 93 3a 02 	sts	0x023A, r24
	//pgm_sendstr(&instr_sheet[2].explain[0]);
	getprogsize_flag=1;
	sendstr("SIZE:[FLASH EEPROM](00=1K...07=128K,0A=512B)");
     306:	83 e2       	ldi	r24, 0x23	; 35
     308:	91 e0       	ldi	r25, 0x01	; 1
     30a:	55 d8       	rcall	.-3926   	; 0xfffff3b6 <__eeprom_end+0xff7ef3b6>
}
     30c:	08 95       	ret

0000030e <com_match>:
	return (!0);
}


⌨️ 快捷键说明

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