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

📄 mmc.lst

📁 gps mmc logging using z8f6421 zilog microcontroller
💻 LST
📖 第 1 页 / 共 5 页
字号:
                           A   435    ; Aggregate Stack Size: -1 (words)
                           A   436    
                           A   437    
                           A   438    	SEGMENT mmc_TEXT
                           A   439    ;   57	
                           A   440    ;   58	unsigned char WaitResponseMMC(void)
                           A   441    ;   59	//waits for the card抯 response
                           A   442    ;   60	{
00009C                     A   443    _WaitResponseMMC:
                           A   444    .define "_WaitResponseMMC"
                           A   445    .value _WaitResponseMMC
                           A   446    .class 2
                           A   447    .type 76
                           A   448    .type 0
                           A   449    .endef
                           A   450    .begfunc "WaitResponseMMC",60,"_WaitResponseMMC"
                           A   451    .define "response"
                           A   452    .class 1
                           A   453    .value -1
                           A   454    .type 12
                           A   455    .type 0
00009C 9C01                A   456    	LD	R9,#1
00009E D6 0000             A   457    	CALL	__b_frameset0
                           A   458    .endef
                           A   459    ;   61		unsigned char response;
                           A   460    ;   62		
                           A   461    ;   63		do 
0000A1                     A   462    _2_L_8:
                           A   463    .line 63
                           A   464    ;   64			response = TransferSPI(0xFF);
                           A   465    .line 64
0000A1 1F70FF              A   466    	PUSH	#255
0000A4 D6 0000             A   467    	CALL	_TransferSPI
0000A7 50E1                A   468    	POP	R1
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  10


PC     Object              I  Line    Source mmc.src
0000A9 89E0FF              A   469    	LDX	-1(RR14),R0
                           A   470    ;   65		while(response == 0xFF);
                           A   471    .line 65
0000AC 880EFF              A   472    	LDX	R0,-1(RR14)
0000AF 60E0                A   473    	COM	R0
0000B1 6B EE               A   474    	JR	Z,_2_L_8
                           A   475    ;   66		return response;
                           A   476    .line 66
0000B3 880EFF              A   477    	LDX	R0,-1(RR14)
                           A   478    ;   67	}
                           A   479    .line 67
