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

📄 mmc.lst

📁 gps mmc logging using z8f6421 zilog microcontroller
💻 LST
📖 第 1 页 / 共 5 页
字号:
                           A   654    .define "_GetDataResponseMMC"
                           A   655    .value _GetDataResponseMMC
                           A   656    .class 2
                           A   657    .type 76
                           A   658    .type 0
                           A   659    .endef
                           A   660    .begfunc "GetDataResponseMMC",101,"_GetDataResponseMMC"
                           A   661    .define "dataresponse"
                           A   662    .class 1
                           A   663    .value -1
                           A   664    .type 12
                           A   665    .type 0
                           A   666    .endef
00016A 9C01                A   667    	LD	R9,#1
00016C D6 0000             A   668    	CALL	__b_frameset0
                           A   669    ;  102		unsigned char dataresponse;	
                           A   670    ;  103	
                           A   671    ;  104		dataresponse=TransferSPI(0xFF);
                           A   672    .line 104
00016F 1F70FF              A   673    	PUSH	#255
000172 D6 0000             A   674    	CALL	_TransferSPI
000175 50E1                A   675    	POP	R1
000177 89E0FF              A   676    	LDX	-1(RR14),R0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  14


PC     Object              I  Line    Source mmc.src
                           A   677    ;  105		dataresponse &= 0x1F;
                           A   678    .line 105
00017A 880EFF              A   679    	LDX	R0,-1(RR14)
00017D 56E01F              A   680    	AND	R0,#31
000180 89E0FF              A   681    	LDX	-1(RR14),R0
                           A   682    ;  106	
                           A   683    ;  107		return dataresponse;
                           A   684    .line 107
000183 880EFF              A   685    	LDX	R0,-1(RR14)
                           A   686    ;  108	}
                           A   687    .line 108
000186 D6 0000             A   688    	CALL	__b_framereset
000189 AF                  A   689    	RET	
                           A   690    .endfunc "GetDataResponseMMC",108,"_GetDataResponseMMC"
                           A   691    	SEGMENT ROM_DATA
                           A   692    
                           A   693    
                           A   694    ;**************************** _WaitUntilReadyMMC ***************************
                           A   695    ;Name                         Addr/Register   Size   Type
                           A   696    ;_TransferSPI                        IMPORT  -----   function
                           A   697    ;BUSY                                 R15-1      0   variable
                           A   698    
                           A   699    
                           A   700    ; Aggregate Stack Size: -1 (words)
                           A   701    
                           A   702    
                           A   703    	SEGMENT mmc_TEXT
                           A   704    ;  109	
                           A   705    ;  110	void WaitUntilReadyMMC(void)
                           A   706    ;  111	//waits until the card is out of busy state
                           A   707    ;  112	//used after getting the data response token of the card when it enters a busy state
                           A   708    ;  113	{
00018A                     A   709    _WaitUntilReadyMMC:
                           A   710    .define "_WaitUntilReadyMMC"
                           A   711    .value _WaitUntilReadyMMC
                           A   712    .class 2
                           A   713    .type 65
                           A   714    .type 0
                           A   715    .endef
                           A   716    .begfunc "WaitUntilReadyMMC",113,"_WaitUntilReadyMMC"
                           A   717    .define "BUSY"
                           A   718    .class 1
                           A   719    .value -1
                           A   720    .type 12
                           A   721    .type 0
00018A 9C01                A   722    	LD	R9,#1
00018C D6 0000             A   723    	CALL	__b_frameset0
                           A   724    .endef
                           A   725    ;  114		unsigned char BUSY;
                           A   726    ;  115		
                           A   727    ;  116		do
00018F                     A   728    _5_L_19:
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  15


PC     Object              I  Line    Source mmc.src
                           A   729    .line 116
                           A   730    ;  117		BUSY = TransferSPI(0xFF);	//zero value for BUSY indicates card is busy
                           A   731    .line 117
00018F 1F70FF              A   732    	PUSH	#255
000192 D6 0000             A   733    	CALL	_TransferSPI
000195 50E1                A   734    	POP	R1
000197 89E0FF              A   735    	LDX	-1(RR14),R0
                           A   736    ;  118		while(BUSY==0x00);
                           A   737    .line 118
00019A 880EFF              A   738    	LDX	R0,-1(RR14)
00019D 4200                A   739    	OR	R0,R0
00019F 6B EE               A   740    	JR	Z,_5_L_19
                           A   741    ;  119	}
                           A   742    .line 119
0001A1 D6 0000             A   743    	CALL	__b_framereset
0001A4 AF                  A   744    	RET	
                           A   745    .endfunc "WaitUntilReadyMMC",119,"_WaitUntilReadyMMC"
                           A   746    	SEGMENT ROM_DATA
                           A   747    
                           A   748    
                           A   749    ;**************************** _WriteMMC ***************************
                           A   750    ;Name                         Addr/Register   Size   Type
                           A   751    ;_DeassertSS                         IMPORT  -----   function
                           A   752    ;_WaitUntilReadyMMC                  IMPORT  -----   function
                           A   753    ;_GetDataResponseMMC                 IMPORT  -----   function
                           A   754    ;_WaitResponseMMC                    IMPORT  -----   function
                           A   755    ;_CommandMMC                         IMPORT  -----   function
                           A   756    ;_TransferSPI                        IMPORT  -----   function
                           A   757    ;_AssertSS                           IMPORT  -----   function
                           A   758    ;R1                                   R15-5      0   variable
                           A   759    ;dataresponse                         R15-4      0   variable
                           A   760    ;err                                  R15-3      0   variable
                           A   761    ;ctr                                  R15-2      1   variable
                           A   762    ;data                                 R15+8      1   parameter
                           A   763    ;StartAddress                         R15+4      2   parameter
                           A   764    
                           A   765    
                           A   766    ; Aggregate Stack Size: -5 (words)
                           A   767    
                           A   768    
                           A   769    	SEGMENT mmc_TEXT
                           A   770    ;  120	
                           A   771    ;  121	unsigned char WriteMMC(unsigned long StartAddress, unsigned char* data){
0001A5                     A   772    _WriteMMC:
                           A   773    .define "_WriteMMC"
                           A   774    .value _WriteMMC
                           A   775    .class 2
                           A   776    .type 76
                           A   777    .type 0
                           A   778    .endef
                           A   779    .begfunc "WriteMMC",121,"_WriteMMC"
                           A   780    .define "StartAddress"
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  16


PC     Object              I  Line    Source mmc.src
                           A   781    .class 9
                           A   782    .value 4
                           A   783    .type 15
                           A   784    .type 0
                           A   785    .endef
                           A   786    .define "data"
                           A   787    .class 17
                           A   788    .reg -1
                           A   789    .type 172
                           A   790    .type 0
                           A   791    .endef
                           A   792    .define "ctr"
                           A   793    .class 1
                           A   794    .value -2
                           A   795    .type 13
                           A   796    .type 0
                           A   797    .endef
                           A   798    .define "err"
                           A   799    .class 1
                           A   800    .value -3
                           A   801    .type 12
                           A   802    .type 0
                           A   803    .endef
                           A   804    .define "dataresponse"
                           A   805    .class 1
                           A   806    .value -4
                           A   807    .type 12
                           A   808    .type 0
                           A   809    .endef
                           A   810    .define "R1"
                           A   811    .class 1
                           A   812    .value -5
                           A   813    .type 12
                           A   814    .type 0
                           A   815    .endef
0001A5 9C05                A   816    	LD	R9,#5
0001A7 D6 0000             A   817    	CALL	__b_frameset0
                           A   818    ;  122	//writes data(single block:512 bytes) to the MMC
                           A   819    ;  123		
                           A   820    ;  124		unsigned char R1,dataresponse,err=0;
                           A   821    .line 124
0001AA B0E0                A   822    	CLR	R0
0001AC 89E0FD              A   823    	LDX	-3(RR14),R0
                           A   824    ;  125		unsigned int ctr;
                           A   825    ;  126	
                           A   826    ;  127		//start read
                           A   827    ;  128		AssertSS();	
                           A   828    .line 128
0001AF D6 0000             A   829    	CALL	_AssertSS
                           A   830    ;  129		TransferSPI(0xFF);
                           A   831    .line 129
0001B2 1F70FF              A   832    	PUSH	#255
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  17


PC     Object              I  Line    Source mmc.src
0001B5 D6 0000             A   833    	CALL	_TransferSPI
0001B8 50E0                A   834    	POP	R0
                           A   835    ;  130		CommandMMC(CMMC_SingleBlockWrite,StartAddress);
                           A   836    .line 130
0001BA 880E04              A   837    	LDX	R0,4(RR14)
0001BD 881E05              A   838    	LDX	R1,5(RR14)
0001C0 882E06              A   839    	LDX	R2,6(RR14)
0001C3 883E07              A   840    	LDX	R3,7(RR14)
0001C6 70E3                A   841    	PUSH	R3
0001C8 70E2                A   842    	PUSH	R2
0001CA 70E1                A   843    	PUSH	R1
0001CC 70E0                A   844    	PUSH	R0
0001CE 1F7018              A   845    	PUSH	#24
0001D1 D6 0000             A   846    	CALL	_CommandMMC
0001D4 50E0                A   847    	POP	R0
0001D6 50E0                A   848    	POP	R0
0001D8 50E0                A   849    	POP	R0
0001DA 50E0                A   850    	POP	R0
0001DC 50E0                A   851    	POP	R0
                           A   852    ;  131		R1 = WaitResponseMMC();
                           A   853    .line 131
0001DE D6 009C             A   854    	CALL	_WaitResponseMMC
0001E1 89E0FB              A   855    	LDX	-5(RR14),R0
                           A   856    ;  132		TransferSPI(0xFF);
                           A   857    .line 132
0001E4 1F70FF              A   858    	PUSH	#255
0001E7 D6 0000             A   859    	CALL	_TransferSPI
0001EA 50E0                A   860    	POP	R0
                           A   861    ;  133	
                           A   862    ;  134		if(!R1){		
                           A   863    .line 134
0001EC 880EFB              A   864    	LDX	R0,-5(RR14)
0001EF 4200                A   865    	OR	R0,R0
0001F1 EB 73               A   866    	JR	NE,_6_L_30
                           A   867    ;  135			//send data token
                           A   868    ;  136			TransferSPI(0xFE); //start block token
                           A   869    .line 136
0001F3 1F70FE              A   870    	PUSH	#254
0001F6 D6 0000             A   871    	CALL	_TransferSPI
0001F9 50E0                A   872    	POP	R0

⌨️ 快捷键说明

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