ARM GAS  /tmp/ccu1CkFP.s 			page 1


   1              		.cpu cortex-m4
   2              		.eabi_attribute 27, 1
   3              		.eabi_attribute 28, 1
   4              		.eabi_attribute 20, 1
   5              		.eabi_attribute 21, 1
   6              		.eabi_attribute 23, 3
   7              		.eabi_attribute 24, 1
   8              		.eabi_attribute 25, 1
   9              		.eabi_attribute 26, 1
  10              		.eabi_attribute 30, 1
  11              		.eabi_attribute 34, 1
  12              		.eabi_attribute 18, 4
  13              		.file	"palmipede.c"
  14              		.text
  15              	.Ltext0:
  16              		.cfi_sections	.debug_frame
  17              		.section	.text.enqueue_cmd,"ax",%progbits
  18              		.align	1
  19              		.global	enqueue_cmd
  20              		.syntax unified
  21              		.thumb
  22              		.thumb_func
  23              		.fpu fpv4-sp-d16
  25              	enqueue_cmd:
  26              	.LFB135:
  27              		.file 1 "Core/Src/palmipede.c"
   1:Core/Src/palmipede.c **** #include <stdint.h>
   2:Core/Src/palmipede.c **** #include "palmipede.h"
   3:Core/Src/palmipede.c **** #include "main.h"
   4:Core/Src/palmipede.c **** 
   5:Core/Src/palmipede.c **** #define FIND_AND_NUL(s, p, c) ( \
   6:Core/Src/palmipede.c ****    (p) = strchr(s, c), \
   7:Core/Src/palmipede.c ****    *(p) = '\0', \
   8:Core/Src/palmipede.c ****    ++(p), \
   9:Core/Src/palmipede.c ****    (p))
  10:Core/Src/palmipede.c **** 
  11:Core/Src/palmipede.c **** // uart rx
  12:Core/Src/palmipede.c **** char uart1_rx_buf[2], uart2_rx_buf[2], uart3_rx_buf[2], rx_cmd_rb[RX_CMD_RB_SIZE];
  13:Core/Src/palmipede.c **** uint8_t rx_cmd_rb_in_idx, rx_cmd_rb_out_idx;
  14:Core/Src/palmipede.c **** 
  15:Core/Src/palmipede.c **** void enqueue_cmd(char in){
  28              		.loc 1 15 0
  29              		.cfi_startproc
  30              		@ args = 0, pretend = 0, frame = 0
  31              		@ frame_needed = 0, uses_anonymous_args = 0
  32              		@ link register save eliminated.
  33              	.LVL0:
  16:Core/Src/palmipede.c ****         rx_cmd_rb[rx_cmd_rb_in_idx] = in;
  34              		.loc 1 16 0
  35 0000 044A     		ldr	r2, .L2
  36 0002 1378     		ldrb	r3, [r2]	@ zero_extendqisi2
  37 0004 0449     		ldr	r1, .L2+4
  38 0006 C854     		strb	r0, [r1, r3]
  39              	.LVL1:
  40              	.LBB6:
  41              	.LBB7:
  17:Core/Src/palmipede.c ****         ringbuf_increment(&rx_cmd_rb_in_idx, RX_CMD_RB_SIZE_MASK);
ARM GAS  /tmp/ccu1CkFP.s 			page 2


  18:Core/Src/palmipede.c **** }
  19:Core/Src/palmipede.c **** 
  20:Core/Src/palmipede.c **** void enqueue_nmea(char in){
  21:Core/Src/palmipede.c **** 	static uint8_t start, sentence, checksum_index, valuebuf_index, commas_index;
  22:Core/Src/palmipede.c **** 	static char valuebuf[128];
  23:Core/Src/palmipede.c **** 	if(in == '$'){
  24:Core/Src/palmipede.c **** //		display_write(valuebuf,24);
  25:Core/Src/palmipede.c **** 		print_nmea(valuebuf);
  26:Core/Src/palmipede.c **** 		valuebuf_index = 0;
  27:Core/Src/palmipede.c **** 	}
  28:Core/Src/palmipede.c **** 	valuebuf[valuebuf_index] = in;
  29:Core/Src/palmipede.c **** 	valuebuf_index++;
  30:Core/Src/palmipede.c **** }
  31:Core/Src/palmipede.c **** 
  32:Core/Src/palmipede.c **** void print_nmea(char *buf){
  33:Core/Src/palmipede.c **** 	char outbuf[128];
  34:Core/Src/palmipede.c **** 	char origbuf[128];
  35:Core/Src/palmipede.c **** 	strcpy(origbuf, buf);
  36:Core/Src/palmipede.c **** 	char* message_id = buf;
  37:Core/Src/palmipede.c **** 	char* time = FIND_AND_NUL(message_id, time, ',');
  38:Core/Src/palmipede.c **** 	char* latitude = FIND_AND_NUL(time, latitude, ',');
  39:Core/Src/palmipede.c **** 	char* longitude = FIND_AND_NUL(latitude, longitude, ',');
  40:Core/Src/palmipede.c **** 	char* fix = FIND_AND_NUL(longitude, fix, ',');
  41:Core/Src/palmipede.c **** 	char* sat = FIND_AND_NUL(fix, sat, ',');
  42:Core/Src/palmipede.c **** 	char* hdop = FIND_AND_NUL(sat, hdop, ',');
  43:Core/Src/palmipede.c **** 	char* alt = FIND_AND_NUL(hdop, alt, ',');
  44:Core/Src/palmipede.c **** 	if(strcmp(message_id,"$GPGGA") == 0){
  45:Core/Src/palmipede.c **** 		strcpy(outbuf, "\f");
  46:Core/Src/palmipede.c **** 		strcat(outbuf, message_id);
  47:Core/Src/palmipede.c **** 		strcat(outbuf, " time: ");
  48:Core/Src/palmipede.c **** 		strcat(outbuf, time);
  49:Core/Src/palmipede.c **** 		strcat(outbuf, " lat: ");
  50:Core/Src/palmipede.c **** 		strcat(outbuf, latitude);
  51:Core/Src/palmipede.c **** 		strcat(outbuf, " lon: ");
  52:Core/Src/palmipede.c **** 		strcat(outbuf, longitude);
  53:Core/Src/palmipede.c **** 		strcat(outbuf, " fix: ");
  54:Core/Src/palmipede.c **** 		strcat(outbuf, fix);
  55:Core/Src/palmipede.c **** 		strcat(outbuf, " sat: ");
  56:Core/Src/palmipede.c **** 		strcat(outbuf, sat);
  57:Core/Src/palmipede.c **** 		display_write2(origbuf);
  58:Core/Src/palmipede.c **** 	}
  59:Core/Src/palmipede.c **** }
  60:Core/Src/palmipede.c **** 
  61:Core/Src/palmipede.c **** void dequeue_cmd(void){
  62:Core/Src/palmipede.c **** //        decode_cmd(rx_cmd_rb[rx_cmd_rb_out_idx]);
  63:Core/Src/palmipede.c ****         display_write(&rx_cmd_rb[rx_cmd_rb_out_idx], 1);
  64:Core/Src/palmipede.c ****         ringbuf_increment(&rx_cmd_rb_out_idx, RX_CMD_RB_SIZE_MASK);
  65:Core/Src/palmipede.c **** }
  66:Core/Src/palmipede.c **** 
  67:Core/Src/palmipede.c **** 
  68:Core/Src/palmipede.c **** inline uint16_t ringbuf_increment(uint8_t *index, uint8_t buff_size_mask) {
  69:Core/Src/palmipede.c ****     (*index)++;
  42              		.loc 1 69 0
  43 0008 0133     		adds	r3, r3, #1
  70:Core/Src/palmipede.c ****     *index &= buff_size_mask;
  44              		.loc 1 70 0
  45 000a 03F01F03 		and	r3, r3, #31
ARM GAS  /tmp/ccu1CkFP.s 			page 3


  46 000e 1370     		strb	r3, [r2]
  47              	.LVL2:
  48              	.LBE7:
  49              	.LBE6:
  18:Core/Src/palmipede.c **** 
  50              		.loc 1 18 0
  51 0010 7047     		bx	lr
  52              	.L3:
  53 0012 00BF     		.align	2
  54              	.L2:
  55 0014 00000000 		.word	rx_cmd_rb_in_idx
  56 0018 00000000 		.word	rx_cmd_rb
  57              		.cfi_endproc
  58              	.LFE135:
  60              		.section	.text.print_nmea,"ax",%progbits
  61              		.align	1
  62              		.global	print_nmea
  63              		.syntax unified
  64              		.thumb
  65              		.thumb_func
  66              		.fpu fpv4-sp-d16
  68              	print_nmea:
  69              	.LFB137:
  32:Core/Src/palmipede.c **** 	char outbuf[128];
  70              		.loc 1 32 0
  71              		.cfi_startproc
  72              		@ args = 0, pretend = 0, frame = 256
  73              		@ frame_needed = 0, uses_anonymous_args = 0
  74              	.LVL3:
  75 0000 2DE9F047 		push	{r4, r5, r6, r7, r8, r9, r10, lr}
  76              	.LCFI0:
  77              		.cfi_def_cfa_offset 32
  78              		.cfi_offset 4, -32
  79              		.cfi_offset 5, -28
  80              		.cfi_offset 6, -24
  81              		.cfi_offset 7, -20
  82              		.cfi_offset 8, -16
  83              		.cfi_offset 9, -12
  84              		.cfi_offset 10, -8
  85              		.cfi_offset 14, -4
  86 0004 C0B0     		sub	sp, sp, #256
  87              	.LCFI1:
  88              		.cfi_def_cfa_offset 288
  89 0006 8246     		mov	r10, r0
  35:Core/Src/palmipede.c **** 	char* message_id = buf;
  90              		.loc 1 35 0
  91 0008 0146     		mov	r1, r0
  92 000a 6846     		mov	r0, sp
  93              	.LVL4:
  94 000c FFF7FEFF 		bl	strcpy
  95              	.LVL5:
  37:Core/Src/palmipede.c **** 	char* latitude = FIND_AND_NUL(time, latitude, ',');
  96              		.loc 1 37 0
  97 0010 2C21     		movs	r1, #44
  98 0012 5046     		mov	r0, r10
  99 0014 FFF7FEFF 		bl	strchr
 100              	.LVL6:
ARM GAS  /tmp/ccu1CkFP.s 			page 4


 101 0018 0024     		movs	r4, #0
 102 001a 8146     		mov	r9, r0
 103 001c 09F8014B 		strb	r4, [r9], #1
 104              	.LVL7:
  38:Core/Src/palmipede.c **** 	char* longitude = FIND_AND_NUL(latitude, longitude, ',');
 105              		.loc 1 38 0
 106 0020 2C21     		movs	r1, #44
 107 0022 4846     		mov	r0, r9
 108 0024 FFF7FEFF 		bl	strchr
 109              	.LVL8:
 110 0028 8046     		mov	r8, r0
 111 002a 08F8014B 		strb	r4, [r8], #1
 112              	.LVL9:
  39:Core/Src/palmipede.c **** 	char* fix = FIND_AND_NUL(longitude, fix, ',');
 113              		.loc 1 39 0
 114 002e 2C21     		movs	r1, #44
 115 0030 4046     		mov	r0, r8
 116 0032 FFF7FEFF 		bl	strchr
 117              	.LVL10:
 118 0036 0746     		mov	r7, r0
 119 0038 07F8014B 		strb	r4, [r7], #1
 120              	.LVL11:
  40:Core/Src/palmipede.c **** 	char* sat = FIND_AND_NUL(fix, sat, ',');
 121              		.loc 1 40 0
 122 003c 2C21     		movs	r1, #44
 123 003e 3846     		mov	r0, r7
 124 0040 FFF7FEFF 		bl	strchr
 125              	.LVL12:
 126 0044 0646     		mov	r6, r0
 127 0046 06F8014B 		strb	r4, [r6], #1
 128              	.LVL13:
  41:Core/Src/palmipede.c **** 	char* hdop = FIND_AND_NUL(sat, hdop, ',');
 129              		.loc 1 41 0
 130 004a 2C21     		movs	r1, #44
 131 004c 3046     		mov	r0, r6
 132 004e FFF7FEFF 		bl	strchr
 133              	.LVL14:
 134 0052 0546     		mov	r5, r0
 135 0054 05F8014B 		strb	r4, [r5], #1
 136              	.LVL15:
  42:Core/Src/palmipede.c **** 	char* alt = FIND_AND_NUL(hdop, alt, ',');
 137              		.loc 1 42 0
 138 0058 2C21     		movs	r1, #44
 139 005a 2846     		mov	r0, r5
 140 005c FFF7FEFF 		bl	strchr
 141              	.LVL16:
 142 0060 00F8014B 		strb	r4, [r0], #1
 143              	.LVL17:
  43:Core/Src/palmipede.c **** 	if(strcmp(message_id,"$GPGGA") == 0){
 144              		.loc 1 43 0
 145 0064 2C21     		movs	r1, #44
 146 0066 FFF7FEFF 		bl	strchr
 147              	.LVL18:
 148 006a 0470     		strb	r4, [r0]
 149              	.LVL19:
 150              	.LBB8:
  44:Core/Src/palmipede.c **** 		strcpy(outbuf, "\f");
ARM GAS  /tmp/ccu1CkFP.s 			page 5


 151              		.loc 1 44 0
 152 006c 3149     		ldr	r1, .L8
 153 006e 5046     		mov	r0, r10
 154              	.LVL20:
 155 0070 FFF7FEFF 		bl	strcmp
 156              	.LVL21:
 157 0074 10B1     		cbz	r0, .L7
 158              	.L4:
 159              	.LBE8:
  59:Core/Src/palmipede.c **** 
 160              		.loc 1 59 0
 161 0076 40B0     		add	sp, sp, #256
 162              	.LCFI2:
 163              		.cfi_remember_state
 164              		.cfi_def_cfa_offset 32
 165              		@ sp needed
 166 0078 BDE8F087 		pop	{r4, r5, r6, r7, r8, r9, r10, pc}
 167              	.LVL22:
 168              	.L7:
 169              	.LCFI3:
 170              		.cfi_restore_state
 171              	.LBB10:
 172              	.LBB9:
  45:Core/Src/palmipede.c **** 		strcat(outbuf, message_id);
 173              		.loc 1 45 0
 174 007c 20AC     		add	r4, sp, #128
 175 007e 0C23     		movs	r3, #12
 176 0080 ADF88030 		strh	r3, [sp, #128]	@ movhi
  46:Core/Src/palmipede.c **** 		strcat(outbuf, " time: ");
 177              		.loc 1 46 0
 178 0084 5146     		mov	r1, r10
 179 0086 2046     		mov	r0, r4
 180 0088 FFF7FEFF 		bl	strcat
 181              	.LVL23:
  47:Core/Src/palmipede.c **** 		strcat(outbuf, time);
 182              		.loc 1 47 0
 183 008c 2046     		mov	r0, r4
 184 008e FFF7FEFF 		bl	strlen
 185              	.LVL24:
 186 0092 0246     		mov	r2, r0
 187 0094 04EB000C 		add	ip, r4, r0
 188 0098 274B     		ldr	r3, .L8+4
 189 009a 03CB     		ldmia	r3!, {r0, r1}
 190 009c A050     		str	r0, [r4, r2]	@ unaligned
 191 009e CCF80410 		str	r1, [ip, #4]	@ unaligned
  48:Core/Src/palmipede.c **** 		strcat(outbuf, " lat: ");
 192              		.loc 1 48 0
 193 00a2 4946     		mov	r1, r9
 194 00a4 2046     		mov	r0, r4
 195 00a6 FFF7FEFF 		bl	strcat
 196              	.LVL25:
  49:Core/Src/palmipede.c **** 		strcat(outbuf, latitude);
 197              		.loc 1 49 0
 198 00aa 2046     		mov	r0, r4
 199 00ac FFF7FEFF 		bl	strlen
 200              	.LVL26:
 201 00b0 0146     		mov	r1, r0
ARM GAS  /tmp/ccu1CkFP.s 			page 6


 202 00b2 2218     		adds	r2, r4, r0
 203 00b4 214B     		ldr	r3, .L8+8
 204 00b6 1868     		ldr	r0, [r3]
 205 00b8 6050     		str	r0, [r4, r1]	@ unaligned
 206 00ba 9988     		ldrh	r1, [r3, #4]	@ unaligned
 207 00bc 9B79     		ldrb	r3, [r3, #6]	@ zero_extendqisi2
 208 00be 9180     		strh	r1, [r2, #4]	@ unaligned
 209 00c0 9371     		strb	r3, [r2, #6]
  50:Core/Src/palmipede.c **** 		strcat(outbuf, " lon: ");
 210              		.loc 1 50 0
 211 00c2 4146     		mov	r1, r8
 212 00c4 2046     		mov	r0, r4
 213 00c6 FFF7FEFF 		bl	strcat
 214              	.LVL27:
  51:Core/Src/palmipede.c **** 		strcat(outbuf, longitude);
 215              		.loc 1 51 0
 216 00ca 2046     		mov	r0, r4
 217 00cc FFF7FEFF 		bl	strlen
 218              	.LVL28:
 219 00d0 0146     		mov	r1, r0
 220 00d2 2218     		adds	r2, r4, r0
 221 00d4 1A4B     		ldr	r3, .L8+12
 222 00d6 1868     		ldr	r0, [r3]
 223 00d8 6050     		str	r0, [r4, r1]	@ unaligned
 224 00da 9988     		ldrh	r1, [r3, #4]	@ unaligned
 225 00dc 9B79     		ldrb	r3, [r3, #6]	@ zero_extendqisi2
 226 00de 9180     		strh	r1, [r2, #4]	@ unaligned
 227 00e0 9371     		strb	r3, [r2, #6]
  52:Core/Src/palmipede.c **** 		strcat(outbuf, " fix: ");
 228              		.loc 1 52 0
 229 00e2 3946     		mov	r1, r7
 230 00e4 2046     		mov	r0, r4
 231 00e6 FFF7FEFF 		bl	strcat
 232              	.LVL29:
  53:Core/Src/palmipede.c **** 		strcat(outbuf, fix);
 233              		.loc 1 53 0
 234 00ea 2046     		mov	r0, r4
 235 00ec FFF7FEFF 		bl	strlen
 236              	.LVL30:
 237 00f0 0146     		mov	r1, r0
 238 00f2 2218     		adds	r2, r4, r0
 239 00f4 134B     		ldr	r3, .L8+16
 240 00f6 1868     		ldr	r0, [r3]
 241 00f8 6050     		str	r0, [r4, r1]	@ unaligned
 242 00fa 9988     		ldrh	r1, [r3, #4]	@ unaligned
 243 00fc 9B79     		ldrb	r3, [r3, #6]	@ zero_extendqisi2
 244 00fe 9180     		strh	r1, [r2, #4]	@ unaligned
 245 0100 9371     		strb	r3, [r2, #6]
  54:Core/Src/palmipede.c **** 		strcat(outbuf, " sat: ");
 246              		.loc 1 54 0
 247 0102 3146     		mov	r1, r6
 248 0104 2046     		mov	r0, r4
 249 0106 FFF7FEFF 		bl	strcat
 250              	.LVL31:
  55:Core/Src/palmipede.c **** 		strcat(outbuf, sat);
 251              		.loc 1 55 0
 252 010a 2046     		mov	r0, r4
ARM GAS  /tmp/ccu1CkFP.s 			page 7


 253 010c FFF7FEFF 		bl	strlen
 254              	.LVL32:
 255 0110 0146     		mov	r1, r0
 256 0112 2218     		adds	r2, r4, r0
 257 0114 0C4B     		ldr	r3, .L8+20
 258 0116 1868     		ldr	r0, [r3]
 259 0118 6050     		str	r0, [r4, r1]	@ unaligned
 260 011a 9988     		ldrh	r1, [r3, #4]	@ unaligned
 261 011c 9B79     		ldrb	r3, [r3, #6]	@ zero_extendqisi2
 262 011e 9180     		strh	r1, [r2, #4]	@ unaligned
 263 0120 9371     		strb	r3, [r2, #6]
  56:Core/Src/palmipede.c **** 		display_write2(origbuf);
 264              		.loc 1 56 0
 265 0122 2946     		mov	r1, r5
 266 0124 2046     		mov	r0, r4
 267 0126 FFF7FEFF 		bl	strcat
 268              	.LVL33:
  57:Core/Src/palmipede.c **** 	}
 269              		.loc 1 57 0
 270 012a 6846     		mov	r0, sp
 271 012c FFF7FEFF 		bl	display_write2
 272              	.LVL34:
 273              	.LBE9:
 274              	.LBE10:
  59:Core/Src/palmipede.c **** 
 275              		.loc 1 59 0
 276 0130 A1E7     		b	.L4
 277              	.L9:
 278 0132 00BF     		.align	2
 279              	.L8:
 280 0134 00000000 		.word	.LC0
 281 0138 08000000 		.word	.LC1
 282 013c 10000000 		.word	.LC2
 283 0140 18000000 		.word	.LC3
 284 0144 20000000 		.word	.LC4
 285 0148 28000000 		.word	.LC5
 286              		.cfi_endproc
 287              	.LFE137:
 289              		.section	.text.enqueue_nmea,"ax",%progbits
 290              		.align	1
 291              		.global	enqueue_nmea
 292              		.syntax unified
 293              		.thumb
 294              		.thumb_func
 295              		.fpu fpv4-sp-d16
 297              	enqueue_nmea:
 298              	.LFB136:
  20:Core/Src/palmipede.c **** 	static uint8_t start, sentence, checksum_index, valuebuf_index, commas_index;
 299              		.loc 1 20 0
 300              		.cfi_startproc
 301              		@ args = 0, pretend = 0, frame = 0
 302              		@ frame_needed = 0, uses_anonymous_args = 0
 303              	.LVL35:
 304 0000 10B5     		push	{r4, lr}
 305              	.LCFI4:
 306              		.cfi_def_cfa_offset 8
 307              		.cfi_offset 4, -8
ARM GAS  /tmp/ccu1CkFP.s 			page 8


 308              		.cfi_offset 14, -4
 309 0002 0446     		mov	r4, r0
  23:Core/Src/palmipede.c **** //		display_write(valuebuf,24);
 310              		.loc 1 23 0
 311 0004 2428     		cmp	r0, #36
 312 0006 06D0     		beq	.L13
 313              	.LVL36:
 314              	.L11:
  28:Core/Src/palmipede.c **** 	valuebuf_index++;
 315              		.loc 1 28 0
 316 0008 064A     		ldr	r2, .L14
 317 000a 1378     		ldrb	r3, [r2]	@ zero_extendqisi2
 318 000c 0649     		ldr	r1, .L14+4
 319 000e CC54     		strb	r4, [r1, r3]
  29:Core/Src/palmipede.c **** }
 320              		.loc 1 29 0
 321 0010 0133     		adds	r3, r3, #1
 322 0012 1370     		strb	r3, [r2]
  30:Core/Src/palmipede.c **** 
 323              		.loc 1 30 0
 324 0014 10BD     		pop	{r4, pc}
 325              	.LVL37:
 326              	.L13:
 327              	.LBB11:
  25:Core/Src/palmipede.c **** 		valuebuf_index = 0;
 328              		.loc 1 25 0
 329 0016 0448     		ldr	r0, .L14+4
 330              	.LVL38:
 331 0018 FFF7FEFF 		bl	print_nmea
 332              	.LVL39:
  26:Core/Src/palmipede.c **** 	}
 333              		.loc 1 26 0
 334 001c 014B     		ldr	r3, .L14
 335 001e 0022     		movs	r2, #0
 336 0020 1A70     		strb	r2, [r3]
 337 0022 F1E7     		b	.L11
 338              	.L15:
 339              		.align	2
 340              	.L14:
 341 0024 00000000 		.word	.LANCHOR1
 342 0028 00000000 		.word	.LANCHOR0
 343              	.LBE11:
 344              		.cfi_endproc
 345              	.LFE136:
 347              		.section	.text.dequeue_cmd,"ax",%progbits
 348              		.align	1
 349              		.global	dequeue_cmd
 350              		.syntax unified
 351              		.thumb
 352              		.thumb_func
 353              		.fpu fpv4-sp-d16
 355              	dequeue_cmd:
 356              	.LFB138:
  61:Core/Src/palmipede.c **** //        decode_cmd(rx_cmd_rb[rx_cmd_rb_out_idx]);
 357              		.loc 1 61 0
 358              		.cfi_startproc
 359              		@ args = 0, pretend = 0, frame = 0
ARM GAS  /tmp/ccu1CkFP.s 			page 9


 360              		@ frame_needed = 0, uses_anonymous_args = 0
 361 0000 10B5     		push	{r4, lr}
 362              	.LCFI5:
 363              		.cfi_def_cfa_offset 8
 364              		.cfi_offset 4, -8
 365              		.cfi_offset 14, -4
  63:Core/Src/palmipede.c ****         ringbuf_increment(&rx_cmd_rb_out_idx, RX_CMD_RB_SIZE_MASK);
 366              		.loc 1 63 0
 367 0002 064C     		ldr	r4, .L18
 368 0004 2378     		ldrb	r3, [r4]	@ zero_extendqisi2
 369 0006 0121     		movs	r1, #1
 370 0008 0548     		ldr	r0, .L18+4
 371 000a 1844     		add	r0, r0, r3
 372 000c FFF7FEFF 		bl	display_write
 373              	.LVL40:
 374              	.LBB12:
 375              	.LBB13:
  69:Core/Src/palmipede.c ****     *index &= buff_size_mask;
 376              		.loc 1 69 0
 377 0010 2378     		ldrb	r3, [r4]	@ zero_extendqisi2
 378 0012 0133     		adds	r3, r3, #1
 379              		.loc 1 70 0
 380 0014 03F01F03 		and	r3, r3, #31
 381 0018 2370     		strb	r3, [r4]
 382              	.LVL41:
 383              	.LBE13:
 384              	.LBE12:
  65:Core/Src/palmipede.c **** 
 385              		.loc 1 65 0
 386 001a 10BD     		pop	{r4, pc}
 387              	.L19:
 388              		.align	2
 389              	.L18:
 390 001c 00000000 		.word	rx_cmd_rb_out_idx
 391 0020 00000000 		.word	rx_cmd_rb
 392              		.cfi_endproc
 393              	.LFE138:
 395              		.section	.text.ringbuf_increment,"ax",%progbits
 396              		.align	1
 397              		.global	ringbuf_increment
 398              		.syntax unified
 399              		.thumb
 400              		.thumb_func
 401              		.fpu fpv4-sp-d16
 403              	ringbuf_increment:
 404              	.LFB139:
  68:Core/Src/palmipede.c ****     (*index)++;
 405              		.loc 1 68 0
 406              		.cfi_startproc
 407              		@ args = 0, pretend = 0, frame = 0
 408              		@ frame_needed = 0, uses_anonymous_args = 0
 409              		@ link register save eliminated.
 410              	.LVL42:
  69:Core/Src/palmipede.c ****     *index &= buff_size_mask;
 411              		.loc 1 69 0
 412 0000 0378     		ldrb	r3, [r0]	@ zero_extendqisi2
 413 0002 0133     		adds	r3, r3, #1
ARM GAS  /tmp/ccu1CkFP.s 			page 10


 414              		.loc 1 70 0
 415 0004 1940     		ands	r1, r1, r3
 416              	.LVL43:
 417 0006 0170     		strb	r1, [r0]
  71:Core/Src/palmipede.c ****     return *index;
  72:Core/Src/palmipede.c **** }
 418              		.loc 1 72 0
 419 0008 0846     		mov	r0, r1
 420              	.LVL44:
 421 000a 7047     		bx	lr
 422              		.cfi_endproc
 423              	.LFE139:
 425              		.global	__aeabi_f2d
 426              		.section	.text.create_groupset,"ax",%progbits
 427              		.align	1
 428              		.global	create_groupset
 429              		.syntax unified
 430              		.thumb
 431              		.thumb_func
 432              		.fpu fpv4-sp-d16
 434              	create_groupset:
 435              	.LFB140:
  73:Core/Src/palmipede.c **** 
  74:Core/Src/palmipede.c **** uint8_t create_groupset(char *buf, uint8_t gbw, float tfv, float rfv, uint8_t Tx_CTCSS, uint8_t SQ,
 436              		.loc 1 74 0
 437              		.cfi_startproc
 438              		@ args = 4, pretend = 0, frame = 0
 439              		@ frame_needed = 0, uses_anonymous_args = 0
 440              	.LVL45:
 441 0000 70B5     		push	{r4, r5, r6, lr}
 442              	.LCFI6:
 443              		.cfi_def_cfa_offset 16
 444              		.cfi_offset 4, -16
 445              		.cfi_offset 5, -12
 446              		.cfi_offset 6, -8
 447              		.cfi_offset 14, -4
 448 0002 88B0     		sub	sp, sp, #32
 449              	.LCFI7:
 450              		.cfi_def_cfa_offset 48
 451 0004 0446     		mov	r4, r0
 452 0006 0D46     		mov	r5, r1
 453 0008 10EE106A 		vmov	r6, s0
  75:Core/Src/palmipede.c **** 	return sprintf(buf, "AT+DMOSETGROUP=%01d,%.4f,%.4f,%04d,%01d,%04d\r\n", gbw, tfv, rfv, Tx_CTCSS, S
 454              		.loc 1 75 0
 455 000c 9DF83010 		ldrb	r1, [sp, #48]	@ zero_extendqisi2
 456              	.LVL46:
 457 0010 0691     		str	r1, [sp, #24]
 458 0012 0593     		str	r3, [sp, #20]
 459 0014 0492     		str	r2, [sp, #16]
 460 0016 10EE900A 		vmov	r0, s1
 461              	.LVL47:
 462 001a FFF7FEFF 		bl	__aeabi_f2d
 463              	.LVL48:
 464 001e CDE90201 		strd	r0, [sp, #8]
 465 0022 3046     		mov	r0, r6	@ float
 466 0024 FFF7FEFF 		bl	__aeabi_f2d
 467              	.LVL49:
ARM GAS  /tmp/ccu1CkFP.s 			page 11


 468 0028 CDE90001 		strd	r0, [sp]
 469 002c 2A46     		mov	r2, r5
 470 002e 0349     		ldr	r1, .L23
 471 0030 2046     		mov	r0, r4
 472 0032 FFF7FEFF 		bl	sprintf
 473              	.LVL50:
  76:Core/Src/palmipede.c **** }
 474              		.loc 1 76 0
 475 0036 C0B2     		uxtb	r0, r0
 476 0038 08B0     		add	sp, sp, #32
 477              	.LCFI8:
 478              		.cfi_def_cfa_offset 16
 479              		@ sp needed
 480 003a 70BD     		pop	{r4, r5, r6, pc}
 481              	.LVL51:
 482              	.L24:
 483              		.align	2
 484              	.L23:
 485 003c 00000000 		.word	.LC6
 486              		.cfi_endproc
 487              	.LFE140:
 489              		.comm	rx_cmd_rb_out_idx,1,1
 490              		.comm	rx_cmd_rb_in_idx,1,1
 491              		.comm	rx_cmd_rb,32,4
 492              		.comm	uart3_rx_buf,2,4
 493              		.comm	uart2_rx_buf,2,4
 494              		.comm	uart1_rx_buf,2,4
 495              		.section	.bss.valuebuf.9471,"aw",%nobits
 496              		.align	2
 497              		.set	.LANCHOR0,. + 0
 500              	valuebuf.9471:
 501 0000 00000000 		.space	128
 501      00000000 
 501      00000000 
 501      00000000 
 501      00000000 
 502              		.section	.bss.valuebuf_index.9469,"aw",%nobits
 503              		.set	.LANCHOR1,. + 0
 506              	valuebuf_index.9469:
 507 0000 00       		.space	1
 508              		.section	.rodata.create_groupset.str1.4,"aMS",%progbits,1
 509              		.align	2
 510              	.LC6:
 511 0000 41542B44 		.ascii	"AT+DMOSETGROUP=%01d,%.4f,%.4f,%04d,%01d,%04d\015\012"
 511      4D4F5345 
 511      5447524F 
 511      55503D25 
 511      3031642C 
 512 002e 00       		.ascii	"\000"
 513              		.section	.rodata.print_nmea.str1.4,"aMS",%progbits,1
 514              		.align	2
 515              	.LC0:
 516 0000 24475047 		.ascii	"$GPGGA\000"
 516      474100
 517 0007 00       		.space	1
 518              	.LC1:
 519 0008 2074696D 		.ascii	" time: \000"
ARM GAS  /tmp/ccu1CkFP.s 			page 12


 519      653A2000 
 520              	.LC2:
 521 0010 206C6174 		.ascii	" lat: \000"
 521      3A2000
 522 0017 00       		.space	1
 523              	.LC3:
 524 0018 206C6F6E 		.ascii	" lon: \000"
 524      3A2000
 525 001f 00       		.space	1
 526              	.LC4:
 527 0020 20666978 		.ascii	" fix: \000"
 527      3A2000
 528 0027 00       		.space	1
 529              	.LC5:
 530 0028 20736174 		.ascii	" sat: \000"
 530      3A2000
 531              		.text
 532              	.Letext0:
 533              		.file 2 "/usr/include/newlib/machine/_default_types.h"
 534              		.file 3 "/usr/include/newlib/sys/_stdint.h"
 535              		.file 4 "/usr/include/newlib/sys/lock.h"
 536              		.file 5 "/usr/include/newlib/sys/_types.h"
 537              		.file 6 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h"
 538              		.file 7 "/usr/include/newlib/sys/reent.h"
 539              		.file 8 "Drivers/CMSIS/Include/core_cm4.h"
 540              		.file 9 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
 541              		.file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
 542              		.file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
 543              		.file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
 544              		.file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
 545              		.file 14 "Core/Inc/palmipede.h"
 546              		.file 15 "<built-in>"
 547              		.file 16 "/usr/include/newlib/stdio.h"
ARM GAS  /tmp/ccu1CkFP.s 			page 13


DEFINED SYMBOLS
                            *ABS*:0000000000000000 palmipede.c
     /tmp/ccu1CkFP.s:18     .text.enqueue_cmd:0000000000000000 $t
     /tmp/ccu1CkFP.s:25     .text.enqueue_cmd:0000000000000000 enqueue_cmd
     /tmp/ccu1CkFP.s:55     .text.enqueue_cmd:0000000000000014 $d
                            *COM*:0000000000000001 rx_cmd_rb_in_idx
                            *COM*:0000000000000020 rx_cmd_rb
     /tmp/ccu1CkFP.s:61     .text.print_nmea:0000000000000000 $t
     /tmp/ccu1CkFP.s:68     .text.print_nmea:0000000000000000 print_nmea
     /tmp/ccu1CkFP.s:280    .text.print_nmea:0000000000000134 $d
     /tmp/ccu1CkFP.s:290    .text.enqueue_nmea:0000000000000000 $t
     /tmp/ccu1CkFP.s:297    .text.enqueue_nmea:0000000000000000 enqueue_nmea
     /tmp/ccu1CkFP.s:341    .text.enqueue_nmea:0000000000000024 $d
     /tmp/ccu1CkFP.s:348    .text.dequeue_cmd:0000000000000000 $t
     /tmp/ccu1CkFP.s:355    .text.dequeue_cmd:0000000000000000 dequeue_cmd
     /tmp/ccu1CkFP.s:390    .text.dequeue_cmd:000000000000001c $d
                            *COM*:0000000000000001 rx_cmd_rb_out_idx
     /tmp/ccu1CkFP.s:396    .text.ringbuf_increment:0000000000000000 $t
     /tmp/ccu1CkFP.s:403    .text.ringbuf_increment:0000000000000000 ringbuf_increment
     /tmp/ccu1CkFP.s:427    .text.create_groupset:0000000000000000 $t
     /tmp/ccu1CkFP.s:434    .text.create_groupset:0000000000000000 create_groupset
     /tmp/ccu1CkFP.s:485    .text.create_groupset:000000000000003c $d
                            *COM*:0000000000000002 uart3_rx_buf
                            *COM*:0000000000000002 uart2_rx_buf
                            *COM*:0000000000000002 uart1_rx_buf
     /tmp/ccu1CkFP.s:496    .bss.valuebuf.9471:0000000000000000 $d
     /tmp/ccu1CkFP.s:500    .bss.valuebuf.9471:0000000000000000 valuebuf.9471
     /tmp/ccu1CkFP.s:506    .bss.valuebuf_index.9469:0000000000000000 valuebuf_index.9469
     /tmp/ccu1CkFP.s:507    .bss.valuebuf_index.9469:0000000000000000 $d
     /tmp/ccu1CkFP.s:509    .rodata.create_groupset.str1.4:0000000000000000 $d
     /tmp/ccu1CkFP.s:514    .rodata.print_nmea.str1.4:0000000000000000 $d

UNDEFINED SYMBOLS
strcpy
strchr
strcmp
strcat
strlen
display_write2
display_write
__aeabi_f2d
sprintf
