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

📄 mmc.lst

📁 gps mmc logging using z8f6421 zilog microcontroller
💻 LST
📖 第 1 页 / 共 5 页
字号:
                           A   216    .type 12
                           A   217    .type 0
                           A   218    .endef
                           A   219    .define "byte2"
                           A   220    .value 1
                           A   221    .class 8
                           A   222    .type 12
                           A   223    .type 0
                           A   224    .endef
                           A   225    .define "byte3"
                           A   226    .value 2
                           A   227    .class 8
                           A   228    .type 12
                           A   229    .type 0
                           A   230    .endef
                           A   231    .define "byte4"
                           A   232    .value 3
                           A   233    .class 8
                           A   234    .type 12
                           A   235    .type 0
                           A   236    .endef
                           A   237    .define "byte5"
                           A   238    .value 4
                           A   239    .class 8
                           A   240    .type 12
                           A   241    .type 0
                           A   242    .endef
                           A   243    .define "byte6"
                           A   244    .value 5
                           A   245    .class 8
                           A   246    .type 12
                           A   247    .type 0
                           A   248    .endef
                           A   249    .endrec "NONAME4"
                           A   250    ;    1	#include <ez8.h>
                           A   251    ;    2	#include <stdio.h>
                           A   252    ;    3	#include <sio.h>
                           A   253    ;    4	#include <stdlib.h>
                           A   254    ;    5	#include <string.h>
                           A   255    ;    6	#include "mmc.h"
                           A   256    ;    7	#include "spi.h"
                           A   257    ;    8	#include "fat.h"
                           A   258    ;    9	
                           A   259    ;   10	unsigned char CSD[16];
                           A   260    	SEGMENT mmc_TEXT
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:   6


PC     Object              I  Line    Source mmc.src
                           A   261    ;   11	
                           A   262    ;   12	typedef struct{
                           A   263    ;   13		unsigned char byte1;
                           A   264    ;   14		unsigned char byte2;
                           A   265    ;   15		unsigned char byte3;
                           A   266    ;   16		unsigned char byte4;
                           A   267    ;   17		unsigned char byte5;
                           A   268    ;   18		unsigned char byte6;
                           A   269    ;   19	}command;
                           A   270    ;   20	
                           A   271    ;   21	void CommandMMC(unsigned char cmd_index, unsigned long cmd_argument)
                           A   272    ;   22	//sends a 6-byte command from the MCU to the MMC
                           A   273    ;   23	{
000000                     A   274    _CommandMMC:
                           A   275    .define "_CommandMMC"
                           A   276    .value _CommandMMC
                           A   277    .class 2
                           A   278    .type 65
                           A   279    .type 0
                           A   280    .endef
                           A   281    .begfunc "CommandMMC",23,"_CommandMMC"
                           A   282    .define "cmd_index"
                           A   283    .class 9
                           A   284    .value 4
                           A   285    .type 12
                           A   286    .type 0
                           A   287    .endef
                           A   288    .define "cmd_argument"
                           A   289    .class 17
                           A   290    .reg -1
                           A   291    .type 15
                           A   292    .type 0
                           A   293    .endef
                           A   294    .define "cmd"
                           A   295    .class 1
                           A   296    .value -6
                           A   297    .tag "NONAME4"
                           A   298    .type 8
                           A   299    .type 0
                           A   300    .endef
                           A   301    .define "CRC7"
                           A   302    .class 1
                           A   303    .value -7
                           A   304    .type 12
                           A   305    .type 0
                           A   306    .endef
000000 9C07                A   307    	LD	R9,#7
000002 D6 0000             A   308    	CALL	__b_frameset0
                           A   309    ;   24		command cmd;
                           A   310    ;   25		unsigned char CRC7;
                           A   311    ;   26		
                           A   312    ;   27		//first byte (start bit '0' + transmitter bit '1' + command index)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:   7


PC     Object              I  Line    Source mmc.src
                           A   313    ;   28		cmd.byte1 = 0x40|cmd_index;
                           A   314    .line 28
000005 880E04              A   315    	LDX	R0,4(RR14)
000008 E2E0                A   316    	BSET	6,R0
00000A 89E0FA              A   317    	LDX	-6(RR14),R0
                           A   318    ;   29		
                           A   319    ;   30		//bytes 2-5 (command argument)
                           A   320    ;   31		cmd.byte2 = cmd_argument>>24;
                           A   321    .line 31
00000D 880E05              A   322    	LDX	R0,5(RR14)
000010 89E0FB              A   323    	LDX	-5(RR14),R0
                           A   324    ;   32		cmd.byte3 = cmd_argument>>16;
                           A   325    .line 32
000013 880E06              A   326    	LDX	R0,6(RR14)
000016 89E0FC              A   327    	LDX	-4(RR14),R0
                           A   328    ;   33		cmd.byte4 = cmd_argument>>8;
                           A   329    .line 33
000019 880E07              A   330    	LDX	R0,7(RR14)
00001C 89E0FD              A   331    	LDX	-3(RR14),R0
                           A   332    ;   34		cmd.byte5 = cmd_argument;
                           A   333    .line 34
00001F 880E08              A   334    	LDX	R0,8(RR14)
000022 89E0FE              A   335    	LDX	-2(RR14),R0
                           A   336    ;   35		
                           A   337    ;   36		//CRC was not implemented in this application note
                           A   338    ;   37		//Although CRC is optional in SPI mode, it is a required token (i.e. a dummy CRC //must
                           A   339    ;   38		//last byte (crc + end bit '1')
                           A   340    ;   39		if( cmd.byte1 == 0x40 )
                           A   341    .line 39
000025 880EFA              A   342    	LDX	R0,-6(RR14)
000028 A6E040              A   343    	CP	R0,#64
00002B EB 07               A   344    	JR	NE,_1_L_5
                           A   345    ;   40			cmd.byte6 = 0x95;	
                           A   346    .line 40
00002D 0C95                A   347    	LD	R0,#149
00002F 89E0FF              A   348    	LDX	-1(RR14),R0
                           A   349    ;   41		else if( cmd.byte1 == 0x41 )
                           A   350    .line 41
000032 8B 28               A   351    	JR	_1_L_6
000034                     A   352    _1_L_5:
000034 880EFA              A   353    	LDX	R0,-6(RR14)
000037 A6E041              A   354    	CP	R0,#65
00003A EB 07               A   355    	JR	NE,_1_L_3
                           A   356    ;   42			cmd.byte6 = 0xFF;	
                           A   357    .line 42
00003C 0CFF                A   358    	LD	R0,#255
00003E 89E0FF              A   359    	LDX	-1(RR14),R0
                           A   360    ;   43		else if( cmd.byte1 == 0x7B )
                           A   361    .line 43
000041 8B 19               A   362    	JR	_1_L_6
000043                     A   363    _1_L_3:
000043 880EFA              A   364    	LDX	R0,-6(RR14)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:   8


PC     Object              I  Line    Source mmc.src
000046 A6E07B              A   365    	CP	R0,#123
000049 EB 07               A   366    	JR	NE,_1_L_1
                           A   367    ;   44			cmd.byte6 = 0x01;	
                           A   368    .line 44
00004B 0C01                A   369    	LD	R0,#1
00004D 89E0FF              A   370    	LDX	-1(RR14),R0
                           A   371    ;   45		else 
                           A   372    .line 45
000050 8B 0A               A   373    	JR	_1_L_6
000052                     A   374    _1_L_1:
                           A   375    ;   46			cmd.byte6 = (CRC7<<1)|0x01;
                           A   376    .line 46
000052 880EF9              A   377    	LDX	R0,-7(RR14)
000055 0200                A   378    	ADD	R0,R0
000057 E280                A   379    	BSET	0,R0
000059 89E0FF              A   380    	LDX	-1(RR14),R0
00005C                     A   381    _1_L_6:
                           A   382    ;   47	
                           A   383    ;   48		//send command per byte
                           A   384    ;   49		TransferSPI(cmd.byte1);
                           A   385    .line 49
00005C 880EFA              A   386    	LDX	R0,-6(RR14)
00005F 70E0                A   387    	PUSH	R0
000061 D6 0000             A   388    	CALL	_TransferSPI
000064 50E0                A   389    	POP	R0
                           A   390    ;   50		TransferSPI(cmd.byte2);
                           A   391    .line 50
000066 880EFB              A   392    	LDX	R0,-5(RR14)
000069 70E0                A   393    	PUSH	R0
00006B D6 0000             A   394    	CALL	_TransferSPI
00006E 50E0                A   395    	POP	R0
                           A   396    ;   51		TransferSPI(cmd.byte3);
                           A   397    .line 51
000070 880EFC              A   398    	LDX	R0,-4(RR14)
000073 70E0                A   399    	PUSH	R0
000075 D6 0000             A   400    	CALL	_TransferSPI
000078 50E0                A   401    	POP	R0
                           A   402    ;   52		TransferSPI(cmd.byte4);
                           A   403    .line 52
00007A 880EFD              A   404    	LDX	R0,-3(RR14)
00007D 70E0                A   405    	PUSH	R0
00007F D6 0000             A   406    	CALL	_TransferSPI
000082 50E0                A   407    	POP	R0
                           A   408    ;   53		TransferSPI(cmd.byte5);
                           A   409    .line 53
000084 880EFE              A   410    	LDX	R0,-2(RR14)
000087 70E0                A   411    	PUSH	R0
000089 D6 0000             A   412    	CALL	_TransferSPI
00008C 50E0                A   413    	POP	R0
                           A   414    ;   54		TransferSPI(cmd.byte6);
                           A   415    .line 54
00008E 880EFF              A   416    	LDX	R0,-1(RR14)
ZiLOG Z8 Encore! Macro Assembler Version 2.45 (06120402)                                         14-Jan-09     10:50:23     page:   9


PC     Object              I  Line    Source mmc.src
000091 70E0                A   417    	PUSH	R0
000093 D6 0000             A   418    	CALL	_TransferSPI
000096 50E0                A   419    	POP	R0
                           A   420    ;   55	
                           A   421    ;   56	}
                           A   422    .line 56
000098 D6 0000             A   423    	CALL	__b_framereset
00009B AF                  A   424    	RET	
                           A   425    .endfunc "CommandMMC",56,"_CommandMMC"
                           A   426    	SEGMENT ROM_DATA
                           A   427    
                           A   428    
                           A   429    ;**************************** _WaitResponseMMC ***************************
                           A   430    ;Name                         Addr/Register   Size   Type
                           A   431    ;_TransferSPI                        IMPORT  -----   function
                           A   432    ;response                             R15-1      0   variable
                           A   433    
                           A   434    

⌨️ 快捷键说明

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