?? spihw.cod
字號:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4345
TTL E:\WM604\PLATFORM\SEUICBSP\SRC\DRIVERS\DMBDRV\SpiDrv\.\SpiHw.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |v_pClkRegs| [ DATA ]
EXPORT |v_pGPIORegisters| [ DATA ]
00000 AREA |.bss|, NOINIT
|v_pClkRegs| % 0x4
|v_pGPIORegisters| % 0x4
00000 AREA |.data|, DATA
COMMON |useSSPPort|, 0x4
EXPORT |SetEvent|
IMPORT |EventModify|
; File e:\wm604\public\common\sdk\inc\kfuncs.h
00000 AREA |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$SetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |SetEvent| } ; comdat associative
|$T39461| DCD |$L39460|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |SetEvent| PROC
; 186 : _inline BOOL SetEvent(HANDLE h) {
00000 |$L39460|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M39458|
; 187 : return EventModify(h,EVENT_SET);
00004 e3a01003 mov r1, #3
00008 eb000000 bl EventModify
; 188 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M39459|
ENDP ; |SetEvent|
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\spidrv\spihw.c
00000 AREA |.text| { |GetSpiPortNum| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$GetSpiPortNum|, PDATA, SELECTION=5, ASSOC=|.text| { |GetSpiPortNum| } ; comdat associative
|$T39470| DCD |$L39469|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |GetSpiPortNum| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |GetSpiPortNum| PROC
; 184 : {
00000 |$L39469|
00000 |$M39467|
; 185 : DWORD SpiPortNum;
; 186 :
; 187 : if(SSPCLK==23)
; 188 : SpiPortNum = 1;
; 189 : else if(SSPCLK==36)
; 190 : SpiPortNum = 2;
; 191 : else if(SSPCLK==52)
; 192 : SpiPortNum = 3;
; 193 : else
; 194 : SpiPortNum = 4;
; 195 :
; 196 : return SpiPortNum;
00000 e3a00001 mov r0, #1
; 197 : }
00004 e12fff1e bx lr
00008 |$M39468|
ENDP ; |GetSpiPortNum|
00000 AREA |.text| { |SSPWriteDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SSPWriteDWord|, PDATA, SELECTION=5, ASSOC=|.text| { |SSPWriteDWord| } ; comdat associative
|$T39479| DCD |$L39478|
DCD 0x40000900
; Function compile flags: /Ogsy
00000 AREA |.text| { |SSPWriteDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SSPWriteDWord| PROC
; 201 : {
00000 |$L39478|
00000 |$M39476|
; 202 :
; 203 : DWORD sb;
; 204 : sb = SWAP32(dwVal);
; 205 : pSpiPhy->sspCtrl->ssdr = sb;
00000 e2013cff and r3, r1, #0xFF, 24
00004 e1832801 orr r2, r3, r1, lsl #16
00008 e20138ff and r3, r1, #0xFF, 16
0000c e590006c ldr r0, [r0, #0x6C]
00010 e1833821 orr r3, r3, r1, lsr #16
00014 e1a02402 mov r2, r2, lsl #8
00018 e1823423 orr r3, r2, r3, lsr #8
0001c e5803010 str r3, [r0, #0x10]
; 206 : }
00020 e12fff1e bx lr
00024 |$M39477|
ENDP ; |SSPWriteDWord|
00000 AREA |.text| { |SSPReadDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SSPReadDWord|, PDATA, SELECTION=5, ASSOC=|.text| { |SSPReadDWord| } ; comdat associative
|$T39490| DCD |$L39489|
DCD 0x40000900
; Function compile flags: /Ogsy
00000 AREA |.text| { |SSPReadDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SSPReadDWord| PROC
; 210 : {
00000 |$L39489|
00000 |$M39487|
; 211 : DWORD sb;
; 212 : DWORD v = pSpiPhy->sspCtrl->ssdr;
00000 e590306c ldr r3, [r0, #0x6C]
00004 e5930010 ldr r0, [r3, #0x10]
; 213 : sb = SWAP32(v);
; 214 : return sb;
00008 e20038ff and r3, r0, #0xFF, 16
0000c e1833820 orr r3, r3, r0, lsr #16
00010 e2002cff and r2, r0, #0xFF, 24
00014 e1a01423 mov r1, r3, lsr #8
00018 e1823800 orr r3, r2, r0, lsl #16
0001c e1810403 orr r0, r1, r3, lsl #8
; 215 : }
00020 e12fff1e bx lr
00024 |$M39488|
ENDP ; |SSPReadDWord|
00000 AREA |.text| { |ReadWriteDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadWriteDWord|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadWriteDWord| } ; comdat associative
|$T39516| DCD |$L39515|
DCD 0x40002a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |ReadWriteDWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadWriteDWord| PROC
; 219 : {
00000 |$L39515|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M39513|
00004 e1a05001 mov r5, r1
; 220 : DWORD dwRetVal;
; 221 : DWORD timeout;
; 222 :
; 223 :
; 224 : timeout = POLLING_TIMEOUT;
00008 e3a0ea7a mov lr, #0x7A, 20
0000c e38eee12 orr lr, lr, #0x12, 28
00010 e590406c ldr r4, [r0, #0x6C]
00014 e1a0200e mov r2, lr
00018 |$L38875|
; 225 : //Loop while there is any data in the fifo
; 226 : while(!(pSpiPhy->sspCtrl->ssr & SSSR_TNF) && timeout--);
00018 e5943008 ldr r3, [r4, #8]
0001c e3130004 tst r3, #4
00020 1a000002 bne |$L38876|
00024 e3520000 cmp r2, #0
00028 e2422001 sub r2, r2, #1
0002c 1afffff9 bne |$L38875|
00030 |$L38876|
; 227 : if (timeout == -1)
00030 e3720001 cmn r2, #1
; 228 : return 0;
00034 0a00000f beq |$L39512|
; 229 : SSPWriteDWord(pSpiPhy,dwInVal);
00038 e2053cff and r3, r5, #0xFF, 24
0003c e1833805 orr r3, r3, r5, lsl #16
00040 e20528ff and r2, r5, #0xFF, 16
00044 e1a01403 mov r1, r3, lsl #8
00048 e1823825 orr r3, r2, r5, lsr #16
0004c e1813423 orr r3, r1, r3, lsr #8
00050 e5843010 str r3, [r4, #0x10]
; 230 :
; 231 : timeout = POLLING_TIMEOUT;
00054 e590206c ldr r2, [r0, #0x6C]
00058 |$L38879|
; 232 : while(!(pSpiPhy->sspCtrl->ssr & SSSR_RNE) && timeout--);
00058 e5923008 ldr r3, [r2, #8]
0005c e3130008 tst r3, #8
00060 1a000002 bne |$L38880|
00064 e35e0000 cmp lr, #0
00068 e24ee001 sub lr, lr, #1
0006c 1afffff9 bne |$L38879|
00070 |$L38880|
; 233 : if (timeout == -1)
00070 e37e0001 cmn lr, #1
00074 1a000002 bne |$L38881|
00078 |$L39512|
; 234 : return 0;
00078 e3a00000 mov r0, #0
; 239 : }
0007c e8bd4030 ldmia sp!, {r4, r5, lr}
00080 e12fff1e bx lr
00084 |$L38881|
; 235 : //RETAILMSG(1, (TEXT("ReadWriteDWord call read ..\r\n")));
; 236 : dwRetVal = SSPReadDWord(pSpiPhy);
00084 e5920010 ldr r0, [r2, #0x10]
; 237 :
; 238 : return dwRetVal;
00088 e20038ff and r3, r0, #0xFF, 16
0008c e1833820 orr r3, r3, r0, lsr #16
00090 e2002cff and r2, r0, #0xFF, 24
00094 e1a01423 mov r1, r3, lsr #8
00098 e1823800 orr r3, r2, r0, lsl #16
0009c e1810403 orr r0, r1, r3, lsl #8
; 239 : }
000a0 e8bd4030 ldmia sp!, {r4, r5, lr}
000a4 e12fff1e bx lr
000a8 |$M39514|
ENDP ; |ReadWriteDWord|
; File e:\wm604\public\common\sdk\inc\kfuncs.h
00000 AREA |.text| { |endOfDmaTransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$endOfDmaTransfer|, PDATA, SELECTION=5, ASSOC=|.text| { |endOfDmaTransfer| } ; comdat associative
|$T39527| DCD |$L39526|
DCD 0x40000501
; Function compile flags: /Ogsy
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\spidrv\spihw.c
00000 AREA |.text| { |endOfDmaTransfer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |endOfDmaTransfer| PROC
; 243 : {
00000 |$L39526|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M39524|
; 244 : //RETAILMSG(1, (TEXT("SmsSpi: DMA transaction end.\r\n")));
; 245 : SetEvent((HANDLE)transactionId);
00004 e3a01003 mov r1, #3
00008 eb000000 bl EventModify
; 246 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M39525|
ENDP ; |endOfDmaTransfer|
EXPORT |??_C@_1GO@DOKPPNLL@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| [ DATA ] ; `string'
EXPORT |??_C@_1CE@IKFNODDM@?$AAD?$AAm?$AAa?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAs?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1IK@EOBAPHCE@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| [ DATA ] ; `string'
EXPORT |??_C@_1GG@LOGBBJNB@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| [ DATA ] ; `string'
EXPORT |??_C@_17KACEIPNC@?$AAK?$AAe?$AAy?$AA?$AA@| [ DATA ] ; `string'
IMPORT |LocalAlloc|
IMPORT |LocalFree|
IMPORT |RegCloseKey|
IMPORT |RegOpenKeyExW|
IMPORT |RegQueryValueExW|
IMPORT |NKDbgPrintfW|
00000 AREA |.text| { |spiPhyGetRegistrySettings| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$spiPhyGetRegistrySettings|, PDATA, SELECTION=5, ASSOC=|.text| { |spiPhyGetRegistrySettings| } ; comdat associative
|$T39543| DCD |$L39542|
DCD 0x40005402
00000 AREA |.rdata| { |??_C@_1CE@IKFNODDM@?$AAD?$AAm?$AAa?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAs?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CE@IKFNODDM@?$AAD?$AAm?$AAa?$AAS?$AAe?$AAr?$AAv?$AAi?$AAc?$AAe?$AAs?$AAP?$AAl?$AAu?$AAg?$AAi?$AAn?$AA?$AA@| DCB "D"
DCB 0x0, "m", 0x0, "a", 0x0, "S", 0x0, "e", 0x0, "r", 0x0, "v"
DCB 0x0, "i", 0x0, "c", 0x0, "e", 0x0, "s", 0x0, "P", 0x0, "l"
DCB 0x0, "u", 0x0, "g", 0x0, "i", 0x0, "n", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GO@DOKPPNLL@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GO@DOKPPNLL@?$AAS?$AAi?$AAa?$AAn?$AAo?$AA?5?$AAS?$AAP?$AAI?$AA?5?$AA?9?$AA?5?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?$CB?$AA?$CB?$AA?5@| DCB "S"
DCB 0x0, "i", 0x0, "a", 0x0, "n", 0x0, "o", 0x0, " ", 0x0, "S"
DCB 0x0, "P", 0x0, "I", 0x0, " ", 0x0, "-", 0x0, " ", 0x0, "E"
DCB 0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, "!", 0x0, "!"
DCB 0x0, " ", 0x0, "C", 0x0, "o", 0x0, "u", 0x0, "l", 0x0, "d"
DCB 0x0, " ", 0x0, "n", 0x0, "o", 0x0, "t", 0x0, " ", 0x0, "g"
DCB 0x0, "e", 0x0, "t", 0x0, " ", 0x0, "r", 0x0, "e", 0x0, "g"
DCB 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "r", 0x0, "y", 0x0, " "
DCB 0x0, "k", 0x0, "e", 0x0, "y", 0x0, " ", 0x0, "n", 0x0, "a"
DCB 0x0, "m", 0x0, "e", 0x0, ".", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -