Subversion Repositories dashGPS

Rev

Rev 18 | Rev 20 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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