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

📄 sdfs_out.lst

📁 基于SD卡的FAT文件系统
💻 LST
📖 第 1 页 / 共 5 页
字号:

sdfs_out.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000016b6  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000c  00800060  000016b6  0000174a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          000002d4  0080006c  0080006c  00001756  2**0
                  ALLOC
  3 .stab         00000378  00000000  00000000  00001758  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000071  00000000  00000000  00001ad0  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000060  00000000  00000000  00001b41  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 0000014d  00000000  00000000  00001ba1  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   000014d3  00000000  00000000  00001cee  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 00000600  00000000  00000000  000031c1  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   000010af  00000000  00000000  000037c1  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  000001d0  00000000  00000000  00004870  2**2
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    00000533  00000000  00000000  00004a40  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    00001053  00000000  00000000  00004f73  2**0
                  CONTENTS, READONLY, DEBUGGING
 13 .debug_ranges 000000f8  00000000  00000000  00005fc6  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	0c 94 39 00 	jmp	0x72	; 0x72 <__ctors_end>
       4:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
       8:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
       c:	0c 94 70 00 	jmp	0xe0	; 0xe0 <__vector_3>
      10:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      14:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      18:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      1c:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      20:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      24:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      28:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      2c:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      30:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      34:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      38:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      3c:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      40:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      44:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      48:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      4c:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      50:	0c 94 56 00 	jmp	0xac	; 0xac <__bad_interrupt>
      54:	69 09       	sbc	r22, r9
      56:	70 09       	sbc	r23, r0
      58:	d5 09       	sbc	r29, r5
      5a:	db 09       	sbc	r29, r11
      5c:	66 09       	sbc	r22, r6
      5e:	66 09       	sbc	r22, r6
      60:	66 09       	sbc	r22, r6
      62:	66 09       	sbc	r22, r6
      64:	66 09       	sbc	r22, r6
      66:	66 09       	sbc	r22, r6
      68:	6f 0a       	sbc	r6, r31
      6a:	74 0a       	sbc	r7, r20
      6c:	7a 0a       	sbc	r7, r26
      6e:	86 0a       	sbc	r8, r22
      70:	9d 0a       	sbc	r9, r29

00000072 <__ctors_end>:
      72:	11 24       	eor	r1, r1
      74:	1f be       	out	0x3f, r1	; 63
      76:	cf e5       	ldi	r28, 0x5F	; 95
      78:	d4 e0       	ldi	r29, 0x04	; 4
      7a:	de bf       	out	0x3e, r29	; 62
      7c:	cd bf       	out	0x3d, r28	; 61

0000007e <__do_copy_data>:
      7e:	10 e0       	ldi	r17, 0x00	; 0
      80:	a0 e6       	ldi	r26, 0x60	; 96
      82:	b0 e0       	ldi	r27, 0x00	; 0
      84:	e6 eb       	ldi	r30, 0xB6	; 182
      86:	f6 e1       	ldi	r31, 0x16	; 22
      88:	02 c0       	rjmp	.+4      	; 0x8e <.do_copy_data_start>

0000008a <.do_copy_data_loop>:
      8a:	05 90       	lpm	r0, Z+
      8c:	0d 92       	st	X+, r0

0000008e <.do_copy_data_start>:
      8e:	ac 36       	cpi	r26, 0x6C	; 108
      90:	b1 07       	cpc	r27, r17
      92:	d9 f7       	brne	.-10     	; 0x8a <.do_copy_data_loop>

00000094 <__do_clear_bss>:
      94:	13 e0       	ldi	r17, 0x03	; 3
      96:	ac e6       	ldi	r26, 0x6C	; 108
      98:	b0 e0       	ldi	r27, 0x00	; 0
      9a:	01 c0       	rjmp	.+2      	; 0x9e <.do_clear_bss_start>

0000009c <.do_clear_bss_loop>:
      9c:	1d 92       	st	X+, r1

0000009e <.do_clear_bss_start>:
      9e:	a0 34       	cpi	r26, 0x40	; 64
      a0:	b1 07       	cpc	r27, r17
      a2:	e1 f7       	brne	.-8      	; 0x9c <.do_clear_bss_loop>
      a4:	0e 94 9d 00 	call	0x13a	; 0x13a <main>
      a8:	0c 94 5a 0b 	jmp	0x16b4	; 0x16b4 <_exit>

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

000000b0 <get_fattime>:
/* This is a real time clock service to be called from     */
/* FatFs module. Any valid time must be returned even if   */
/* the system does not support a real time clock.          */
DWORD get_fattime ()
{
      b0:	60 ec       	ldi	r22, 0xC0	; 192
      b2:	73 eb       	ldi	r23, 0xB3	; 179
      b4:	89 e4       	ldi	r24, 0x49	; 73
      b6:	94 e3       	ldi	r25, 0x34	; 52
      b8:	08 95       	ret

000000ba <init_fileNamebuf>:
	return	((2006UL-1980) << 25)	// Year = 2006
			| (2UL << 21)			// Month = Feb
			| (9UL << 16)			// Day = 9
			| (22U << 11)			// Hour = 22
			| (30U << 5)			// Min = 30
			| (0U >> 1)				// Sec = 0
			;

}



static
void IoInit ()
{


	OCR2 = 90-1;		// Timer2: 100Hz interval (OC2)
	TCCR2 = 0b00001101;

	TIMSK = 0b10000000;	// Enable TC2.oc, TC0.oc interrupt

	sei();

}



/*-----------------------------------------------------------------------*/
/* Main                                                                  */

BYTE linebuf[15];
BYTE filebuf[128];
BYTE fileNamebuf[6];

void init_fileNamebuf(void)
{
      ba:	80 e3       	ldi	r24, 0x30	; 48
      bc:	80 93 75 00 	sts	0x0075, r24
 fileNamebuf[0]='0';
 fileNamebuf[1]='.';
      c0:	8e e2       	ldi	r24, 0x2E	; 46
      c2:	80 93 76 00 	sts	0x0076, r24
 fileNamebuf[2]='B';
      c6:	82 e4       	ldi	r24, 0x42	; 66
      c8:	80 93 77 00 	sts	0x0077, r24
 fileNamebuf[3]='I';
      cc:	89 e4       	ldi	r24, 0x49	; 73
      ce:	80 93 78 00 	sts	0x0078, r24
 fileNamebuf[4]='N';
      d2:	8e e4       	ldi	r24, 0x4E	; 78
      d4:	80 93 79 00 	sts	0x0079, r24
 fileNamebuf[5]='\0';
      d8:	10 92 7a 00 	sts	0x007A, r1
      dc:	08 95       	ret

000000de <sentdata>:
}

void sentdata(BYTE  indata)
{
      de:	08 95       	ret

000000e0 <__vector_3>:
      e0:	1f 92       	push	r1
      e2:	0f 92       	push	r0
      e4:	0f b6       	in	r0, 0x3f	; 63
      e6:	0f 92       	push	r0
      e8:	11 24       	eor	r1, r1
      ea:	2f 93       	push	r18
      ec:	3f 93       	push	r19
      ee:	4f 93       	push	r20
      f0:	5f 93       	push	r21
      f2:	6f 93       	push	r22
      f4:	7f 93       	push	r23
      f6:	8f 93       	push	r24
      f8:	9f 93       	push	r25
      fa:	af 93       	push	r26
      fc:	bf 93       	push	r27
      fe:	ef 93       	push	r30
     100:	ff 93       	push	r31
     102:	80 91 6c 00 	lds	r24, 0x006C
     106:	88 23       	and	r24, r24
     108:	29 f0       	breq	.+10     	; 0x114 <__vector_3+0x34>
     10a:	80 91 6c 00 	lds	r24, 0x006C
     10e:	81 50       	subi	r24, 0x01	; 1
     110:	80 93 6c 00 	sts	0x006C, r24
     114:	0e 94 5a 08 	call	0x10b4	; 0x10b4 <disk_timerproc>
     118:	ff 91       	pop	r31
     11a:	ef 91       	pop	r30
     11c:	bf 91       	pop	r27
     11e:	af 91       	pop	r26
     120:	9f 91       	pop	r25
     122:	8f 91       	pop	r24
     124:	7f 91       	pop	r23
     126:	6f 91       	pop	r22
     128:	5f 91       	pop	r21
     12a:	4f 91       	pop	r20
     12c:	3f 91       	pop	r19
     12e:	2f 91       	pop	r18
     130:	0f 90       	pop	r0
     132:	0f be       	out	0x3f, r0	; 63
     134:	0f 90       	pop	r0
     136:	1f 90       	pop	r1
     138:	18 95       	reti

0000013a <main>:
	//add sent out function with the reading data on file.
	//.........
	//.........
	//.........
	//.........
}

int main ()
{
     13a:	ac e1       	ldi	r26, 0x1C	; 28
     13c:	b0 e0       	ldi	r27, 0x00	; 0
     13e:	e3 ea       	ldi	r30, 0xA3	; 163
     140:	f0 e0       	ldi	r31, 0x00	; 0
     142:	0c 94 2c 0b 	jmp	0x1658	; 0x1658 <__prologue_saves__+0x1e>
     146:	89 e5       	ldi	r24, 0x59	; 89
     148:	83 bd       	out	0x23, r24	; 35
     14a:	8d e0       	ldi	r24, 0x0D	; 13
     14c:	85 bd       	out	0x25, r24	; 37
     14e:	80 e8       	ldi	r24, 0x80	; 128
     150:	89 bf       	out	0x39, r24	; 57
     152:	78 94       	sei
    BYTE i,j;
	UINT  s2; 
	FATFS *fs;
	DIR dir;			
	FIL file1;

	IoInit();
    init_fileNamebuf();
     154:	0e 94 5d 00 	call	0xba	; 0xba <init_fileNamebuf>


	disk_initialize(0);
     158:	80 e0       	ldi	r24, 0x00	; 0
     15a:	90 e0       	ldi	r25, 0x00	; 0
     15c:	0e 94 74 08 	call	0x10e8	; 0x10e8 <disk_initialize>
	f_mount(0, &fatfs);	
     160:	60 ea       	ldi	r22, 0xA0	; 160
     162:	70 e0       	ldi	r23, 0x00	; 0
     164:	80 e0       	ldi	r24, 0x00	; 0
     166:	0e 94 55 03 	call	0x6aa	; 0x6aa <f_mount>
     16a:	10 e0       	ldi	r17, 0x00	; 0

 

			for(i=0;;i++,i%=4)
			{
				
				fileNamebuf[0]='1'+i;
     16c:	1f 5c       	subi	r17, 0xCF	; 207
     16e:	10 93 75 00 	sts	0x0075, r17
     172:	11 53       	subi	r17, 0x31	; 49

				f_open(&file1, fileNamebuf, FA_OPEN_EXISTING | FA_READ);
     174:	41 e0       	ldi	r20, 0x01	; 1
     176:	65 e7       	ldi	r22, 0x75	; 117
     178:	70 e0       	ldi	r23, 0x00	; 0
     17a:	ce 01       	movw	r24, r28
     17c:	03 96       	adiw	r24, 0x03	; 3
     17e:	0e 94 c5 03 	call	0x78a	; 0x78a <f_open>
				do
				{
				f_read(&file1, filebuf, 128, &s2);
     182:	9e 01       	movw	r18, r28
     184:	2f 5f       	subi	r18, 0xFF	; 255
     186:	3f 4f       	sbci	r19, 0xFF	; 255
     188:	40 e8       	ldi	r20, 0x80	; 128
     18a:	50 e0       	ldi	r21, 0x00	; 0
     18c:	60 ec       	ldi	r22, 0xC0	; 192
     18e:	72 e0       	ldi	r23, 0x02	; 2
     190:	ce 01       	movw	r24, r28
     192:	03 96       	adiw	r24, 0x03	; 3
     194:	0e 94 46 02 	call	0x48c	; 0x48c <f_read>

		                for(j=0;j<s2;j++)
     198:	49 81       	ldd	r20, Y+1	; 0x01
     19a:	5a 81       	ldd	r21, Y+2	; 0x02
     19c:	20 e0       	ldi	r18, 0x00	; 0
     19e:	30 e0       	ldi	r19, 0x00	; 0
     1a0:	82 2f       	mov	r24, r18
     1a2:	99 27       	eor	r25, r25
     1a4:	2f 5f       	subi	r18, 0xFF	; 255
     1a6:	3f 4f       	sbci	r19, 0xFF	; 255
     1a8:	84 17       	cp	r24, r20
     1aa:	95 07       	cpc	r25, r21
     1ac:	c8 f3       	brcs	.-14     	; 0x1a0 <main+0x66>
						  {
							sentdata(filebuf[j]);
						  }
			
				}while(s2);
     1ae:	45 2b       	or	r20, r21
     1b0:	41 f7       	brne	.-48     	; 0x182 <main+0x48>
                
				timeDelay=250;
     1b2:	8a ef       	ldi	r24, 0xFA	; 250
     1b4:	80 93 6c 00 	sts	0x006C, r24
				while(timeDelay);
     1b8:	80 91 6c 00 	lds	r24, 0x006C
     1bc:	88 23       	and	r24, r24
     1be:	e1 f7       	brne	.-8      	; 0x1b8 <main+0x7e>
				timeDelay=250;
     1c0:	8a ef       	ldi	r24, 0xFA	; 250
     1c2:	80 93 6c 00 	sts	0x006C, r24
				while(timeDelay);
     1c6:	80 91 6c 00 	lds	r24, 0x006C
     1ca:	88 23       	and	r24, r24
     1cc:	e1 f7       	brne	.-8      	; 0x1c6 <main+0x8c>

				f_close(&file1);
     1ce:	ce 01       	movw	r24, r28
     1d0:	03 96       	adiw	r24, 0x03	; 3
     1d2:	0e 94 45 01 	call	0x28a	; 0x28a <f_close>

				timeDelay=250;
     1d6:	8a ef       	ldi	r24, 0xFA	; 250
     1d8:	80 93 6c 00 	sts	0x006C, r24
				while(timeDelay);
     1dc:	80 91 6c 00 	lds	r24, 0x006C
     1e0:	88 23       	and	r24, r24
     1e2:	e1 f7       	brne	.-8      	; 0x1dc <main+0xa2>
     1e4:	1f 5f       	subi	r17, 0xFF	; 255
     1e6:	13 70       	andi	r17, 0x03	; 3
     1e8:	c1 cf       	rjmp	.-126    	; 0x16c <main+0x32>

⌨️ 快捷键说明

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