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

📄 main.lss

📁 诺基亚3310手机液晶屏驱动程序
💻 LSS
📖 第 1 页 / 共 2 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000562  00000000  00000000  00000074  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         000003c4  00800060  00000562  000005d6  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .stab         00001194  00000000  00000000  0000099c  2**2
                  CONTENTS, READONLY, DEBUGGING
  3 .stabstr      00000bb1  00000000  00000000  00001b30  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a	; 0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a	; 0x8a <__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:	14 e0       	ldi	r17, 0x04	; 4
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	e2 e6       	ldi	r30, 0x62	; 98
  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:	a4 32       	cpi	r26, 0x24	; 36
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	14 e0       	ldi	r17, 0x04	; 4
  78:	a4 e2       	ldi	r26, 0x24	; 36
  7a:	b4 e0       	ldi	r27, 0x04	; 4
  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:	a4 32       	cpi	r26, 0x24	; 36
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 6d 02 	jmp	0x4da	; 0x4da <main>

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

0000008e <DelayMs>:
#define FEQ 8    //系统时钟8MHz


void DelayMs(unsigned int t)
{
  8e:	ac 01       	movw	r20, r24
  90:	20 e0       	ldi	r18, 0x00	; 0
  92:	30 e0       	ldi	r19, 0x00	; 0
  94:	e0 ed       	ldi	r30, 0xD0	; 208
  96:	f7 e0       	ldi	r31, 0x07	; 7
  98:	05 c0       	rjmp	.+10     	; 0xa4 <DelayMs+0x16>
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  9a:	cf 01       	movw	r24, r30
  9c:	01 97       	sbiw	r24, 0x01	; 1
  9e:	f1 f7       	brne	.-4      	; 0x9c <DelayMs+0xe>

void DelayMs(unsigned int t)
{
	unsigned int i;
	for(i=0;i<t;i++)
  a0:	2f 5f       	subi	r18, 0xFF	; 255
  a2:	3f 4f       	sbci	r19, 0xFF	; 255
  a4:	24 17       	cp	r18, r20
  a6:	35 07       	cpc	r19, r21
  a8:	c1 f7       	brne	.-16     	; 0x9a <DelayMs+0xc>
  aa:	08 95       	ret

000000ac <delay_1us>:
		_delay_loop_2(FEQ * 250 );
}



   /*-----------------------------------------------------------------------
软延时延时函数
系统时钟:8M
-----------------------------------------------------------------------*/
void delay_1us(void)                 //1us延时函数
  {
   asm("nop");
  ac:	00 00       	nop
  ae:	08 95       	ret

000000b0 <delay_nus>:
  // _delay_loop_2(250);//4
  
  }

void delay_nus(unsigned int n)       //N us延时函数
  {
  b0:	20 e0       	ldi	r18, 0x00	; 0
  b2:	30 e0       	ldi	r19, 0x00	; 0
  b4:	03 c0       	rjmp	.+6      	; 0xbc <delay_nus+0xc>
  b6:	00 00       	nop
   unsigned int i=0;
   for (i=0;i<n;i++)
  b8:	2f 5f       	subi	r18, 0xFF	; 255
  ba:	3f 4f       	sbci	r19, 0xFF	; 255
  bc:	28 17       	cp	r18, r24
  be:	39 07       	cpc	r19, r25
  c0:	d1 f7       	brne	.-12     	; 0xb6 <delay_nus+0x6>
  c2:	08 95       	ret

000000c4 <delay_1ms>:
   delay_1us();
  }
  
void delay_1ms(void)                 //1ms延时函数
  {
  c4:	08 95       	ret

000000c6 <delay_nms>:
   unsigned int i;
   for (i=0;i<1140;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延时函数
{
  c6:	08 95       	ret

000000c8 <delay_s>:
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
}
void delay_s(unsigned int n)
{
  c8:	0f 93       	push	r16
  ca:	1f 93       	push	r17
  cc:	cf 93       	push	r28
  ce:	df 93       	push	r29
  d0:	8c 01       	movw	r16, r24
  d2:	c0 e0       	ldi	r28, 0x00	; 0
  d4:	d0 e0       	ldi	r29, 0x00	; 0
  d6:	05 c0       	rjmp	.+10     	; 0xe2 <delay_s+0x1a>
   unsigned int i=0;
   for(i=0;i<n;i++)
       delay_nms(1000);
  d8:	88 ee       	ldi	r24, 0xE8	; 232
  da:	93 e0       	ldi	r25, 0x03	; 3
  dc:	0e 94 63 00 	call	0xc6	; 0xc6 <delay_nms>
  e0:	21 96       	adiw	r28, 0x01	; 1
  e2:	c0 17       	cp	r28, r16
  e4:	d1 07       	cpc	r29, r17
  e6:	c1 f7       	brne	.-16     	; 0xd8 <delay_s+0x10>
  e8:	df 91       	pop	r29
  ea:	cf 91       	pop	r28
  ec:	1f 91       	pop	r17
  ee:	0f 91       	pop	r16
  f0:	08 95       	ret

000000f2 <delay>:
}  
void delay(unsigned int n)       //N ms延时函数
{
  delay_nms(n);
  f2:	0e 94 63 00 	call	0xc6	; 0xc6 <delay_nms>
  f6:	08 95       	ret

000000f8 <LCD_write_byte>:
最后修改日期      :2004-8-13 
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
  {
    PORTB &= ~LCD_CE ;		        // 使能LCD
  f8:	c4 98       	cbi	0x18, 4	; 24
    
    if (command == 0)
  fa:	66 23       	and	r22, r22
  fc:	11 f4       	brne	.+4      	; 0x102 <LCD_write_byte+0xa>
      PORTB &= ~LCD_DC ;	        // 传送命令
  fe:	c6 98       	cbi	0x18, 6	; 24
 100:	01 c0       	rjmp	.+2      	; 0x104 <LCD_write_byte+0xc>
    else
      PORTB |= LCD_DC ;		        // 传送数据
 102:	c6 9a       	sbi	0x18, 6	; 24

    SPDR = data;			// 传送数据到SPI寄存器
 104:	8f b9       	out	0x0f, r24	; 15

    while ((SPSR & 0x80) == 0);         // 等待数据传送完毕
 106:	77 9b       	sbis	0x0e, 7	; 14
 108:	fe cf       	rjmp	.-4      	; 0x106 <LCD_write_byte+0xe>
	
    PORTB |= LCD_CE ;			// 关闭LCD
 10a:	c4 9a       	sbi	0x18, 4	; 24
 10c:	08 95       	ret

0000010e <LCD_write_char>:
 10e:	1f 93       	push	r17
 110:	cf 93       	push	r28
 112:	df 93       	push	r29
 114:	80 52       	subi	r24, 0x20	; 32
 116:	96 e0       	ldi	r25, 0x06	; 6
 118:	89 9f       	mul	r24, r25
 11a:	e0 01       	movw	r28, r0
 11c:	11 24       	eor	r1, r1
 11e:	cd 59       	subi	r28, 0x9D	; 157
 120:	df 4f       	sbci	r29, 0xFF	; 255
 122:	10 e0       	ldi	r17, 0x00	; 0
 124:	61 e0       	ldi	r22, 0x01	; 1
 126:	89 91       	ld	r24, Y+
 128:	0e 94 7c 00 	call	0xf8	; 0xf8 <LCD_write_byte>
 12c:	1f 5f       	subi	r17, 0xFF	; 255
 12e:	16 30       	cpi	r17, 0x06	; 6
 130:	c9 f7       	brne	.-14     	; 0x124 <LCD_write_char+0x16>
 132:	df 91       	pop	r29
 134:	cf 91       	pop	r28
 136:	1f 91       	pop	r17
 138:	08 95       	ret

0000013a <LCD_set_XY>:
 13a:	1f 93       	push	r17
 13c:	18 2f       	mov	r17, r24
 13e:	86 2f       	mov	r24, r22
 140:	60 e0       	ldi	r22, 0x00	; 0
 142:	80 64       	ori	r24, 0x40	; 64
 144:	0e 94 7c 00 	call	0xf8	; 0xf8 <LCD_write_byte>
 148:	60 e0       	ldi	r22, 0x00	; 0
 14a:	81 2f       	mov	r24, r17
 14c:	80 68       	ori	r24, 0x80	; 128
 14e:	0e 94 7c 00 	call	0xf8	; 0xf8 <LCD_write_byte>
 152:	1f 91       	pop	r17
 154:	08 95       	ret

00000156 <LCD_draw_bmp_pixel>:
 156:	8f 92       	push	r8
 158:	9f 92       	push	r9
 15a:	af 92       	push	r10
 15c:	bf 92       	push	r11
 15e:	cf 92       	push	r12
 160:	df 92       	push	r13
 162:	ef 92       	push	r14
 164:	ff 92       	push	r15
 166:	0f 93       	push	r16
 168:	1f 93       	push	r17
 16a:	cf 93       	push	r28
 16c:	df 93       	push	r29
 16e:	88 2e       	mov	r8, r24
 170:	b6 2e       	mov	r11, r22
 172:	80 2f       	mov	r24, r16
 174:	99 27       	eor	r25, r25
 176:	87 70       	andi	r24, 0x07	; 7
 178:	90 70       	andi	r25, 0x00	; 0
 17a:	06 95       	lsr	r16
 17c:	06 95       	lsr	r16
 17e:	06 95       	lsr	r16
 180:	89 2b       	or	r24, r25
 182:	11 f4       	brne	.+4      	; 0x188 <LCD_draw_bmp_pixel+0x32>
 184:	90 2e       	mov	r9, r16
 186:	02 c0       	rjmp	.+4      	; 0x18c <LCD_draw_bmp_pixel+0x36>
 188:	90 2e       	mov	r9, r16
 18a:	93 94       	inc	r9
 18c:	c2 2e       	mov	r12, r18
 18e:	dd 24       	eor	r13, r13
 190:	8a 01       	movw	r16, r20
 192:	aa 24       	eor	r10, r10
 194:	16 c0       	rjmp	.+44     	; 0x1c2 <LCD_draw_bmp_pixel+0x6c>
 196:	6b 2d       	mov	r22, r11
 198:	88 2d       	mov	r24, r8
 19a:	0e 94 9d 00 	call	0x13a	; 0x13a <LCD_set_XY>
 19e:	78 01       	movw	r14, r16
 1a0:	c0 e0       	ldi	r28, 0x00	; 0
 1a2:	d0 e0       	ldi	r29, 0x00	; 0
 1a4:	07 c0       	rjmp	.+14     	; 0x1b4 <LCD_draw_bmp_pixel+0x5e>
 1a6:	61 e0       	ldi	r22, 0x01	; 1
 1a8:	f7 01       	movw	r30, r14
 1aa:	81 91       	ld	r24, Z+
 1ac:	7f 01       	movw	r14, r30
 1ae:	0e 94 7c 00 	call	0xf8	; 0xf8 <LCD_write_byte>
 1b2:	21 96       	adiw	r28, 0x01	; 1
 1b4:	cc 15       	cp	r28, r12
 1b6:	dd 05       	cpc	r29, r13
 1b8:	b1 f7       	brne	.-20     	; 0x1a6 <LCD_draw_bmp_pixel+0x50>
 1ba:	b3 94       	inc	r11
 1bc:	a3 94       	inc	r10
 1be:	0c 0d       	add	r16, r12
 1c0:	1d 1d       	adc	r17, r13
 1c2:	a9 14       	cp	r10, r9
 1c4:	41 f7       	brne	.-48     	; 0x196 <LCD_draw_bmp_pixel+0x40>
 1c6:	df 91       	pop	r29
 1c8:	cf 91       	pop	r28
 1ca:	1f 91       	pop	r17
 1cc:	0f 91       	pop	r16
 1ce:	ff 90       	pop	r15
 1d0:	ef 90       	pop	r14
 1d2:	df 90       	pop	r13
 1d4:	cf 90       	pop	r12
 1d6:	bf 90       	pop	r11
 1d8:	af 90       	pop	r10
 1da:	9f 90       	pop	r9
 1dc:	8f 90       	pop	r8
 1de:	08 95       	ret

000001e0 <LCD_move_chinese_string>:
 1e0:	9f 92       	push	r9
 1e2:	af 92       	push	r10
 1e4:	bf 92       	push	r11
 1e6:	cf 92       	push	r12
 1e8:	df 92       	push	r13
 1ea:	ef 92       	push	r14
 1ec:	ff 92       	push	r15
 1ee:	0f 93       	push	r16
 1f0:	1f 93       	push	r17
 1f2:	cf 93       	push	r28
 1f4:	df 93       	push	r29
 1f6:	cd b7       	in	r28, 0x3d	; 61
 1f8:	de b7       	in	r29, 0x3e	; 62
 1fa:	c8 5a       	subi	r28, 0xA8	; 168
 1fc:	d0 40       	sbci	r29, 0x00	; 0
 1fe:	0f b6       	in	r0, 0x3f	; 63
 200:	f8 94       	cli
 202:	de bf       	out	0x3e, r29	; 62
 204:	0f be       	out	0x3f, r0	; 63
 206:	cd bf       	out	0x3d, r28	; 61
 208:	98 2e       	mov	r9, r24
 20a:	c6 2e       	mov	r12, r22
 20c:	5a 01       	movw	r10, r20
 20e:	84 e5       	ldi	r24, 0x54	; 84
 210:	fe 01       	movw	r30, r28
 212:	eb 5a       	subi	r30, 0xAB	; 171
 214:	ff 4f       	sbci	r31, 0xFF	; 255
 216:	28 2f       	mov	r18, r24
 218:	11 92       	st	Z+, r1
 21a:	2a 95       	dec	r18
 21c:	e9 f7       	brne	.-6      	; 0x218 <LCD_move_chinese_string+0x38>
 21e:	fe 01       	movw	r30, r28
 220:	31 96       	adiw	r30, 0x01	; 1
 222:	11 92       	st	Z+, r1
 224:	8a 95       	dec	r24
 226:	e9 f7       	brne	.-6      	; 0x222 <LCD_move_chinese_string+0x42>
 228:	dd 24       	eor	r13, r13
 22a:	ee 24       	eor	r14, r14
 22c:	ff 24       	eor	r15, r15
 22e:	8e 2d       	mov	r24, r14
 230:	6c e0       	ldi	r22, 0x0C	; 12
 232:	0e 94 a5 02 	call	0x54a	; 0x54a <__udivmodqi4>
 236:	99 27       	eor	r25, r25
 238:	28 e1       	ldi	r18, 0x18	; 24
 23a:	30 e0       	ldi	r19, 0x00	; 0
 23c:	82 9f       	mul	r24, r18
 23e:	f0 01       	movw	r30, r0
 240:	83 9f       	mul	r24, r19
 242:	f0 0d       	add	r31, r0
 244:	92 9f       	mul	r25, r18
 246:	f0 0d       	add	r31, r0
 248:	11 24       	eor	r1, r1
 24a:	e5 51       	subi	r30, 0x15	; 21
 24c:	fd 4f       	sbci	r31, 0xFD	; 253
 24e:	ed 0d       	add	r30, r13
 250:	f1 1d       	adc	r31, r1
 252:	80 81       	ld	r24, Z
 254:	94 85       	ldd	r25, Z+12	; 0x0c
 256:	d3 94       	inc	r13
 258:	d6 16       	cp	r13, r22
 25a:	09 f4       	brne	.+2      	; 0x25e <LCD_move_chinese_string+0x7e>
 25c:	dd 24       	eor	r13, r13
 25e:	fe 01       	movw	r30, r28
 260:	e8 55       	subi	r30, 0x58	; 88
 262:	ff 4f       	sbci	r31, 0xFF	; 255
 264:	80 83       	st	Z, r24
 266:	fe 01       	movw	r30, r28
 268:	ec 5a       	subi	r30, 0xAC	; 172
 26a:	ff 4f       	sbci	r31, 0xFF	; 255
 26c:	90 83       	st	Z, r25
 26e:	80 e0       	ldi	r24, 0x00	; 0
 270:	90 e0       	ldi	r25, 0x00	; 0
 272:	8e 01       	movw	r16, r28
 274:	0b 5a       	subi	r16, 0xAB	; 171
 276:	1f 4f       	sbci	r17, 0xFF	; 255
 278:	de 01       	movw	r26, r28
 27a:	11 96       	adiw	r26, 0x01	; 1
 27c:	a8 01       	movw	r20, r16
 27e:	01 96       	adiw	r24, 0x01	; 1
 280:	fa 01       	movw	r30, r20
 282:	21 81       	ldd	r18, Z+1	; 0x01
 284:	21 93       	st	Z+, r18
 286:	af 01       	movw	r20, r30
 288:	fd 01       	movw	r30, r26
 28a:	21 81       	ldd	r18, Z+1	; 0x01
 28c:	2d 93       	st	X+, r18
 28e:	83 35       	cpi	r24, 0x53	; 83
 290:	91 05       	cpc	r25, r1
 292:	a9 f7       	brne	.-22     	; 0x27e <LCD_move_chinese_string+0x9e>
 294:	6c 2d       	mov	r22, r12
 296:	89 2d       	mov	r24, r9
 298:	0e 94 9d 00 	call	0x13a	; 0x13a <LCD_set_XY>
 29c:	61 e0       	ldi	r22, 0x01	; 1
 29e:	f8 01       	movw	r30, r16
 2a0:	81 91       	ld	r24, Z+
 2a2:	8f 01       	movw	r16, r30
 2a4:	0e 94 7c 00 	call	0xf8	; 0xf8 <LCD_write_byte>
 2a8:	ce 01       	movw	r24, r28
 2aa:	88 55       	subi	r24, 0x58	; 88
 2ac:	9f 4f       	sbci	r25, 0xFF	; 255
 2ae:	08 17       	cp	r16, r24
 2b0:	19 07       	cpc	r17, r25
 2b2:	a1 f7       	brne	.-24     	; 0x29c <LCD_move_chinese_string+0xbc>
 2b4:	6c 2d       	mov	r22, r12
 2b6:	6f 5f       	subi	r22, 0xFF	; 255
 2b8:	89 2d       	mov	r24, r9

⌨️ 快捷键说明

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