Subversion Repositories dashGPS

Rev

Rev 19 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

ARM GAS  C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.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\ccZ6jTmM.s                   page 25


DEFINED SYMBOLS
                            *ABS*:0000000000000000 nmea.c
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:16     .text.decodeDec:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:23     .text.decodeDec:0000000000000000 decodeDec
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:44     .text.decodeHex:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:50     .text.decodeHex:0000000000000000 decodeHex
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:132    .text.decodeHex:0000000000000038 $d
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:144    .text.decodeLL:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:150    .text.decodeLL:0000000000000000 decodeLL
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:273    .text.decodeLL:0000000000000068 $d
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:282    .text.decodeDecimal:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:288    .text.decodeDecimal:0000000000000000 decodeDecimal
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:364    .text.decodeFP:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:370    .text.decodeFP:0000000000000000 decodeFP
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:394    .text.decodePacket:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:400    .text.decodePacket:0000000000000000 decodePacket
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:714    .text.updateLocation:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:721    .text.updateLocation:0000000000000000 updateLocation
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:927    .text.updateLocation:00000000000000c0 $d
                            *COM*:0000000000000050 linebuff
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:947    .bss.lineState:0000000000000000 lineState
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:941    .bss.linePos:0000000000000000 linePos
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.s:937    .bss.linePos:0000000000000000 $d
C:\Users\mike\AppData\Local\Temp\ccZ6jTmM.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