?? spihw.cod
字號(hào):
001e4 e3a02000 mov r2, #0
001e8 |$L38924|
; 405 : return FALSE;
001e8 e1a00002 mov r0, r2
; 465 : }
001ec e28dd010 add sp, sp, #0x10
001f0 e8bd4030 ldmia sp!, {r4, r5, lr}
001f4 e12fff1e bx lr
001f8 |$L39561|
001f8 00000000 DCD |??_C@_1II@GNDKDFJK@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@|
001fc 00000000 DCD |useSSPPort|
00200 00000000 DCD |??_C@_1CE@MPDJICKO@?$AAD?$AAM?$AAA?$AA_?$AAR?$AAe?$AAm?$AAo?$AAv?$AAe?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@|
00204 00000000 DCD |??_C@_1CE@PKEIJDNP@?$AAD?$AAM?$AAA?$AA_?$AAC?$AAo?$AAn?$AAf?$AAi?$AAg?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@|
00208 00000000 DCD |??_C@_1CC@PDLHBDMG@?$AAD?$AAM?$AAA?$AA_?$AAS?$AAe?$AAt?$AAU?$AAp?$AAC?$AAh?$AAa?$AAn?$AAn?$AAe?$AAl?$AA?$AA@|
0020c 00000000 DCD |??_C@_1IG@CPCFIGAI@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@|
00210 00000000 DCD |??_C@_1JC@FGCOOMKG@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@|
00214 00000000 DCD |??_C@_1HK@GOKELIML@?$AAS?$AAm?$AAs?$AAS?$AAp?$AAi?$AA?3?$AA?5?$AAa?$AAc?$AAt?$AAi?$AAv?$AAa?$AAt?$AAe?$AAD?$AAM?$AAA?$AAS@|
00218 |$M39557|
ENDP ; |activateDMAService|
00000 AREA |.text| { |deactivateDMAService| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$deactivateDMAService|, PDATA, SELECTION=5, ASSOC=|.text| { |deactivateDMAService| } ; comdat associative
|$T39570| DCD |$L39569|
DCD 0x40001c01
; Function compile flags: /Ogsy
00000 AREA |.text| { |deactivateDMAService| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |deactivateDMAService| PROC
; 469 : {
00000 |$L39569|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M39567|
00004 e1a04000 mov r4, r0
; 470 : if (pSpiPhy->dmaService != NULL)
00008 e5943068 ldr r3, [r4, #0x68]
0000c e1b02003 movs r2, r3
00010 0a000013 beq |$L38970|
; 471 : {
; 472 : if (pSpiPhy->dmaService->rxDmaDevice)
00014 e5923004 ldr r3, [r2, #4]
00018 e1b00003 movs r0, r3
; 473 : pSpiPhy->dmaService->dmaRemoveChannel(pSpiPhy->dmaService->rxDmaDevice);
0001c 15923014 ldrne r3, [r2, #0x14]
00020 11a0e00f movne lr, pc
00024 112fff13 bxne r3
; 474 : if (pSpiPhy->dmaService->txDmaDevice)
00028 e5942068 ldr r2, [r4, #0x68]
0002c e5923008 ldr r3, [r2, #8]
00030 e1b00003 movs r0, r3
; 475 : pSpiPhy->dmaService->dmaRemoveChannel(pSpiPhy->dmaService->txDmaDevice);
00034 15923014 ldrne r3, [r2, #0x14]
00038 11a0e00f movne lr, pc
0003c 112fff13 bxne r3
; 476 : if (pSpiPhy->dmaService->hdl)
00040 e5942068 ldr r2, [r4, #0x68]
00044 e5923000 ldr r3, [r2]
00048 e3530000 cmp r3, #0
; 477 : FreeLibrary(pSpiPhy->dmaService->hdl);
0004c 11a00003 movne r0, r3
00050 1b000000 blne FreeLibrary
; 478 : LocalFree(pSpiPhy->dmaService);
00054 e5940068 ldr r0, [r4, #0x68]
00058 eb000000 bl LocalFree
; 479 : pSpiPhy->dmaService = NULL;
0005c e3a03000 mov r3, #0
00060 e5843068 str r3, [r4, #0x68]
00064 |$L38970|
; 480 : }
; 481 : return TRUE;
00064 e3a00001 mov r0, #1
; 482 : }
00068 e8bd4010 ldmia sp!, {r4, lr}
0006c e12fff1e bx lr
00070 |$M39568|
ENDP ; |deactivateDMAService|
EXPORT |SpiRxIST|
IMPORT |InterruptDone|
IMPORT |WaitForSingleObject|
00000 AREA |.text| { |SpiRxIST| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SpiRxIST|, PDATA, SELECTION=5, ASSOC=|.text| { |SpiRxIST| } ; comdat associative
|$T39584| DCD |$L39583|
DCD 0x40001701
; Function compile flags: /Ogsy
00000 AREA |.text| { |SpiRxIST| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SpiRxIST| PROC
; 486 : {
00000 |$L39583|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M39581|
00004 e1a04000 mov r4, r0
; 487 : PSPIPHY pSpiPhy = (PSPIPHY)pArg;
; 488 :
; 489 : pSpiPhy->RxInterruptCnt = 0;
; 490 : while (1)
; 491 : {
; 492 : WaitForSingleObject(pSpiPhy->SmsInterruptEvent,INFINITE);
00008 e3a03000 mov r3, #0
0000c e5843080 str r3, [r4, #0x80]
; 493 : if (pSpiPhy->drvActive == FALSE)
00010 ea000009 b |$L39580|
00014 |$L38982|
; 494 : {
; 495 : return;
; 496 : }
; 497 : pSpiPhy->RxInterruptCnt++;
00014 e5943080 ldr r3, [r4, #0x80]
; 498 : if (pSpiPhy->InterruptCallback)
00018 e5942098 ldr r2, [r4, #0x98]
0001c e2833001 add r3, r3, #1
00020 e3520000 cmp r2, #0
; 499 : pSpiPhy->InterruptCallback(pSpiPhy->intrContext);
00024 1594008c ldrne r0, [r4, #0x8C]
00028 e5843080 str r3, [r4, #0x80]
0002c 11a0e00f movne lr, pc
00030 112fff12 bxne r2
; 500 :
; 501 : InterruptDone(pSpiPhy->spiSysIntr);
00034 e594007c ldr r0, [r4, #0x7C]
00038 eb000000 bl InterruptDone
0003c |$L39580|
0003c e5940078 ldr r0, [r4, #0x78]
00040 e3e01000 mvn r1, #0
00044 eb000000 bl WaitForSingleObject
00048 e5943084 ldr r3, [r4, #0x84]
0004c e3530000 cmp r3, #0
00050 1affffef bne |$L38982|
; 502 :
; 503 : }
; 504 : }
00054 e8bd4010 ldmia sp!, {r4, lr}
00058 e12fff1e bx lr
0005c |$M39582|
ENDP ; |SpiRxIST|
EXPORT |loopBackTest1|
EXPORT |??_C@_1DM@INIOFAAJ@?$AA?$CF?$AAd?$AA?5?$AAl?$AAo?$AAo?$AAp?$AAB?$AAa?$AAc?$AAk?$AAT?$AAe?$AAs?$AAt?$AA2?$AA2?$AA2?$AA?5?$AAg@| [ DATA ] ; `string'
EXPORT |??_C@_1DC@GMHPLEEB@?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAb?$AAa?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAn?$AAt?$AA?5@| [ DATA ] ; `string'
IMPORT |Sleep|
IMPORT |memset|
00000 AREA |.text| { |loopBackTest1| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$loopBackTest1|, PDATA, SELECTION=5, ASSOC=|.text| { |loopBackTest1| } ; comdat associative
|$T39617| DCD |$L39616|
DCD 0x40005002
00000 AREA |.rdata| { |??_C@_1DC@GMHPLEEB@?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAb?$AAa?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAn?$AAt?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DC@GMHPLEEB@?$AAl?$AAo?$AAo?$AAp?$AA?5?$AAb?$AAa?$AAc?$AAk?$AA?5?$AAe?$AAr?$AAr?$AAo?$AAr?$AA?5?$AAc?$AAn?$AAt?$AA?5@| DCB "l"
DCB 0x0, "o", 0x0, "o", 0x0, "p", 0x0, " ", 0x0, "b", 0x0, "a"
DCB 0x0, "c", 0x0, "k", 0x0, " ", 0x0, "e", 0x0, "r", 0x0, "r"
DCB 0x0, "o", 0x0, "r", 0x0, " ", 0x0, "c", 0x0, "n", 0x0, "t"
DCB 0x0, " ", 0x0, ":", 0x0, "%", 0x0, "d", 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DM@INIOFAAJ@?$AA?$CF?$AAd?$AA?5?$AAl?$AAo?$AAo?$AAp?$AAB?$AAa?$AAc?$AAk?$AAT?$AAe?$AAs?$AAt?$AA2?$AA2?$AA2?$AA?5?$AAg@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DM@INIOFAAJ@?$AA?$CF?$AAd?$AA?5?$AAl?$AAo?$AAo?$AAp?$AAB?$AAa?$AAc?$AAk?$AAT?$AAe?$AAs?$AAt?$AA2?$AA2?$AA2?$AA?5?$AAg@| DCB "%"
DCB 0x0, "d", 0x0, " ", 0x0, "l", 0x0, "o", 0x0, "o", 0x0, "p"
DCB 0x0, "B", 0x0, "a", 0x0, "c", 0x0, "k", 0x0, "T", 0x0, "e"
DCB 0x0, "s", 0x0, "t", 0x0, "2", 0x0, "2", 0x0, "2", 0x0, " "
DCB 0x0, "g", 0x0, "e", 0x0, "t", 0x0, " ", 0x0, "0", 0x0, "x"
DCB 0x0, "%", 0x0, "x", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |loopBackTest1| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |loopBackTest1| PROC
; 508 : {
00000 |$L39616|
00000 e92d41f0 stmdb sp!, {r4 - r8, lr}
00004 e24ddc02 sub sp, sp, #2, 24
00008 |$M39614|
00008 e1a07000 mov r7, r0
; 509 : int i;
; 510 : DWORD wrd;
; 511 : DWORD Tx_loopbuf[64]= {0};
0000c e3a03000 mov r3, #0
00010 e3a020fc mov r2, #0xFC
00014 e3a01000 mov r1, #0
00018 e28d0004 add r0, sp, #4
0001c e58d3000 str r3, [sp]
00020 eb000000 bl memset
; 512 : DWORD Rx_loopbuf[64]= {0};
; 513 : DWORD err_cnt=0;
; 514 : for ( i= 0; i< 64; i ++)
; 515 : {
; 516 : Tx_loopbuf[i] = (4*i+3)<<12| (4*i+2)<<8| (4*i+1)<<4|4*i;
; 517 : Rx_loopbuf[i] = 0;
00024 e28d3c01 add r3, sp, #1, 24
00028 e283ec01 add lr, r3, #1, 24
0002c e3a08000 mov r8, #0
00030 e3a02000 mov r2, #0
00034 e3a04010 mov r4, #0x10
00038 e3a05c02 mov r5, #2, 24
0003c e3a01a03 mov r1, #3, 20
00040 e3a00000 mov r0, #0
00044 |$L39597|
00044 e4830004 str r0, [r3], #4
00048 e153000e cmp r3, lr
0004c 1afffffc bne |$L39597|
00050 e3a00601 mov r0, #1, 12
00054 e3800a03 orr r0, r0, #3, 20
00058 e28de000 add lr, sp, #0
0005c |$L39598|
0005c e1813005 orr r3, r1, r5
00060 e1833004 orr r3, r3, r4
00064 e1833002 orr r3, r3, r2
00068 e2811901 add r1, r1, #1, 18
0006c e782300e str r3, [r2, +lr]
00070 e2822004 add r2, r2, #4
00074 e2855b01 add r5, r5, #1, 22
00078 e2844040 add r4, r4, #0x40
0007c e1510000 cmp r1, r0
00080 bafffff5 blt |$L39598|
; 518 : }
; 519 : //send 256 bytes
; 520 : for(i=0; i<64; i++)
00084 e28d4000 add r4, sp, #0
00088 e3a05040 mov r5, #0x40
0008c |$L38998|
; 521 : {
; 522 : // wrd=ReadWriteDWord(pSpiPhy,0xa55ae77e+i);
; 523 : wrd=ReadWriteDWord(pSpiPhy, (DWORD)Tx_loopbuf[i]);
0008c e4941004 ldr r1, [r4], #4
00090 e1a00007 mov r0, r7
00094 eb000000 bl ReadWriteDWord
00098 e2555001 subs r5, r5, #1
0009c 1afffffa bne |$L38998|
; 524 :
; 525 : }
; 526 : Sleep(100);
000a0 e3a00064 mov r0, #0x64
000a4 eb000000 bl Sleep
; 527 : //send and receive 256 bytes
; 528 : for(i=0; i<64; i++)
000a8 e3a04000 mov r4, #0
000ac e28d5000 add r5, sp, #0
000b0 e28d6c01 add r6, sp, #1, 24
000b4 |$L39002|
; 529 : {
; 530 : // wrd = ReadWriteDWord(pSpiPhy,0xa55ae77e+i);
; 531 : wrd=ReadWriteDWord(pSpiPhy, (DWORD)Tx_loopbuf[i]);
000b4 e7951104 ldr r1, [r5, +r4, lsl #2]
000b8 e1a00007 mov r0, r7
000bc eb000000 bl ReadWriteDWord
000c0 e1a03000 mov r3, r0
; 532 : Rx_loopbuf[i] = wrd;
; 533 : RETAILMSG( 1, (TEXT("%d loopBackTest222 get 0x%x\r\n"),i,wrd));
000c4 e59f0070 ldr r0, [pc, #0x70]
000c8 e1a02003 mov r2, r3
000cc e1a01004 mov r1, r4
000d0 e7863104 str r3, [r6, +r4, lsl #2]
000d4 eb000000 bl NKDbgPrintfW
000d8 e2844001 add r4, r4, #1
000dc e3540040 cmp r4, #0x40
000e0 bafffff3 blt |$L39002|
; 534 : }
; 535 :
; 536 : for(i=0; i<64; i++)
000e4 e3a05000 mov r5, #0
000e8 e28d6c01 add r6, sp, #1, 24
000ec e28d7000 add r7, sp, #0
000f0 |$L39007|
; 537 : {
; 538 : RETAILMSG( 1, (TEXT("%d loopBackTest222 get 0x%x\r\n"),i, Rx_loopbuf[i]));
000f0 e7964105 ldr r4, [r6, +r5, lsl #2]
000f4 e59f0040 ldr r0, [pc, #0x40]
000f8 e1a01005 mov r1, r5
000fc e1a02004 mov r2, r4
00100 eb000000 bl NKDbgPrintfW
; 539 :
; 540 : if (Rx_loopbuf[i] != Tx_loopbuf[i])
00104 e7973105 ldr r3, [r7, +r5, lsl #2]
00108 e1540003 cmp r4, r3
; 541 : {
; 542 : err_cnt ++;
; 543 : RETAILMSG( 1, (TEXT("loop back error cnt :%d\n"),err_cnt));
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -