📄 dm9000.cod
字号:
; File e:\wince500\platform\berrydale\src\drivers\dm9000\dm9000.cpp
00000 AREA |.text| { |?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ| } ; comdat associative
|$T36593| DCD |$L36592|
DCD 0x40000300
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ| PROC ; C_DM9000::DeviceConfigureParameters
; 100 : {
00000 |$L36592|
00000 |$M36590|
; 101 : return (PCONFIG_PARAMETER)&g_szDm9ConfigParams[0];
00000 e59f0000 ldr r0, [pc]
; 102 : }
00004 e12fff1e bx lr
00008 |$L36595|
00008 00000000 DCD |?g_szDm9ConfigParams@@3PAU_CONFIG_PARAMETER@@A|
0000c |$M36591|
ENDP ; |?DeviceConfigureParameters@C_DM9000@@UAAPAU_CONFIG_PARAMETER@@XZ|, C_DM9000::DeviceConfigureParameters
00000 AREA |.text| { |?DeviceSetEepromFormat@C_DM9000@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceSetEepromFormat@C_DM9000@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceSetEepromFormat@C_DM9000@@UAAXXZ| } ; comdat associative
|$T36602| DCD |$L36601|
DCD 0x40000700
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceSetEepromFormat@C_DM9000@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceSetEepromFormat@C_DM9000@@UAAXXZ| PROC ; C_DM9000::DeviceSetEepromFormat
; 105 : {
00000 |$L36601|
00000 |$M36599|
; 106 : m_szEepromFormat[EID_MAC_ADDRESS] = 0;
00000 e3a03000 mov r3, #0
; 107 : m_szEepromFormat[EID_VENDOR_ID] = 8;
00004 e3a02008 mov r2, #8
; 108 : m_szEepromFormat[EID_PRODUCT_ID] = 10;
00008 e3a0100a mov r1, #0xA
0000c e58030bc str r3, [r0, #0xBC]
00010 e58020c0 str r2, [r0, #0xC0]
00014 e58010c4 str r1, [r0, #0xC4]
; 109 : }
00018 e12fff1e bx lr
0001c |$M36600|
ENDP ; |?DeviceSetEepromFormat@C_DM9000@@UAAXXZ|, C_DM9000::DeviceSetEepromFormat
IMPORT |WRITE_PORT_UCHAR|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h
00000 AREA |.text| { |?DeviceWritePort@C_DM9000@@UAAKKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceWritePort@C_DM9000@@UAAKKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceWritePort@C_DM9000@@UAAKKK@Z| } ; comdat associative
|$T36620| DCD |$L36619|
DCD 0x40001601
; Function compile flags: /Ogsy
; File e:\wince500\platform\berrydale\src\drivers\dm9000\dm9000.cpp
00000 AREA |.text| { |?DeviceWritePort@C_DM9000@@UAAKKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceWritePort@C_DM9000@@UAAKKK@Z| PROC ; C_DM9000::DeviceWritePort
; 185 : {
00000 |$L36619|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M36617|
00004 e1a06002 mov r6, r2
00008 e1a05001 mov r5, r1
0000c e1a04000 mov r4, r0
; 186 :
; 187 : ENTER_CRITICAL_SECTION
00010 e2847b01 add r7, r4, #1, 22
00014 e28700b8 add r0, r7, #0xB8
00018 eb000000 bl NdisAcquireSpinLock
; 188 :
; 189 : VALIDATE_ADDR_PORT(uPort);
0001c e59434cc ldr r3, [r4, #0x4CC]
00020 e1530005 cmp r3, r5
00024 159400d8 ldrne r0, [r4, #0xD8]
00028 120510ff andne r1, r5, #0xFF
0002c 158454cc strne r5, [r4, #0x4CC]
00030 1b000000 blne WRITE_PORT_UCHAR
; 190 :
; 191 : NdisRawWritePortUchar(
; 192 : m_szCurrentSettings[SID_PORT_BASE_ADDRESS] + DM9000_DATA_OFFSET,
; 193 : (U8)uValue);
00034 e59430d8 ldr r3, [r4, #0xD8]
00038 e20610ff and r1, r6, #0xFF
0003c e2830901 add r0, r3, #1, 18
00040 eb000000 bl WRITE_PORT_UCHAR
; 194 :
; 195 : LEAVE_CRITICAL_SECTION
00044 e28700b8 add r0, r7, #0xB8
00048 eb000000 bl NdisReleaseSpinLock
; 196 :
; 197 : return uValue;
0004c e1a00006 mov r0, r6
; 198 : }
00050 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00054 e12fff1e bx lr
00058 |$M36618|
ENDP ; |?DeviceWritePort@C_DM9000@@UAAKKK@Z|, C_DM9000::DeviceWritePort
IMPORT |READ_PORT_UCHAR|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h
00000 AREA |.text| { |?DeviceReadPort@C_DM9000@@UAAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceReadPort@C_DM9000@@UAAKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceReadPort@C_DM9000@@UAAKK@Z| } ; comdat associative
|$T36637| DCD |$L36636|
DCD 0x40001501
; Function compile flags: /Ogsy
; File e:\wince500\platform\berrydale\src\drivers\dm9000\dm9000.cpp
00000 AREA |.text| { |?DeviceReadPort@C_DM9000@@UAAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceReadPort@C_DM9000@@UAAKK@Z| PROC ; C_DM9000::DeviceReadPort
; 203 : {
00000 |$L36636|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M36634|
00004 e1a05001 mov r5, r1
00008 e1a04000 mov r4, r0
; 204 : U16 val;
; 205 :
; 206 : ENTER_CRITICAL_SECTION
0000c e2846b01 add r6, r4, #1, 22
00010 e28600b8 add r0, r6, #0xB8
00014 eb000000 bl NdisAcquireSpinLock
; 207 :
; 208 : VALIDATE_ADDR_PORT(uPort);
00018 e59434cc ldr r3, [r4, #0x4CC]
0001c e1530005 cmp r3, r5
00020 159400d8 ldrne r0, [r4, #0xD8]
00024 120510ff andne r1, r5, #0xFF
00028 158454cc strne r5, [r4, #0x4CC]
0002c 1b000000 blne WRITE_PORT_UCHAR
; 209 :
; 210 : NdisRawReadPortUchar(
; 211 : m_szCurrentSettings[SID_PORT_BASE_ADDRESS] + DM9000_DATA_OFFSET, &val);
00030 e59430d8 ldr r3, [r4, #0xD8]
00034 e2830901 add r0, r3, #1, 18
00038 eb000000 bl READ_PORT_UCHAR
0003c e1a04000 mov r4, r0
; 212 :
; 213 : LEAVE_CRITICAL_SECTION
00040 e28600b8 add r0, r6, #0xB8
00044 eb000000 bl NdisReleaseSpinLock
; 214 :
; 215 : return (U32)val;
00048 e1a00004 mov r0, r4
; 216 : }
0004c e8bd4070 ldmia sp!, {r4 - r6, lr}
00050 e12fff1e bx lr
00054 |$M36635|
ENDP ; |?DeviceReadPort@C_DM9000@@UAAKK@Z|, C_DM9000::DeviceReadPort
IMPORT |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| ; NIC_DEVICE_OBJECT::DevicePolling
00000 AREA |.text| { |?DeviceReadEeprom@C_DM9000@@UAAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceReadEeprom@C_DM9000@@UAAGK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceReadEeprom@C_DM9000@@UAAGK@Z| } ; comdat associative
|$T36648| DCD |$L36647|
DCD 0x40003702
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceReadEeprom@C_DM9000@@UAAGK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceReadEeprom@C_DM9000@@UAAGK@Z| PROC ; C_DM9000::DeviceReadEeprom
; 220 : {
00000 |$L36647|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M36645|
00008 e1a02001 mov r2, r1
0000c e1a05000 mov r5, r0
; 221 : U16 highbyte,lowbyte;
; 222 :
; 223 : // assign the register offset
; 224 : DeviceWritePort(DM9_EPADDR,uWordAddress);
00010 e5953000 ldr r3, [r5]
00014 e3a0100c mov r1, #0xC
00018 e593304c ldr r3, [r3, #0x4C]
0001c e1a0e00f mov lr, pc
00020 e12fff13 bx r3
; 225 :
; 226 : // issue EEPROM read command<2>
; 227 : DeviceWritePort(DM9_EPCNTL,(1<<2));
00024 e5953000 ldr r3, [r5]
00028 e3a02004 mov r2, #4
0002c e3a0100b mov r1, #0xB
00030 e593304c ldr r3, [r3, #0x4C]
00034 e1a00005 mov r0, r5
00038 e1a0e00f mov lr, pc
0003c e12fff13 bx r3
; 228 :
; 229 : // wait until status bit<0> cleared
; 230 : // 80 uS, 5 times
; 231 : if(!DevicePolling(DM9_EPCNTL,(1<<0),0x00,80,5))
00040 e3a03005 mov r3, #5
00044 e3a02050 mov r2, #0x50
00048 e58d3004 str r3, [sp, #4]
0004c e58d2000 str r2, [sp]
00050 e3a03000 mov r3, #0
00054 e3a02001 mov r2, #1
00058 e3a0100b mov r1, #0xB
0005c e1a00005 mov r0, r5
00060 eb000000 bl |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z|
00064 e3500000 cmp r0, #0
; 232 : return (U16)-1;
00068 03a00cff moveq r0, #0xFF, 24
0006c 038000ff orreq r0, r0, #0xFF
00070 0a000016 beq |$L35629|
; 233 :
; 234 : // stop command
; 235 : DeviceWritePort(DM9_EPCNTL,0);
00074 e5953000 ldr r3, [r5]
00078 e3a02000 mov r2, #0
0007c e3a0100b mov r1, #0xB
00080 e593304c ldr r3, [r3, #0x4C]
00084 e1a00005 mov r0, r5
00088 e1a0e00f mov lr, pc
0008c e12fff13 bx r3
; 236 :
; 237 : // retrive data
; 238 : lowbyte = (U16)DeviceReadPort(DM9_EPLOW);
00090 e5953000 ldr r3, [r5]
00094 e3a0100d mov r1, #0xD
00098 e1a00005 mov r0, r5
0009c e5933048 ldr r3, [r3, #0x48]
000a0 e1a0e00f mov lr, pc
000a4 e12fff13 bx r3
; 239 : highbyte = (U16)DeviceReadPort(DM9_EPHIGH);
000a8 e5953000 ldr r3, [r5]
000ac e1a04000 mov r4, r0
000b0 e3a0100e mov r1, #0xE
000b4 e5933048 ldr r3, [r3, #0x48]
000b8 e1a00005 mov r0, r5
000bc e1a0e00f mov lr, pc
000c0 e12fff13 bx r3
; 240 :
; 241 : return ((highbyte<<8) | lowbyte);
000c4 e1843400 orr r3, r4, r0, lsl #8
000c8 e1a00803 mov r0, r3, lsl #16
000cc e1a00820 mov r0, r0, lsr #16
000d0 |$L35629|
; 242 : }
000d0 e28dd008 add sp, sp, #8
000d4 e8bd4030 ldmia sp!, {r4, r5, lr}
000d8 e12fff1e bx lr
000dc |$M36646|
ENDP ; |?DeviceReadEeprom@C_DM9000@@UAAGK@Z|, C_DM9000::DeviceReadEeprom
00000 AREA |.text| { |?DeviceWriteEeprom@C_DM9000@@UAAGKG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceWriteEeprom@C_DM9000@@UAAGKG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceWriteEeprom@C_DM9000@@UAAGKG@Z| } ; comdat associative
|$T36660| DCD |$L36659|
DCD 0x40003302
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceWriteEeprom@C_DM9000@@UAAGKG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceWriteEeprom@C_DM9000@@UAAGKG@Z| PROC ; C_DM9000::DeviceWriteEeprom
; 247 : {
00000 |$L36659|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M36657|
00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -