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

📄 mmc.lst

📁 gps mmc logging using z8f6421 zilog microcontroller
💻 LST
📖 第 1 页 / 共 5 页
字号:
0001FB B0E2                A   873    	CLR	R2
0001FD B0E3                A   874    	CLR	R3
0001FF 89E2FE              A   875    	LDX	-2(RR14),R2
000202 89E3FF              A   876    	LDX	-1(RR14),R3
                           A   877    ;  137			for(ctr=0;ctr<512;ctr++)TransferSPI(data[ctr]);
                           A   878    .line 137
000205 8B 28               A   879    	JR	_6_L_25
000207                     A   880    _6_L_23:
000207 884EFE              A   881    	LDX	R4,-2(RR14)
00020A 885EFF              A   882    	LDX	R5,-1(RR14)
00020D 882E08              A   883    	LDX	R2,8(RR14)
000210 883E09              A   884    	LDX	R3,9(RR14)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  18


PC     Object              I  Line    Source mmc.src
000213 0235                A   885    	ADD	R3,R5
000215 1224                A   886    	ADC	R2,R4
000217 86E2E0              A   887    	LDX	R0,@RR2
00021A 70E0                A   888    	PUSH	R0
00021C D6 0000             A   889    	CALL	_TransferSPI
00021F 50E0                A   890    	POP	R0
000221 882EFE              A   891    	LDX	R2,-2(RR14)
000224 883EFF              A   892    	LDX	R3,-1(RR14)
000227 A0E2                A   893    	INCW	RR2
000229 89E2FE              A   894    	LDX	-2(RR14),R2
00022C 89E3FF              A   895    	LDX	-1(RR14),R3
00022F                     A   896    _6_L_25:
00022F 882EFE              A   897    	LDX	R2,-2(RR14)
000232 883EFF              A   898    	LDX	R3,-1(RR14)
000235 A6E300              A   899    	CP	R3,#0
000238 1FA6E202            A   900    	CPC	R2,#2
00023C 7B C9               A   901    	JR	C,_6_L_23
                           A   902    ;  138			TransferSPI(0xFF);	//16-bit CRC
                           A   903    .line 138
00023E 1F70FF              A   904    	PUSH	#255
000241 D6 0000             A   905    	CALL	_TransferSPI
000244 50E0                A   906    	POP	R0
                           A   907    ;  139			TransferSPI(0xFF);	
                           A   908    .line 139
000246 1F70FF              A   909    	PUSH	#255
000249 D6 0000             A   910    	CALL	_TransferSPI
00024C 50E0                A   911    	POP	R0
                           A   912    ;  140			
                           A   913    ;  141			//check data response and wait until card is out of busy state
                           A   914    ;  142			dataresponse=GetDataResponseMMC();
                           A   915    .line 142
00024E D6 016A             A   916    	CALL	_GetDataResponseMMC
000251 89E0FC              A   917    	LDX	-4(RR14),R0
                           A   918    ;  143			if(dataresponse!=0x05)err=1;
                           A   919    .line 143
000254 880EFC              A   920    	LDX	R0,-4(RR14)
000257 A6E005              A   921    	CP	R0,#5
00025A 6B 05               A   922    	JR	Z,_6_L_28
00025C 0C01                A   923    	LD	R0,#1
00025E 89E0FD              A   924    	LDX	-3(RR14),R0
000261                     A   925    _6_L_28:
                           A   926    ;  144			WaitUntilReadyMMC();
                           A   927    .line 144
000261 D6 018A             A   928    	CALL	_WaitUntilReadyMMC
                           A   929    ;  145		}
                           A   930    ;  146		else err=1;
                           A   931    .line 146
000264 8B 05               A   932    	JR	_6_L_31
000266                     A   933    _6_L_30:
000266 0C01                A   934    	LD	R0,#1
000268 89E0FD              A   935    	LDX	-3(RR14),R0
00026B                     A   936    _6_L_31:
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  19


PC     Object              I  Line    Source mmc.src
                           A   937    ;  147		
                           A   938    ;  148		DeassertSS();
                           A   939    .line 148
00026B D6 0000             A   940    	CALL	_DeassertSS
                           A   941    ;  149		return err;
                           A   942    .line 149
00026E 880EFD              A   943    	LDX	R0,-3(RR14)
                           A   944    ;  150	}
                           A   945    .line 150
000271 D6 0000             A   946    	CALL	__b_framereset
000274 AF                  A   947    	RET	
                           A   948    .endfunc "WriteMMC",150,"_WriteMMC"
                           A   949    	SEGMENT ROM_DATA
                           A   950    
                           A   951    
                           A   952    ;**************************** _ReadMMC ***************************
                           A   953    ;Name                         Addr/Register   Size   Type
                           A   954    ;_DeassertSS                         IMPORT  -----   function
                           A   955    ;_WaitResponseMMC                    IMPORT  -----   function
                           A   956    ;_CommandMMC                         IMPORT  -----   function
                           A   957    ;_TransferSPI                        IMPORT  -----   function
                           A   958    ;_AssertSS                           IMPORT  -----   function
                           A   959    ;R1                                   R15-5      0   variable
                           A   960    ;StartByte                            R15-4      0   variable
                           A   961    ;err                                  R15-3      0   variable
                           A   962    ;ctr                                  R15-2      1   variable
                           A   963    ;data                                 R15+8      1   parameter
                           A   964    ;StartAddress                         R15+4      2   parameter
                           A   965    
                           A   966    
                           A   967    ; Aggregate Stack Size: -5 (words)
                           A   968    
                           A   969    
                           A   970    	SEGMENT mmc_TEXT
                           A   971    ;  151	
                           A   972    ;  152	
                           A   973    ;  153	unsigned char ReadMMC(unsigned long StartAddress,unsigned char* data)
                           A   974    ;  154	//reads a single block:512 bytes from the MMC and saves it as data
                           A   975    ;  155	{
000275                     A   976    _ReadMMC:
                           A   977    .define "_ReadMMC"
                           A   978    .value _ReadMMC
                           A   979    .class 2
                           A   980    .type 76
                           A   981    .type 0
                           A   982    .endef
                           A   983    .begfunc "ReadMMC",155,"_ReadMMC"
                           A   984    .define "StartAddress"
                           A   985    .class 9
                           A   986    .value 4
                           A   987    .type 15
                           A   988    .type 0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  20


PC     Object              I  Line    Source mmc.src
                           A   989    .endef
                           A   990    .define "data"
                           A   991    .class 9
                           A   992    .value 8
                           A   993    .type 172
                           A   994    .type 0
                           A   995    .endef
                           A   996    .define "ctr"
                           A   997    .class 1
                           A   998    .value -2
                           A   999    .type 13
                           A  1000    .type 0
                           A  1001    .endef
                           A  1002    .define "err"
                           A  1003    .class 1
                           A  1004    .value -3
                           A  1005    .type 12
                           A  1006    .type 0
                           A  1007    .endef
                           A  1008    .define "StartByte"
                           A  1009    .class 1
                           A  1010    .value -4
                           A  1011    .type 12
                           A  1012    .type 0
                           A  1013    .endef
                           A  1014    .define "R1"
                           A  1015    .class 1
                           A  1016    .value -5
                           A  1017    .type 12
                           A  1018    .type 0
                           A  1019    .endef
000275 9C05                A  1020    	LD	R9,#5
000277 D6 0000             A  1021    	CALL	__b_frameset0
                           A  1022    ;  156		
                           A  1023    ;  157		unsigned char R1,StartByte,err=0;
                           A  1024    .line 157
00027A B0E0                A  1025    	CLR	R0
00027C 89E0FD              A  1026    	LDX	-3(RR14),R0
                           A  1027    ;  158		unsigned int ctr;
                           A  1028    ;  159	
                           A  1029    ;  160		AssertSS();
                           A  1030    .line 160
00027F D6 0000             A  1031    	CALL	_AssertSS
                           A  1032    ;  161		TransferSPI(0xFF);
                           A  1033    .line 161
000282 1F70FF              A  1034    	PUSH	#255
000285 D6 0000             A  1035    	CALL	_TransferSPI
000288 50E0                A  1036    	POP	R0
                           A  1037    ;  162	
                           A  1038    ;  163		CommandMMC(CMMC_SingleBlockRead,StartAddress);
                           A  1039    .line 163
00028A 880E04              A  1040    	LDX	R0,4(RR14)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  21


PC     Object              I  Line    Source mmc.src
00028D 881E05              A  1041    	LDX	R1,5(RR14)
000290 882E06              A  1042    	LDX	R2,6(RR14)
000293 883E07              A  1043    	LDX	R3,7(RR14)
000296 70E3                A  1044    	PUSH	R3
000298 70E2                A  1045    	PUSH	R2
00029A 70E1                A  1046    	PUSH	R1
00029C 70E0                A  1047    	PUSH	R0
00029E 1F7011              A  1048    	PUSH	#17
0002A1 D6 0000             A  1049    	CALL	_CommandMMC
0002A4 50E0                A  1050    	POP	R0
0002A6 50E0                A  1051    	POP	R0
0002A8 50E0                A  1052    	POP	R0
0002AA 50E0                A  1053    	POP	R0
0002AC 50E0                A  1054    	POP	R0
                           A  1055    ;  164		R1=WaitResponseMMC();//command 17 response	
                           A  1056    .line 164
0002AE D6 009C             A  1057    	CALL	_WaitResponseMMC
0002B1 89E0FB              A  1058    	LDX	-5(RR14),R0
                           A  1059    ;  165	
                           A  1060    ;  166		if(!R1)
                           A  1061    .line 166
0002B4 880EFB              A  1062    	LDX	R0,-5(RR14)
0002B7 4200                A  1063    	OR	R0,R0
0002B9 EB 5B               A  1064    	JR	NE,_7_L_40
                           A  1065    ;  167		{
                           A  1066    ;  168			StartByte=WaitResponseMMC();
                           A  1067    .line 168
0002BB D6 009C             A  1068    	CALL	_WaitResponseMMC
0002BE 89E0FC              A  1069    	LDX	-4(RR14),R0
                           A  1070    ;  169			if(StartByte==0xFE) 
                           A  1071    .line 169
0002C1 880EFC              A  1072    	LDX	R0,-4(RR14)
0002C4 A6E0FE              A  1073    	CP	R0,#254
0002C7 EB 46               A  1074    	JR	NE,_7_L_38
0002C9 B0E2                A  1075    	CLR	R2
0002CB B0E3                A  1076    	CLR	R3
0002CD 89E2FE              A  1077    	LDX	-2(RR14),R2
0002D0 89E3FF              A  1078    	LDX	-1(RR14),R3
                           A  1079    ;  170				for(ctr=0;ctr<512;ctr++)data[ctr]=TransferSPI(0xFF); //return stored data
                           A  1080    .line 170
0002D3 8B 29               A  1081    	JR	_7_L_36
0002D5                     A  1082    _7_L_34:
0002D5 1F70FF              A  1083    	PUSH	#255
0002D8 D6 0000             A  1084    	CALL	_TransferSPI
0002DB 50E1                A  1085    	POP	R1
0002DD 884EFE              A  1086    	LDX	R4,-2(RR14)
0002E0 885EFF              A  1087    	LDX	R5,-1(RR14)
0002E3 882E08              A  1088    	LDX	R2,8(RR14)
0002E6 883E09              A  1089    	LDX	R3,9(RR14)
0002E9 0235                A  1090    	ADD	R3,R5
0002EB 1224  

⌨️ 快捷键说明

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