📄 ms2_serial.cod
字号:
|$T31261| DCD |$L31260|
DCD 0x40001101
; Function compile flags: /Ogsy
00000 AREA |.text| { |??1CBulPdd16550SUART@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??1CBulPdd16550SUART@@UAA@XZ| PROC ; CBulPdd16550SUART::~CBulPdd16550SUART
; 158 : {
00000 |$L31260|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M31258|
00004 e1a04000 mov r4, r0
; 159 : if (m_pBCRReg)
00008 e5943154 ldr r3, [r4, #0x154]
0000c e59f102c ldr r1, [pc, #0x2C]
00010 e59f2024 ldr r2, [pc, #0x24]
00014 e3530000 cmp r3, #0
; 160 : MmUnmapIoSpace(m_pBCRReg,0);
00018 15940154 ldrne r0, [r4, #0x154]
0001c e58410fc str r1, [r4, #0xFC]
00020 13a01000 movne r1, #0
00024 e5842000 str r2, [r4]
00028 1b000000 blne MmUnmapIoSpace
; 161 : }
0002c e1a00004 mov r0, r4
00030 eb000000 bl |??1CBulPdd16550@@UAA@XZ|
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$L31263|
0003c 00000000 DCD |??_7CBulPdd16550SUART@@6BCSerialPDD@@@|
00040 00000000 DCD |??_7CBulPdd16550SUART@@6BCMiniThread@@@|
00044 |$M31259|
ENDP ; |??1CBulPdd16550SUART@@UAA@XZ|, CBulPdd16550SUART::~CBulPdd16550SUART
EXPORT |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ| ; CBulPdd16550SUART::ConfigurePinout
00000 AREA |.text| { |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ| } ; comdat associative
|$T31272| DCD |$L31271|
DCD 0x40001600
; Function compile flags: /Ogsy
00000 AREA |.text| { |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ| PROC ; CBulPdd16550SUART::ConfigurePinout
; 183 : BOOL ConfigurePinout() {
00000 |$L31271|
00000 |$M31269|
00000 e1a01000 mov r1, r0
; 184 : //Initialize GPIO pins
; 185 : //Write 0 on GPIO pin 47 before configuring it as output.
; 186 : //Verify whether to write zero or not?
; 187 : //pHWHead->pGPIOReg->GPCR_y |= (GPIO_47);
; 188 : m_pGPIOReg->GPSR1 = (XLLP_GPIO_BIT_STD_TXD);
00004 e5913148 ldr r3, [r1, #0x148]
00008 e3a02902 mov r2, #2, 18
; 189 :
; 190 : //Configure direction of GPIO pin 46 as input and GPIO pin 47 as output
; 191 : m_pGPIOReg->GPDR1 &= (~XLLP_GPIO_BIT_STD_RXD);
; 192 : m_pGPIOReg->GPDR1 |= ( XLLP_GPIO_BIT_STD_TXD);
; 193 :
; 194 : //Configure GPIO pin 46 for Alt_fn2. And, GPIO pin 47 for Alt_fn1.
; 195 : m_pGPIOReg->GAFR1_L |= (XLLP_GPIO_AF_BIT_STD_RXD | XLLP_GPIO_AF_BIT_STD_TXD);
; 196 :
; 197 : //Configure IrDA transceiver for SIR mode and full distance power.
; 198 : //pHWHead->pBCRReg->misc_wr &= ~(IRDA_MD_MASK | IRDA_FIR_MASK);
; 199 : m_pBCRReg->misc_wr &= (~XLLP_BCR_MISCWR1_IRDA_MD & ~XLLP_BCR_MISCWR1_IRDA_FIR);
; 200 :
; 201 : return TRUE;
0000c e3a00001 mov r0, #1
00010 e583201c str r2, [r3, #0x1C]
00014 e5912148 ldr r2, [r1, #0x148]
00018 e5923010 ldr r3, [r2, #0x10]
0001c e3c33901 bic r3, r3, #1, 18
00020 e5823010 str r3, [r2, #0x10]
00024 e5912148 ldr r2, [r1, #0x148]
00028 e5923010 ldr r3, [r2, #0x10]
0002c e3833902 orr r3, r3, #2, 18
00030 e5823010 str r3, [r2, #0x10]
00034 e5912148 ldr r2, [r1, #0x148]
00038 e592305c ldr r3, [r2, #0x5C]
0003c e3833206 orr r3, r3, #6, 4
00040 e582305c str r3, [r2, #0x5C]
00044 e5912154 ldr r2, [r1, #0x154]
00048 e5b23080 ldr r3, [r2, #0x80]!
0004c e3c33070 bic r3, r3, #0x70
00050 e5823000 str r3, [r2]
; 202 : }
00054 e12fff1e bx lr
00058 |$M31270|
ENDP ; |?ConfigurePinout@CBulPdd16550SUART@@AAAHXZ|, CBulPdd16550SUART::ConfigurePinout
00000 AREA |.text| { |??_GCBulPdd16550SUART@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$??_GCBulPdd16550SUART@@UAAPAXI@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??_GCBulPdd16550SUART@@UAAPAXI@Z| } ; comdat associative
|$T31283| DCD |$L31282|
DCD 0x40000a01
; Function compile flags: /Ogsy
00000 AREA |.text| { |??_GCBulPdd16550SUART@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??_GCBulPdd16550SUART@@UAAPAXI@Z| PROC ; CBulPdd16550SUART::`scalar deleting destructor'
00000 |$L31282|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M31280|
00004 e1a04001 mov r4, r1
00008 e1a05000 mov r5, r0
0000c eb000000 bl |??1CBulPdd16550SUART@@UAA@XZ|
00010 e3140001 tst r4, #1
00014 11a00005 movne r0, r5
00018 1b000000 blne |??3@YAXPAX@Z|
0001c e1a00005 mov r0, r5
00020 e8bd4030 ldmia sp!, {r4, r5, lr}
00024 e12fff1e bx lr
00028 |$M31281|
ENDP ; |??_GCBulPdd16550SUART@@UAAPAXI@Z|, CBulPdd16550SUART::`scalar deleting destructor'
EXPORT |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z| ; CreateSerialObject
IMPORT |??2@YAPAXI@Z| ; operator new
IMPORT |??0CPdd16550@@QAA@PAGPAXPAU__HWOBJ@@@Z| ; CPdd16550::CPdd16550
00000 AREA |.text| { |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z| } ; comdat associative
|$T31329| DCD |$L31328|
DCD 0x40005601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z| PROC ; CreateSerialObject
; 207 : {
00000 |$L31328|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M31326|
00004 e1a05002 mov r5, r2
00008 e1a06001 mov r6, r1
0000c e1a07000 mov r7, r0
; 208 : CSerialPDD * pSerialPDD = NULL;
; 209 : switch (DeviceArrayIndex ) {
00010 e3530080 cmp r3, #0x80
00014 0a000027 beq |$L30807|
00018 e3530081 cmp r3, #0x81
0001c 0a000017 beq |$L30811|
00020 e3530082 cmp r3, #0x82
00024 0a000009 beq |$L30815|
; 210 : case 0:default:
; 211 : pSerialPDD = new CPdd16550(lpActivePath,pMdd, pHwObj);
00028 e3a00f51 mov r0, #0x51, 30
0002c eb000000 bl |??2@YAPAXI@Z|
00030 e3500000 cmp r0, #0
00034 0a00002d beq |$L31291|
00038 e1a03005 mov r3, r5
0003c e1a02006 mov r2, r6
00040 e1a01007 mov r1, r7
00044 eb000000 bl |??0CPdd16550@@QAA@PAGPAXPAU__HWOBJ@@@Z|
00048 e1a04000 mov r4, r0
; 212 : break;
0004c ea000028 b |$L31292|
00050 |$L30815|
; 219 : case 0x82:
; 220 : pSerialPDD = new CBulPdd16550SUART(lpActivePath,pMdd, pHwObj);
00050 e3a00f56 mov r0, #0x56, 30
00054 eb000000 bl |??2@YAPAXI@Z|
00058 e1b04000 movs r4, r0
0005c 0a000023 beq |$L31291|
00060 e1a03005 mov r3, r5
00064 e1a02006 mov r2, r6
00068 e1a01007 mov r1, r7
0006c e1a00004 mov r0, r4
00070 eb000000 bl |??0CBulPdd16550@@QAA@PAGPAXPAU__HWOBJ@@@Z|
00074 e59f30d8 ldr r3, [pc, #0xD8]
00078 e59f20d0 ldr r2, [pc, #0xD0]
; 221 : break;
0007c ea00000a b |$L31325|
00080 |$L30811|
; 215 : break;
; 216 : case 0x81:
; 217 : pSerialPDD = new CBulPdd16550BUART(lpActivePath,pMdd, pHwObj);
00080 e3a00f56 mov r0, #0x56, 30
00084 eb000000 bl |??2@YAPAXI@Z|
00088 e1b04000 movs r4, r0
0008c 0a000017 beq |$L31291|
00090 e1a03005 mov r3, r5
00094 e1a02006 mov r2, r6
00098 e1a01007 mov r1, r7
0009c e1a00004 mov r0, r4
000a0 eb000000 bl |??0CBulPdd16550@@QAA@PAGPAXPAU__HWOBJ@@@Z|
000a4 e59f30a0 ldr r3, [pc, #0xA0]
000a8 e59f2098 ldr r2, [pc, #0x98]
000ac |$L31325|
000ac e3a01000 mov r1, #0
000b0 e5841154 str r1, [r4, #0x154]
; 218 : break;
000b4 ea00000a b |$L31324|
000b8 |$L30807|
; 213 : case 0x80:
; 214 : pSerialPDD = new CBulPdd16550FUART (lpActivePath,pMdd, pHwObj);
000b8 e3a00f55 mov r0, #0x55, 30
000bc eb000000 bl |??2@YAPAXI@Z|
000c0 e1b04000 movs r4, r0
000c4 0a000009 beq |$L31291|
000c8 e1a03005 mov r3, r5
000cc e1a02006 mov r2, r6
000d0 e1a01007 mov r1, r7
000d4 e1a00004 mov r0, r4
000d8 eb000000 bl |??0CBulPdd16550@@QAA@PAGPAXPAU__HWOBJ@@@Z|
000dc e59f3060 ldr r3, [pc, #0x60]
000e0 e59f2058 ldr r2, [pc, #0x58]
000e4 |$L31324|
000e4 e58420fc str r2, [r4, #0xFC]
000e8 e5843000 str r3, [r4]
000ec ea000000 b |$L31292|
000f0 |$L31291|
000f0 e3a04000 mov r4, #0
000f4 |$L31292|
; 222 : }
; 223 : if (pSerialPDD && pSerialPDD->Init()!= TRUE) {
000f4 e3540000 cmp r4, #0
000f8 0a00000d beq |$L30819|
000fc e5943000 ldr r3, [r4]
00100 e1a00004 mov r0, r4
00104 e5933004 ldr r3, [r3, #4]
00108 e1a0e00f mov lr, pc
0010c e12fff13 bx r3
00110 e3500001 cmp r0, #1
00114 0a000006 beq |$L30819|
; 224 : delete pSerialPDD;
00118 e5943000 ldr r3, [r4]
0011c e3a01001 mov r1, #1
00120 e1a00004 mov r0, r4
00124 e5933000 ldr r3, [r3]
00128 e1a0e00f mov lr, pc
0012c e12fff13 bx r3
; 225 : pSerialPDD = NULL;
00130 e3a04000 mov r4, #0
00134 |$L30819|
; 226 : }
; 227 : return pSerialPDD;
00134 e1a00004 mov r0, r4
; 228 : }
00138 e8bd40f0 ldmia sp!, {r4 - r7, lr}
0013c e12fff1e bx lr
00140 |$L31331|
00140 00000000 DCD |??_7CBulPdd16550FUART@@6BCMiniThread@@@|
00144 00000000 DCD |??_7CBulPdd16550FUART@@6BCSerialPDD@@@|
00148 00000000 DCD |??_7CBulPdd16550BUART@@6BCMiniThread@@@|
0014c 00000000 DCD |??_7CBulPdd16550BUART@@6BCSerialPDD@@@|
00150 00000000 DCD |??_7CBulPdd16550SUART@@6BCMiniThread@@@|
00154 00000000 DCD |??_7CBulPdd16550SUART@@6BCSerialPDD@@@|
00158 |$M31327|
ENDP ; |?CreateSerialObject@@YAPAVCSerialPDD@@PAGPAXPAU__HWOBJ@@K@Z|, CreateSerialObject
EXPORT |?DeleteSerialObject@@YAXPAVCSerialPDD@@@Z| ; DeleteSerialObject
00000 AREA |.text| { |?DeleteSerialObject@@YAXPAVCSerialPDD@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeleteSerialObject@@YAXPAVCSerialPDD@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeleteSerialObject@@YAXPAVCSerialPDD@@@Z| } ; comdat associative
|$T31342| DCD |$L31341|
DCD 0x40000901
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -