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

📄 avr_mmc.lst

📁 AT89C51 MP3源程序AT89C51 MP3源程序 SD AT89C51 MP3源程序AT89C51 MP3源程序 SD
💻 LST
📖 第 1 页 / 共 2 页
字号:
 202               	.LM16:
 203 0044 8FB9      		out 47-0x20,r24
  99:AVR_MMC.c     **** 
 100:AVR_MMC.c     ****     while ( !(SPSR & (1 << SPIF)) )
 101:AVR_MMC.c     **** 	{
 102:AVR_MMC.c     **** 		__asm__ __volatile__("nop");
 205               	.LM17:
 206 0046 7799      		sbic 46-0x20,7
 207 0048 03C0      		rjmp .L148
 208               	.L146:
 210               	.LM18:
 211               	/* #APP */
 212 004a 0000      		nop
 213               	/* #NOAPP */
 214 004c 779B      		sbis 46-0x20,7
 215 004e FDCF      		rjmp .L146
 216               	.L148:
 103:AVR_MMC.c     **** 	}
 104:AVR_MMC.c     **** 	temp = SPDR;
 218               	.LM19:
 219 0050 8FB1      		in r24,47-0x20
 220               	.LBE7:
 221               	.LBE6:
 105:AVR_MMC.c     **** 	return temp;
 106:AVR_MMC.c     **** }
 223               	.LM20:
 224 0052 9927      		clr r25
 225               	/* epilogue: frame size=0 */
 226 0054 0895      		ret
 227               	/* epilogue end (size=1) */
 228               	/* function uint8 SPI_SendData(uint8) size 10 (9) */
 235               	.global	_Z6MMC_CSh
 237               	_Z6MMC_CSh:
 107:AVR_MMC.c     ****  
 108:AVR_MMC.c     **** /*
 109:AVR_MMC.c     **** ;**************************************************************************************************
 110:AVR_MMC.c     **** ;* 函数名称 : MMC_CS
 111:AVR_MMC.c     **** ;* 描    述 : MMC片选
 112:AVR_MMC.c     **** ;* 输 	 入 : cs: 0不片选 1片选
 113:AVR_MMC.c     **** ;*        
 114:AVR_MMC.c     **** ;* 输 	 出 : 无
 115:AVR_MMC.c     **** ;**************************************************************************************************
 116:AVR_MMC.c     **** ;*/
 117:AVR_MMC.c     **** void MMC_CS(uint8 cs)
 118:AVR_MMC.c     **** {
 239               	.LM21:
 240               	/* prologue: frame size=0 */
 241               	/* prologue end (size=0) */
 242               	.LBB8:
 119:AVR_MMC.c     **** 	if (cs == 0)
 244               	.LM22:
 245 0056 8823      		tst r24
 246 0058 11F4      		brne .L150
 120:AVR_MMC.c     **** 	{
 121:AVR_MMC.c     **** 		PORTB |= (1 << PB0);			/* SS=1 */
 248               	.LM23:
 249 005a C09A      		sbi 56-0x20,0
 250 005c 0895      		ret
 251               	.L150:
 122:AVR_MMC.c     **** 	}
 123:AVR_MMC.c     **** 	else
 124:AVR_MMC.c     **** 	{
 125:AVR_MMC.c     **** 		PORTB &= ~(1 << PB0);			/* SS=0 */
 253               	.LM24:
 254 005e C098      		cbi 56-0x20,0
 255 0060 0895      		ret
 256               	.LBE8:
 257               	/* epilogue: frame size=0 */
 258               	/* epilogue: noreturn */
 259               	/* epilogue end (size=0) */
 260               	/* function void MMC_CS(uint8) size 6 (6) */
 264               	.global	_Z11MMC_SendCMDPh
 266               	_Z11MMC_SendCMDPh:
 126:AVR_MMC.c     **** 	}
 127:AVR_MMC.c     **** }
 128:AVR_MMC.c     **** 
 129:AVR_MMC.c     **** /*
 130:AVR_MMC.c     **** ;**************************************************************************************************
 131:AVR_MMC.c     **** ;* 函数名称 : MMC_SendCMD
 132:AVR_MMC.c     **** ;* 描    述 : MMC发送命令
 133:AVR_MMC.c     **** ;* 输 	 入 : cmd: 命令
 134:AVR_MMC.c     **** ;*        
 135:AVR_MMC.c     **** ;* 输 	 出 : 超时时间
 136:AVR_MMC.c     **** ;**************************************************************************************************
 137:AVR_MMC.c     **** ;*/
 138:AVR_MMC.c     **** uint8 MMC_SendCMD(uint8 *cmd)
 139:AVR_MMC.c     **** {
 268               	.LM25:
 269               	/* prologue: frame size=0 */
 270 0062 FF92      		push r15
 271 0064 0F93      		push r16
 272 0066 1F93      		push r17
 273 0068 CF93      		push r28
 274               	/* prologue end (size=4) */
 275 006a 8C01      		movw r16,r24
 276               	.LBB9:
 277               	.LBB10:
 140:AVR_MMC.c     **** 	uint8 i = 0, k = 0;
 279               	.LM26:
 280 006c FF24      		clr r15
 141:AVR_MMC.c     **** 	uint8 temp = 0XFF;
 142:AVR_MMC.c     **** 
 143:AVR_MMC.c     ****     MMC_CS(0);		   			/* 片选无效 */
 282               	.LM27:
 283 006e 8F2D      		mov r24,r15
 284 0070 0E94 0000 		call _Z6MMC_CSh
 144:AVR_MMC.c     **** 
 145:AVR_MMC.c     **** 	SPI_SendData(0XFF);			/* 发送8个时钟 */
 286               	.LM28:
 287 0074 8FEF      		ldi r24,lo8(-1)
 288 0076 0E94 0000 		call _Z12SPI_SendDatah
 146:AVR_MMC.c     **** 
 147:AVR_MMC.c     **** 	MMC_CS(1);		   			/* 片选有效 */
 290               	.LM29:
 291 007a 81E0      		ldi r24,lo8(1)
 292 007c 0E94 0000 		call _Z6MMC_CSh
 148:AVR_MMC.c     **** 
 149:AVR_MMC.c     **** 	__asm__ __volatile__("nop");
 294               	.LM30:
 295               	/* #APP */
 296 0080 0000      		nop
 297               	/* #NOAPP */
 298 0082 C5E0      		ldi r28,lo8(5)
 299               	.L156:
 150:AVR_MMC.c     **** 
 151:AVR_MMC.c     **** 	for (i = 0; i < 6; i++)
 152:AVR_MMC.c     **** 	{
 153:AVR_MMC.c     **** 	    SPI_SendData(*(cmd++));	/* 发送命令 */   
 301               	.LM31:
 302 0084 F801      		movw r30,r16
 303 0086 8191      		ld r24,Z+
 304 0088 8F01      		movw r16,r30
 305 008a 0E94 0000 		call _Z12SPI_SendDatah
 307               	.LM32:
 308 008e C150      		subi r28,lo8(-(-1))
 309 0090 C7FF      		sbrs r28,7
 310 0092 F8CF      		rjmp .L156
 311               	.L160:
 154:AVR_MMC.c     **** 	}
 155:AVR_MMC.c     **** 
 156:AVR_MMC.c     **** 	while (temp == 0XFF)
 157:AVR_MMC.c     **** 	{
 158:AVR_MMC.c     **** 	    temp = SPI_SendData(0XFF);  /* 等待回复 */
 313               	.LM33:
 314 0094 8FEF      		ldi r24,lo8(-1)
 315 0096 0E94 0000 		call _Z12SPI_SendDatah
 316 009a 982F      		mov r25,r24
 159:AVR_MMC.c     **** 		if (k++ > 200)				/* 超时返回 */
 318               	.LM34:
 319 009c 8F2D      		mov r24,r15
 320 009e F394      		inc r15
 321 00a0 893C      		cpi r24,lo8(-55)
 322 00a2 10F4      		brsh .L165
 160:AVR_MMC.c     **** 		{
 161:AVR_MMC.c     **** 		    return temp;
 324               	.LM35:
 325 00a4 9F3F      		cpi r25,lo8(-1)
 326 00a6 B1F3      		breq .L160
 327               	.L165:
 162:AVR_MMC.c     **** 		}
 163:AVR_MMC.c     **** 	}
 164:AVR_MMC.c     ****     return temp;
 329               	.LM36:
 330 00a8 892F      		mov r24,r25
 331 00aa 9927      		clr r25
 332               	.LBE10:
 333               	.LBE9:
 334               	/* epilogue: frame size=0 */
 335 00ac CF91      		pop r28
 336 00ae 1F91      		pop r17
 337 00b0 0F91      		pop r16
 338 00b2 FF90      		pop r15
 339 00b4 0895      		ret
 340               	/* epilogue end (size=5) */
 341               	/* function uint8 MMC_SendCMD(uint8*) size 43 (34) */
 348               		.text
 350               	Letext:
 351               	/* File "AVR_MMC.c": code   93 = 0x005d (  80), prologues   4, epilogues   9 */
DEFINED SYMBOLS
                            *ABS*:00000000 AVR_MMC.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:84     .text:00000000 _Z7DelayMsm
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:136    .text:0000002a _Z8SPI_Initv
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:171    .text:0000003c _Z9SPI_HiSPDv
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:194    .text:00000044 _Z12SPI_SendDatah
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:237    .text:00000056 _Z6MMC_CSh
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:266    .text:00000062 _Z11MMC_SendCMDPh
C:\Users\ADMINI~1\AppData\Local\Temp/cceUaaaa.s:350    .text:000000b6 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss

⌨️ 快捷键说明

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