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

📄 mmc.cod

📁 ARM读写SD卡程序
💻 COD
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615 

	TTL	c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\.\mmc.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "


  00000			 AREA	 |.data|, DATA
	 COMMON	|multipleRdWr|, 0x2

	EXPORT	|mmc_init|
	EXPORT	|??_C@_1CM@IFBH@?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr?$AAe?$AAd?$AA?$AN@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EK@BDCG@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA_?$AAs?$AAe?$AAt?$AAu@| [ DATA ] ; `string'
	IMPORT	|NKDbgPrintfW|
	IMPORT	|mmc_hw_init|
	IMPORT	|clear_controller_structure|
	IMPORT	|mmc_init_setup|
; File c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\mmc.c

  00000			 AREA	 |.text| { |mmc_init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_init|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_init| } ; comdat associative
|$T36609| DCD	|mmc_init|
	DCD	0x40001601

  00000			 AREA	 |.rdata| { |??_C@_1CM@IFBH@?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr?$AAe?$AAd?$AA?$AN@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@IFBH@?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr?$AAe?$AAd?$AA?$AN@| DCB "m"
	DCB	0x0, "m", 0x0, "c", 0x0, "_", 0x0, "i", 0x0, "n", 0x0, "i"
	DCB	0x0, "t", 0x0, " ", 0x0, "i", 0x0, "s", 0x0, " ", 0x0, "e"
	DCB	0x0, "n", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "e", 0x0, "d"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1EK@BDCG@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA_?$AAs?$AAe?$AAt?$AAu@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EK@BDCG@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA_?$AAs?$AAe?$AAt?$AAu@| DCB "B"
	DCB	0x0, "e", 0x0, "f", 0x0, "o", 0x0, "r", 0x0, "e", 0x0, " "
	DCB	0x0, "m", 0x0, "m", 0x0, "c", 0x0, "_", 0x0, "i", 0x0, "n"
	DCB	0x0, "i", 0x0, "t", 0x0, "_", 0x0, "s", 0x0, "e", 0x0, "t"
	DCB	0x0, "u", 0x0, "p", 0x0, "(", 0x0, ")", 0x0, " ", 0x0, "i"
	DCB	0x0, "s", 0x0, " ", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, "e"
	DCB	0x0, "r", 0x0, "e", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_init| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_init| PROC

; 53   : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004		 |$M36607|

; 54   :     INT16 i;
; 55   : 
; 56   : 	RETAILMSG(1, (TEXT("mmc_init is entered\r\n")));

  00004	e59f0048	 ldr       r0, [pc, #0x48]
  00008	eb000000	 bl        NKDbgPrintfW

; 57   :         
; 58   :         clear_controller_structure();

  0000c	eb000000	 bl        clear_controller_structure

; 59   : 
; 60   :         
; 61   :         for (i = 0; i < N_INTERFACES; i++)

  00010	e3a03000	 mov       r3, #0
  00014	e1a04003	 mov       r4, r3
  00018		 |$L36531|

; 62   :         mmc_hw_init(i);

  00018	e1a00003	 mov       r0, r3
  0001c	eb000000	 bl        mmc_hw_init
  00020	e2843001	 add       r3, r4, #1
  00024	e1a00803	 mov       r0, r3, lsl #16
  00028	e1a03840	 mov       r3, r0, asr #16
  0002c	e1a01803	 mov       r1, r3, lsl #16
  00030	e1a04841	 mov       r4, r1, asr #16
  00034	e3540001	 cmp       r4, #1
  00038	bafffff6	 blt       |$L36531|

; 63   : 
; 64   :         
; 65   :         
; 66   : 		RETAILMSG(1, (TEXT("Before mmc_init_setup() is entered\r\n")));

  0003c	e59f000c	 ldr       r0, [pc, #0xC]
  00040	eb000000	 bl        NKDbgPrintfW

; 67   :         return (mmc_init_setup());

  00044	eb000000	 bl        mmc_init_setup

; 68   : }

  00048	e8bd4010	 ldmia     sp!, {r4, lr}
  0004c	e12fff1e	 bx        lr
  00050		 |$L36611|
  00050	00000000	 DCD       |??_C@_1EK@BDCG@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA_?$AAs?$AAe?$AAt?$AAu@|
  00054	00000000	 DCD       |??_C@_1CM@IFBH@?$AAm?$AAm?$AAc?$AA_?$AAi?$AAn?$AAi?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr?$AAe?$AAd?$AA?$AN@|
  00058		 |$M36608|

			 ENDP  ; |mmc_init|

	EXPORT	|mmc_drive_open|
	IMPORT	|mmedia_drive_open|

  00000			 AREA	 |.text| { |mmc_drive_open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_drive_open|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_drive_open| } ; comdat associative
|$T36618| DCD	|mmc_drive_open|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_drive_open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_drive_open| PROC

; 87   : {

  00000	e52de004	 str       lr, [sp, #-4]!
  00004		 |$M36616|

; 88   :     return(mmedia_drive_open(driveno));

  00004	eb000000	 bl        mmedia_drive_open

; 89   : }

  00008	e8bd4000	 ldmia     sp!, {lr}
  0000c	e12fff1e	 bx        lr
  00010		 |$M36617|

			 ENDP  ; |mmc_drive_open|

	EXPORT	|mmc_drive_close|
	IMPORT	|mmedia_drive_close|

  00000			 AREA	 |.text| { |mmc_drive_close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_drive_close|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_drive_close| } ; comdat associative
|$T36626| DCD	|mmc_drive_close|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_drive_close| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_drive_close| PROC

; 108  : {

  00000	e52de004	 str       lr, [sp, #-4]!
  00004		 |$M36624|

; 109  :     return(mmedia_drive_close(driveno));

  00004	eb000000	 bl        mmedia_drive_close

; 110  : }

  00008	e8bd4000	 ldmia     sp!, {lr}
  0000c	e12fff1e	 bx        lr
  00010		 |$M36625|

			 ENDP  ; |mmc_drive_close|

	EXPORT	|mmc_read_serial|
	IMPORT	|mmedia_read_serial|

  00000			 AREA	 |.text| { |mmc_read_serial| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_read_serial|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_read_serial| } ; comdat associative
|$T36635| DCD	|mmc_read_serial|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_read_serial| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_read_serial| PROC

; 129  : {

  00000	e52de004	 str       lr, [sp, #-4]!
  00004		 |$M36633|

; 130  :     return(mmedia_read_serial(driveno, idDrvPtr));

  00004	eb000000	 bl        mmedia_read_serial

; 131  : }

  00008	e8bd4000	 ldmia     sp!, {lr}
  0000c	e12fff1e	 bx        lr
  00010		 |$M36634|

			 ENDP  ; |mmc_read_serial|

	EXPORT	|mmc_read|
	IMPORT	|mmedia_io|

  00000			 AREA	 |.text| { |mmc_read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_read|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_read| } ; comdat associative
|$T36646| DCD	|mmc_read|
	DCD	0x40000b02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_read| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_read| PROC

; 149  : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004	e24dd004	 sub       sp, sp, #4
  00008		 |$M36644|

; 150  :     if (mmedia_io(driveno, startingSector, buff, numSectors, READING))

  00008	e3a04001	 mov       r4, #1
  0000c	e58d4000	 str       r4, [sp]
  00010	eb000000	 bl        mmedia_io
  00014	e3500000	 cmp       r0, #0

; 151  :         return (NO);

  00018	13a04000	 movne     r4, #0
  0001c	e1a00004	 mov       r0, r4

; 152  : 
; 153  :     return(YES);
; 154  : }

  00020	e28dd004	 add       sp, sp, #4
  00024	e8bd4010	 ldmia     sp!, {r4, lr}
  00028	e12fff1e	 bx        lr
  0002c		 |$M36645|

			 ENDP  ; |mmc_read|

	EXPORT	|mmc_write|

  00000			 AREA	 |.text| { |mmc_write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_write|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_write| } ; comdat associative
|$T36657| DCD	|mmc_write|
	DCD	0x40000b02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_write| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_write| PROC

; 172  : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004	e24dd004	 sub       sp, sp, #4
  00008		 |$M36655|

; 173  :         if (mmedia_io(driveno, startingSector, buff, numSectors, WRITING))

  00008	e3a04002	 mov       r4, #2
  0000c	e58d4000	 str       r4, [sp]
  00010	eb000000	 bl        mmedia_io
  00014	e3500000	 cmp       r0, #0

; 174  :         return (NO);

  00018	e3a00000	 mov       r0, #0

; 175  : 
; 176  :     return(YES);

  0001c	03a00001	 moveq     r0, #1

; 177  : }

  00020	e28dd004	 add       sp, sp, #4
  00024	e8bd4010	 ldmia     sp!, {r4, lr}
  00028	e12fff1e	 bx        lr
  0002c		 |$M36656|

			 ENDP  ; |mmc_write|

	EXPORT	|mmc_erase|

  00000			 AREA	 |.text| { |mmc_erase| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$mmc_erase|, PDATA, SELECTION=5, ASSOC=|.text| { |mmc_erase| } ; comdat associative
|$T36667| DCD	|mmc_erase|
	DCD	0x40000d02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |mmc_erase| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |mmc_erase| PROC

; 196  : {

  00000	e52de004	 str       lr, [sp, #-4]!
  00004	e24dd004	 sub       sp, sp, #4
  00008		 |$M36665|

; 197  :         if (mmedia_io(driveno, startingSector, SDNULL, numSectors, ERASING))

  00008	e3a03003	 mov       r3, #3
  0000c	e58d3000	 str       r3, [sp]
  00010	e1a03002	 mov       r3, r2
  00014	e3a02000	 mov       r2, #0
  00018	eb000000	 bl        mmedia_io
  0001c	e3500000	 cmp       r0, #0

; 198  :         return (NO);

  00020	e3a00000	 mov       r0, #0

; 199  : 
; 200  :     return(YES);

  00024	03a00001	 moveq     r0, #1

; 201  : }

  00028	e28dd004	 add       sp, sp, #4
  0002c	e8bd4000	 ldmia     sp!, {lr}
  00030	e12fff1e	 bx        lr
  00034		 |$M36666|

			 ENDP  ; |mmc_erase|

	END

⌨️ 快捷键说明

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