   1              		.file	"uart.cpp"
   9              	.Ltext0:
  10              		.section	.text._ZN4UART10regAddressENS_9RegistersE,"axG",%progbits,_ZN4UART10regAddressENS_9Regist
  11              		.align	2
  12              		.weak	_ZN4UART10regAddressENS_9RegistersE
  14              	_ZN4UART10regAddressENS_9RegistersE:
  15              	.LFB2:
  16              		.file 1 "uart_registers.h"
   1:uart_registers.h **** #ifndef __UART_REGISTERS_H__
   2:uart_registers.h **** #define __UART_REGISTERS_H__
   3:uart_registers.h **** 
   4:uart_registers.h **** #include <stdint.h>
   5:uart_registers.h **** #include "platform.h"
   6:uart_registers.h **** 
   7:uart_registers.h **** namespace UART
   8:uart_registers.h **** {
   9:uart_registers.h **** 	static const uint32_t BaseAddress = (KS8695PX_IO_BASE + KS8695PX_UART_OFFSET);
  10:uart_registers.h **** 	
  11:uart_registers.h **** 	enum Registers
  12:uart_registers.h **** 	{
  13:uart_registers.h **** 		RX	= 0x0000,		// 0x00	- Receive data (ro) 
  14:uart_registers.h **** 		TX	= 0x0004,		// 0x04	- Transmit data (wo)
  15:uart_registers.h **** 		FCR	= 0x0008,		// 0x08	- Fifo Control (r/w)
  16:uart_registers.h **** 		LCR = 0x000C,		// 0x0c	- Line Control (r/w)
  17:uart_registers.h **** 		MCR	= 0x0010,		// 0x10	- Modem Control (r/w)
  18:uart_registers.h **** 		LSR	= 0x0014,		// 0x14	- Line Status (r/w) 
  19:uart_registers.h **** 		MSR = 0x0018,		// 0x18	- Modem Status (r/w) 
  20:uart_registers.h **** 		BD	= 0x001C,		// 0x1c	- Baud Rate (r/w) 
  21:uart_registers.h **** 		SR	= 0x0020		// 0x20	- Status (r/w)
  22:uart_registers.h **** 	};
  23:uart_registers.h **** 	
  24:uart_registers.h **** 	inline volatile uint32_t *regAddress(Registers reg)
  17              	args = 0, pretend = 0, frame = 4
  18              		@ frame_needed = 1, uses_anonymous_args = 0
  19              		mov	ip, sp
  20 0000 0DC0A0E1 	.LCFI0:
  21              		stmfd	sp!, {fp, ip, lr, pc}
  22 0004 00D82DE9 	.LCFI1:
  23              		sub	fp, ip, #4
  24 0008 04B04CE2 	.LCFI2:
  25              		sub	sp, sp, #4
  26 000c 04D04DE2 	.LCFI3:
  27              		str	r0, [fp, #-16]
  28 0010 10000BE5 		.loc 1 26 0
  25:uart_registers.h **** 	{
  26:uart_registers.h **** 	    return reinterpret_cast<volatile uint32_t*>(BaseAddress + reg);
  29              	, #-16]
  30 0014 10301BE5 		add	r3, r3, #66846720
  31 0018 FF3783E2 		add	r3, r3, #253952
  32 001c 3E3A83E2 		.loc 1 27 0
  27:uart_registers.h **** 	}
  33              		r0, r3
  34 0020 0300A0E1 		ldmfd	sp, {r3, fp, sp, pc}
  35 0024 08A89DE8 	.LFE2:
  37              		.section	.text._ZN4UART7regReadENS_9RegistersE,"axG",%progbits,_ZN4UART7regReadENS_9RegistersE,com
  38              		.align	2
  39              		.weak	_ZN4UART7regReadENS_9RegistersE
  41              	_ZN4UART7regReadENS_9RegistersE:
  42              	.LFB3:
  43              		.loc 1 29 0
  28:uart_registers.h **** 	
  29:uart_registers.h **** 	inline uint32_t regRead(Registers reg)
  44              	, pretend = 0, frame = 4
  45              		@ frame_needed = 1, uses_anonymous_args = 0
  46              		mov	ip, sp
  47 0000 0DC0A0E1 	.LCFI4:
  48              		stmfd	sp!, {fp, ip, lr, pc}
  49 0004 00D82DE9 	.LCFI5:
  50              		sub	fp, ip, #4
  51 0008 04B04CE2 	.LCFI6:
  52              		sub	sp, sp, #4
  53 000c 04D04DE2 	.LCFI7:
  54              		str	r0, [fp, #-16]
  55 0010 10000BE5 		.loc 1 31 0
  30:uart_registers.h **** 	{
  31:uart_registers.h **** 	    return *regAddress(reg);
  56              	, #-16]
  57 0014 10001BE5 		ldr	r3, .L5
  58 0018 14309FE5 		mov	lr, pc
  59 001c 0FE0A0E1 		bx	r3
  60 0020 13FF2FE1 		mov	r3, r0
  61 0024 0030A0E1 		ldr	r3, [r3, #0]
  62 0028 003093E5 		.loc 1 32 0
  32:uart_registers.h **** 	}
  63              	, r3
  64 002c 0300A0E1 		ldmfd	sp, {r3, fp, sp, pc}
  65 0030 08A89DE8 	.L6:
  66              		.align	2
  67              	.L5:
  68              		.word	_ZN4UART10regAddressENS_9RegistersE
  69 0034 00000000 	.LFE3:
  71              		.section	.text._ZN4UART8regWriteENS_9RegistersEm,"axG",%progbits,_ZN4UART8regWriteENS_9RegistersEm
  72              		.align	2
  73              		.weak	_ZN4UART8regWriteENS_9RegistersEm
  75              	_ZN4UART8regWriteENS_9RegistersEm:
  76              	.LFB4:
  77              		.loc 1 34 0
  33:uart_registers.h **** 	
  34:uart_registers.h **** 	inline void regWrite(Registers reg, uint32_t value)
  78              	etend = 0, frame = 8
  79              		@ frame_needed = 1, uses_anonymous_args = 0
  80              		mov	ip, sp
  81 0000 0DC0A0E1 	.LCFI8:
  82              		stmfd	sp!, {fp, ip, lr, pc}
  83 0004 00D82DE9 	.LCFI9:
  84              		sub	fp, ip, #4
  85 0008 04B04CE2 	.LCFI10:
  86              		sub	sp, sp, #8
  87 000c 08D04DE2 	.LCFI11:
  88              		str	r0, [fp, #-16]
  89 0010 10000BE5 		str	r1, [fp, #-20]
  90 0014 14100BE5 		.loc 1 36 0
  35:uart_registers.h **** 	{
  36:uart_registers.h **** 	    *regAddress(reg) = value;
  91              	 #-16]
  92 0018 10001BE5 		ldr	r3, .L9
  93 001c 18309FE5 		mov	lr, pc
  94 0020 0FE0A0E1 		bx	r3
  95 0024 13FF2FE1 		mov	r2, r0
  96 0028 0020A0E1 		ldr	r3, [fp, #-20]
  97 002c 14301BE5 		str	r3, [r2, #0]
  98 0030 003082E5 		.loc 1 37 0
  37:uart_registers.h **** 	}
  99              	 fp, #12
 100 0034 0CD04BE2 		ldmfd	sp, {fp, sp, pc}
 101 0038 00A89DE8 	.L10:
 102              		.align	2
 103              	.L9:
 104              		.word	_ZN4UART10regAddressENS_9RegistersE
 105 003c 00000000 	.LFE4:
 107              		.global	__udivsi3
 108              		.text
 109              		.align	2
 110              		.global	_ZN10PolledUart11SetBaudRateEm
 112              	_ZN10PolledUart11SetBaudRateEm:
 113              	.LFB5:
 114              		.file 2 "uart.cpp"
 115              		.loc 2 30 0
   1:uart.cpp      **** #include "uart.h"
   2:uart.cpp      **** #include "uart_registers.h"
   3:uart.cpp      **** 
   4:uart.cpp      **** const uint32_t	UART_ClockFrequency				= 25000000;
   5:uart.cpp      **** 
   6:uart.cpp      **** // UART Line Status Register Bit Definitions
   7:uart.cpp      **** const uint32_t	ReceiveDataReady  				= (1 << 0);
   8:uart.cpp      **** const uint32_t	ReceiveOverrunError  			= (1 << 1);
   9:uart.cpp      **** const uint32_t	ParityError  					= (1 << 2);
  10:uart.cpp      **** const uint32_t	FramingError  					= (1 << 3);
  11:uart.cpp      **** const uint32_t	BreakInterrupt  				= (1 << 4);
  12:uart.cpp      **** const uint32_t	TransmitHoldingRegisterEmpty	= (1 << 5);
  13:uart.cpp      **** const uint32_t	TransmitBufferRegisterEmpty  	= (1 << 6);
  14:uart.cpp      **** const uint32_t	ReceiverErrorOccurred  			= (1 << 7);
  15:uart.cpp      **** 
  16:uart.cpp      **** // UART Line Control Register Bit Definitions
  17:uart.cpp      **** const uint32_t	FiveBitCharacters				= (0 << 0);
  18:uart.cpp      **** const uint32_t  SixBitCharacters				= (1 << 0);
  19:uart.cpp      **** const uint32_t  SevenBitCharacters				= (2 << 0);
  20:uart.cpp      **** const uint32_t  EightBitCharacters				= (3 << 0);
  21:uart.cpp      **** const uint32_t  OneStopBit						= (0 << 2);
  22:uart.cpp      **** const uint32_t	TwoStopBits  					= (1 << 2);  
  23:uart.cpp      **** const uint32_t   ParityDisable                   = (0 << 3);
  24:uart.cpp      **** const uint32_t	ParityEnable  					= (1 << 3);
  25:uart.cpp      **** const uint32_t  OddParity						= (0 << 4);
  26:uart.cpp      **** const uint32_t	EvenParity	  					= (1 << 4);
  27:uart.cpp      **** const uint32_t	StickParityBit					= (1 << 5);
  28:uart.cpp      **** const uint32_t	SetBreakCondition			 	= (1 << 6);
  29:uart.cpp      **** 
  30:uart.cpp      **** void PolledUart::SetBaudRate(uint32_t baudRate)
 116              	end = 0, frame = 4
 117              		@ frame_needed = 1, uses_anonymous_args = 0
 118              		mov	ip, sp
 119 0000 0DC0A0E1 	.LCFI12:
 120              		stmfd	sp!, {fp, ip, lr, pc}
 121 0004 00D82DE9 	.LCFI13:
 122              		sub	fp, ip, #4
 123 0008 04B04CE2 	.LCFI14:
 124              		sub	sp, sp, #4
 125 000c 04D04DE2 	.LCFI15:
 126              		str	r0, [fp, #-16]
 127 0010 10000BE5 		.loc 2 32 0
  31:uart.cpp      **** {
  32:uart.cpp      **** 	regWrite(UART::BD, (TicksPerSecond / baudRate));
 128              	3
 129 0014 20009FE5 		ldr	r1, [fp, #-16]
 130 0018 10101BE5 		bl	__udivsi3
 131 001c FEFFFFEB 		mov	r3, r0
 132 0020 0030A0E1 		mov	r0, #28
 133 0024 1C00A0E3 		mov	r1, r3
 134 0028 0310A0E1 		ldr	r3, .L13+4
 135 002c 0C309FE5 		mov	lr, pc
 136 0030 0FE0A0E1 		bx	r3
 137 0034 13FF2FE1 		.loc 2 33 0
  33:uart.cpp      **** }
 138              	 {r3, fp, sp, pc}
 139 0038 08A89DE8 	.L14:
 140              		.align	2
 141              	.L13:
 142              		.word	25000000
 143 003c 40787D01 		.word	_ZN4UART8regWriteENS_9RegistersEm
 144 0040 00000000 	.LFE5:
 146              		.align	2
 147              		.global	_ZN10PolledUart10InitializeEv
 149              	_ZN10PolledUart10InitializeEv:
 150              	.LFB6:
 151              		.loc 2 35 0
  34:uart.cpp      **** 
  35:uart.cpp      **** void PolledUart::Initialize(void)
 152              	retend = 0, frame = 0
 153              		@ frame_needed = 1, uses_anonymous_args = 0
 154              		mov	ip, sp
 155 0044 0DC0A0E1 	.LCFI16:
 156              		stmfd	sp!, {fp, ip, lr, pc}
 157 0048 00D82DE9 	.LCFI17:
 158              		sub	fp, ip, #4
 159 004c 04B04CE2 	.LCFI18:
 160              		.loc 2 37 0
  36:uart.cpp      **** {
  37:uart.cpp      **** 	SetBaudRate(38400);
 161              	#38400
 162 0050 960CA0E3 		bl	_ZN10PolledUart11SetBaudRateEm
 163 0054 FEFFFFEB 		.loc 2 38 0
  38:uart.cpp      **** 	regWrite(UART::LCR, (EightBitCharacters | OneStopBit | ParityDisable));
 164              	v	r0, #12
 165 0058 0C00A0E3 		mov	r1, #3
 166 005c 0310A0E3 		ldr	r3, .L17
 167 0060 08309FE5 		mov	lr, pc
 168 0064 0FE0A0E1 		bx	r3
 169 0068 13FF2FE1 		.loc 2 39 0
  39:uart.cpp      **** }
 170              		sp, {fp, sp, pc}
 171 006c 00A89DE8 	.L18:
 172              		.align	2
 173              	.L17:
 174              		.word	_ZN4UART8regWriteENS_9RegistersEm
 175 0070 00000000 	.LFE6:
 177              		.align	2
 178              		.global	_ZN10PolledUart15RawPutCharacterEc
 180              	_ZN10PolledUart15RawPutCharacterEc:
 181              	.LFB7:
 182              		.loc 2 41 0
  40:uart.cpp      **** 
  41:uart.cpp      **** void PolledUart::RawPutCharacter(const char character)
 183              	pretend = 0, frame = 12
 184              		@ frame_needed = 1, uses_anonymous_args = 0
 185              		mov	ip, sp
 186 0074 0DC0A0E1 	.LCFI19:
 187              		stmfd	sp!, {fp, ip, lr, pc}
 188 0078 00D82DE9 	.LCFI20:
 189              		sub	fp, ip, #4
 190 007c 04B04CE2 	.LCFI21:
 191              		sub	sp, sp, #12
 192 0080 0CD04DE2 	.LCFI22:
 193              		mov	r3, r0
 194 0084 0030A0E1 		strb	r3, [fp, #-24]
 195 0088 18304BE5 	.LBB2:
 196              		.loc 2 43 0
  42:uart.cpp      **** {
  43:uart.cpp      **** 	uint32_t c = character;
 197              	 #-24]	@ zero_extendqisi2
 198 008c 18305BE5 		str	r3, [fp, #-20]
 199 0090 14300BE5 	.LBB3:
 200              		.loc 2 44 0
  44:uart.cpp      **** 	for (uint32_t i = 0; i < 0x100000; i++) {
 201              		r3, #0
 202 0094 0030A0E3 		str	r3, [fp, #-16]
 203 0098 10300BE5 		b	.L20
 204 009c 0D0000EA 	.L21:
 205              		.loc 2 45 0
  45:uart.cpp      **** 		if (regRead(UART::LSR) & TransmitHoldingRegisterEmpty)
 206              	r0, #20
 207 00a0 1400A0E3 		ldr	r3, .L25
 208 00a4 58309FE5 		mov	lr, pc
 209 00a8 0FE0A0E1 		bx	r3
 210 00ac 13FF2FE1 		mov	r3, r0
 211 00b0 0030A0E1 		and	r3, r3, #32
 212 00b4 203003E2 		cmp	r3, #0
 213 00b8 000053E3 		moveq	r3, #0
 214 00bc 0030A003 		movne	r3, #1
 215 00c0 0130A013 		cmp	r3, #0
 216 00c4 000053E3 		bne	.L22
 217 00c8 0600001A 		.loc 2 44 0
 218              		ldr	r3, [fp, #-16]
 219 00cc 10301BE5 		add	r3, r3, #1
 220 00d0 013083E2 		str	r3, [fp, #-16]
 221 00d4 10300BE5 	.L20:
 222              		ldr	r2, [fp, #-16]
 223 00d8 10201BE5 		ldr	r3, .L25+4
 224 00dc 24309FE5 		cmp	r2, r3
 225 00e0 030052E1 		bls	.L21
 226 00e4 EDFFFF9A 	.L22:
 227              	.LBE3:
 228              		.loc 2 48 0
  46:uart.cpp      **** 			break;
  47:uart.cpp      **** 	}
  48:uart.cpp      **** 	regWrite(UART::TX, c);
 229              	p, #-20]
 230 00e8 0400A0E3 		ldr	r3, .L25+8
 231 00ec 14101BE5 		mov	lr, pc
 232 00f0 14309FE5 		bx	r3
 233 00f4 0FE0A0E1 	.LBE2:
 234 00f8 13FF2FE1 		.loc 2 49 0
 235              		sub	sp, fp, #12
  49:uart.cpp      **** }
 236              	sp, {fp, sp, pc}
 237 00fc 0CD04BE2 	.L26:
 238 0100 00A89DE8 		.align	2
 239              	.L25:
 240              		.word	_ZN4UART7regReadENS_9RegistersE
 241              		.word	1048575
 242 0104 00000000 		.word	_ZN4UART8regWriteENS_9RegistersEm
 243 0108 FFFF0F00 	.LFE7:
 245              		.align	2
 246              		.global	_ZN10PolledUart12PutCharacterEc
 248              	_ZN10PolledUart12PutCharacterEc:
 249              	.LFB8:
 250              		.loc 2 51 0
 251              		@ args = 0, pretend = 0, frame = 4
  50:uart.cpp      **** 
  51:uart.cpp      **** void PolledUart::PutCharacter(const char character)
 252              	= 1, uses_anonymous_args = 0
 253              		mov	ip, sp
 254              	.LCFI23:
 255 0110 0DC0A0E1 		stmfd	sp!, {fp, ip, lr, pc}
 256              	.LCFI24:
 257 0114 00D82DE9 		sub	fp, ip, #4
 258              	.LCFI25:
 259 0118 04B04CE2 		sub	sp, sp, #4
 260              	.LCFI26:
 261 011c 04D04DE2 		mov	r3, r0
 262              		strb	r3, [fp, #-16]
 263 0120 0030A0E1 		.loc 2 53 0
 264 0124 10304BE5 		ldrb	r3, [fp, #-16]	@ zero_extendqisi2
  52:uart.cpp      **** {
  53:uart.cpp      **** 	RawPutCharacter(character);
 265              	bl	_ZN10PolledUart15RawPutCharacterEc
 266 0128 10305BE5 		.loc 2 54 0
 267 012c 0300A0E1 		ldrb	r3, [fp, #-16]	@ zero_extendqisi2
 268 0130 FEFFFFEB 		cmp	r3, #10
  54:uart.cpp      **** 	if (character == '\n')
 269              		.L30
 270 0134 10305BE5 		.loc 2 55 0
 271 0138 0A0053E3 		mov	r0, #13
 272 013c 0100001A 		bl	_ZN10PolledUart15RawPutCharacterEc
  55:uart.cpp      **** 		RawPutCharacter('\r');
 273              	:
 274 0140 0D00A0E3 		.loc 2 56 0
 275 0144 FEFFFFEB 		ldmfd	sp, {r3, fp, sp, pc}
 276              	.LFE8:
  56:uart.cpp      **** }
 277              	ze	_ZN10PolledUart12PutCharacterEc, .-_ZN10PolledUart12PutCharacterEc
 278 0148 08A89DE8 		.align	2
 279              		.global	_ZN10PolledUart9PutStringEPKc
 281              	_ZN10PolledUart9PutStringEPKc:
 282              	.LFB9:
 283              		.loc 2 58 0
 284              		@ args = 0, pretend = 0, frame = 8
 285              		@ frame_needed = 1, uses_anonymous_args = 0
  57:uart.cpp      **** 
  58:uart.cpp      **** void PolledUart::PutString(const char *string)
 286              	sp
 287              	.LCFI27:
 288              		stmfd	sp!, {fp, ip, lr, pc}
 289 014c 0DC0A0E1 	.LCFI28:
 290              		sub	fp, ip, #4
 291 0150 00D82DE9 	.LCFI29:
 292              		sub	sp, sp, #8
 293 0154 04B04CE2 	.LCFI30:
 294              		str	r0, [fp, #-20]
 295 0158 08D04DE2 	.LBB4:
 296              		.loc 2 61 0
 297 015c 14000BE5 		b	.L32
 298              	.L33:
  59:uart.cpp      **** {
  60:uart.cpp      **** 	char c;
  61:uart.cpp      **** 	while ((c = *string++) != 0)
 299              		ldrb	r3, [fp, #-13]	@ zero_extendqisi2
 300 0160 020000EA 		mov	r0, r3
 301              		bl	_ZN10PolledUart12PutCharacterEc
  62:uart.cpp      **** 		PutCharacter(c);
 302              	2:
 303 0164 0D305BE5 		.loc 2 61 0
 304 0168 0300A0E1 		ldr	r3, [fp, #-20]
 305 016c FEFFFFEB 		ldrb	r3, [r3, #0]
 306              		strb	r3, [fp, #-13]
 307              		ldrb	r3, [fp, #-13]	@ zero_extendqisi2
 308 0170 14301BE5 		cmp	r3, #0
 309 0174 0030D3E5 		moveq	r2, #0
 310 0178 0D304BE5 		movne	r2, #1
 311 017c 0D305BE5 		ldr	r3, [fp, #-20]
 312 0180 000053E3 		add	r3, r3, #1
 313 0184 0020A003 		str	r3, [fp, #-20]
 314 0188 0120A013 		cmp	r2, #0
 315 018c 14301BE5 		bne	.L33
 316 0190 013083E2 	.LBE4:
 317 0194 14300BE5 		.loc 2 63 0
 318 0198 000052E3 		sub	sp, fp, #12
 319 019c F0FFFF1A 		ldmfd	sp, {fp, sp, pc}
 320              	.LFE9:
  63:uart.cpp      **** }
 321              	art9PutStringEPKc, .-_ZN10PolledUart9PutStringEPKc
 322 01a0 0CD04BE2 		.align	2
 323 01a4 00A89DE8 		.global	_ZN10PolledUart18CharacterAvailableEv
 325              	_ZN10PolledUart18CharacterAvailableEv:
 326              	.LFB10:
 327              		.loc 2 65 0
 328              		@ args = 0, pretend = 0, frame = 0
 329              		@ frame_needed = 1, uses_anonymous_args = 0
 330              		mov	ip, sp
  64:uart.cpp      **** 
  65:uart.cpp      **** bool PolledUart::CharacterAvailable(void)
 331              	stmfd	sp!, {fp, ip, lr, pc}
 332              	.LCFI32:
 333              		sub	fp, ip, #4
 334 01a8 0DC0A0E1 	.LCFI33:
 335              		.loc 2 67 0
 336 01ac 00D82DE9 		mov	r0, #20
 337              		ldr	r3, .L38
 338 01b0 04B04CE2 		mov	lr, pc
 339              		bx	r3
  66:uart.cpp      **** {
  67:uart.cpp      **** 	return ((regRead(UART::LSR) & ReceiveDataReady) ? true : false);
 340              	r0
 341 01b4 1400A0E3 		and	r3, r3, #1
 342 01b8 18309FE5 		and	r3, r3, #255
 343 01bc 0FE0A0E1 		.loc 2 68 0
 344 01c0 13FF2FE1 		mov	r0, r3
 345 01c4 0030A0E1 		ldmfd	sp, {fp, sp, pc}
 346 01c8 013003E2 	.L39:
 347 01cc FF3003E2 		.align	2
  68:uart.cpp      **** }
 348              	word	_ZN4UART7regReadENS_9RegistersE
 349 01d0 0300A0E1 	.LFE10:
 351              		.align	2
 352              		.global	_ZN10PolledUart12GetCharacterEv
 354 01d8 00000000 	_ZN10PolledUart12GetCharacterEv:
 355              	.LFB11:
 356              		.loc 2 70 0
 357              		@ args = 0, pretend = 0, frame = 0
 358              		@ frame_needed = 1, uses_anonymous_args = 0
 359              		mov	ip, sp
 360              	.LCFI34:
 361              		stmfd	sp!, {fp, ip, lr, pc}
  69:uart.cpp      **** 
  70:uart.cpp      **** uint32_t PolledUart::GetCharacter(void)
 362              	fp, ip, #4
 363              	.LCFI36:
 364              	.L41:
 365 01dc 0DC0A0E1 		.loc 2 72 0
 366              		mov	r0, #20
 367 01e0 00D82DE9 		ldr	r3, .L44
 368              		mov	lr, pc
 369 01e4 04B04CE2 		bx	r3
 370              		mov	r3, r0
 371              		and	r3, r3, #1
  71:uart.cpp      **** {
  72:uart.cpp      **** 	while ((regRead(UART::LSR) & ReceiveDataReady) == 0)
 372              	0
 373 01e8 1400A0E3 		movne	r3, #0
 374 01ec 3C309FE5 		moveq	r3, #1
 375 01f0 0FE0A0E1 		cmp	r3, #0
 376 01f4 13FF2FE1 		bne	.L41
 377 01f8 0030A0E1 		.loc 2 74 0
 378 01fc 013003E2 		mov	r0, #0
 379 0200 000053E3 		ldr	r3, .L44
 380 0204 0030A013 		mov	lr, pc
 381 0208 0130A003 		bx	r3
 382 020c 000053E3 		mov	r3, r0
 383 0210 F4FFFF1A 		.loc 2 75 0
  73:uart.cpp      **** 		;
  74:uart.cpp      **** 	return regRead(UART::RX);
 384              		ldmfd	sp, {fp, sp, pc}
 385 0214 0000A0E3 	.L45:
 386 0218 10309FE5 		.align	2
 387 021c 0FE0A0E1 	.L44:
 388 0220 13FF2FE1 		.word	_ZN4UART7regReadENS_9RegistersE
 389 0224 0030A0E1 	.LFE11:
  75:uart.cpp      **** }
 390              		_ZN10PolledUart12GetCharacterEv, .-_ZN10PolledUart12GetCharacterEv
 391 0228 0300A0E1 		.section	.debug_frame,"",%progbits
 392 022c 00A89DE8 	.Lframe0:
 393              		.4byte	.LECIE0-.LSCIE0
 394              	.LSCIE0:
 395              		.4byte	0xffffffff
 396 0230 00000000 		.byte	0x1
 397              		.ascii	"\000"
 398              		.uleb128 0x1
 669              		.4byte	.LCFI0
DEFINED SYMBOLS
                            *ABS*:00000000 uart.cpp
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:14     .text._ZN4UART10regAddressENS_9RegistersE:00000000 _ZN4UART10regAddressENS_9RegistersE
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:20     .text._ZN4UART10regAddressENS_9RegistersE:00000000 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:42     .text._ZN4UART7regReadENS_9RegistersE:00000000 _ZN4UART7regReadENS_9RegistersE
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:47     .text._ZN4UART7regReadENS_9RegistersE:00000000 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:69     .text._ZN4UART7regReadENS_9RegistersE:00000034 $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:76     .text._ZN4UART8regWriteENS_9RegistersEm:00000000 _ZN4UART8regWriteENS_9RegistersEm
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:81     .text._ZN4UART8regWriteENS_9RegistersEm:00000000 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:105    .text._ZN4UART8regWriteENS_9RegistersEm:0000003c $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:113    .text:00000000 _ZN10PolledUart11SetBaudRateEm
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:119    .text:00000000 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:143    .text:0000003c $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:150    .text:00000044 _ZN10PolledUart10InitializeEv
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:155    .text:00000044 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:175    .text:00000070 $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:181    .text:00000074 _ZN10PolledUart15RawPutCharacterEc
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:186    .text:00000074 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:242    .text:00000104 $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:250    .text:00000110 _ZN10PolledUart12PutCharacterEc
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:255    .text:00000110 $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:284    .text:0000014c _ZN10PolledUart9PutStringEPKc
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:329    .text:000001a8 _ZN10PolledUart18CharacterAvailableEv
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:354    .text:000001d8 $d
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:360    .text:000001dc _ZN10PolledUart12GetCharacterEv
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:365    .text:000001dc $a
C:\DOCUME~1\RAWA~1.LAG\LOCALS~1\Temp/ccasgaaa.s:396    .text:00000230 $d

UNDEFINED SYMBOLS
__udivsi3
