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

📄 gpx_serial.cod

📁 WINCEgps动态链接库
💻 COD
📖 第 1 页 / 共 2 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	D:\WINCE500\PLATFORM\up_pxa270cl\Src\Drivers\Gpx\.\gpx_serial.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "


  00000			 AREA	 |.bss|, NOINIT
|g_pDebugUARTPort| % 0x4
|pGPIO_REGS| %	0x4
|pCLKMGR_REGS| % 0x4
	EXPORT	|?DllEntry@@YA_NPAXK0@Z|		; DllEntry
; File d:\wince500\platform\up_pxa270cl\src\drivers\gpx\gpx_serial.cpp

  00000			 AREA	 |.text| { |?DllEntry@@YA_NPAXK0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DllEntry@@YA_NPAXK0@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DllEntry@@YA_NPAXK0@Z| } ; comdat associative
|$T30895| DCD	|$L30894|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DllEntry@@YA_NPAXK0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DllEntry@@YA_NPAXK0@Z| PROC		; DllEntry

; 38   : {

  00000		 |$L30894|
  00000		 |$M30892|

; 39   : 	return true;

  00000	e3a00001	 mov         r0, #1

; 40   : } 

  00004	e12fff1e	 bx          lr
  00008		 |$M30893|

			 ENDP  ; |?DllEntry@@YA_NPAXK0@Z|, DllEntry

	EXPORT	|?GPXWriteByte@@YAXE@Z|			; GPXWriteByte

  00000			 AREA	 |.text| { |?GPXWriteByte@@YAXE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?GPXWriteByte@@YAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GPXWriteByte@@YAXE@Z| } ; comdat associative
|$T30904| DCD	|$L30903|
	DCD	0x40000a00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GPXWriteByte@@YAXE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?GPXWriteByte@@YAXE@Z| PROC		; GPXWriteByte

