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

📄 ms2_serial.cod

📁 PXA270 平台 Windows Mobile 5。0 串口驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
|$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 + -