0000B6 D6 0000             A   480    	CALL	__b_framereset
0000B9 AF                  A   481    	RET	
                           A   482    .endfunc "WaitResponseMMC",67,"_WaitResponseMMC"
                           A   483    	SEGMENT ROM_DATA
                           A   484    
                           A   485    
                           A   486    ;**************************** _InitMMC ***************************
                           A   487    ;Name                         Addr/Register   Size   Type
                           A   488    ;_DeassertSS                         IMPORT  -----   function
                           A   489    ;_WaitResponseMMC                    IMPORT  -----   function
                           A   490    ;_CommandMMC                         IMPORT  -----   function
                           A   491    ;_TransferSPI                        IMPORT  -----   function
                           A   492    ;_AssertSS                           IMPORT  -----   function
                           A   493    ;_InitSPI                            IMPORT  -----   function
                           A   494    ;R1                                   R15-1      0   variable
                           A   495    
                           A   496    
                           A   497    ; Aggregate Stack Size: -1 (words)
                           A   498    
                           A   499    
                           A   500    	SEGMENT mmc_TEXT
                           A   501    ;   68	
                           A   502    ;   69	unsigned char InitMMC(void)
                           A   503    ;   70	//initializes the MMC to operate in SPI mode, puts it out of the idle state and temporarily
                           A   504    ;   71	{
0000BA                     A   505    _InitMMC:
                           A   506    .define "_InitMMC"
                           A   507    .value _InitMMC
                           A   508    .class 2
                           A   509    .type 76
                           A   510    .type 0
                           A   511    .endef
                           A   512    .begfunc "InitMMC",71,"_InitMMC"
                           A   513    .define "R1"
                           A   514    .class 1
                           A   515    .value -1
                           A   516    .type 12
                           A   517    .type 0
                           A   518    .endef
0000BA 9C01                A   519    	LD	R9,#1
0000BC D6 0000             A   520    	CALL	__b_frameset0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  11


PC     Object              I  Line    Source mmc.src
                           A   521    ;   72		unsigned char R1;
                           A   522    ;   73	
                           A   523    ;   74		InitSPI();							//initialize SPI
                           A   524    .line 74
0000BF D6 0000             A   525    	CALL	_InitSPI
                           A   526    ;   75		AssertSS();
                           A   527    .line 75
0000C2 D6 0000             A   528    	CALL	_AssertSS
                           A   529    ;   76		TransferSPI(0xFF);
                           A   530    .line 76
0000C5 1F70FF              A   531    	PUSH	#255
0000C8 D6 0000             A   532    	CALL	_TransferSPI
0000CB 50E0                A   533    	POP	R0
                           A   534    ;   77		CommandMMC(CMMC_Reset,0);			//send reset command
                           A   535    .line 77
0000CD 1F7000              A   536    	PUSH	#0
0000D0 1F7000              A   537    	PUSH	#0
0000D3 1F7000              A   538    	PUSH	#0
0000D6 1F7000              A   539    	PUSH	#0
0000D9 1F7000              A   540    	PUSH	#0
0000DC D6 0000             A   541    	CALL	_CommandMMC
0000DF 50E0                A   542    	POP	R0
0000E1 50E0                A   543    	POP	R0
0000E3 50E0                A   544    	POP	R0
0000E5 50E0                A   545    	POP	R0
0000E7 50E0                A   546    	POP	R0
                           A   547    ;   78		R1 = WaitResponseMMC();
                           A   548    .line 78
0000E9 D6 009C             A   549    	CALL	_WaitResponseMMC
0000EC 89E0FF              A   550    	LDX	-1(RR14),R0
                           A   551    ;   79		TransferSPI(0xFF);		
                           A   552    .line 79
0000EF 1F70FF              A   553    	PUSH	#255
0000F2 D6 0000             A   554    	CALL	_TransferSPI
0000F5 50E0                A   555    	POP	R0
                           A   556    ;   80	
                           A   557    ;   81		while(R1==0x01)						//put MMC out of idle state
                           A   558    .line 81
0000F7 8B 2A               A   559    	JR	_3_L_12
0000F9                     A   560    _3_L_13:
                           A   561    ;   82		{
                           A   562    ;   83			CommandMMC(CMMC_SendOPCond,0);
                           A   563    .line 83
0000F9 1F7000              A   564    	PUSH	#0
0000FC 1F7000              A   565    	PUSH	#0
0000FF 1F7000              A   566    	PUSH	#0
000102 1F7000              A   567    	PUSH	#0
000105 1F7001              A   568    	PUSH	#1
000108 D6 0000             A   569    	CALL	_CommandMMC
00010B 50E0                A   570    	POP	R0
00010D 50E0                A   571    	POP	R0
00010F 50E0                A   572    	POP	R0
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  12


PC     Object              I  Line    Source mmc.src
000111 50E0                A   573    	POP	R0
000113 50E0                A   574    	POP	R0
                           A   575    ;   84			R1 = WaitResponseMMC();
                           A   576    .line 84
000115 D6 009C             A   577    	CALL	_WaitResponseMMC
000118 89E0FF              A   578    	LDX	-1(RR14),R0
                           A   579    ;   85			TransferSPI(0xFF);	
                           A   580    .line 85
00011B 1F70FF              A   581    	PUSH	#255
00011E D6 0000             A   582    	CALL	_TransferSPI
000121 50E0                A   583    	POP	R0
                           A   584    ;   86		}
000123                     A   585    _3_L_12:
                           A   586    .line 86
000123 880EFF              A   587    	LDX	R0,-1(RR14)
000126 A6E001              A   588    	CP	R0,#1
000129 6B CE               A   589    	JR	Z,_3_L_13
                           A   590    ;   87		
                           A   591    ;   88		CommandMMC(CMMC_DisableCRC,0);		//disable CRC7
                           A   592    .line 88
00012B 1F7000              A   593    	PUSH	#0
00012E 1F7000              A   594    	PUSH	#0
000131 1F7000              A   595    	PUSH	#0
000134 1F7000              A   596    	PUSH	#0
000137 1F703B              A   597    	PUSH	#59
00013A D6 0000             A   598    	CALL	_CommandMMC
00013D 50E0                A   599    	POP	R0
00013F 50E0                A   600    	POP	R0
000141 50E0                A   601    	POP	R0
000143 50E0                A   602    	POP	R0
000145 50E0                A   603    	POP	R0
                           A   604    ;   89		if (R1)return R1;
                           A   605    .line 89
000147 880EFF              A   606    	LDX	R0,-1(RR14)
00014A 4200                A   607    	OR	R0,R0
00014C 6B 05               A   608    	JR	Z,_3_L_16
00014E 880EFF              A   609    	LDX	R0,-1(RR14)
000151 8B 13               A   610    	JR	_3_L_17
000153                     A   611    _3_L_16:
                           A   612    ;   90		R1=WaitResponseMMC();
                           A   613    .line 90
000153 D6 009C             A   614    	CALL	_WaitResponseMMC
000156 89E0FF              A   615    	LDX	-1(RR14),R0
                           A   616    ;   91		TransferSPI(0xFF);			
                           A   617    .line 91
000159 1F70FF              A   618    	PUSH	#255
00015C D6 0000             A   619    	CALL	_TransferSPI
00015F 50E0                A   620    	POP	R0
                           A   621    ;   92		
                           A   622    ;   93		DeassertSS();			
                           A   623    .line 93
000161 D6 0000             A   624    	CALL	_DeassertSS
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:  13


PC     Object              I  Line    Source mmc.src
                           A   625    ;   94		return 0;
                           A   626    .line 94
000164 B0E0                A   627    	CLR	R0
                           A   628    ;   95	}
000166                     A   629    _3_L_17:
                           A   630    .line 95
000166 D6 0000             A   631    	CALL	__b_framereset
000169 AF                  A   632    	RET	
                           A   633    .endfunc "InitMMC",95,"_InitMMC"
                           A   634    	SEGMENT ROM_DATA
                           A   635    
                           A   636    
                           A   637    ;**************************** _GetDataResponseMMC ***************************
                           A   638    ;Name                         Addr/Register   Size   Type
                           A   639    ;_TransferSPI                        IMPORT  -----   function
                           A   640    ;dataresponse                         R15-1      0   variable
                           A   641    
                           A   642    
                           A   643    ; Aggregate Stack Size: -1 (words)
                           A   644    
                           A   645    
                           A   646    	SEGMENT mmc_TEXT
                           A   647    ;   96	
                           A   648    ;   97	unsigned char GetDataResponseMMC(void)
                           A   649    ;   98	//waits for the data response token sent by the card
                           A   650    ;   99	//used after writing a block of data to the card
                           A   651    ;  100	//returns the status bits which indicate status of write operation
                           A   652    ;  101	{
00016A                     A   653    _GetDataResponseMMC:

⌨️ 快捷键说明

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