
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 1


   1              		.cpu cortex-m3
   2              		.eabi_attribute 20, 1
   3              		.eabi_attribute 21, 1
   4              		.eabi_attribute 23, 3
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 1
   9              		.eabi_attribute 34, 1
  10              		.eabi_attribute 18, 4
  11              		.file	"nmea.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.section	.text.decodeDec,"ax",%progbits
  16              		.align	1
  17              		.arch armv7-m
  18              		.syntax unified
  19              		.thumb
  20              		.thumb_func
  21              		.fpu softvfp
  23              	decodeDec:
  24              	.LVL0:
  25              	.LFB66:
  26              		.file 1 "../libNMEA/src/nmea.c"
   1:../libNMEA/src/nmea.c **** /*
   2:../libNMEA/src/nmea.c ****  * nmea.c
   3:../libNMEA/src/nmea.c ****  *
   4:../libNMEA/src/nmea.c ****  *  Created on: 6 Sep 2020
   5:../libNMEA/src/nmea.c ****  *      Author: mike
   6:../libNMEA/src/nmea.c ****  */
   7:../libNMEA/src/nmea.c **** 
   8:../libNMEA/src/nmea.c **** #include <math.h>
   9:../libNMEA/src/nmea.c **** #include <stdint.h>
  10:../libNMEA/src/nmea.c **** #include <stdlib.h>
  11:../libNMEA/src/nmea.c **** #include <memory.h>
  12:../libNMEA/src/nmea.c **** 
  13:../libNMEA/src/nmea.c **** #include "libNMEA/nmea.h"
  14:../libNMEA/src/nmea.c **** 
  15:../libNMEA/src/nmea.c **** #include "libSerial/serial.h"
  16:../libNMEA/src/nmea.c **** 
  17:../libNMEA/src/nmea.c **** char linebuff[80];
  18:../libNMEA/src/nmea.c **** unsigned linePos = 0;
  19:../libNMEA/src/nmea.c **** 
  20:../libNMEA/src/nmea.c **** typedef enum
  21:../libNMEA/src/nmea.c **** {
  22:../libNMEA/src/nmea.c ****   SEARCH, READING
  23:../libNMEA/src/nmea.c **** } NmeaState_t;
  24:../libNMEA/src/nmea.c **** 
  25:../libNMEA/src/nmea.c **** NmeaState_t lineState = SEARCH;
  26:../libNMEA/src/nmea.c **** 
  27:../libNMEA/src/nmea.c **** static bool
  28:../libNMEA/src/nmea.c **** decodePacket (char *linebuff, int linePos, Location *loc);
  29:../libNMEA/src/nmea.c **** 
  30:../libNMEA/src/nmea.c **** bool
  31:../libNMEA/src/nmea.c **** updateLocation (Location *loc, usart_ctl * uc)
  32:../libNMEA/src/nmea.c **** {
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 2


  33:../libNMEA/src/nmea.c ****   while (1)
  34:../libNMEA/src/nmea.c ****     {
  35:../libNMEA/src/nmea.c ****       if (!SerialCharsReceived (uc))
  36:../libNMEA/src/nmea.c **** 	return false; // nothing to read, return immediately
  37:../libNMEA/src/nmea.c **** 
  38:../libNMEA/src/nmea.c ****       char c = GetCharSerial (uc);
  39:../libNMEA/src/nmea.c ****       switch (lineState)
  40:../libNMEA/src/nmea.c **** 	{
  41:../libNMEA/src/nmea.c **** 	case SEARCH:
  42:../libNMEA/src/nmea.c **** 	  if (c == '$')
  43:../libNMEA/src/nmea.c **** 	    lineState = READING;
  44:../libNMEA/src/nmea.c **** 	  linePos = 0;
  45:../libNMEA/src/nmea.c **** 	  break;
  46:../libNMEA/src/nmea.c **** 	case READING:
  47:../libNMEA/src/nmea.c **** 	  if (c == '\r')
  48:../libNMEA/src/nmea.c **** 	    {
  49:../libNMEA/src/nmea.c **** 	      // handle the read code
  50:../libNMEA/src/nmea.c **** 	      bool success = decodePacket (linebuff, linePos, loc);
  51:../libNMEA/src/nmea.c **** 	      lineState = SEARCH;
  52:../libNMEA/src/nmea.c **** 
  53:../libNMEA/src/nmea.c **** 	      linePos = 0;
  54:../libNMEA/src/nmea.c **** 	      return success;
  55:../libNMEA/src/nmea.c **** 	    }
  56:../libNMEA/src/nmea.c **** 	  if (linePos < sizeof(linebuff))
  57:../libNMEA/src/nmea.c **** 	    linebuff[linePos++] = c;
  58:../libNMEA/src/nmea.c **** 	  else
  59:../libNMEA/src/nmea.c **** 	    {
  60:../libNMEA/src/nmea.c **** 	      lineState = SEARCH;
  61:../libNMEA/src/nmea.c **** 	      // search for the $  in any unread string
  62:../libNMEA/src/nmea.c **** 	      int i;
  63:../libNMEA/src/nmea.c **** 
  64:../libNMEA/src/nmea.c **** 	      for (i = 0; i < linePos; i++)
  65:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
  66:../libNMEA/src/nmea.c **** 		  {
  67:../libNMEA/src/nmea.c **** 		    int n = i+1;
  68:../libNMEA/src/nmea.c **** 		    memcpy (linebuff, linebuff + n, linePos - i);
  69:../libNMEA/src/nmea.c **** 		    linePos = linePos - i;
  70:../libNMEA/src/nmea.c **** 		    linebuff[linePos++] = c;
  71:../libNMEA/src/nmea.c **** 		    lineState = READING;
  72:../libNMEA/src/nmea.c **** 		  }
  73:../libNMEA/src/nmea.c **** 
  74:../libNMEA/src/nmea.c **** 	      if (lineState == SEARCH)
  75:../libNMEA/src/nmea.c **** 		linePos = 0;
  76:../libNMEA/src/nmea.c **** 	    }
  77:../libNMEA/src/nmea.c **** 	  break;
  78:../libNMEA/src/nmea.c **** 	}
  79:../libNMEA/src/nmea.c ****     }
  80:../libNMEA/src/nmea.c ****   return 0;
  81:../libNMEA/src/nmea.c **** }
  82:../libNMEA/src/nmea.c **** 
  83:../libNMEA/src/nmea.c **** 
  84:../libNMEA/src/nmea.c **** static int8_t decodeDec(char c)
  85:../libNMEA/src/nmea.c **** {
  27              		.loc 1 85 1 view -0
  28              		.cfi_startproc
  29              		@ args = 0, pretend = 0, frame = 0
  30              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 3


  31              		@ link register save eliminated.
  86:../libNMEA/src/nmea.c ****   if (c>'9' && c<'0')
  32              		.loc 1 86 3 view .LVU1
  87:../libNMEA/src/nmea.c ****     return -1;
  88:../libNMEA/src/nmea.c ****   return c-'0';
  33              		.loc 1 88 3 view .LVU2
  34              		.loc 1 88 11 is_stmt 0 view .LVU3
  35 0000 3038     		subs	r0, r0, #48
  36              	.LVL1:
  89:../libNMEA/src/nmea.c **** }
  37              		.loc 1 89 1 view .LVU4
  38 0002 40B2     		sxtb	r0, r0
  39 0004 7047     		bx	lr
  40              		.cfi_endproc
  41              	.LFE66:
  43              		.section	.text.decodeHex,"ax",%progbits
  44              		.align	1
  45              		.syntax unified
  46              		.thumb
  47              		.thumb_func
  48              		.fpu softvfp
  50              	decodeHex:
  51              	.LVL2:
  52              	.LFB67:
  90:../libNMEA/src/nmea.c **** 
  91:../libNMEA/src/nmea.c **** static uint8_t
  92:../libNMEA/src/nmea.c **** decodeHex (char c)
  93:../libNMEA/src/nmea.c **** {
  53              		.loc 1 93 1 is_stmt 1 view -0
  54              		.cfi_startproc
  55              		@ args = 0, pretend = 0, frame = 0
  56              		@ frame_needed = 0, uses_anonymous_args = 0
  57              		.loc 1 93 1 is_stmt 0 view .LVU6
  58 0000 10B5     		push	{r4, lr}
  59              	.LCFI0:
  60              		.cfi_def_cfa_offset 8
  61              		.cfi_offset 4, -8
  62              		.cfi_offset 14, -4
  63 0002 0446     		mov	r4, r0
  94:../libNMEA/src/nmea.c ****   int8_t v = decodeDec(c);
  64              		.loc 1 94 3 is_stmt 1 view .LVU7
  65              		.loc 1 94 14 is_stmt 0 view .LVU8
  66 0004 FFF7FEFF 		bl	decodeDec
  67              	.LVL3:
  95:../libNMEA/src/nmea.c ****   if(v>=0)
  68              		.loc 1 95 3 is_stmt 1 view .LVU9
  69              		.loc 1 95 5 is_stmt 0 view .LVU10
  70 0008 0028     		cmp	r0, #0
  71              	.LVL4:
  72              		.loc 1 95 5 view .LVU11
  73 000a 0DDA     		bge	.L9
  96:../libNMEA/src/nmea.c ****     return v;
  97:../libNMEA/src/nmea.c ****   c = tolower (c);
  74              		.loc 1 97 3 is_stmt 1 view .LVU12
  75              	.LBB2:
  76              		.loc 1 97 7 view .LVU13
  77              	.LVL5:
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 4


  78              		.loc 1 97 7 view .LVU14
  79 000c 0A4B     		ldr	r3, .L12
  80 000e E35C     		ldrb	r3, [r4, r3]	@ zero_extendqisi2
  81 0010 03F00303 		and	r3, r3, #3
  82 0014 012B     		cmp	r3, #1
  83 0016 09D0     		beq	.L10
  84              	.LVL6:
  85              	.L6:
  86              		.loc 1 97 7 is_stmt 0 view .LVU15
  87              	.LBE2:
  88              		.loc 1 97 5 discriminator 4 view .LVU16
  89 0018 E4B2     		uxtb	r4, r4
  90              	.LVL7:
  98:../libNMEA/src/nmea.c ****   if (c >= 'a' && c <= 'f')
  91              		.loc 1 98 3 is_stmt 1 discriminator 4 view .LVU17
  92              		.loc 1 98 16 is_stmt 0 discriminator 4 view .LVU18
  93 001a A4F16103 		sub	r3, r4, #97
  94 001e DBB2     		uxtb	r3, r3
  95              		.loc 1 98 6 discriminator 4 view .LVU19
  96 0020 052B     		cmp	r3, #5
  97 0022 05D9     		bls	.L11
  99:../libNMEA/src/nmea.c ****     return c - 'a' + 10;
 100:../libNMEA/src/nmea.c ****   return 0;
  98              		.loc 1 100 10 view .LVU20
  99 0024 0020     		movs	r0, #0
 100 0026 00E0     		b	.L4
 101              	.LVL8:
 102              	.L9:
  96:../libNMEA/src/nmea.c ****   c = tolower (c);
 103              		.loc 1 96 5 is_stmt 1 view .LVU21
  96:../libNMEA/src/nmea.c ****   c = tolower (c);
 104              		.loc 1 96 12 is_stmt 0 view .LVU22
 105 0028 C0B2     		uxtb	r0, r0
 106              	.LVL9:
 107              	.L4:
 101:../libNMEA/src/nmea.c **** }
 108              		.loc 1 101 1 view .LVU23
 109 002a 10BD     		pop	{r4, pc}
 110              	.LVL10:
 111              	.L10:
 112              	.LBB3:
  97:../libNMEA/src/nmea.c ****   if (c >= 'a' && c <= 'f')
 113              		.loc 1 97 7 discriminator 1 view .LVU24
 114 002c 2034     		adds	r4, r4, #32
 115              	.LVL11:
  97:../libNMEA/src/nmea.c ****   if (c >= 'a' && c <= 'f')
 116              		.loc 1 97 7 discriminator 1 view .LVU25
 117 002e F3E7     		b	.L6
 118              	.LVL12:
 119              	.L11:
  97:../libNMEA/src/nmea.c ****   if (c >= 'a' && c <= 'f')
 120              		.loc 1 97 7 discriminator 1 view .LVU26
 121              	.LBE3:
  99:../libNMEA/src/nmea.c ****   return 0;
 122              		.loc 1 99 5 is_stmt 1 view .LVU27
  99:../libNMEA/src/nmea.c ****   return 0;
 123              		.loc 1 99 20 is_stmt 0 view .LVU28
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 5


 124 0030 573C     		subs	r4, r4, #87
 125              	.LVL13:
  99:../libNMEA/src/nmea.c ****   return 0;
 126              		.loc 1 99 20 view .LVU29
 127 0032 E0B2     		uxtb	r0, r4
 128 0034 F9E7     		b	.L4
 129              	.L13:
 130 0036 00BF     		.align	2
 131              	.L12:
 132 0038 01000000 		.word	_ctype_+1
 133              		.cfi_endproc
 134              	.LFE67:
 136              		.global	__aeabi_i2f
 137              		.global	__aeabi_fmul
 138              		.global	__aeabi_fadd
 139              		.global	__aeabi_fsub
 140              		.global	__aeabi_f2d
 141              		.global	__aeabi_dcmplt
 142              		.global	__aeabi_fdiv
 143              		.section	.text.decodeLL,"ax",%progbits
 144              		.align	1
 145              		.syntax unified
 146              		.thumb
 147              		.thumb_func
 148              		.fpu softvfp
 150              	decodeLL:
 151              	.LVL14:
 152              	.LFB68:
 102:../libNMEA/src/nmea.c **** 
 103:../libNMEA/src/nmea.c **** // lat/long decoder
 104:../libNMEA/src/nmea.c **** static float
 105:../libNMEA/src/nmea.c **** decodeLL (char *ptr, int msDigitWeight)
 106:../libNMEA/src/nmea.c **** {
 153              		.loc 1 106 1 is_stmt 1 view -0
 154              		.cfi_startproc
 155              		@ args = 0, pretend = 0, frame = 0
 156              		@ frame_needed = 0, uses_anonymous_args = 0
 157              		.loc 1 106 1 is_stmt 0 view .LVU31
 158 0000 F8B5     		push	{r3, r4, r5, r6, r7, lr}
 159              	.LCFI1:
 160              		.cfi_def_cfa_offset 24
 161              		.cfi_offset 3, -24
 162              		.cfi_offset 4, -20
 163              		.cfi_offset 5, -16
 164              		.cfi_offset 6, -12
 165              		.cfi_offset 7, -8
 166              		.cfi_offset 14, -4
 167 0002 0746     		mov	r7, r0
 107:../libNMEA/src/nmea.c ****   float digitWeight = msDigitWeight;
 168              		.loc 1 107 3 is_stmt 1 view .LVU32
 169              		.loc 1 107 9 is_stmt 0 view .LVU33
 170 0004 0846     		mov	r0, r1
 171              	.LVL15:
 172              		.loc 1 107 9 view .LVU34
 173 0006 FFF7FEFF 		bl	__aeabi_i2f
 174              	.LVL16:
 175              		.loc 1 107 9 view .LVU35
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 6


 176 000a 0446     		mov	r4, r0
 177              	.LVL17:
 108:../libNMEA/src/nmea.c ****   float result = 0;
 178              		.loc 1 108 3 is_stmt 1 view .LVU36
 109:../libNMEA/src/nmea.c ****   int i = 0;
 179              		.loc 1 109 3 view .LVU37
 180              		.loc 1 109 7 is_stmt 0 view .LVU38
 181 000c 0023     		movs	r3, #0
 108:../libNMEA/src/nmea.c ****   float result = 0;
 182              		.loc 1 108 9 view .LVU39
 183 000e 0025     		movs	r5, #0
 184 0010 1EE0     		b	.L15
 185              	.LVL18:
 186              	.L21:
 187              	.LBB4:
 110:../libNMEA/src/nmea.c ****   while (1)
 111:../libNMEA/src/nmea.c ****     {
 112:../libNMEA/src/nmea.c ****       char c = ptr[i++];
 113:../libNMEA/src/nmea.c ****       if (c == '.')
 114:../libNMEA/src/nmea.c **** 	continue;
 115:../libNMEA/src/nmea.c ****       int8_t v = decodeDec(c);
 116:../libNMEA/src/nmea.c ****       if (v>0)
 117:../libNMEA/src/nmea.c **** 	{
 118:../libNMEA/src/nmea.c **** 	  result += digitWeight * v;
 188              		.loc 1 118 4 is_stmt 1 view .LVU40
 189              		.loc 1 118 26 is_stmt 0 view .LVU41
 190 0012 FFF7FEFF 		bl	__aeabi_i2f
 191              	.LVL19:
 192 0016 2146     		mov	r1, r4
 193 0018 FFF7FEFF 		bl	__aeabi_fmul
 194              	.LVL20:
 195              		.loc 1 118 11 view .LVU42
 196 001c 0146     		mov	r1, r0
 197 001e 2846     		mov	r0, r5
 198 0020 FFF7FEFF 		bl	__aeabi_fadd
 199              	.LVL21:
 200 0024 0546     		mov	r5, r0
 201              	.LVL22:
 119:../libNMEA/src/nmea.c **** 	  if (fabs (digitWeight - 1) < 0.01)
 202              		.loc 1 119 4 is_stmt 1 view .LVU43
 203              		.loc 1 119 26 is_stmt 0 view .LVU44
 204 0026 4FF07E51 		mov	r1, #1065353216
 205 002a 2046     		mov	r0, r4
 206              	.LVL23:
 207              		.loc 1 119 26 view .LVU45
 208 002c FFF7FEFF 		bl	__aeabi_fsub
 209              	.LVL24:
 210              		.loc 1 119 8 view .LVU46
 211 0030 20F00040 		bic	r0, r0, #-2147483648
 212 0034 FFF7FEFF 		bl	__aeabi_f2d
 213              	.LVL25:
 214              		.loc 1 119 7 view .LVU47
 215 0038 0BA3     		adr	r3, .L22
 216 003a D3E90023 		ldrd	r2, [r3]
 217 003e FFF7FEFF 		bl	__aeabi_dcmplt
 218              	.LVL26:
 219 0042 78B9     		cbnz	r0, .L19
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 7


 120:../libNMEA/src/nmea.c **** 	    digitWeight = 1 / 6.0;
 121:../libNMEA/src/nmea.c **** 	  else
 122:../libNMEA/src/nmea.c **** 	    digitWeight = digitWeight / 10;
 220              		.loc 1 122 6 is_stmt 1 view .LVU48
 221              		.loc 1 122 18 is_stmt 0 view .LVU49
 222 0044 0A49     		ldr	r1, .L22+8
 223 0046 2046     		mov	r0, r4
 224 0048 FFF7FEFF 		bl	__aeabi_fdiv
 225              	.LVL27:
 226 004c 0446     		mov	r4, r0
 227              	.LVL28:
 228              	.L16:
 229              		.loc 1 122 18 view .LVU50
 230              	.LBE4:
 106:../libNMEA/src/nmea.c ****   float digitWeight = msDigitWeight;
 231              		.loc 1 106 1 view .LVU51
 232 004e 3346     		mov	r3, r6
 233              	.LVL29:
 234              	.L15:
 110:../libNMEA/src/nmea.c ****     {
 235              		.loc 1 110 3 is_stmt 1 view .LVU52
 236              	.LBB5:
 112:../libNMEA/src/nmea.c ****       if (c == '.')
 237              		.loc 1 112 7 view .LVU53
 112:../libNMEA/src/nmea.c ****       if (c == '.')
 238              		.loc 1 112 21 is_stmt 0 view .LVU54
 239 0050 5E1C     		adds	r6, r3, #1
 240              	.LVL30:
 112:../libNMEA/src/nmea.c ****       if (c == '.')
 241              		.loc 1 112 12 view .LVU55
 242 0052 F85C     		ldrb	r0, [r7, r3]	@ zero_extendqisi2
 243              	.LVL31:
 113:../libNMEA/src/nmea.c **** 	continue;
 244              		.loc 1 113 7 is_stmt 1 view .LVU56
 113:../libNMEA/src/nmea.c **** 	continue;
 245              		.loc 1 113 10 is_stmt 0 view .LVU57
 246 0054 2E28     		cmp	r0, #46
 247 0056 FAD0     		beq	.L16
 115:../libNMEA/src/nmea.c ****       if (v>0)
 248              		.loc 1 115 7 is_stmt 1 view .LVU58
 115:../libNMEA/src/nmea.c ****       if (v>0)
 249              		.loc 1 115 18 is_stmt 0 view .LVU59
 250 0058 FFF7FEFF 		bl	decodeDec
 251              	.LVL32:
 116:../libNMEA/src/nmea.c **** 	{
 252              		.loc 1 116 7 is_stmt 1 view .LVU60
 116:../libNMEA/src/nmea.c **** 	{
 253              		.loc 1 116 10 is_stmt 0 view .LVU61
 254 005c 0028     		cmp	r0, #0
 255              	.LVL33:
 116:../libNMEA/src/nmea.c **** 	{
 256              		.loc 1 116 10 view .LVU62
 257 005e D8DC     		bgt	.L21
 258              	.LBE5:
 123:../libNMEA/src/nmea.c **** 
 124:../libNMEA/src/nmea.c **** 	  continue;
 125:../libNMEA/src/nmea.c **** 	}
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 8


 126:../libNMEA/src/nmea.c ****       break;
 127:../libNMEA/src/nmea.c ****     }
 128:../libNMEA/src/nmea.c **** 
 129:../libNMEA/src/nmea.c ****   return result;
 130:../libNMEA/src/nmea.c **** 
 131:../libNMEA/src/nmea.c **** }
 259              		.loc 1 131 1 view .LVU63
 260 0060 2846     		mov	r0, r5
 261 0062 F8BD     		pop	{r3, r4, r5, r6, r7, pc}
 262              	.LVL34:
 263              	.L19:
 264              	.LBB6:
 120:../libNMEA/src/nmea.c **** 	  else
 265              		.loc 1 120 18 view .LVU64
 266 0064 034C     		ldr	r4, .L22+12
 267              	.LVL35:
 124:../libNMEA/src/nmea.c **** 	}
 268              		.loc 1 124 4 is_stmt 1 view .LVU65
 269 0066 F2E7     		b	.L16
 270              	.L23:
 271              		.align	3
 272              	.L22:
 273 0068 7B14AE47 		.word	1202590843
 274 006c E17A843F 		.word	1065646817
 275 0070 00002041 		.word	1092616192
 276 0074 ABAA2A3E 		.word	1042983595
 277              	.LBE6:
 278              		.cfi_endproc
 279              	.LFE68:
 281              		.section	.text.decodeDecimal,"ax",%progbits
 282              		.align	1
 283              		.syntax unified
 284              		.thumb
 285              		.thumb_func
 286              		.fpu softvfp
 288              	decodeDecimal:
 289              	.LVL36:
 290              	.LFB70:
 132:../libNMEA/src/nmea.c **** 
 133:../libNMEA/src/nmea.c **** static float
 134:../libNMEA/src/nmea.c **** decodeFP (char *ptr)
 135:../libNMEA/src/nmea.c **** {
 136:../libNMEA/src/nmea.c ****   return strtof (ptr, NULL);
 137:../libNMEA/src/nmea.c **** }
 138:../libNMEA/src/nmea.c **** 
 139:../libNMEA/src/nmea.c **** static int decodeDecimal(char * ptr)
 140:../libNMEA/src/nmea.c **** {
 291              		.loc 1 140 1 view -0
 292              		.cfi_startproc
 293              		@ args = 0, pretend = 0, frame = 0
 294              		@ frame_needed = 0, uses_anonymous_args = 0
 295              		.loc 1 140 1 is_stmt 0 view .LVU67
 296 0000 70B5     		push	{r4, r5, r6, lr}
 297              	.LCFI2:
 298              		.cfi_def_cfa_offset 16
 299              		.cfi_offset 4, -16
 300              		.cfi_offset 5, -12
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 9


 301              		.cfi_offset 6, -8
 302              		.cfi_offset 14, -4
 303 0002 0646     		mov	r6, r0
 141:../libNMEA/src/nmea.c ****     int i;
 304              		.loc 1 141 5 is_stmt 1 view .LVU68
 142:../libNMEA/src/nmea.c ****     int res=0;
 305              		.loc 1 142 5 view .LVU69
 306              	.LVL37:
 143:../libNMEA/src/nmea.c ****     int const width =2 ;
 307              		.loc 1 143 5 view .LVU70
 144:../libNMEA/src/nmea.c ****     for(i=0; i< width; i++)
 308              		.loc 1 144 5 view .LVU71
 142:../libNMEA/src/nmea.c ****     int res=0;
 309              		.loc 1 142 9 is_stmt 0 view .LVU72
 310 0004 0024     		movs	r4, #0
 311              		.loc 1 144 10 view .LVU73
 312 0006 2546     		mov	r5, r4
 313              	.LVL38:
 314              	.L25:
 315              		.loc 1 144 5 discriminator 1 view .LVU74
 316 0008 012D     		cmp	r5, #1
 317 000a 0BDC     		bgt	.L24
 318              	.LBB7:
 145:../libNMEA/src/nmea.c ****       {
 146:../libNMEA/src/nmea.c **** 	int8_t v = decodeDec(*ptr);
 319              		.loc 1 146 2 is_stmt 1 view .LVU75
 320              		.loc 1 146 13 is_stmt 0 view .LVU76
 321 000c 3078     		ldrb	r0, [r6]	@ zero_extendqisi2
 322 000e FFF7FEFF 		bl	decodeDec
 323              	.LVL39:
 147:../libNMEA/src/nmea.c **** 	if(v<0) return 0;
 324              		.loc 1 147 2 is_stmt 1 view .LVU77
 325              		.loc 1 147 4 is_stmt 0 view .LVU78
 326 0012 0028     		cmp	r0, #0
 327              	.LVL40:
 328              		.loc 1 147 4 view .LVU79
 329 0014 05DB     		blt	.L28
 148:../libNMEA/src/nmea.c **** 	res *=10;
 330              		.loc 1 148 2 is_stmt 1 discriminator 2 view .LVU80
 331              		.loc 1 148 6 is_stmt 0 discriminator 2 view .LVU81
 332 0016 04EB8404 		add	r4, r4, r4, lsl #2
 333              	.LVL41:
 334              		.loc 1 148 6 discriminator 2 view .LVU82
 335 001a 6300     		lsls	r3, r4, #1
 336              	.LVL42:
 149:../libNMEA/src/nmea.c **** 	res +=v;
 337              		.loc 1 149 2 is_stmt 1 discriminator 2 view .LVU83
 338              		.loc 1 149 6 is_stmt 0 discriminator 2 view .LVU84
 339 001c C418     		adds	r4, r0, r3
 340              	.LVL43:
 341              		.loc 1 149 6 discriminator 2 view .LVU85
 342              	.LBE7:
 144:../libNMEA/src/nmea.c ****       {
 343              		.loc 1 144 25 discriminator 2 view .LVU86
 344 001e 0135     		adds	r5, r5, #1
 345              	.LVL44:
 144:../libNMEA/src/nmea.c ****       {
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 10


 346              		.loc 1 144 25 discriminator 2 view .LVU87
 347 0020 F2E7     		b	.L25
 348              	.L28:
 349              	.LBB8:
 147:../libNMEA/src/nmea.c **** 	res *=10;
 350              		.loc 1 147 17 view .LVU88
 351 0022 0024     		movs	r4, #0
 352              	.LVL45:
 353              	.L24:
 147:../libNMEA/src/nmea.c **** 	res *=10;
 354              		.loc 1 147 17 view .LVU89
 355              	.LBE8:
 150:../libNMEA/src/nmea.c ****       }
 151:../libNMEA/src/nmea.c ****     return res;
 152:../libNMEA/src/nmea.c **** }
 356              		.loc 1 152 1 view .LVU90
 357 0024 2046     		mov	r0, r4
 358 0026 70BD     		pop	{r4, r5, r6, pc}
 359              		.loc 1 152 1 view .LVU91
 360              		.cfi_endproc
 361              	.LFE70:
 363              		.section	.text.decodeFP,"ax",%progbits
 364              		.align	1
 365              		.syntax unified
 366              		.thumb
 367              		.thumb_func
 368              		.fpu softvfp
 370              	decodeFP:
 371              	.LVL46:
 372              	.LFB69:
 135:../libNMEA/src/nmea.c ****   return strtof (ptr, NULL);
 373              		.loc 1 135 1 is_stmt 1 view -0
 374              		.cfi_startproc
 375              		@ args = 0, pretend = 0, frame = 0
 376              		@ frame_needed = 0, uses_anonymous_args = 0
 135:../libNMEA/src/nmea.c ****   return strtof (ptr, NULL);
 377              		.loc 1 135 1 is_stmt 0 view .LVU93
 378 0000 08B5     		push	{r3, lr}
 379              	.LCFI3:
 380              		.cfi_def_cfa_offset 8
 381              		.cfi_offset 3, -8
 382              		.cfi_offset 14, -4
 136:../libNMEA/src/nmea.c **** }
 383              		.loc 1 136 3 is_stmt 1 view .LVU94
 136:../libNMEA/src/nmea.c **** }
 384              		.loc 1 136 10 is_stmt 0 view .LVU95
 385 0002 0021     		movs	r1, #0
 386 0004 FFF7FEFF 		bl	strtof
 387              	.LVL47:
 137:../libNMEA/src/nmea.c **** 
 388              		.loc 1 137 1 view .LVU96
 389 0008 08BD     		pop	{r3, pc}
 390              		.cfi_endproc
 391              	.LFE69:
 393              		.section	.text.decodePacket,"ax",%progbits
 394              		.align	1
 395              		.syntax unified
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 11


 396              		.thumb
 397              		.thumb_func
 398              		.fpu softvfp
 400              	decodePacket:
 401              	.LVL48:
 402              	.LFB71:
 153:../libNMEA/src/nmea.c **** 
 154:../libNMEA/src/nmea.c **** bool
 155:../libNMEA/src/nmea.c **** decodePacket (char *linebuff, int linePos, Location *loc)
 156:../libNMEA/src/nmea.c **** {
 403              		.loc 1 156 1 is_stmt 1 view -0
 404              		.cfi_startproc
 405              		@ args = 0, pretend = 0, frame = 80
 406              		@ frame_needed = 0, uses_anonymous_args = 0
 407              		.loc 1 156 1 is_stmt 0 view .LVU98
 408 0000 2DE9F043 		push	{r4, r5, r6, r7, r8, r9, lr}
 409              	.LCFI4:
 410              		.cfi_def_cfa_offset 28
 411              		.cfi_offset 4, -28
 412              		.cfi_offset 5, -24
 413              		.cfi_offset 6, -20
 414              		.cfi_offset 7, -16
 415              		.cfi_offset 8, -12
 416              		.cfi_offset 9, -8
 417              		.cfi_offset 14, -4
 418 0004 95B0     		sub	sp, sp, #84
 419              	.LCFI5:
 420              		.cfi_def_cfa_offset 112
 421 0006 0646     		mov	r6, r0
 422 0008 0F46     		mov	r7, r1
 423 000a 9046     		mov	r8, r2
 157:../libNMEA/src/nmea.c ****   uint8_t checksum = 0;
 424              		.loc 1 157 3 is_stmt 1 view .LVU99
 425              	.LVL49:
 158:../libNMEA/src/nmea.c ****   for (int i = 0; i < linePos - 3; i++)
 426              		.loc 1 158 3 view .LVU100
 427              	.LBB9:
 428              		.loc 1 158 8 view .LVU101
 429              		.loc 1 158 12 is_stmt 0 view .LVU102
 430 000c 0023     		movs	r3, #0
 431              	.LBE9:
 157:../libNMEA/src/nmea.c ****   uint8_t checksum = 0;
 432              		.loc 1 157 11 view .LVU103
 433 000e 1D46     		mov	r5, r3
 434              	.LVL50:
 435              	.L33:
 436              	.LBB10:
 437              		.loc 1 158 31 discriminator 1 view .LVU104
 438 0010 FC1E     		subs	r4, r7, #3
 439              		.loc 1 158 3 discriminator 1 view .LVU105
 440 0012 9C42     		cmp	r4, r3
 441 0014 03DD     		ble	.L45
 159:../libNMEA/src/nmea.c ****     checksum ^= linebuff[i];
 442              		.loc 1 159 5 is_stmt 1 discriminator 3 view .LVU106
 443              		.loc 1 159 25 is_stmt 0 discriminator 3 view .LVU107
 444 0016 F25C     		ldrb	r2, [r6, r3]	@ zero_extendqisi2
 445              		.loc 1 159 14 discriminator 3 view .LVU108
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 12


 446 0018 5540     		eors	r5, r5, r2
 447              	.LVL51:
 158:../libNMEA/src/nmea.c ****   for (int i = 0; i < linePos - 3; i++)
 448              		.loc 1 158 37 discriminator 3 view .LVU109
 449 001a 0133     		adds	r3, r3, #1
 450              	.LVL52:
 158:../libNMEA/src/nmea.c ****   for (int i = 0; i < linePos - 3; i++)
 451              		.loc 1 158 37 discriminator 3 view .LVU110
 452 001c F8E7     		b	.L33
 453              	.L45:
 158:../libNMEA/src/nmea.c ****   for (int i = 0; i < linePos - 3; i++)
 454              		.loc 1 158 37 discriminator 3 view .LVU111
 455              	.LBE10:
 160:../libNMEA/src/nmea.c ****   uint8_t givenSum = (decodeHex (linebuff[linePos - 2]) << 4)
 456              		.loc 1 160 3 is_stmt 1 view .LVU112
 457              		.loc 1 160 42 is_stmt 0 view .LVU113
 458 001e BB1E     		subs	r3, r7, #2
 459              	.LVL53:
 460              		.loc 1 160 23 view .LVU114
 461 0020 F05C     		ldrb	r0, [r6, r3]	@ zero_extendqisi2
 462              	.LVL54:
 463              		.loc 1 160 23 view .LVU115
 464 0022 FFF7FEFF 		bl	decodeHex
 465              	.LVL55:
 466              		.loc 1 160 57 view .LVU116
 467 0026 0001     		lsls	r0, r0, #4
 468 0028 5FFA80F9 		uxtb	r9, r0
 161:../libNMEA/src/nmea.c ****       + decodeHex (linebuff[linePos - 1]);
 469              		.loc 1 161 28 view .LVU117
 470 002c 013F     		subs	r7, r7, #1
 471              	.LVL56:
 472              		.loc 1 161 9 view .LVU118
 473 002e F05D     		ldrb	r0, [r6, r7]	@ zero_extendqisi2
 474 0030 FFF7FEFF 		bl	decodeHex
 475              	.LVL57:
 160:../libNMEA/src/nmea.c ****   uint8_t givenSum = (decodeHex (linebuff[linePos - 2]) << 4)
 476              		.loc 1 160 11 view .LVU119
 477 0034 4844     		add	r0, r0, r9
 478 0036 C0B2     		uxtb	r0, r0
 479              	.LVL58:
 162:../libNMEA/src/nmea.c ****   if (givenSum != checksum)
 480              		.loc 1 162 3 is_stmt 1 view .LVU120
 481              		.loc 1 162 6 is_stmt 0 view .LVU121
 482 0038 8542     		cmp	r5, r0
 483 003a 40F08980 		bne	.L39
 484              	.LBB11:
 163:../libNMEA/src/nmea.c ****     return false;
 164:../libNMEA/src/nmea.c **** 
 165:../libNMEA/src/nmea.c ****   char *fieldPos[20];
 166:../libNMEA/src/nmea.c ****   int fieldCnt = 0;
 167:../libNMEA/src/nmea.c ****   // split fields
 168:../libNMEA/src/nmea.c ****   for (int i = 5; i < linePos - 3; i++)
 485              		.loc 1 168 12 view .LVU122
 486 003e 0523     		movs	r3, #5
 487              	.LBE11:
 166:../libNMEA/src/nmea.c ****   // split fields
 488              		.loc 1 166 7 view .LVU123
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 13


 489 0040 0021     		movs	r1, #0
 490 0042 00E0     		b	.L36
 491              	.LVL59:
 492              	.L37:
 493              	.LBB12:
 494              		.loc 1 168 37 discriminator 2 view .LVU124
 495 0044 0133     		adds	r3, r3, #1
 496              	.LVL60:
 497              	.L36:
 498              		.loc 1 168 3 discriminator 1 view .LVU125
 499 0046 9C42     		cmp	r4, r3
 500 0048 0BDD     		ble	.L46
 169:../libNMEA/src/nmea.c ****     {
 170:../libNMEA/src/nmea.c ****       if (linebuff[i] == ',')
 501              		.loc 1 170 7 is_stmt 1 view .LVU126
 502              		.loc 1 170 19 is_stmt 0 view .LVU127
 503 004a F25C     		ldrb	r2, [r6, r3]	@ zero_extendqisi2
 504              		.loc 1 170 10 view .LVU128
 505 004c 2C2A     		cmp	r2, #44
 506 004e F9D1     		bne	.L37
 171:../libNMEA/src/nmea.c **** 	{
 172:../libNMEA/src/nmea.c **** 	  fieldPos[fieldCnt++] = linebuff + i + 1;
 507              		.loc 1 172 4 is_stmt 1 view .LVU129
 508              	.LVL61:
 509              		.loc 1 172 40 is_stmt 0 view .LVU130
 510 0050 5A1C     		adds	r2, r3, #1
 511 0052 3244     		add	r2, r2, r6
 512              		.loc 1 172 25 view .LVU131
 513 0054 14A8     		add	r0, sp, #80
 514 0056 00EB8100 		add	r0, r0, r1, lsl #2
 515 005a 40F8502C 		str	r2, [r0, #-80]
 516              		.loc 1 172 21 view .LVU132
 517 005e 0131     		adds	r1, r1, #1
 518              	.LVL62:
 519              		.loc 1 172 21 view .LVU133
 520 0060 F0E7     		b	.L37
 521              	.L46:
 522              		.loc 1 172 21 view .LVU134
 523              	.LBE12:
 173:../libNMEA/src/nmea.c **** 	}
 174:../libNMEA/src/nmea.c **** 
 175:../libNMEA/src/nmea.c ****     }
 176:../libNMEA/src/nmea.c **** 
 177:../libNMEA/src/nmea.c ****   // decode RMC
 178:../libNMEA/src/nmea.c ****   if (linebuff[2] == 'R' && linebuff[3] == 'M' && linebuff[4] == 'C')
 524              		.loc 1 178 3 is_stmt 1 view .LVU135
 525              		.loc 1 178 15 is_stmt 0 view .LVU136
 526 0062 B378     		ldrb	r3, [r6, #2]	@ zero_extendqisi2
 527              	.LVL63:
 528              		.loc 1 178 6 view .LVU137
 529 0064 522B     		cmp	r3, #82
 530 0066 01D0     		beq	.L47
 179:../libNMEA/src/nmea.c **** 
 180:../libNMEA/src/nmea.c ****     {
 181:../libNMEA/src/nmea.c ****       // decode the fields
 182:../libNMEA/src/nmea.c ****       loc->valid = *fieldPos[1];
 183:../libNMEA/src/nmea.c ****       if(loc->valid == 'A')
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 14


 184:../libNMEA/src/nmea.c **** 	{
 185:../libNMEA/src/nmea.c ****       memcpy (loc->time, fieldPos[0], 6);
 186:../libNMEA/src/nmea.c ****       loc->lat = decodeLL (fieldPos[2], 10);
 187:../libNMEA/src/nmea.c ****       loc->ns = *fieldPos[3];
 188:../libNMEA/src/nmea.c ****       loc->lon = decodeLL (fieldPos[4], 100);
 189:../libNMEA/src/nmea.c ****       loc->ew = *fieldPos[5];
 190:../libNMEA/src/nmea.c ****       loc->speed = decodeFP (fieldPos[6]);
 191:../libNMEA/src/nmea.c ****       loc->heading = decodeFP (fieldPos[7]);
 192:../libNMEA/src/nmea.c ****       memcpy (loc->date, fieldPos[1], 6);
 193:../libNMEA/src/nmea.c **** 
 194:../libNMEA/src/nmea.c ****       loc->tv.tm_sec = decodeDecimal(&loc->time[4]);
 195:../libNMEA/src/nmea.c ****       loc->tv.tm_min = decodeDecimal(&loc->time[2]);
 196:../libNMEA/src/nmea.c ****       loc->tv.tm_hour= decodeDecimal(&loc->time[0]);
 197:../libNMEA/src/nmea.c **** 
 198:../libNMEA/src/nmea.c ****       loc->tv.tm_mday= decodeDecimal(&loc->date[0]);
 199:../libNMEA/src/nmea.c ****       loc->tv.tm_mon = decodeDecimal(&loc->date[2])-1;
 200:../libNMEA/src/nmea.c ****       loc->tv.tm_year= decodeDecimal(&loc->date[4])+100; //
 201:../libNMEA/src/nmea.c **** 
 202:../libNMEA/src/nmea.c ****       loc->tv.tm_isdst = 0;
 203:../libNMEA/src/nmea.c ****       loc->utc = mktime(&loc->tv);
 204:../libNMEA/src/nmea.c **** 
 205:../libNMEA/src/nmea.c ****       	loc->good = true;
 206:../libNMEA/src/nmea.c ****       }
 207:../libNMEA/src/nmea.c ****     }
 208:../libNMEA/src/nmea.c ****   return true;
 531              		.loc 1 208 10 view .LVU138
 532 0068 0120     		movs	r0, #1
 533 006a 72E0     		b	.L35
 534              	.L47:
 178:../libNMEA/src/nmea.c **** 
 535              		.loc 1 178 37 discriminator 1 view .LVU139
 536 006c F378     		ldrb	r3, [r6, #3]	@ zero_extendqisi2
 178:../libNMEA/src/nmea.c **** 
 537              		.loc 1 178 26 discriminator 1 view .LVU140
 538 006e 4D2B     		cmp	r3, #77
 539 0070 01D0     		beq	.L48
 540              		.loc 1 208 10 view .LVU141
 541 0072 0120     		movs	r0, #1
 542 0074 6DE0     		b	.L35
 543              	.L48:
 178:../libNMEA/src/nmea.c **** 
 544              		.loc 1 178 59 discriminator 2 view .LVU142
 545 0076 3379     		ldrb	r3, [r6, #4]	@ zero_extendqisi2
 178:../libNMEA/src/nmea.c **** 
 546              		.loc 1 178 48 discriminator 2 view .LVU143
 547 0078 432B     		cmp	r3, #67
 548 007a 01D0     		beq	.L49
 549              		.loc 1 208 10 view .LVU144
 550 007c 0120     		movs	r0, #1
 551 007e 68E0     		b	.L35
 552              	.L49:
 182:../libNMEA/src/nmea.c ****       if(loc->valid == 'A')
 553              		.loc 1 182 7 is_stmt 1 view .LVU145
 182:../libNMEA/src/nmea.c ****       if(loc->valid == 'A')
 554              		.loc 1 182 29 is_stmt 0 view .LVU146
 555 0080 019C     		ldr	r4, [sp, #4]
 556              	.LVL64:
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 15


 182:../libNMEA/src/nmea.c ****       if(loc->valid == 'A')
 557              		.loc 1 182 20 view .LVU147
 558 0082 2378     		ldrb	r3, [r4]	@ zero_extendqisi2
 182:../libNMEA/src/nmea.c ****       if(loc->valid == 'A')
 559              		.loc 1 182 18 view .LVU148
 560 0084 88F80030 		strb	r3, [r8]
 183:../libNMEA/src/nmea.c **** 	{
 561              		.loc 1 183 7 is_stmt 1 view .LVU149
 183:../libNMEA/src/nmea.c **** 	{
 562              		.loc 1 183 9 is_stmt 0 view .LVU150
 563 0088 412B     		cmp	r3, #65
 564 008a 01D0     		beq	.L50
 565              		.loc 1 208 10 view .LVU151
 566 008c 0120     		movs	r0, #1
 567 008e 60E0     		b	.L35
 568              	.L50:
 185:../libNMEA/src/nmea.c ****       loc->lat = decodeLL (fieldPos[2], 10);
 569              		.loc 1 185 7 is_stmt 1 view .LVU152
 185:../libNMEA/src/nmea.c ****       loc->lat = decodeLL (fieldPos[2], 10);
 570              		.loc 1 185 18 is_stmt 0 view .LVU153
 571 0090 08F10106 		add	r6, r8, #1
 572              	.LVL65:
 185:../libNMEA/src/nmea.c ****       loc->lat = decodeLL (fieldPos[2], 10);
 573              		.loc 1 185 34 view .LVU154
 574 0094 009B     		ldr	r3, [sp]
 185:../libNMEA/src/nmea.c ****       loc->lat = decodeLL (fieldPos[2], 10);
 575              		.loc 1 185 7 view .LVU155
 576 0096 1A68     		ldr	r2, [r3]	@ unaligned
 577 0098 C8F80120 		str	r2, [r8, #1]	@ unaligned
 578 009c 9B88     		ldrh	r3, [r3, #4]	@ unaligned
 579 009e A8F80530 		strh	r3, [r8, #5]	@ unaligned
 186:../libNMEA/src/nmea.c ****       loc->ns = *fieldPos[3];
 580              		.loc 1 186 7 is_stmt 1 view .LVU156
 186:../libNMEA/src/nmea.c ****       loc->ns = *fieldPos[3];
 581              		.loc 1 186 18 is_stmt 0 view .LVU157
 582 00a2 0A21     		movs	r1, #10
 583              	.LVL66:
 186:../libNMEA/src/nmea.c ****       loc->ns = *fieldPos[3];
 584              		.loc 1 186 18 view .LVU158
 585 00a4 0298     		ldr	r0, [sp, #8]
 586 00a6 FFF7FEFF 		bl	decodeLL
 587              	.LVL67:
 186:../libNMEA/src/nmea.c ****       loc->ns = *fieldPos[3];
 588              		.loc 1 186 16 view .LVU159
 589 00aa C8F81400 		str	r0, [r8, #20]	@ float
 187:../libNMEA/src/nmea.c ****       loc->lon = decodeLL (fieldPos[4], 100);
 590              		.loc 1 187 7 is_stmt 1 view .LVU160
 187:../libNMEA/src/nmea.c ****       loc->lon = decodeLL (fieldPos[4], 100);
 591              		.loc 1 187 26 is_stmt 0 view .LVU161
 592 00ae 039B     		ldr	r3, [sp, #12]
 187:../libNMEA/src/nmea.c ****       loc->lon = decodeLL (fieldPos[4], 100);
 593              		.loc 1 187 17 view .LVU162
 594 00b0 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 187:../libNMEA/src/nmea.c ****       loc->lon = decodeLL (fieldPos[4], 100);
 595              		.loc 1 187 15 view .LVU163
 596 00b2 88F81130 		strb	r3, [r8, #17]
 188:../libNMEA/src/nmea.c ****       loc->ew = *fieldPos[5];
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 16


 597              		.loc 1 188 7 is_stmt 1 view .LVU164
 188:../libNMEA/src/nmea.c ****       loc->ew = *fieldPos[5];
 598              		.loc 1 188 18 is_stmt 0 view .LVU165
 599 00b6 6421     		movs	r1, #100
 600 00b8 0498     		ldr	r0, [sp, #16]
 601 00ba FFF7FEFF 		bl	decodeLL
 602              	.LVL68:
 188:../libNMEA/src/nmea.c ****       loc->ew = *fieldPos[5];
 603              		.loc 1 188 16 view .LVU166
 604 00be C8F81800 		str	r0, [r8, #24]	@ float
 189:../libNMEA/src/nmea.c ****       loc->speed = decodeFP (fieldPos[6]);
 605              		.loc 1 189 7 is_stmt 1 view .LVU167
 189:../libNMEA/src/nmea.c ****       loc->speed = decodeFP (fieldPos[6]);
 606              		.loc 1 189 26 is_stmt 0 view .LVU168
 607 00c2 059B     		ldr	r3, [sp, #20]
 189:../libNMEA/src/nmea.c ****       loc->speed = decodeFP (fieldPos[6]);
 608              		.loc 1 189 17 view .LVU169
 609 00c4 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 189:../libNMEA/src/nmea.c ****       loc->speed = decodeFP (fieldPos[6]);
 610              		.loc 1 189 15 view .LVU170
 611 00c6 88F81030 		strb	r3, [r8, #16]
 190:../libNMEA/src/nmea.c ****       loc->heading = decodeFP (fieldPos[7]);
 612              		.loc 1 190 7 is_stmt 1 view .LVU171
 190:../libNMEA/src/nmea.c ****       loc->heading = decodeFP (fieldPos[7]);
 613              		.loc 1 190 20 is_stmt 0 view .LVU172
 614 00ca 0698     		ldr	r0, [sp, #24]
 615 00cc FFF7FEFF 		bl	decodeFP
 616              	.LVL69:
 190:../libNMEA/src/nmea.c ****       loc->heading = decodeFP (fieldPos[7]);
 617              		.loc 1 190 18 view .LVU173
 618 00d0 C8F82000 		str	r0, [r8, #32]	@ float
 191:../libNMEA/src/nmea.c ****       memcpy (loc->date, fieldPos[1], 6);
 619              		.loc 1 191 7 is_stmt 1 view .LVU174
 191:../libNMEA/src/nmea.c ****       memcpy (loc->date, fieldPos[1], 6);
 620              		.loc 1 191 22 is_stmt 0 view .LVU175
 621 00d4 0798     		ldr	r0, [sp, #28]
 622 00d6 FFF7FEFF 		bl	decodeFP
 623              	.LVL70:
 191:../libNMEA/src/nmea.c ****       memcpy (loc->date, fieldPos[1], 6);
 624              		.loc 1 191 20 view .LVU176
 625 00da C8F81C00 		str	r0, [r8, #28]	@ float
 192:../libNMEA/src/nmea.c **** 
 626              		.loc 1 192 7 is_stmt 1 view .LVU177
 192:../libNMEA/src/nmea.c **** 
 627              		.loc 1 192 18 is_stmt 0 view .LVU178
 628 00de 08F10705 		add	r5, r8, #7
 629              	.LVL71:
 192:../libNMEA/src/nmea.c **** 
 630              		.loc 1 192 7 view .LVU179
 631 00e2 2368     		ldr	r3, [r4]	@ unaligned
 632 00e4 C8F80730 		str	r3, [r8, #7]	@ unaligned
 633 00e8 A388     		ldrh	r3, [r4, #4]	@ unaligned
 634 00ea A8F80B30 		strh	r3, [r8, #11]	@ unaligned
 194:../libNMEA/src/nmea.c ****       loc->tv.tm_min = decodeDecimal(&loc->time[2]);
 635              		.loc 1 194 7 is_stmt 1 view .LVU180
 194:../libNMEA/src/nmea.c ****       loc->tv.tm_min = decodeDecimal(&loc->time[2]);
 636              		.loc 1 194 24 is_stmt 0 view .LVU181
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 17


 637 00ee 08F10500 		add	r0, r8, #5
 638 00f2 FFF7FEFF 		bl	decodeDecimal
 639              	.LVL72:
 194:../libNMEA/src/nmea.c ****       loc->tv.tm_min = decodeDecimal(&loc->time[2]);
 640              		.loc 1 194 22 view .LVU182
 641 00f6 C8F82400 		str	r0, [r8, #36]
 195:../libNMEA/src/nmea.c ****       loc->tv.tm_hour= decodeDecimal(&loc->time[0]);
 642              		.loc 1 195 7 is_stmt 1 view .LVU183
 195:../libNMEA/src/nmea.c ****       loc->tv.tm_hour= decodeDecimal(&loc->time[0]);
 643              		.loc 1 195 24 is_stmt 0 view .LVU184
 644 00fa 08F10300 		add	r0, r8, #3
 645 00fe FFF7FEFF 		bl	decodeDecimal
 646              	.LVL73:
 195:../libNMEA/src/nmea.c ****       loc->tv.tm_hour= decodeDecimal(&loc->time[0]);
 647              		.loc 1 195 22 view .LVU185
 648 0102 C8F82800 		str	r0, [r8, #40]
 196:../libNMEA/src/nmea.c **** 
 649              		.loc 1 196 7 is_stmt 1 view .LVU186
 196:../libNMEA/src/nmea.c **** 
 650              		.loc 1 196 24 is_stmt 0 view .LVU187
 651 0106 3046     		mov	r0, r6
 652 0108 FFF7FEFF 		bl	decodeDecimal
 653              	.LVL74:
 196:../libNMEA/src/nmea.c **** 
 654              		.loc 1 196 22 view .LVU188
 655 010c C8F82C00 		str	r0, [r8, #44]
 198:../libNMEA/src/nmea.c ****       loc->tv.tm_mon = decodeDecimal(&loc->date[2])-1;
 656              		.loc 1 198 7 is_stmt 1 view .LVU189
 198:../libNMEA/src/nmea.c ****       loc->tv.tm_mon = decodeDecimal(&loc->date[2])-1;
 657              		.loc 1 198 24 is_stmt 0 view .LVU190
 658 0110 2846     		mov	r0, r5
 659 0112 FFF7FEFF 		bl	decodeDecimal
 660              	.LVL75:
 198:../libNMEA/src/nmea.c ****       loc->tv.tm_mon = decodeDecimal(&loc->date[2])-1;
 661              		.loc 1 198 22 view .LVU191
 662 0116 C8F83000 		str	r0, [r8, #48]
 199:../libNMEA/src/nmea.c ****       loc->tv.tm_year= decodeDecimal(&loc->date[4])+100; //
 663              		.loc 1 199 7 is_stmt 1 view .LVU192
 199:../libNMEA/src/nmea.c ****       loc->tv.tm_year= decodeDecimal(&loc->date[4])+100; //
 664              		.loc 1 199 24 is_stmt 0 view .LVU193
 665 011a 08F10900 		add	r0, r8, #9
 666 011e FFF7FEFF 		bl	decodeDecimal
 667              	.LVL76:
 199:../libNMEA/src/nmea.c ****       loc->tv.tm_year= decodeDecimal(&loc->date[4])+100; //
 668              		.loc 1 199 52 view .LVU194
 669 0122 0138     		subs	r0, r0, #1
 199:../libNMEA/src/nmea.c ****       loc->tv.tm_year= decodeDecimal(&loc->date[4])+100; //
 670              		.loc 1 199 22 view .LVU195
 671 0124 C8F83400 		str	r0, [r8, #52]
 200:../libNMEA/src/nmea.c **** 
 672              		.loc 1 200 7 is_stmt 1 view .LVU196
 200:../libNMEA/src/nmea.c **** 
 673              		.loc 1 200 24 is_stmt 0 view .LVU197
 674 0128 08F10B00 		add	r0, r8, #11
 675 012c FFF7FEFF 		bl	decodeDecimal
 676              	.LVL77:
 200:../libNMEA/src/nmea.c **** 
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 18


 677              		.loc 1 200 52 view .LVU198
 678 0130 6430     		adds	r0, r0, #100
 200:../libNMEA/src/nmea.c **** 
 679              		.loc 1 200 22 view .LVU199
 680 0132 C8F83800 		str	r0, [r8, #56]
 202:../libNMEA/src/nmea.c ****       loc->utc = mktime(&loc->tv);
 681              		.loc 1 202 7 is_stmt 1 view .LVU200
 202:../libNMEA/src/nmea.c ****       loc->utc = mktime(&loc->tv);
 682              		.loc 1 202 24 is_stmt 0 view .LVU201
 683 0136 0023     		movs	r3, #0
 684 0138 C8F84430 		str	r3, [r8, #68]
 203:../libNMEA/src/nmea.c **** 
 685              		.loc 1 203 7 is_stmt 1 view .LVU202
 203:../libNMEA/src/nmea.c **** 
 686              		.loc 1 203 18 is_stmt 0 view .LVU203
 687 013c 08F12400 		add	r0, r8, #36
 688 0140 FFF7FEFF 		bl	mktime
 689              	.LVL78:
 203:../libNMEA/src/nmea.c **** 
 690              		.loc 1 203 16 view .LVU204
 691 0144 C8E91201 		strd	r0, [r8, #72]
 205:../libNMEA/src/nmea.c ****       }
 692              		.loc 1 205 8 is_stmt 1 view .LVU205
 205:../libNMEA/src/nmea.c ****       }
 693              		.loc 1 205 18 is_stmt 0 view .LVU206
 694 0148 0120     		movs	r0, #1
 695 014a 88F80F00 		strb	r0, [r8, #15]
 696 014e 00E0     		b	.L35
 697              	.LVL79:
 698              	.L39:
 163:../libNMEA/src/nmea.c **** 
 699              		.loc 1 163 12 view .LVU207
 700 0150 0020     		movs	r0, #0
 701              	.LVL80:
 702              	.L35:
 209:../libNMEA/src/nmea.c **** }
 703              		.loc 1 209 1 view .LVU208
 704 0152 15B0     		add	sp, sp, #84
 705              	.LCFI6:
 706              		.cfi_def_cfa_offset 28
 707              		@ sp needed
 708 0154 BDE8F083 		pop	{r4, r5, r6, r7, r8, r9, pc}
 709              		.loc 1 209 1 view .LVU209
 710              		.cfi_endproc
 711              	.LFE71:
 713              		.section	.text.updateLocation,"ax",%progbits
 714              		.align	1
 715              		.global	updateLocation
 716              		.syntax unified
 717              		.thumb
 718              		.thumb_func
 719              		.fpu softvfp
 721              	updateLocation:
 722              	.LVL81:
 723              	.LFB65:
  32:../libNMEA/src/nmea.c ****   while (1)
 724              		.loc 1 32 1 is_stmt 1 view -0
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 19


 725              		.cfi_startproc
 726              		@ args = 0, pretend = 0, frame = 0
 727              		@ frame_needed = 0, uses_anonymous_args = 0
  32:../libNMEA/src/nmea.c ****   while (1)
 728              		.loc 1 32 1 is_stmt 0 view .LVU211
 729 0000 2DE9F843 		push	{r3, r4, r5, r6, r7, r8, r9, lr}
 730              	.LCFI7:
 731              		.cfi_def_cfa_offset 32
 732              		.cfi_offset 3, -32
 733              		.cfi_offset 4, -28
 734              		.cfi_offset 5, -24
 735              		.cfi_offset 6, -20
 736              		.cfi_offset 7, -16
 737              		.cfi_offset 8, -12
 738              		.cfi_offset 9, -8
 739              		.cfi_offset 14, -4
 740 0004 8046     		mov	r8, r0
 741 0006 0E46     		mov	r6, r1
 742 0008 04E0     		b	.L56
 743              	.LVL82:
 744              	.L54:
 745              	.LBB13:
  42:../libNMEA/src/nmea.c **** 	    lineState = READING;
 746              		.loc 1 42 4 is_stmt 1 view .LVU212
  42:../libNMEA/src/nmea.c **** 	    lineState = READING;
 747              		.loc 1 42 7 is_stmt 0 view .LVU213
 748 000a 2428     		cmp	r0, #36
 749 000c 1DD0     		beq	.L66
 750              	.L57:
  44:../libNMEA/src/nmea.c **** 	  break;
 751              		.loc 1 44 4 is_stmt 1 view .LVU214
  44:../libNMEA/src/nmea.c **** 	  break;
 752              		.loc 1 44 12 is_stmt 0 view .LVU215
 753 000e 2C4B     		ldr	r3, .L69
 754 0010 0022     		movs	r2, #0
 755 0012 1A60     		str	r2, [r3]
  45:../libNMEA/src/nmea.c **** 	case READING:
 756              		.loc 1 45 4 is_stmt 1 view .LVU216
 757              	.LVL83:
 758              	.L56:
  45:../libNMEA/src/nmea.c **** 	case READING:
 759              		.loc 1 45 4 is_stmt 0 view .LVU217
 760              	.LBE13:
  33:../libNMEA/src/nmea.c ****     {
 761              		.loc 1 33 3 is_stmt 1 view .LVU218
 762              	.LBB17:
  35:../libNMEA/src/nmea.c **** 	return false; // nothing to read, return immediately
 763              		.loc 1 35 7 view .LVU219
  35:../libNMEA/src/nmea.c **** 	return false; // nothing to read, return immediately
 764              		.loc 1 35 12 is_stmt 0 view .LVU220
 765 0014 3046     		mov	r0, r6
 766 0016 FFF7FEFF 		bl	SerialCharsReceived
 767              	.LVL84:
  35:../libNMEA/src/nmea.c **** 	return false; // nothing to read, return immediately
 768              		.loc 1 35 10 view .LVU221
 769 001a 0028     		cmp	r0, #0
 770 001c 4CD0     		beq	.L64
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 20


  38:../libNMEA/src/nmea.c ****       switch (lineState)
 771              		.loc 1 38 7 is_stmt 1 view .LVU222
  38:../libNMEA/src/nmea.c ****       switch (lineState)
 772              		.loc 1 38 16 is_stmt 0 view .LVU223
 773 001e 3046     		mov	r0, r6
 774 0020 FFF7FEFF 		bl	GetCharSerial
 775              	.LVL85:
 776 0024 0746     		mov	r7, r0
 777              	.LVL86:
  39:../libNMEA/src/nmea.c **** 	{
 778              		.loc 1 39 7 is_stmt 1 view .LVU224
 779 0026 274B     		ldr	r3, .L69+4
 780 0028 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 781 002a 002B     		cmp	r3, #0
 782 002c EDD0     		beq	.L54
 783 002e 012B     		cmp	r3, #1
 784 0030 F0D1     		bne	.L56
  47:../libNMEA/src/nmea.c **** 	    {
 785              		.loc 1 47 4 view .LVU225
  47:../libNMEA/src/nmea.c **** 	    {
 786              		.loc 1 47 7 is_stmt 0 view .LVU226
 787 0032 0D28     		cmp	r0, #13
 788 0034 0DD0     		beq	.L67
  56:../libNMEA/src/nmea.c **** 	    linebuff[linePos++] = c;
 789              		.loc 1 56 4 is_stmt 1 view .LVU227
  56:../libNMEA/src/nmea.c **** 	    linebuff[linePos++] = c;
 790              		.loc 1 56 16 is_stmt 0 view .LVU228
 791 0036 224B     		ldr	r3, .L69
 792 0038 1B68     		ldr	r3, [r3]
  56:../libNMEA/src/nmea.c **** 	    linebuff[linePos++] = c;
 793              		.loc 1 56 7 view .LVU229
 794 003a 4F2B     		cmp	r3, #79
 795 003c 14D8     		bhi	.L60
  57:../libNMEA/src/nmea.c **** 	  else
 796              		.loc 1 57 6 is_stmt 1 view .LVU230
  57:../libNMEA/src/nmea.c **** 	  else
 797              		.loc 1 57 22 is_stmt 0 view .LVU231
 798 003e 591C     		adds	r1, r3, #1
 799 0040 1F4A     		ldr	r2, .L69
 800 0042 1160     		str	r1, [r2]
  57:../libNMEA/src/nmea.c **** 	  else
 801              		.loc 1 57 26 view .LVU232
 802 0044 204A     		ldr	r2, .L69+8
 803 0046 D054     		strb	r0, [r2, r3]
 804 0048 E4E7     		b	.L56
 805              	.L66:
  43:../libNMEA/src/nmea.c **** 	  linePos = 0;
 806              		.loc 1 43 6 is_stmt 1 view .LVU233
  43:../libNMEA/src/nmea.c **** 	  linePos = 0;
 807              		.loc 1 43 16 is_stmt 0 view .LVU234
 808 004a 1E4B     		ldr	r3, .L69+4
 809 004c 0122     		movs	r2, #1
 810 004e 1A70     		strb	r2, [r3]
 811 0050 DDE7     		b	.L57
 812              	.L67:
 813              	.LBB14:
  50:../libNMEA/src/nmea.c **** 	      lineState = SEARCH;
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 21


 814              		.loc 1 50 8 is_stmt 1 view .LVU235
  50:../libNMEA/src/nmea.c **** 	      lineState = SEARCH;
 815              		.loc 1 50 23 is_stmt 0 view .LVU236
 816 0052 1B4C     		ldr	r4, .L69
 817 0054 4246     		mov	r2, r8
 818 0056 2168     		ldr	r1, [r4]
 819 0058 1B48     		ldr	r0, .L69+8
 820              	.LVL87:
  50:../libNMEA/src/nmea.c **** 	      lineState = SEARCH;
 821              		.loc 1 50 23 view .LVU237
 822 005a FFF7FEFF 		bl	decodePacket
 823              	.LVL88:
  51:../libNMEA/src/nmea.c **** 
 824              		.loc 1 51 8 is_stmt 1 view .LVU238
  51:../libNMEA/src/nmea.c **** 
 825              		.loc 1 51 18 is_stmt 0 view .LVU239
 826 005e 0023     		movs	r3, #0
 827 0060 184A     		ldr	r2, .L69+4
 828 0062 1370     		strb	r3, [r2]
  53:../libNMEA/src/nmea.c **** 	      return success;
 829              		.loc 1 53 8 is_stmt 1 view .LVU240
  53:../libNMEA/src/nmea.c **** 	      return success;
 830              		.loc 1 53 16 is_stmt 0 view .LVU241
 831 0064 2360     		str	r3, [r4]
  54:../libNMEA/src/nmea.c **** 	    }
 832              		.loc 1 54 8 is_stmt 1 view .LVU242
  54:../libNMEA/src/nmea.c **** 	    }
 833              		.loc 1 54 15 is_stmt 0 view .LVU243
 834 0066 28E0     		b	.L53
 835              	.LVL89:
 836              	.L60:
  54:../libNMEA/src/nmea.c **** 	    }
 837              		.loc 1 54 15 view .LVU244
 838              	.LBE14:
 839              	.LBB15:
  60:../libNMEA/src/nmea.c **** 	      // search for the $  in any unread string
 840              		.loc 1 60 8 is_stmt 1 view .LVU245
  60:../libNMEA/src/nmea.c **** 	      // search for the $  in any unread string
 841              		.loc 1 60 18 is_stmt 0 view .LVU246
 842 0068 0024     		movs	r4, #0
 843 006a 164B     		ldr	r3, .L69+4
 844 006c 1C70     		strb	r4, [r3]
  62:../libNMEA/src/nmea.c **** 
 845              		.loc 1 62 8 is_stmt 1 view .LVU247
  64:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
 846              		.loc 1 64 8 view .LVU248
 847              	.LVL90:
  64:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
 848              		.loc 1 64 8 is_stmt 0 view .LVU249
 849 006e 00E0     		b	.L61
 850              	.LVL91:
 851              	.L62:
  64:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
 852              		.loc 1 64 34 discriminator 2 view .LVU250
 853 0070 0134     		adds	r4, r4, #1
 854              	.LVL92:
 855              	.L61:
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 22


  64:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
 856              		.loc 1 64 22 discriminator 1 view .LVU251
 857 0072 2546     		mov	r5, r4
 858 0074 124A     		ldr	r2, .L69
 859 0076 1368     		ldr	r3, [r2]
  64:../libNMEA/src/nmea.c **** 		if (linebuff[i] == '$')
 860              		.loc 1 64 8 discriminator 1 view .LVU252
 861 0078 9C42     		cmp	r4, r3
 862 007a 15D2     		bcs	.L68
  65:../libNMEA/src/nmea.c **** 		  {
 863              		.loc 1 65 3 is_stmt 1 view .LVU253
  65:../libNMEA/src/nmea.c **** 		  {
 864              		.loc 1 65 15 is_stmt 0 view .LVU254
 865 007c 124A     		ldr	r2, .L69+8
 866 007e 125D     		ldrb	r2, [r2, r4]	@ zero_extendqisi2
  65:../libNMEA/src/nmea.c **** 		  {
 867              		.loc 1 65 6 view .LVU255
 868 0080 242A     		cmp	r2, #36
 869 0082 F5D1     		bne	.L62
 870              	.LBB16:
  67:../libNMEA/src/nmea.c **** 		    memcpy (linebuff, linebuff + n, linePos - i);
 871              		.loc 1 67 7 is_stmt 1 view .LVU256
  67:../libNMEA/src/nmea.c **** 		    memcpy (linebuff, linebuff + n, linePos - i);
 872              		.loc 1 67 11 is_stmt 0 view .LVU257
 873 0084 611C     		adds	r1, r4, #1
  68:../libNMEA/src/nmea.c **** 		    linePos = linePos - i;
 874              		.loc 1 68 7 is_stmt 1 view .LVU258
 875 0086 5D1B     		subs	r5, r3, r5
 876 0088 DFF83C90 		ldr	r9, .L69+8
 877 008c 2A46     		mov	r2, r5
 878 008e 4944     		add	r1, r1, r9
 879 0090 4846     		mov	r0, r9
 880 0092 FFF7FEFF 		bl	memcpy
 881              	.LVL93:
  69:../libNMEA/src/nmea.c **** 		    linebuff[linePos++] = c;
 882              		.loc 1 69 7 view .LVU259
  70:../libNMEA/src/nmea.c **** 		    lineState = READING;
 883              		.loc 1 70 7 view .LVU260
  70:../libNMEA/src/nmea.c **** 		    lineState = READING;
 884              		.loc 1 70 23 is_stmt 0 view .LVU261
 885 0096 6A1C     		adds	r2, r5, #1
 886 0098 094B     		ldr	r3, .L69
 887 009a 1A60     		str	r2, [r3]
  70:../libNMEA/src/nmea.c **** 		    lineState = READING;
 888              		.loc 1 70 27 view .LVU262
 889 009c 09F80570 		strb	r7, [r9, r5]
  71:../libNMEA/src/nmea.c **** 		  }
 890              		.loc 1 71 7 is_stmt 1 view .LVU263
  71:../libNMEA/src/nmea.c **** 		  }
 891              		.loc 1 71 17 is_stmt 0 view .LVU264
 892 00a0 084B     		ldr	r3, .L69+4
 893 00a2 0122     		movs	r2, #1
 894 00a4 1A70     		strb	r2, [r3]
 895 00a6 E3E7     		b	.L62
 896              	.L68:
  71:../libNMEA/src/nmea.c **** 		  }
 897              		.loc 1 71 17 view .LVU265
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 23


 898              	.LBE16:
  74:../libNMEA/src/nmea.c **** 		linePos = 0;
 899              		.loc 1 74 8 is_stmt 1 view .LVU266
  74:../libNMEA/src/nmea.c **** 		linePos = 0;
 900              		.loc 1 74 22 is_stmt 0 view .LVU267
 901 00a8 064B     		ldr	r3, .L69+4
 902 00aa 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
  74:../libNMEA/src/nmea.c **** 		linePos = 0;
 903              		.loc 1 74 11 view .LVU268
 904 00ac 002B     		cmp	r3, #0
 905 00ae B1D1     		bne	.L56
  75:../libNMEA/src/nmea.c **** 	    }
 906              		.loc 1 75 3 is_stmt 1 view .LVU269
  75:../libNMEA/src/nmea.c **** 	    }
 907              		.loc 1 75 11 is_stmt 0 view .LVU270
 908 00b0 1346     		mov	r3, r2
 909 00b2 0022     		movs	r2, #0
 910 00b4 1A60     		str	r2, [r3]
 911 00b6 ADE7     		b	.L56
 912              	.LVL94:
 913              	.L64:
  75:../libNMEA/src/nmea.c **** 	    }
 914              		.loc 1 75 11 view .LVU271
 915              	.LBE15:
  36:../libNMEA/src/nmea.c **** 
 916              		.loc 1 36 9 view .LVU272
 917 00b8 0020     		movs	r0, #0
 918              	.L53:
 919              	.LBE17:
  81:../libNMEA/src/nmea.c **** 
 920              		.loc 1 81 1 view .LVU273
 921 00ba BDE8F883 		pop	{r3, r4, r5, r6, r7, r8, r9, pc}
 922              	.LVL95:
 923              	.L70:
  81:../libNMEA/src/nmea.c **** 
 924              		.loc 1 81 1 view .LVU274
 925 00be 00BF     		.align	2
 926              	.L69:
 927 00c0 00000000 		.word	.LANCHOR1
 928 00c4 00000000 		.word	.LANCHOR0
 929 00c8 00000000 		.word	linebuff
 930              		.cfi_endproc
 931              	.LFE65:
 933              		.global	lineState
 934              		.global	linePos
 935              		.comm	linebuff,80,4
 936              		.section	.bss.linePos,"aw",%nobits
 937              		.align	2
 938              		.set	.LANCHOR1,. + 0
 941              	linePos:
 942 0000 00000000 		.space	4
 943              		.section	.bss.lineState,"aw",%nobits
 944              		.set	.LANCHOR0,. + 0
 947              	lineState:
 948 0000 00       		.space	1
 949              		.text
 950              	.Letext0:
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 24


 951              		.file 2 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 952              		.file 3 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 953              		.file 4 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 954              		.file 5 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 955              		.file 6 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 956              		.file 7 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 957              		.file 8 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 958              		.file 9 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
 959              		.file 10 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.
 960              		.file 11 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.
 961              		.file 12 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.
 962              		.file 13 "Drivers/CMSIS/Include/core_cm3.h"
 963              		.file 14 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h"
 964              		.file 15 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h"
 965              		.file 16 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h"
 966              		.file 17 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h"
 967              		.file 18 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h"
 968              		.file 19 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h"
 969              		.file 20 "Core/Inc/main.h"
 970              		.file 21 "../libSerial/inc/libSerial/serial.h"
 971              		.file 22 "../libNMEA/inc/libNMEA/nmea.h"
 972              		.file 23 "<built-in>"
ARM GAS  C:\Users\mike\AppData\Local\Temp\ccQovE08.s 			page 25


DEFINED SYMBOLS
                            *ABS*:0000000000000000 nmea.c
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:16     .text.decodeDec:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:23     .text.decodeDec:0000000000000000 decodeDec
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:44     .text.decodeHex:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:50     .text.decodeHex:0000000000000000 decodeHex
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:132    .text.decodeHex:0000000000000038 $d
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:144    .text.decodeLL:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:150    .text.decodeLL:0000000000000000 decodeLL
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:273    .text.decodeLL:0000000000000068 $d
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:282    .text.decodeDecimal:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:288    .text.decodeDecimal:0000000000000000 decodeDecimal
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:364    .text.decodeFP:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:370    .text.decodeFP:0000000000000000 decodeFP
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:394    .text.decodePacket:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:400    .text.decodePacket:0000000000000000 decodePacket
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:714    .text.updateLocation:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:721    .text.updateLocation:0000000000000000 updateLocation
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:927    .text.updateLocation:00000000000000c0 $d
                            *COM*:0000000000000050 linebuff
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:947    .bss.lineState:0000000000000000 lineState
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:941    .bss.linePos:0000000000000000 linePos
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:937    .bss.linePos:0000000000000000 $d
C:\Users\mike\AppData\Local\Temp\ccQovE08.s:948    .bss.lineState:0000000000000000 $d

UNDEFINED SYMBOLS
_ctype_
__aeabi_i2f
__aeabi_fmul
__aeabi_fadd
__aeabi_fsub
__aeabi_f2d
__aeabi_dcmplt
__aeabi_fdiv
strtof
mktime
SerialCharsReceived
GetCharSerial
memcpy