; 44   : {

  00000		 |$L30903|
  00000		 |$M30901|

; 45   : 
; 46   :     if (!g_pDebugUARTPort)

  00000	e59f301c	 ldr         r3, [pc, #0x1C]
  00004	e5932000	 ldr         r2, [r3]
  00008	e3520000	 cmp         r2, #0
  0000c	0a000003	 beq         |$L30721|
  00010		 |$L30724|

; 47   :     {
; 48   :         return;
; 49   :     }
; 50   : 
; 51   :     // Spin if FIFO has more than half data.
; 52   :     //
; 53   :     while(!(g_pDebugUARTPort->lsr & 0x020));

  00010	e5923014	 ldr         r3, [r2, #0x14]
  00014	e3130020	 tst         r3, #0x20
  00018	0afffffc	 beq         |$L30724|

; 54   : 
; 55   :     // Write a character byte to the FIFO.
; 56   :     //
; 57   :     g_pDebugUARTPort->thr_rbr_dll = (unsigned char)ch;

  0001c	e5820000	 str         r0, [r2]
  00020		 |$L30721|

; 58   : 
; 59   : }

  00020	e12fff1e	 bx          lr
  00024		 |$L30906|
  00024	00000000	 DCD         |g_pDebugUARTPort|
  00028		 |$M30902|

			 ENDP  ; |?GPXWriteByte@@YAXE@Z|, GPXWriteByte

	EXPORT	|?GPXReadByte@@YAHXZ|			; GPXReadByte

  00000			 AREA	 |.text| { |?GPXReadByte@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?GPXReadByte@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GPXReadByte@@YAHXZ| } ; comdat associative
|$T30917| DCD	|$L30916|
	DCD	0x40000d00
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GPXReadByte@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?GPXReadByte@@YAHXZ| PROC		; GPXReadByte

; 63   : {

  00000		 |$L30916|
  00000		 |$M30914|

; 64   :     int data = READ_NODATA;
; 65   :     UINT32 LSR;
; 66   : 
; 67   :     if (!g_pDebugUARTPort)

  00000	e59f3028	 ldr         r3, [pc, #0x28]
  00004	e5933000	 ldr         r3, [r3]
  00008	e3530000	 cmp         r3, #0

; 68   :     {
; 69   :         return(data);

  0000c	0a000005	 beq         |$L30913|

; 70   :     }
; 71   : 
; 72   :     // Read LSR.
; 73   :     //
; 74   :     LSR = g_pDebugUARTPort->lsr;

  00010	e5932014	 ldr         r2, [r3, #0x14]

; 75   : 
; 76   :     // Return if no data.
; 77   :     //
; 78   :     if(!(LSR & 0x1))

  00014	e3120001	 tst         r2, #1

; 79   :     {
; 80   :         return(data);

  00018	0a000002	 beq         |$L30913|

; 81   :     }
; 82   : 
; 83   :     // Read data.
; 84   :     //
; 85   :     data = g_pDebugUARTPort->thr_rbr_dll;

  0001c	e5930000	 ldr         r0, [r3]

; 86   : 
; 87   :     // Signal error if PE or FE was set.
; 88   :     // Do nothing if BI or OE was set.
; 89   :     //
; 90   :     if(LSR & 0x0c)

  00020	e312000c	 tst         r2, #0xC
  00024	0a000000	 beq         |$L30733|
  00028		 |$L30913|

; 91   :     {
; 92   :         data = READ_NODATA;

  00028	e3e00000	 mvn         r0, #0
  0002c		 |$L30733|

; 93   :     }
; 94   : 
; 95   :     return(data);
; 96   : 
; 97   : }

  0002c	e12fff1e	 bx          lr
  00030		 |$L30919|
  00030	00000000	 DCD         |g_pDebugUARTPort|
  00034		 |$M30915|

			 ENDP  ; |?GPXReadByte@@YAHXZ|, GPXReadByte

	EXPORT	|?GPX_Close@@YA_NK@Z|			; GPX_Close

  00000			 AREA	 |.text| { |?GPX_Close@@YA_NK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?GPX_Close@@YA_NK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GPX_Close@@YA_NK@Z| } ; comdat associative
|$T30927| DCD	|$L30926|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GPX_Close@@YA_NK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?GPX_Close@@YA_NK@Z| PROC		; GPX_Close

; 103  : {

  00000		 |$L30926|
  00000		 |$M30924|

; 104  : 	bool bret=true;
; 105  : 	return bret;

  00000	e3a00001	 mov         r0, #1

; 106  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M30925|

			 ENDP  ; |?GPX_Close@@YA_NK@Z|, GPX_Close

	EXPORT	|?GPX_Deinit@@YA_NK@Z|			; GPX_Deinit

  00000			 AREA	 |.text| { |?GPX_Deinit@@YA_NK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?GPX_Deinit@@YA_NK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GPX_Deinit@@YA_NK@Z| } ; comdat associative
|$T30936| DCD	|$L30935|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GPX_Deinit@@YA_NK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?GPX_Deinit@@YA_NK@Z| PROC		; GPX_Deinit

; 109  : {

  00000		 |$L30935|
  00000		 |$M30933|

; 110  : 	return true;

  00000	e3a00001	 mov         r0, #1

; 111  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M30934|

			 ENDP  ; |?GPX_Deinit@@YA_NK@Z|, GPX_Deinit

	EXPORT	|?PreInit@@YAXI@Z|			; PreInit

  00000			 AREA	 |.text| { |?PreInit@@YAXI@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?PreInit@@YAXI@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PreInit@@YAXI@Z| } ; comdat associative
|$T30945| DCD	|$L30944|
	DCD	0x40003201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?PreInit@@YAXI@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?PreInit@@YAXI@Z| PROC		; PreInit

; 114  : {

  00000		 |$L30944|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M30942|

; 115  : 	// Ensure that UART interrupts are turned off.
; 116  :     //
; 117  :     g_pDebugUARTPort->lcr     = 0x0;    // Clear DLAB.

  00004	e59f20b8	 ldr         r2, [pc, #0xB8]
  00008	e3a05000	 mov         r5, #0

; 118  :     g_pDebugUARTPort->ier_dlh = 0x0;    // IER_DLH = 0x0.
; 119  : 
; 120  :     // Set the Baud Rate (Divisor low = DEBUG_BAUD_38400).
; 121  :     // The divisor latches are at offsets 0 and 1, which are 
; 122  :     // receive/transmit data and ier registers.
; 123  :     //
; 124  :     g_pDebugUARTPort->lcr         = 0x80;                // Access Divisor.

  0000c	e3a03080	 mov         r3, #0x80
  00010	e592e008	 ldr         lr, [r2, #8]

; 125  :     g_pDebugUARTPort->thr_rbr_dll = baud;    // Low byte divisor.
; 126  :     g_pDebugUARTPort->ier_dlh     = 0x00;                // High byte divisor.
; 127  :     g_pDebugUARTPort->lcr         = 0x0;                 // Clear DLAB.
; 128  : 
; 129  :     //Setting UART properties to 8N1 
; 130  :     //
; 131  :     g_pDebugUARTPort->lcr         = 0x3;     // 8 bits, 1 stop, no parity. Also LCR DLAB bit = 0.

  00014	e3a01003	 mov         r1, #3

; 132  : 
; 133  :     g_pDebugUARTPort->iir_fcr     = 0x01;    // Enable the FIFO.

  00018	e3a04001	 mov         r4, #1
  0001c	e58e500c	 str         r5, [lr, #0xC]
  00020	e58e5004	 str         r5, [lr, #4]
  00024	e58e300c	 str         r3, [lr, #0xC]
  00028	e58e0000	 str         r0, [lr]
  0002c	e58e5004	 str         r5, [lr, #4]
  00030	e58e500c	 str         r5, [lr, #0xC]
  00034	e1a0300e	 mov         r3, lr
  00038	e58e100c	 str         r1, [lr, #0xC]
  0003c	e5a34008	 str         r4, [r3, #8]!

; 134  :     g_pDebugUARTPort->iir_fcr     = 0x07;    // Clear Rx,Tx FIFOs.
; 135  : 
; 136  :     // Don't enable UART interrupts - we'll poll for the data.
; 137  :     //
; 138  :     g_pDebugUARTPort->ier_dlh     = 0x0;  
; 139  : 
; 140  :     // Ensure loop-back test mode is off even though MCR reset value is 0x0. 
; 141  :     //
; 142  :     g_pDebugUARTPort->mcr         = 0x0;    // UART is in normal mode.
; 143  : 
; 144  :     // Configure GPIO pins for FFUART
; 145  :     //
; 146  :     
; 147  :     
; 148  : 	    pGPIO_REGS->GPCR1 |= (1<<15);

  00040	e5921004	 ldr         r1, [r2, #4]
  00044	e3a00007	 mov         r0, #7
  00048	e5830000	 str         r0, [r3]
  0004c	e58e5004	 str         r5, [lr, #4]
  00050	e58e5010	 str         r5, [lr, #0x10]
  00054	e5913028	 ldr         r3, [r1, #0x28]

; 149  : 
; 150  : 	    // Configure direction of GPIO pins 42 and 44 as input 
; 151  : 	    // and GPIO pins 43 and 45 as output.
; 152  :         //
; 153  : 	    pGPIO_REGS->GPDR1 &= ~( 1<<14); 
; 154  : 	    pGPIO_REGS->GPDR1 |=  ( 1<<15);
; 155  : 
; 156  : 	    // Configure GPIO pins 42 and 44 for Alt_fn1. And pins 43 and 45 for Alt_fn2.
; 157  :         //
; 158  : //	    pGPIO_REGS->GAFR1_L |= ( XLLP_GPIO_AF_BIT_BTRXD | XLLP_GPIO_AF_BIT_BTCTS |
; 159  : //                                XLLP_GPIO_AF_BIT_BTTXD | XLLP_GPIO_AF_BIT_BTRTS );
; 160  : 
; 161  : 	    pGPIO_REGS->GAFR1_L &= ~( (3<<28) | 
; 162  :                                  (3<<30) );
; 163  : 
; 164  : 		 pGPIO_REGS->GAFR1_L |=(XLLP_GPIO_AF_BIT_STD_RXD|XLLP_GPIO_AF_BIT_STD_TXD);
; 165  : 
; 166  :         // Turn on the BTUART transceiver.
; 167  :         //
; 168  : //        g_pBLRegs->misc_wr |= nBT_OFF_MASK; 
; 169  : 
; 170  : 
; 171  :         // Enable the BTUART clock.
; 172  :         //
; 173  :         pCLKMGR_REGS->cken |= XLLP_CLKEN_STUART ;

  00058	e5922000	 ldr         r2, [r2]

; 174  : 
; 175  : 
; 176  : 
; 177  :     // Enable the UART.
; 178  :     //
; 179  :     g_pDebugUARTPort->ier_dlh = 0x40;

  0005c	e3a00040	 mov         r0, #0x40
  00060	e3833902	 orr         r3, r3, #2, 18
  00064	e5813028	 str         r3, [r1, #0x28]
  00068	e5913010	 ldr         r3, [r1, #0x10]
  0006c	e3c33901	 bic         r3, r3, #1, 18
  00070	e5813010	 str         r3, [r1, #0x10]
  00074	e5913010	 ldr         r3, [r1, #0x10]
  00078	e3833902	 orr         r3, r3, #2, 18
  0007c	e5813010	 str         r3, [r1, #0x10]
  00080	e591305c	 ldr         r3, [r1, #0x5C]
  00084	e3c3320f	 bic         r3, r3, #0xF, 4
  00088	e581305c	 str         r3, [r1, #0x5C]
  0008c	e591305c	 ldr         r3, [r1, #0x5C]
  00090	e3833206	 orr         r3, r3, #6, 4
  00094	e581305c	 str         r3, [r1, #0x5C]
  00098	e5923004	 ldr         r3, [r2, #4]
  0009c	e3833020	 orr         r3, r3, #0x20
  000a0	e5823004	 str         r3, [r2, #4]
  000a4	e58e0004	 str         r0, [lr, #4]
  000a8		 |$L30748|

; 180  : 
; 181  :     // Restore the logging mask.
; 182  :     //
; 183  : //    g_oalLogMask = logMask;
; 184  :     
; 185  :     	do{
; 186  : 		while(!(g_pDebugUARTPort->lsr & 0x020));

  000a8	e59e3014	 ldr         r3, [lr, #0x14]
  000ac	e3130020	 tst         r3, #0x20
  000b0	0afffffc	 beq         |$L30748|

; 187  : 		g_pDebugUARTPort->thr_rbr_dll = '2';

  000b4	e3a03032	 mov         r3, #0x32
  000b8	e58e3000	 str         r3, [lr]

; 188  : 	}while(0);
; 189  : }

  000bc	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  000c0	e12fff1e	 bx          lr
  000c4		 |$L30947|
  000c4	00000000	 DCD         |pCLKMGR_REGS|
  000c8		 |$M30943|

			 ENDP  ; |?PreInit@@YAXI@Z|, PreInit

	EXPORT	|?GPX_Init@@YAKK@Z|			; GPX_Init
	IMPORT	|MmMapIoSpace|

  00000			 AREA	 |.text| { |?GPX_Init@@YAKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -