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

📄 test.lst

📁 使用闪存的文件系统,FAT16的. 应用环境是AVR的ATMega128芯片. 应用环境单一,也是转载,参考可以,直接使用 肯定有问题.
💻 LST
字号:
   1               		.file	"test.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  73               	.global	usart_putchar
  75               	usart_putchar:
   1:test.c        **** #include <avr\io.h>
   2:test.c        **** #include <stdlib.h>
   3:test.c        **** #include <stdio.h>
   4:test.c        **** #include "D:\CAD\ProgDesigned\FAT01\CF_FAT.h"
   5:test.c        **** 
   6:test.c        **** int usart_putchar(char c)
   7:test.c        **** {
  77               	.LM1:
  78               	/* prologue: frame size=0 */
  79 0000 CF93      		push r28
  80               	/* prologue end (size=1) */
  81 0002 C82F      		mov r28,r24
   8:test.c        **** 	if(c == '\n')
  83               	.LM2:
  84 0004 8A30      		cpi r24,lo8(10)
  85 0006 19F4      		brne .L4
   9:test.c        **** 	usart_putchar('\r');
  87               	.LM3:
  88 0008 8DE0      		ldi r24,lo8(13)
  89 000a 0E94 0000 		call usart_putchar
  90               	.L4:
  10:test.c        **** 	loop_until_bit_is_set(UCSRA, UDRE);
  92               	.LM4:
  93 000e 5D9B      		sbis 43-0x20,5
  94 0010 FECF      		rjmp .L4
  11:test.c        **** 	UDR = c;
  96               	.LM5:
  97 0012 CCB9      		out 44-0x20,r28
  12:test.c        **** 	return 0;
  13:test.c        **** }
  99               	.LM6:
 100 0014 80E0      		ldi r24,lo8(0)
 101 0016 90E0      		ldi r25,hi8(0)
 102               	/* epilogue: frame size=0 */
 103 0018 CF91      		pop r28
 104 001a 0895      		ret
 105               	/* epilogue end (size=2) */
 106               	/* function usart_putchar size 14 (11) */
 109               	.global	usart_getchar
 111               	usart_getchar:
  14:test.c        **** 
  15:test.c        **** int usart_getchar(void)
  16:test.c        **** {
 113               	.LM7:
 114               	/* prologue: frame size=0 */
 115               	/* prologue end (size=0) */
 116               	.L8:
  17:test.c        **** 	loop_until_bit_is_set(UCSRA, RXC);
 118               	.LM8:
 119 001c 5F9B      		sbis 43-0x20,7
 120 001e FECF      		rjmp .L8
  18:test.c        **** 	return UDR;
 122               	.LM9:
 123 0020 8CB1      		in r24,44-0x20
  19:test.c        **** }
 125               	.LM10:
 126 0022 9927      		clr r25
 127               	/* epilogue: frame size=0 */
 128 0024 0895      		ret
 129               	/* epilogue end (size=1) */
 130               	/* function usart_getchar size 5 (4) */
 133               	.global	InitIO
 135               	InitIO:
  20:test.c        **** 
  21:test.c        **** void InitIO(void)
  22:test.c        **** {
 137               	.LM11:
 138               	/* prologue: frame size=0 */
 139               	/* prologue end (size=0) */
  23:test.c        **** 	UCSRA = 1 << UDRE;
 141               	.LM12:
 142 0026 80E2      		ldi r24,lo8(32)
 143 0028 8BB9      		out 43-0x20,r24
  24:test.c        **** 	UCSRB = (1 << RXEN) | (1 << TXEN) | (1 << RXCIE);
 145               	.LM13:
 146 002a 88E9      		ldi r24,lo8(-104)
 147 002c 8AB9      		out 42-0x20,r24
  25:test.c        **** 	UBRRL = 103;	//9600bps at 16MHz
 149               	.LM14:
 150 002e 87E6      		ldi r24,lo8(103)
 151 0030 89B9      		out 41-0x20,r24
  26:test.c        **** 	UBRRH = 0;
 153               	.LM15:
 154 0032 10BC      		out 64-0x20,__zero_reg__
  27:test.c        **** 	UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
 156               	.LM16:
 157 0034 86E8      		ldi r24,lo8(-122)
 158 0036 80BD      		out 64-0x20,r24
  28:test.c        **** 	fdevopen(usart_putchar, usart_getchar, 0);
 160               	.LM17:
 161 0038 40E0      		ldi r20,lo8(0)
 162 003a 50E0      		ldi r21,hi8(0)
 163 003c 60E0      		ldi r22,lo8(pm(usart_getchar))
 164 003e 70E0      		ldi r23,hi8(pm(usart_getchar))
 165 0040 80E0      		ldi r24,lo8(pm(usart_putchar))
 166 0042 90E0      		ldi r25,hi8(pm(usart_putchar))
 167 0044 0E94 0000 		call fdevopen
 168               	/* epilogue: frame size=0 */
 169 0048 0895      		ret
 170               	/* epilogue end (size=1) */
 171               	/* function InitIO size 18 (17) */
 173               		.data
 174               	.LC0:
 175 0000 4669 6C65 		.string	"File System : "
 175      2053 7973 
 175      7465 6D20 
 175      3A20 00
 176               	.LC1:
 177 000f 4641 5433 		.string	"FAT32"
 177      3200 
 178               	.LC2:
 179 0015 4641 5431 		.string	"FAT16"
 179      3600 
 180               	.LC3:
 181 001b 4641 5431 		.string	"FAT12"
 181      3200 
 182               	.LC4:
 183 0021 4F74 6865 		.string	"Other"
 183      7200 
 184               	.LC5:
 185 0027 4368 616E 		.string	"Change Dir to 'MYFILE~1\\TEXT'"
 185      6765 2044 
 185      6972 2074 
 185      6F20 274D 
 185      5946 494C 
 186               	.LC6:
 187 0045 4D59 4649 		.string	"MYFILE~1"
 187      4C45 7E31 
 187      00
 188               	.LC7:
 189 004e 5465 7874 		.string	"Text"
 189      00
 190               	.LC8:
 191 0053 4F70 656E 		.string	"Opening 'MP3DES~1.TXT'"
 191      696E 6720 
 191      274D 5033 
 191      4445 537E 
 191      312E 5458 
 192               	.LC9:
 193 006a 4D50 3344 		.string	"MP3DES~1.TXT"
 193      4553 7E31 
 193      2E54 5854 
 193      00
 194               	.LC10:
 195 0077 00        		.string	""
 196               		.text
 198               	.global	main
 200               	main:
  29:test.c        **** }
  30:test.c        **** 
  31:test.c        **** int main(void)
  32:test.c        **** {
 202               	.LM18:
 203               	/* prologue: frame size=64 */
 204 004a C0E0      		ldi r28,lo8(__stack - 64)
 205 004c D0E0      		ldi r29,hi8(__stack - 64)
 206 004e DEBF      		out __SP_H__,r29
 207 0050 CDBF      		out __SP_L__,r28
 208               	/* prologue end (size=4) */
  33:test.c        **** 	InitIO();
 210               	.LM19:
 211 0052 0E94 0000 		call InitIO
  34:test.c        **** //	sbi(MCUCR, SRE);
  35:test.c        **** 
  36:test.c        **** 	FS_Initialize();
 213               	.LM20:
 214 0056 0E94 0000 		call FS_Initialize
  37:test.c        **** 
  38:test.c        **** 	printf("File System : ");
 216               	.LM21:
 217 005a 80E0      		ldi r24,lo8(.LC0)
 218 005c 90E0      		ldi r25,hi8(.LC0)
 219 005e 9F93      		push r25
 220 0060 8F93      		push r24
 221 0062 0E94 0000 		call printf
  39:test.c        **** 	if(FS_BPB->Type == FS_TYPE_FAT32)
 223               	.LM22:
 224 0066 E091 0000 		lds r30,FS_BPB
 225 006a F091 0000 		lds r31,(FS_BPB)+1
 226 006e E081      		ld r30,Z
 227 0070 0F90      		pop __tmp_reg__
 228 0072 0F90      		pop __tmp_reg__
 229 0074 E230      		cpi r30,lo8(2)
 230 0076 19F4      		brne .L13
  40:test.c        **** 		puts("FAT32");
 232               	.LM23:
 233 0078 80E0      		ldi r24,lo8(.LC1)
 234 007a 90E0      		ldi r25,hi8(.LC1)
 235 007c 0CC0      		rjmp .L31
 236               	.L13:
  41:test.c        **** 	else if(FS_BPB->Type == FS_TYPE_FAT16)
 238               	.LM24:
 239 007e E130      		cpi r30,lo8(1)
 240 0080 19F4      		brne .L15
  42:test.c        **** 		puts("FAT16");
 242               	.LM25:
 243 0082 80E0      		ldi r24,lo8(.LC2)
 244 0084 90E0      		ldi r25,hi8(.LC2)
 245 0086 07C0      		rjmp .L31
 246               	.L15:
  43:test.c        **** 	else if(FS_BPB->Type == FS_TYPE_FAT12)
 248               	.LM26:
 249 0088 EE23      		tst r30
 250 008a 19F4      		brne .L17
  44:test.c        **** 		puts("FAT12");
 252               	.LM27:
 253 008c 80E0      		ldi r24,lo8(.LC3)
 254 008e 90E0      		ldi r25,hi8(.LC3)
 255 0090 02C0      		rjmp .L31
 256               	.L17:
  45:test.c        **** 	else
  46:test.c        **** 		puts("Other");
 258               	.LM28:
 259 0092 80E0      		ldi r24,lo8(.LC4)
 260 0094 90E0      		ldi r25,hi8(.LC4)
 261               	.L31:
 262 0096 0E94 0000 		call puts
  47:test.c        **** 
  48:test.c        **** 	puts("Change Dir to 'MYFILE~1\\TEXT'");
 264               	.LM29:
 265 009a 80E0      		ldi r24,lo8(.LC5)
 266 009c 90E0      		ldi r25,hi8(.LC5)
 267 009e 0E94 0000 		call puts
  49:test.c        **** 	FS_ChangeDir("MYFILE~1");
 269               	.LM30:
 270 00a2 80E0      		ldi r24,lo8(.LC6)
 271 00a4 90E0      		ldi r25,hi8(.LC6)
 272 00a6 0E94 0000 		call FS_ChangeDir
  50:test.c        **** 	FS_ChangeDir("Text");
 274               	.LM31:
 275 00aa 80E0      		ldi r24,lo8(.LC7)
 276 00ac 90E0      		ldi r25,hi8(.LC7)
 277 00ae 0E94 0000 		call FS_ChangeDir
  51:test.c        **** 
  52:test.c        **** 	puts("Opening 'MP3DES~1.TXT'");
 279               	.LM32:
 280 00b2 80E0      		ldi r24,lo8(.LC8)
 281 00b4 90E0      		ldi r25,hi8(.LC8)
 282 00b6 0E94 0000 		call puts
  53:test.c        **** 	FS_TFile *F = FS_Open("MP3DES~1.TXT");
 284               	.LM33:
 285 00ba 80E0      		ldi r24,lo8(.LC9)
 286 00bc 90E0      		ldi r25,hi8(.LC9)
 287 00be 0E94 0000 		call FS_Open
 288 00c2 7C01      		movw r14,r24
  54:test.c        **** 	
  55:test.c        **** 	char buf[64], j, n;
  56:test.c        **** 	unsigned int i;
  57:test.c        **** 
  58:test.c        **** 	for(i = 0; i < F->Length; i += 64)
 290               	.LM34:
 291 00c4 AA24      		clr r10
 292 00c6 BB24      		clr r11
 293 00c8 FC01      		movw r30,r24
 294 00ca 8589      		ldd r24,Z+21
 295 00cc 9689      		ldd r25,Z+22
 296 00ce A789      		ldd r26,Z+23
 297 00d0 B08D      		ldd r27,Z+24
 298 00d2 0097      		sbiw r24,0
 299 00d4 A105      		cpc r26,__zero_reg__
 300 00d6 B105      		cpc r27,__zero_reg__
 301 00d8 99F1      		breq .L28
 302               	.L26:
  59:test.c        **** 	{
  60:test.c        **** 		n = FS_Read(F, buf, 64);
 304               	.LM35:
 305 00da 20E4      		ldi r18,lo8(64)
 306 00dc 30E0      		ldi r19,hi8(64)
 307 00de 40E0      		ldi r20,hlo8(64)
 308 00e0 50E0      		ldi r21,hhi8(64)
 309 00e2 BE01      		movw r22,r28
 310 00e4 6F5F      		subi r22,lo8(-(1))
 311 00e6 7F4F      		sbci r23,hi8(-(1))
 312 00e8 C701      		movw r24,r14
 313 00ea 0E94 0000 		call FS_Read
 314 00ee DC01      		movw r26,r24
 315 00f0 CB01      		movw r24,r22
  61:test.c        **** 		for(j = 0; j < n; j ++)
 317               	.LM36:
 318 00f2 8823      		tst r24
 319 00f4 A1F0      		breq .L30
 320 00f6 CC24      		clr r12
 321 00f8 DD24      		clr r13
 322 00fa 182F      		mov r17,r24
 323               	.L25:
  62:test.c        **** 			putchar(buf[j]);
 325               	.LM37:
 326 00fc FE01      		movw r30,r28
 327 00fe EC0D      		add r30,r12
 328 0100 FD1D      		adc r31,r13
 329 0102 8181      		ldd r24,Z+1
 330 0104 6091 0000 		lds r22,__iob+2
 331 0108 7091 0000 		lds r23,(__iob+2)+1
 332 010c 9927      		clr r25
 333 010e 0E94 0000 		call fputc
 335               	.LM38:
 336 0112 1150      		subi r17,lo8(-(-1))
 337 0114 0894      		sec
 338 0116 C11C      		adc r12,__zero_reg__
 339 0118 D11C      		adc r13,__zero_reg__
 340 011a 1123      		tst r17
 341 011c 79F7      		brne .L25
 342               	.L30:
 344               	.LM39:
 345 011e 80E4      		ldi r24,lo8(64)
 346 0120 90E0      		ldi r25,hi8(64)
 347 0122 A80E      		add r10,r24
 348 0124 B91E      		adc r11,r25
 349 0126 9501      		movw r18,r10
 350 0128 4427      		clr r20
 351 012a 5527      		clr r21
 352 012c F701      		movw r30,r14
 353 012e 8589      		ldd r24,Z+21
 354 0130 9689      		ldd r25,Z+22
 355 0132 A789      		ldd r26,Z+23
 356 0134 B08D      		ldd r27,Z+24
 357 0136 2817      		cp r18,r24
 358 0138 3907      		cpc r19,r25
 359 013a 4A07      		cpc r20,r26
 360 013c 5B07      		cpc r21,r27
 361 013e 68F2      		brlo .L26
 362               	.L28:
  63:test.c        **** 	}
  64:test.c        **** 
  65:test.c        **** 	FS_Close(F);
 364               	.LM40:
 365 0140 C701      		movw r24,r14
 366 0142 0E94 0000 		call FS_Close
  66:test.c        **** 	
  67:test.c        **** 	puts("");
 368               	.LM41:
 369 0146 80E0      		ldi r24,lo8(.LC10)
 370 0148 90E0      		ldi r25,hi8(.LC10)
 371 014a 0E94 0000 		call puts
  68:test.c        **** 	
  69:test.c        **** 	FS_Destory();
 373               	.LM42:
 374 014e 0E94 0000 		call FS_Destory
  70:test.c        **** }
 376               	.LM43:
 377 0152 80E0      		ldi r24,lo8(0)
 378 0154 90E0      		ldi r25,hi8(0)
 379               	/* epilogue: frame size=64 */
 380 0156 0C94 0000 		jmp exit
 381               	/* epilogue end (size=2) */
 382               	/* function main size 136 (130) */
 389               		.comm FS_BPB,2,1
 390               		.comm FS_FAT,2,1
 391               		.comm FS_RootDir,2,1
 392               		.comm FS_CurrentDir,2,1
 397               		.text
 399               	Letext:
 400               	/* File "test.c": code  173 = 0x00ad ( 162), prologues   5, epilogues   6 */
DEFINED SYMBOLS
                            *ABS*:00000000 test.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:75     .text:00000000 usart_putchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:111    .text:0000001c usart_getchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:135    .text:00000026 InitIO
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:200    .text:0000004a main
                            *COM*:00000002 FS_BPB
                            *COM*:00000002 FS_FAT
                            *COM*:00000002 FS_RootDir
                            *COM*:00000002 FS_CurrentDir
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccIxaaaa.s:399    .text:0000015a Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fdevopen
__stack
FS_Initialize
printf
puts
FS_ChangeDir
FS_Open
FS_Read
__iob
fputc
FS_Close
FS_Destory
exit

⌨️ 快捷键说明

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