ARM GAS /tmp/ccxqDFkN.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "squeow.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Src/squeow.c" 20 .section .rodata.squeow_init.str1.4,"aMS",%progbits,1 21 .align 2 22 .LC0: 23 0000 73717565 .ascii "squeow init\000" 23 6F772069 23 6E697400 24 .section .text.squeow_init,"ax",%progbits 25 .align 1 26 .global squeow_init 27 .syntax unified 28 .thumb 29 .thumb_func 31 squeow_init: 32 .LFB332: 1:Src/squeow.c **** #include 2:Src/squeow.c **** #include 3:Src/squeow.c **** #include 4:Src/squeow.c **** #include 5:Src/squeow.c **** 6:Src/squeow.c **** #include "si5351.h" 7:Src/squeow.c **** #include "squeow.h" 8:Src/squeow.c **** #include "squeow_ui.h" 9:Src/squeow.c **** 10:Src/squeow.c **** /* SQUEOW 11:Src/squeow.c **** 12:Src/squeow.c **** TIM3 eventi 98304000/(49152×200) 10hz 13:Src/squeow.c **** TIM2 PWM 98304000/2048 48khz 14:Src/squeow.c **** 15:Src/squeow.c **** risoluzione PWM 4*2048 -> 8192 (13bit) 16:Src/squeow.c **** 17:Src/squeow.c **** */ 18:Src/squeow.c **** 19:Src/squeow.c **** // SYS 20:Src/squeow.c **** uint8_t sys_tick, sys_tick_prescale, pwm_tick; 21:Src/squeow.c **** 22:Src/squeow.c **** // UART 23:Src/squeow.c **** uint8_t UART_RX_buf[UART_RX_BUF_SIZE]; 24:Src/squeow.c **** ARM GAS /tmp/ccxqDFkN.s page 2 25:Src/squeow.c **** // SYNTH 26:Src/squeow.c **** uint32_t freq; 27:Src/squeow.c **** 28:Src/squeow.c **** // ADC1 29:Src/squeow.c **** uint16_t adc1_valore; 30:Src/squeow.c **** 31:Src/squeow.c **** // ADC2 32:Src/squeow.c **** uint16_t adc2_valori[4]; 33:Src/squeow.c **** uint8_t adc2_done, adc_blocco, adc_allarmi[4]; 34:Src/squeow.c **** 35:Src/squeow.c **** // audio 36:Src/squeow.c **** uint16_t sample_value; 37:Src/squeow.c **** uint8_t stato_audio; 38:Src/squeow.c **** double sine_increment; 39:Src/squeow.c **** uint16_t samples_ringbuf[SAMPLES_BUFFER_SIZE]; ///< buffer ad anello dei dati RX 40:Src/squeow.c **** uint32_t samples_ringbuf_input_index, samples_ringbuf_output_index; 41:Src/squeow.c **** uint8_t usb_audio_tick; 42:Src/squeow.c **** 43:Src/squeow.c **** // VU 44:Src/squeow.c **** uint8_t analog_wd_status; 45:Src/squeow.c **** 46:Src/squeow.c **** // MOD 47:Src/squeow.c **** uint16_t pwm_value1, pwm_value2, pwm_value3, pwm_value4; 48:Src/squeow.c **** uint8_t rails_number; 49:Src/squeow.c **** 50:Src/squeow.c **** // ################################### 51:Src/squeow.c **** 52:Src/squeow.c **** void squeow_init(void) { 33 .loc 1 52 24 view -0 34 .cfi_startproc 35 @ args = 0, pretend = 0, frame = 0 36 @ frame_needed = 0, uses_anonymous_args = 0 37 0000 08B5 push {r3, lr} 38 .LCFI0: 39 .cfi_def_cfa_offset 8 40 .cfi_offset 3, -8 41 .cfi_offset 14, -4 53:Src/squeow.c **** seriow_log(2, "squeow init"); 42 .loc 1 53 5 view .LVU1 43 0002 1149 ldr r1, .L3+8 44 0004 0220 movs r0, #2 45 0006 FFF7FEFF bl seriow_log 46 .LVL0: 54:Src/squeow.c **** sine_increment = 0.4; 47 .loc 1 54 5 view .LVU2 48 .loc 1 54 20 is_stmt 0 view .LVU3 49 000a 104B ldr r3, .L3+12 50 000c 0CA1 adr r1, .L3 51 000e D1E90001 ldrd r0, [r1] 52 0012 C3E90001 strd r0, [r3] 55:Src/squeow.c **** samples_ringbuf_input_index = 0; 53 .loc 1 55 5 is_stmt 1 view .LVU4 54 .loc 1 55 33 is_stmt 0 view .LVU5 55 0016 0023 movs r3, #0 56 0018 0D4A ldr r2, .L3+16 57 001a 1360 str r3, [r2] 56:Src/squeow.c **** samples_ringbuf_output_index = 0; ARM GAS /tmp/ccxqDFkN.s page 3 58 .loc 1 56 5 is_stmt 1 view .LVU6 59 .loc 1 56 34 is_stmt 0 view .LVU7 60 001c 0D4A ldr r2, .L3+20 61 001e 1360 str r3, [r2] 57:Src/squeow.c **** freq = DEFAULT_SYNTH_FREQUENCY; 62 .loc 1 57 5 is_stmt 1 view .LVU8 63 .loc 1 57 10 is_stmt 0 view .LVU9 64 0020 0D4B ldr r3, .L3+24 65 0022 0E4A ldr r2, .L3+28 66 0024 1A60 str r2, [r3] 58:Src/squeow.c **** adc2_valori[0] = 10; 67 .loc 1 58 5 is_stmt 1 view .LVU10 68 .loc 1 58 20 is_stmt 0 view .LVU11 69 0026 0E4B ldr r3, .L3+32 70 0028 0A22 movs r2, #10 71 002a 1A80 strh r2, [r3] @ movhi 59:Src/squeow.c **** adc2_valori[1] = 20; 72 .loc 1 59 5 is_stmt 1 view .LVU12 73 .loc 1 59 20 is_stmt 0 view .LVU13 74 002c 1422 movs r2, #20 75 002e 5A80 strh r2, [r3, #2] @ movhi 60:Src/squeow.c **** adc2_valori[2] = 30; 76 .loc 1 60 5 is_stmt 1 view .LVU14 77 .loc 1 60 20 is_stmt 0 view .LVU15 78 0030 1E22 movs r2, #30 79 0032 9A80 strh r2, [r3, #4] @ movhi 61:Src/squeow.c **** adc2_valori[3] = 40; 80 .loc 1 61 5 is_stmt 1 view .LVU16 81 .loc 1 61 20 is_stmt 0 view .LVU17 82 0034 2822 movs r2, #40 83 0036 DA80 strh r2, [r3, #6] @ movhi 62:Src/squeow.c **** } 84 .loc 1 62 1 view .LVU18 85 0038 08BD pop {r3, pc} 86 .L4: 87 003a 00BFAFF3 .align 3 87 0080 88 .L3: 89 0040 9A999999 .word -1717986918 90 0044 9999D93F .word 1071225241 91 0048 00000000 .word .LC0 92 004c 00000000 .word sine_increment 93 0050 00000000 .word samples_ringbuf_input_index 94 0054 00000000 .word samples_ringbuf_output_index 95 0058 00000000 .word freq 96 005c 98BC1400 .word 1359000 97 0060 00000000 .word adc2_valori 98 .cfi_endproc 99 .LFE332: 101 .section .text.sat_sub,"ax",%progbits 102 .align 1 103 .global sat_sub 104 .syntax unified 105 .thumb 106 .thumb_func 108 sat_sub: 109 .LVL1: ARM GAS /tmp/ccxqDFkN.s page 4 110 .LFB333: 63:Src/squeow.c **** 64:Src/squeow.c **** uint32_t sat_sub(uint16_t x, uint16_t y) { 111 .loc 1 64 42 is_stmt 1 view -0 112 .cfi_startproc 113 @ args = 0, pretend = 0, frame = 0 114 @ frame_needed = 0, uses_anonymous_args = 0 115 @ link register save eliminated. 65:Src/squeow.c **** uint16_t res = x - y; 116 .loc 1 65 5 view .LVU20 117 .loc 1 65 14 is_stmt 0 view .LVU21 118 0000 411A subs r1, r0, r1 119 .LVL2: 120 .loc 1 65 14 view .LVU22 121 0002 89B2 uxth r1, r1 122 .LVL3: 66:Src/squeow.c **** res &= -(res <= x); 123 .loc 1 66 5 is_stmt 1 view .LVU23 124 .loc 1 66 18 is_stmt 0 view .LVU24 125 0004 8842 cmp r0, r1 126 0006 34BF ite cc 127 0008 0020 movcc r0, #0 128 .LVL4: 129 .loc 1 66 18 view .LVU25 130 000a 0120 movcs r0, #1 131 .loc 1 66 9 view .LVU26 132 000c 10FB01F0 smulbb r0, r0, r1 133 .LVL5: 67:Src/squeow.c **** return res; 134 .loc 1 67 5 is_stmt 1 view .LVU27 68:Src/squeow.c **** } 135 .loc 1 68 1 is_stmt 0 view .LVU28 136 0010 80B2 uxth r0, r0 137 .loc 1 68 1 view .LVU29 138 0012 7047 bx lr 139 .cfi_endproc 140 .LFE333: 142 .global __aeabi_dadd 143 .global __aeabi_dcmpge 144 .global __aeabi_dmul 145 .global __aeabi_d2uiz 146 .section .text.u12_sine,"ax",%progbits 147 .align 1 148 .global u12_sine 149 .syntax unified 150 .thumb 151 .thumb_func 153 u12_sine: 154 .LFB334: 69:Src/squeow.c **** 70:Src/squeow.c **** uint16_t u12_sine(void) { 155 .loc 1 70 25 is_stmt 1 view -0 156 .cfi_startproc 157 @ args = 0, pretend = 0, frame = 0 158 @ frame_needed = 0, uses_anonymous_args = 0 159 0000 10B5 push {r4, lr} 160 .LCFI1: ARM GAS /tmp/ccxqDFkN.s page 5 161 .cfi_def_cfa_offset 8 162 .cfi_offset 4, -8 163 .cfi_offset 14, -4 71:Src/squeow.c **** static double angle; 164 .loc 1 71 5 view .LVU31 72:Src/squeow.c **** angle += sine_increment; 165 .loc 1 72 5 view .LVU32 166 .loc 1 72 11 is_stmt 0 view .LVU33 167 0002 194C ldr r4, .L11+16 168 0004 194B ldr r3, .L11+20 169 0006 D3E90023 ldrd r2, [r3] 170 000a D4E90001 ldrd r0, [r4] 171 000e FFF7FEFF bl __aeabi_dadd 172 .LVL6: 173 0012 0246 mov r2, r0 174 0014 0B46 mov r3, r1 175 0016 C4E90023 strd r2, [r4] 73:Src/squeow.c **** if (angle >= 6.28) 176 .loc 1 73 5 is_stmt 1 view .LVU34 177 .loc 1 73 8 is_stmt 0 view .LVU35 178 001a 0FA3 adr r3, .L11 179 001c D3E90023 ldrd r2, [r3] 180 0020 FFF7FEFF bl __aeabi_dcmpge 181 .LVL7: 182 0024 18B1 cbz r0, .L7 74:Src/squeow.c **** angle = 0; 183 .loc 1 74 9 is_stmt 1 view .LVU36 184 .loc 1 74 15 is_stmt 0 view .LVU37 185 0026 0020 movs r0, #0 186 0028 0021 movs r1, #0 187 002a C4E90001 strd r0, [r4] 188 .L7: 75:Src/squeow.c **** return (uint16_t)((sin(angle) * 0x7ff) + 0x7ff); 189 .loc 1 75 5 is_stmt 1 view .LVU38 190 .loc 1 75 24 is_stmt 0 view .LVU39 191 002e 0E4B ldr r3, .L11+16 192 0030 93ED000B vldr.64 d0, [r3] 193 0034 FFF7FEFF bl sin 194 .LVL8: 195 0038 51EC100B vmov r0, r1, d0 196 .loc 1 75 35 discriminator 1 view .LVU40 197 003c 08A3 adr r3, .L11+8 198 003e D3E90023 ldrd r2, [r3] 199 0042 FFF7FEFF bl __aeabi_dmul 200 .LVL9: 201 .loc 1 75 44 discriminator 1 view .LVU41 202 0046 06A3 adr r3, .L11+8 203 0048 D3E90023 ldrd r2, [r3] 204 004c FFF7FEFF bl __aeabi_dadd 205 .LVL10: 206 .loc 1 75 12 discriminator 1 view .LVU42 207 0050 FFF7FEFF bl __aeabi_d2uiz 208 .LVL11: 76:Src/squeow.c **** } 209 .loc 1 76 1 view .LVU43 210 0054 80B2 uxth r0, r0 211 0056 10BD pop {r4, pc} ARM GAS /tmp/ccxqDFkN.s page 6 212 .L12: 213 .align 3 214 .L11: 215 0058 1F85EB51 .word 1374389535 216 005c B81E1940 .word 1075388088 217 0060 00000000 .word 0 218 0064 00FC9F40 .word 1084226560 219 0068 00000000 .word angle.0 220 006c 00000000 .word sine_increment 221 .cfi_endproc 222 .LFE334: 224 .section .text.ringbuf_increment,"ax",%progbits 225 .align 1 226 .global ringbuf_increment 227 .syntax unified 228 .thumb 229 .thumb_func 231 ringbuf_increment: 232 .LVL12: 233 .LFB338: 77:Src/squeow.c **** 78:Src/squeow.c **** /* 79:Src/squeow.c **** uint16_t get_adc_sample(void) { 80:Src/squeow.c **** uint16_t adc_sample_value; 81:Src/squeow.c **** // stato_audio == STATO_AUDIO_ADC; 82:Src/squeow.c **** HAL_ADC_Start(&hadc1); 83:Src/squeow.c **** if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK) { 84:Src/squeow.c **** // store_sample(HAL_ADC_GetValue(&hadc1) << 4); 85:Src/squeow.c **** adc_sample_value = HAL_ADC_GetValue(&hadc1); 86:Src/squeow.c **** } 87:Src/squeow.c **** HAL_ADC_Stop(&hadc1); 88:Src/squeow.c **** return adc_sample_value; 89:Src/squeow.c **** } 90:Src/squeow.c **** */ 91:Src/squeow.c **** 92:Src/squeow.c **** void store_samples(uint16_t *data, uint32_t size) { 93:Src/squeow.c **** for (uint32_t i = 0; i < size; ++i) { 94:Src/squeow.c **** store_sample(data[i]); 95:Src/squeow.c **** } 96:Src/squeow.c **** } 97:Src/squeow.c **** 98:Src/squeow.c **** void store_sample(uint16_t sample) { 99:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = sample; 100:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_input_index, SAMPLES_BUFFER_SIZE_MASK); 101:Src/squeow.c **** } 102:Src/squeow.c **** 103:Src/squeow.c **** uint16_t get_sample(void) { 104:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_output_index, SAMPLES_BUFFER_SIZE_MASK); 105:Src/squeow.c **** return samples_ringbuf[samples_ringbuf_output_index]; 106:Src/squeow.c **** } 107:Src/squeow.c **** 108:Src/squeow.c **** uint32_t ringbuf_increment(uint32_t *index, uint32_t buff_size_mask) { 234 .loc 1 108 70 is_stmt 1 view -0 235 .cfi_startproc 236 @ args = 0, pretend = 0, frame = 0 237 @ frame_needed = 0, uses_anonymous_args = 0 238 @ link register save eliminated. ARM GAS /tmp/ccxqDFkN.s page 7 239 .loc 1 108 70 is_stmt 0 view .LVU45 240 0000 0246 mov r2, r0 109:Src/squeow.c **** (*index)++; 241 .loc 1 109 5 is_stmt 1 view .LVU46 242 .loc 1 109 6 is_stmt 0 view .LVU47 243 0002 0368 ldr r3, [r0] 244 .loc 1 109 13 view .LVU48 245 0004 0133 adds r3, r3, #1 246 0006 0360 str r3, [r0] 110:Src/squeow.c **** *index &= buff_size_mask; 247 .loc 1 110 5 is_stmt 1 view .LVU49 248 .loc 1 110 12 is_stmt 0 view .LVU50 249 0008 03EA0100 and r0, r3, r1 250 .LVL13: 251 .loc 1 110 12 view .LVU51 252 000c 1060 str r0, [r2] 111:Src/squeow.c **** return *index; 253 .loc 1 111 5 is_stmt 1 view .LVU52 112:Src/squeow.c **** } 254 .loc 1 112 1 is_stmt 0 view .LVU53 255 000e 7047 bx lr 256 .cfi_endproc 257 .LFE338: 259 .section .text.store_sample,"ax",%progbits 260 .align 1 261 .global store_sample 262 .syntax unified 263 .thumb 264 .thumb_func 266 store_sample: 267 .LVL14: 268 .LFB336: 98:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = sample; 269 .loc 1 98 36 is_stmt 1 view -0 270 .cfi_startproc 271 @ args = 0, pretend = 0, frame = 0 272 @ frame_needed = 0, uses_anonymous_args = 0 98:Src/squeow.c **** samples_ringbuf[samples_ringbuf_input_index] = sample; 273 .loc 1 98 36 is_stmt 0 view .LVU55 274 0000 08B5 push {r3, lr} 275 .LCFI2: 276 .cfi_def_cfa_offset 8 277 .cfi_offset 3, -8 278 .cfi_offset 14, -4 99:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_input_index, SAMPLES_BUFFER_SIZE_MASK); 279 .loc 1 99 5 is_stmt 1 view .LVU56 99:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_input_index, SAMPLES_BUFFER_SIZE_MASK); 280 .loc 1 99 20 is_stmt 0 view .LVU57 281 0002 054B ldr r3, .L16 282 0004 1968 ldr r1, [r3] 99:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_input_index, SAMPLES_BUFFER_SIZE_MASK); 283 .loc 1 99 50 view .LVU58 284 0006 054A ldr r2, .L16+4 285 0008 22F81100 strh r0, [r2, r1, lsl #1] @ movhi 100:Src/squeow.c **** } 286 .loc 1 100 5 is_stmt 1 view .LVU59 287 000c 40F2FF31 movw r1, #1023 ARM GAS /tmp/ccxqDFkN.s page 8 288 0010 1846 mov r0, r3 289 .LVL15: 100:Src/squeow.c **** } 290 .loc 1 100 5 is_stmt 0 view .LVU60 291 0012 FFF7FEFF bl ringbuf_increment 292 .LVL16: 101:Src/squeow.c **** 293 .loc 1 101 1 view .LVU61 294 0016 08BD pop {r3, pc} 295 .L17: 296 .align 2 297 .L16: 298 0018 00000000 .word samples_ringbuf_input_index 299 001c 00000000 .word samples_ringbuf 300 .cfi_endproc 301 .LFE336: 303 .section .text.store_samples,"ax",%progbits 304 .align 1 305 .global store_samples 306 .syntax unified 307 .thumb 308 .thumb_func 310 store_samples: 311 .LVL17: 312 .LFB335: 92:Src/squeow.c **** for (uint32_t i = 0; i < size; ++i) { 313 .loc 1 92 51 is_stmt 1 view -0 314 .cfi_startproc 315 @ args = 0, pretend = 0, frame = 0 316 @ frame_needed = 0, uses_anonymous_args = 0 92:Src/squeow.c **** for (uint32_t i = 0; i < size; ++i) { 317 .loc 1 92 51 is_stmt 0 view .LVU63 318 0000 70B5 push {r4, r5, r6, lr} 319 .LCFI3: 320 .cfi_def_cfa_offset 16 321 .cfi_offset 4, -16 322 .cfi_offset 5, -12 323 .cfi_offset 6, -8 324 .cfi_offset 14, -4 325 0002 0646 mov r6, r0 326 0004 0D46 mov r5, r1 93:Src/squeow.c **** store_sample(data[i]); 327 .loc 1 93 5 is_stmt 1 view .LVU64 328 .LBB2: 93:Src/squeow.c **** store_sample(data[i]); 329 .loc 1 93 10 view .LVU65 330 .LVL18: 93:Src/squeow.c **** store_sample(data[i]); 331 .loc 1 93 19 is_stmt 0 view .LVU66 332 0006 0024 movs r4, #0 93:Src/squeow.c **** store_sample(data[i]); 333 .loc 1 93 5 view .LVU67 334 0008 04E0 b .L19 335 .LVL19: 336 .L20: 94:Src/squeow.c **** } 337 .loc 1 94 9 is_stmt 1 view .LVU68 ARM GAS /tmp/ccxqDFkN.s page 9 338 000a 36F81400 ldrh r0, [r6, r4, lsl #1] 339 000e FFF7FEFF bl store_sample 340 .LVL20: 93:Src/squeow.c **** store_sample(data[i]); 341 .loc 1 93 36 discriminator 3 view .LVU69 342 0012 0134 adds r4, r4, #1 343 .LVL21: 344 .L19: 93:Src/squeow.c **** store_sample(data[i]); 345 .loc 1 93 28 discriminator 1 view .LVU70 346 0014 AC42 cmp r4, r5 347 0016 F8D3 bcc .L20 348 .LBE2: 96:Src/squeow.c **** 349 .loc 1 96 1 is_stmt 0 view .LVU71 350 0018 70BD pop {r4, r5, r6, pc} 96:Src/squeow.c **** 351 .loc 1 96 1 view .LVU72 352 .cfi_endproc 353 .LFE335: 355 .section .text.get_sample,"ax",%progbits 356 .align 1 357 .global get_sample 358 .syntax unified 359 .thumb 360 .thumb_func 362 get_sample: 363 .LFB337: 103:Src/squeow.c **** ringbuf_increment(&samples_ringbuf_output_index, SAMPLES_BUFFER_SIZE_MASK); 364 .loc 1 103 27 is_stmt 1 view -0 365 .cfi_startproc 366 @ args = 0, pretend = 0, frame = 0 367 @ frame_needed = 0, uses_anonymous_args = 0 368 0000 10B5 push {r4, lr} 369 .LCFI4: 370 .cfi_def_cfa_offset 8 371 .cfi_offset 4, -8 372 .cfi_offset 14, -4 104:Src/squeow.c **** return samples_ringbuf[samples_ringbuf_output_index]; 373 .loc 1 104 5 view .LVU74 374 0002 054C ldr r4, .L24 375 0004 40F2FF31 movw r1, #1023 376 0008 2046 mov r0, r4 377 000a FFF7FEFF bl ringbuf_increment 378 .LVL22: 105:Src/squeow.c **** } 379 .loc 1 105 5 view .LVU75 105:Src/squeow.c **** } 380 .loc 1 105 27 is_stmt 0 view .LVU76 381 000e 2268 ldr r2, [r4] 106:Src/squeow.c **** 382 .loc 1 106 1 view .LVU77 383 0010 024B ldr r3, .L24+4 384 0012 33F81200 ldrh r0, [r3, r2, lsl #1] 385 0016 10BD pop {r4, pc} 386 .L25: 387 .align 2 ARM GAS /tmp/ccxqDFkN.s page 10 388 .L24: 389 0018 00000000 .word samples_ringbuf_output_index 390 001c 00000000 .word samples_ringbuf 391 .cfi_endproc 392 .LFE337: 394 .section .text.store_buffer,"ax",%progbits 395 .align 1 396 .global store_buffer 397 .syntax unified 398 .thumb 399 .thumb_func 401 store_buffer: 402 .LVL23: 403 .LFB339: 113:Src/squeow.c **** 114:Src/squeow.c **** void store_buffer(uint8_t *buf, uint32_t size) { 404 .loc 1 114 48 is_stmt 1 view -0 405 .cfi_startproc 406 @ args = 0, pretend = 0, frame = 0 407 @ frame_needed = 0, uses_anonymous_args = 0 408 .loc 1 114 48 is_stmt 0 view .LVU79 409 0000 70B5 push {r4, r5, r6, lr} 410 .LCFI5: 411 .cfi_def_cfa_offset 16 412 .cfi_offset 4, -16 413 .cfi_offset 5, -12 414 .cfi_offset 6, -8 415 .cfi_offset 14, -4 416 0002 0646 mov r6, r0 417 0004 0D46 mov r5, r1 115:Src/squeow.c **** for (uint32_t s = 0; s < size / 4; s++) { 418 .loc 1 115 5 is_stmt 1 view .LVU80 419 .LBB3: 420 .loc 1 115 10 view .LVU81 421 .LVL24: 422 .loc 1 115 19 is_stmt 0 view .LVU82 423 0006 0024 movs r4, #0 424 .loc 1 115 5 view .LVU83 425 0008 05E0 b .L27 426 .LVL25: 427 .L28: 428 .LBB4: 116:Src/squeow.c **** uint16_t LL = buf[s * 2]; 429 .loc 1 116 9 is_stmt 1 view .LVU84 117:Src/squeow.c **** uint16_t RR = buf[(s * 2) + 1]; 430 .loc 1 117 9 view .LVU85 431 .loc 1 117 26 is_stmt 0 view .LVU86 432 000a 06EB4403 add r3, r6, r4, lsl #1 433 .LVL26: 118:Src/squeow.c **** store_sample(RR); 434 .loc 1 118 9 is_stmt 1 view .LVU87 435 000e 5878 ldrb r0, [r3, #1] @ zero_extendqisi2 436 0010 FFF7FEFF bl store_sample 437 .LVL27: 438 .loc 1 118 9 is_stmt 0 view .LVU88 439 .LBE4: 115:Src/squeow.c **** uint16_t LL = buf[s * 2]; ARM GAS /tmp/ccxqDFkN.s page 11 440 .loc 1 115 41 is_stmt 1 discriminator 3 view .LVU89 441 0014 0134 adds r4, r4, #1 442 .LVL28: 443 .L27: 115:Src/squeow.c **** uint16_t LL = buf[s * 2]; 444 .loc 1 115 28 discriminator 1 view .LVU90 445 0016 B4EB950F cmp r4, r5, lsr #2 446 001a F6D3 bcc .L28 447 .LBE3: 119:Src/squeow.c **** } 120:Src/squeow.c **** } 448 .loc 1 120 1 is_stmt 0 view .LVU91 449 001c 70BD pop {r4, r5, r6, pc} 450 .loc 1 120 1 view .LVU92 451 .cfi_endproc 452 .LFE339: 454 .section .text.vu_meter,"ax",%progbits 455 .align 1 456 .global vu_meter 457 .syntax unified 458 .thumb 459 .thumb_func 461 vu_meter: 462 .LVL29: 463 .LFB340: 121:Src/squeow.c **** 122:Src/squeow.c **** int vu_meter(uint16_t sample) { 464 .loc 1 122 31 is_stmt 1 view -0 465 .cfi_startproc 466 @ args = 0, pretend = 0, frame = 0 467 @ frame_needed = 0, uses_anonymous_args = 0 468 @ link register save eliminated. 123:Src/squeow.c **** #define ZEROD 2047 124:Src/squeow.c **** #define ZEROU 2048 125:Src/squeow.c **** uint16_t abs_sample; 469 .loc 1 125 5 view .LVU94 126:Src/squeow.c **** uint8_t scaled_abs_sample; 470 .loc 1 126 5 view .LVU95 127:Src/squeow.c **** abs_sample = (sample > ZEROD) ? sample - ZEROU : ZEROD - sample; 471 .loc 1 127 5 view .LVU96 472 .loc 1 127 16 is_stmt 0 view .LVU97 473 0000 B0F5006F cmp r0, #2048 474 0004 0AD3 bcc .L31 475 .loc 1 127 16 discriminator 1 view .LVU98 476 0006 A0F50063 sub r3, r0, #2048 477 000a 9BB2 uxth r3, r3 478 .L32: 479 .LVL30: 128:Src/squeow.c **** scaled_abs_sample = abs_sample >> 3; 480 .loc 1 128 5 is_stmt 1 view .LVU99 481 .loc 1 128 23 is_stmt 0 view .LVU100 482 000c C3F3C703 ubfx r3, r3, #3, #8 483 .LVL31: 129:Src/squeow.c **** 130:Src/squeow.c **** if (scaled_abs_sample >= vu_tmp_value) 484 .loc 1 130 5 is_stmt 1 view .LVU101 485 .loc 1 130 27 is_stmt 0 view .LVU102 ARM GAS /tmp/ccxqDFkN.s page 12 486 0010 054A ldr r2, .L35 487 0012 1078 ldrb r0, [r2] @ zero_extendqisi2 488 .LVL32: 489 .loc 1 130 8 view .LVU103 490 0014 9842 cmp r0, r3 491 0016 00D8 bhi .L30 131:Src/squeow.c **** return scaled_abs_sample; 492 .loc 1 131 9 is_stmt 1 view .LVU104 493 .loc 1 131 16 is_stmt 0 view .LVU105 494 0018 1846 mov r0, r3 495 .L30: 132:Src/squeow.c **** else { 133:Src/squeow.c **** return vu_tmp_value; 134:Src/squeow.c **** } 135:Src/squeow.c **** } 496 .loc 1 135 1 view .LVU106 497 001a 7047 bx lr 498 .LVL33: 499 .L31: 127:Src/squeow.c **** scaled_abs_sample = abs_sample >> 3; 500 .loc 1 127 16 discriminator 2 view .LVU107 501 001c C0F5FF63 rsb r3, r0, #2040 502 0020 0733 adds r3, r3, #7 503 0022 9BB2 uxth r3, r3 504 0024 F2E7 b .L32 505 .L36: 506 0026 00BF .align 2 507 .L35: 508 0028 00000000 .word vu_tmp_value 509 .cfi_endproc 510 .LFE340: 512 .section .rodata.adc_rileva_soglie.str1.4,"aMS",%progbits,1 513 .align 2 514 .LC1: 515 0000 41444330 .ascii "ADC0 threshold detect\000" 515 20746872 515 6573686F 515 6C642064 515 65746563 516 0016 0000 .align 2 517 .LC2: 518 0018 41444331 .ascii "ADC1 threshold detect\000" 518 20746872 518 6573686F 518 6C642064 518 65746563 519 002e 0000 .align 2 520 .LC3: 521 0030 41444333 .ascii "ADC3 threshold detect\000" 521 20746872 521 6573686F 521 6C642064 521 65746563 522 .section .text.adc_rileva_soglie,"ax",%progbits 523 .align 1 524 .global adc_rileva_soglie 525 .syntax unified ARM GAS /tmp/ccxqDFkN.s page 13 526 .thumb 527 .thumb_func 529 adc_rileva_soglie: 530 .LVL34: 531 .LFB341: 136:Src/squeow.c **** 137:Src/squeow.c **** // adc 138:Src/squeow.c **** 139:Src/squeow.c **** void adc_rileva_soglie(uint16_t *adc_valori) { 532 .loc 1 139 46 is_stmt 1 view -0 533 .cfi_startproc 534 @ args = 0, pretend = 0, frame = 0 535 @ frame_needed = 0, uses_anonymous_args = 0 536 .loc 1 139 46 is_stmt 0 view .LVU109 537 0000 10B5 push {r4, lr} 538 .LCFI6: 539 .cfi_def_cfa_offset 8 540 .cfi_offset 4, -8 541 .cfi_offset 14, -4 542 0002 0446 mov r4, r0 140:Src/squeow.c **** if (adc_valori[0] > SOGLIA_TEMPERATURA) { 543 .loc 1 140 5 is_stmt 1 view .LVU110 544 .loc 1 140 19 is_stmt 0 view .LVU111 545 0004 0388 ldrh r3, [r0] 546 .loc 1 140 8 view .LVU112 547 0006 B3F5006F cmp r3, #2048 548 000a 08D8 bhi .L42 549 .LVL35: 550 .L38: 141:Src/squeow.c **** seriow_log(1, "ADC0 threshold detect"); 142:Src/squeow.c **** HAL_GPIO_WritePin(TEMP_OL_GPIO_Port, TEMP_OL_Pin, 1); 143:Src/squeow.c **** adc_allarmi[0] = 1; 144:Src/squeow.c **** adc_blocco = 1; 145:Src/squeow.c **** } 146:Src/squeow.c **** if (adc_valori[1] > SOGLIA_CORRENTE) { 551 .loc 1 146 5 is_stmt 1 view .LVU113 552 .loc 1 146 19 is_stmt 0 view .LVU114 553 000c 6388 ldrh r3, [r4, #2] 554 .loc 1 146 8 view .LVU115 555 000e B3F5006F cmp r3, #2048 556 0012 13D8 bhi .L43 557 .L39: 147:Src/squeow.c **** seriow_log(1, "ADC1 threshold detect"); 148:Src/squeow.c **** adc_allarmi[1] = 1; 149:Src/squeow.c **** adc_blocco = 1; 150:Src/squeow.c **** } 151:Src/squeow.c **** if (adc_valori[3] > SOGLIA_RIFLESSA) { 558 .loc 1 151 5 is_stmt 1 view .LVU116 559 .loc 1 151 19 is_stmt 0 view .LVU117 560 0014 E388 ldrh r3, [r4, #6] 561 .loc 1 151 8 view .LVU118 562 0016 B3F5006F cmp r3, #2048 563 001a 19D8 bhi .L44 564 .L37: 152:Src/squeow.c **** seriow_log(1, "ADC3 threshold detect"); 153:Src/squeow.c **** HAL_GPIO_WritePin(REFL_OL_GPIO_Port, REFL_OL_Pin, 1); 154:Src/squeow.c **** adc_allarmi[3] = 1; ARM GAS /tmp/ccxqDFkN.s page 14 155:Src/squeow.c **** adc_blocco = 1; 156:Src/squeow.c **** } 157:Src/squeow.c **** } 565 .loc 1 157 1 view .LVU119 566 001c 10BD pop {r4, pc} 567 .LVL36: 568 .L42: 141:Src/squeow.c **** HAL_GPIO_WritePin(TEMP_OL_GPIO_Port, TEMP_OL_Pin, 1); 569 .loc 1 141 9 is_stmt 1 view .LVU120 570 001e 1449 ldr r1, .L45 571 0020 0120 movs r0, #1 572 .LVL37: 141:Src/squeow.c **** HAL_GPIO_WritePin(TEMP_OL_GPIO_Port, TEMP_OL_Pin, 1); 573 .loc 1 141 9 is_stmt 0 view .LVU121 574 0022 FFF7FEFF bl seriow_log 575 .LVL38: 142:Src/squeow.c **** adc_allarmi[0] = 1; 576 .loc 1 142 9 is_stmt 1 view .LVU122 577 0026 0122 movs r2, #1 578 0028 2021 movs r1, #32 579 002a 1248 ldr r0, .L45+4 580 002c FFF7FEFF bl HAL_GPIO_WritePin 581 .LVL39: 143:Src/squeow.c **** adc_blocco = 1; 582 .loc 1 143 9 view .LVU123 143:Src/squeow.c **** adc_blocco = 1; 583 .loc 1 143 24 is_stmt 0 view .LVU124 584 0030 0123 movs r3, #1 585 0032 114A ldr r2, .L45+8 586 0034 1370 strb r3, [r2] 144:Src/squeow.c **** } 587 .loc 1 144 9 is_stmt 1 view .LVU125 144:Src/squeow.c **** } 588 .loc 1 144 20 is_stmt 0 view .LVU126 589 0036 114A ldr r2, .L45+12 590 0038 1370 strb r3, [r2] 591 003a E7E7 b .L38 592 .L43: 147:Src/squeow.c **** adc_allarmi[1] = 1; 593 .loc 1 147 9 is_stmt 1 view .LVU127 594 003c 1049 ldr r1, .L45+16 595 003e 0120 movs r0, #1 596 0040 FFF7FEFF bl seriow_log 597 .LVL40: 148:Src/squeow.c **** adc_blocco = 1; 598 .loc 1 148 9 view .LVU128 148:Src/squeow.c **** adc_blocco = 1; 599 .loc 1 148 24 is_stmt 0 view .LVU129 600 0044 0123 movs r3, #1 601 0046 0C4A ldr r2, .L45+8 602 0048 5370 strb r3, [r2, #1] 149:Src/squeow.c **** } 603 .loc 1 149 9 is_stmt 1 view .LVU130 149:Src/squeow.c **** } 604 .loc 1 149 20 is_stmt 0 view .LVU131 605 004a 0C4A ldr r2, .L45+12 606 004c 1370 strb r3, [r2] ARM GAS /tmp/ccxqDFkN.s page 15 607 004e E1E7 b .L39 608 .L44: 152:Src/squeow.c **** HAL_GPIO_WritePin(REFL_OL_GPIO_Port, REFL_OL_Pin, 1); 609 .loc 1 152 9 is_stmt 1 view .LVU132 610 0050 0C49 ldr r1, .L45+20 611 0052 0120 movs r0, #1 612 0054 FFF7FEFF bl seriow_log 613 .LVL41: 153:Src/squeow.c **** adc_allarmi[3] = 1; 614 .loc 1 153 9 view .LVU133 615 0058 0122 movs r2, #1 616 005a 4021 movs r1, #64 617 005c 0548 ldr r0, .L45+4 618 005e FFF7FEFF bl HAL_GPIO_WritePin 619 .LVL42: 154:Src/squeow.c **** adc_blocco = 1; 620 .loc 1 154 9 view .LVU134 154:Src/squeow.c **** adc_blocco = 1; 621 .loc 1 154 24 is_stmt 0 view .LVU135 622 0062 0123 movs r3, #1 623 0064 044A ldr r2, .L45+8 624 0066 D370 strb r3, [r2, #3] 155:Src/squeow.c **** } 625 .loc 1 155 9 is_stmt 1 view .LVU136 155:Src/squeow.c **** } 626 .loc 1 155 20 is_stmt 0 view .LVU137 627 0068 044A ldr r2, .L45+12 628 006a 1370 strb r3, [r2] 629 .loc 1 157 1 view .LVU138 630 006c D6E7 b .L37 631 .L46: 632 006e 00BF .align 2 633 .L45: 634 0070 00000000 .word .LC1 635 0074 00040048 .word 1207960576 636 0078 00000000 .word adc_allarmi 637 007c 00000000 .word adc_blocco 638 0080 18000000 .word .LC2 639 0084 30000000 .word .LC3 640 .cfi_endproc 641 .LFE341: 643 .section .text.array_values_mean,"ax",%progbits 644 .align 1 645 .global array_values_mean 646 .syntax unified 647 .thumb 648 .thumb_func 650 array_values_mean: 651 .LVL43: 652 .LFB342: 158:Src/squeow.c **** 159:Src/squeow.c **** void array_values_mean(uint16_t *valori, uint16_t *medie, uint8_t dimensione){ 653 .loc 1 159 78 is_stmt 1 view -0 654 .cfi_startproc 655 @ args = 0, pretend = 0, frame = 0 656 @ frame_needed = 0, uses_anonymous_args = 0 657 @ link register save eliminated. ARM GAS /tmp/ccxqDFkN.s page 16 160:Src/squeow.c **** 161:Src/squeow.c **** } 658 .loc 1 161 1 view .LVU140 659 0000 7047 bx lr 660 .cfi_endproc 661 .LFE342: 663 .section .rodata.squeow_synth_init.str1.4,"aMS",%progbits,1 664 .align 2 665 .LC4: 666 0000 73796E74 .ascii "synth init\000" 666 6820696E 666 697400 667 .section .text.squeow_synth_init,"ax",%progbits 668 .align 1 669 .global squeow_synth_init 670 .syntax unified 671 .thumb 672 .thumb_func 674 squeow_synth_init: 675 .LFB343: 162:Src/squeow.c **** 163:Src/squeow.c **** // synth 164:Src/squeow.c **** 165:Src/squeow.c **** void squeow_synth_init(void) { 676 .loc 1 165 30 view -0 677 .cfi_startproc 678 @ args = 0, pretend = 0, frame = 0 679 @ frame_needed = 0, uses_anonymous_args = 0 680 0000 08B5 push {r3, lr} 681 .LCFI7: 682 .cfi_def_cfa_offset 8 683 .cfi_offset 3, -8 684 .cfi_offset 14, -4 166:Src/squeow.c **** // occhio che blocca! 167:Src/squeow.c **** seriow_log(2, "synth init"); 685 .loc 1 167 5 view .LVU142 686 0002 0349 ldr r1, .L50 687 0004 0220 movs r0, #2 688 0006 FFF7FEFF bl seriow_log 689 .LVL44: 168:Src/squeow.c **** si5351_initialize(); 690 .loc 1 168 5 view .LVU143 691 000a FFF7FEFF bl si5351_initialize 692 .LVL45: 169:Src/squeow.c **** } 693 .loc 1 169 1 is_stmt 0 view .LVU144 694 000e 08BD pop {r3, pc} 695 .L51: 696 .align 2 697 .L50: 698 0010 00000000 .word .LC4 699 .cfi_endproc 700 .LFE343: 702 .section .rodata.squeow_synth_set.str1.4,"aMS",%progbits,1 703 .align 2 704 .LC5: 705 0000 73796E74 .ascii "synth set freq\000" ARM GAS /tmp/ccxqDFkN.s page 17 705 68207365 705 74206672 705 657100 706 .section .text.squeow_synth_set,"ax",%progbits 707 .align 1 708 .global squeow_synth_set 709 .syntax unified 710 .thumb 711 .thumb_func 713 squeow_synth_set: 714 .LVL46: 715 .LFB344: 170:Src/squeow.c **** 171:Src/squeow.c **** void squeow_synth_set(freq) { 716 .loc 1 171 29 is_stmt 1 view -0 717 .cfi_startproc 718 @ args = 0, pretend = 0, frame = 0 719 @ frame_needed = 0, uses_anonymous_args = 0 720 .loc 1 171 29 is_stmt 0 view .LVU146 721 0000 10B5 push {r4, lr} 722 .LCFI8: 723 .cfi_def_cfa_offset 8 724 .cfi_offset 4, -8 725 .cfi_offset 14, -4 726 0002 0446 mov r4, r0 172:Src/squeow.c **** seriow_log(2, "synth set freq"); 727 .loc 1 172 5 is_stmt 1 view .LVU147 728 0004 0649 ldr r1, .L54 729 0006 0220 movs r0, #2 730 .LVL47: 731 .loc 1 172 5 is_stmt 0 view .LVU148 732 0008 FFF7FEFF bl seriow_log 733 .LVL48: 173:Src/squeow.c **** si5351_set_frequency(freq, 0); 734 .loc 1 173 5 is_stmt 1 view .LVU149 735 000c 0021 movs r1, #0 736 000e 2046 mov r0, r4 737 0010 FFF7FEFF bl si5351_set_frequency 738 .LVL49: 174:Src/squeow.c **** si5351_set_frequency(freq, 1); 739 .loc 1 174 5 view .LVU150 740 0014 0121 movs r1, #1 741 0016 2046 mov r0, r4 742 0018 FFF7FEFF bl si5351_set_frequency 743 .LVL50: 175:Src/squeow.c **** } 744 .loc 1 175 1 is_stmt 0 view .LVU151 745 001c 10BD pop {r4, pc} 746 .LVL51: 747 .L55: 748 .loc 1 175 1 view .LVU152 749 001e 00BF .align 2 750 .L54: 751 0020 00000000 .word .LC5 752 .cfi_endproc 753 .LFE344: 755 .section .rodata.squeow_synth_on.str1.4,"aMS",%progbits,1 ARM GAS /tmp/ccxqDFkN.s page 18 756 .align 2 757 .LC6: 758 0000 73796E74 .ascii "synth on\000" 758 68206F6E 758 00 759 .section .text.squeow_synth_on,"ax",%progbits 760 .align 1 761 .global squeow_synth_on 762 .syntax unified 763 .thumb 764 .thumb_func 766 squeow_synth_on: 767 .LFB345: 176:Src/squeow.c **** 177:Src/squeow.c **** void squeow_synth_on(void) { 768 .loc 1 177 28 is_stmt 1 view -0 769 .cfi_startproc 770 @ args = 0, pretend = 0, frame = 0 771 @ frame_needed = 0, uses_anonymous_args = 0 772 0000 08B5 push {r3, lr} 773 .LCFI9: 774 .cfi_def_cfa_offset 8 775 .cfi_offset 3, -8 776 .cfi_offset 14, -4 178:Src/squeow.c **** seriow_log(2, "synth on"); 777 .loc 1 178 5 view .LVU154 778 0002 0549 ldr r1, .L58 779 0004 0220 movs r0, #2 780 0006 FFF7FEFF bl seriow_log 781 .LVL52: 179:Src/squeow.c **** si5351_on_clk(0); 782 .loc 1 179 5 view .LVU155 783 000a 0020 movs r0, #0 784 000c FFF7FEFF bl si5351_on_clk 785 .LVL53: 180:Src/squeow.c **** si5351_on_clk(1); 786 .loc 1 180 5 view .LVU156 787 0010 0120 movs r0, #1 788 0012 FFF7FEFF bl si5351_on_clk 789 .LVL54: 181:Src/squeow.c **** } 790 .loc 1 181 1 is_stmt 0 view .LVU157 791 0016 08BD pop {r3, pc} 792 .L59: 793 .align 2 794 .L58: 795 0018 00000000 .word .LC6 796 .cfi_endproc 797 .LFE345: 799 .section .rodata.squeow_synth_off.str1.4,"aMS",%progbits,1 800 .align 2 801 .LC7: 802 0000 73796E74 .ascii "synth off\000" 802 68206F66 802 6600 803 .section .text.squeow_synth_off,"ax",%progbits 804 .align 1 ARM GAS /tmp/ccxqDFkN.s page 19 805 .global squeow_synth_off 806 .syntax unified 807 .thumb 808 .thumb_func 810 squeow_synth_off: 811 .LFB346: 182:Src/squeow.c **** 183:Src/squeow.c **** void squeow_synth_off(void) { 812 .loc 1 183 29 is_stmt 1 view -0 813 .cfi_startproc 814 @ args = 0, pretend = 0, frame = 0 815 @ frame_needed = 0, uses_anonymous_args = 0 816 0000 08B5 push {r3, lr} 817 .LCFI10: 818 .cfi_def_cfa_offset 8 819 .cfi_offset 3, -8 820 .cfi_offset 14, -4 184:Src/squeow.c **** seriow_log(2, "synth off"); 821 .loc 1 184 5 view .LVU159 822 0002 0549 ldr r1, .L62 823 0004 0220 movs r0, #2 824 0006 FFF7FEFF bl seriow_log 825 .LVL55: 185:Src/squeow.c **** si5351_off_clk(0); 826 .loc 1 185 5 view .LVU160 827 000a 0020 movs r0, #0 828 000c FFF7FEFF bl si5351_off_clk 829 .LVL56: 186:Src/squeow.c **** si5351_off_clk(1); 830 .loc 1 186 5 view .LVU161 831 0010 0120 movs r0, #1 832 0012 FFF7FEFF bl si5351_off_clk 833 .LVL57: 187:Src/squeow.c **** } 834 .loc 1 187 1 is_stmt 0 view .LVU162 835 0016 08BD pop {r3, pc} 836 .L63: 837 .align 2 838 .L62: 839 0018 00000000 .word .LC7 840 .cfi_endproc 841 .LFE346: 843 .section .bss.angle.0,"aw",%nobits 844 .align 3 847 angle.0: 848 0000 00000000 .space 8 848 00000000 849 .global rails_number 850 .section .bss.rails_number,"aw",%nobits 853 rails_number: 854 0000 00 .space 1 855 .global pwm_value4 856 .section .bss.pwm_value4,"aw",%nobits 857 .align 1 860 pwm_value4: 861 0000 0000 .space 2 862 .global pwm_value3 ARM GAS /tmp/ccxqDFkN.s page 20 863 .section .bss.pwm_value3,"aw",%nobits 864 .align 1 867 pwm_value3: 868 0000 0000 .space 2 869 .global pwm_value2 870 .section .bss.pwm_value2,"aw",%nobits 871 .align 1 874 pwm_value2: 875 0000 0000 .space 2 876 .global pwm_value1 877 .section .bss.pwm_value1,"aw",%nobits 878 .align 1 881 pwm_value1: 882 0000 0000 .space 2 883 .global analog_wd_status 884 .section .bss.analog_wd_status,"aw",%nobits 887 analog_wd_status: 888 0000 00 .space 1 889 .global usb_audio_tick 890 .section .bss.usb_audio_tick,"aw",%nobits 893 usb_audio_tick: 894 0000 00 .space 1 895 .global samples_ringbuf_output_index 896 .section .bss.samples_ringbuf_output_index,"aw",%nobits 897 .align 2 900 samples_ringbuf_output_index: 901 0000 00000000 .space 4 902 .global samples_ringbuf_input_index 903 .section .bss.samples_ringbuf_input_index,"aw",%nobits 904 .align 2 907 samples_ringbuf_input_index: 908 0000 00000000 .space 4 909 .global samples_ringbuf 910 .section .bss.samples_ringbuf,"aw",%nobits 911 .align 2 914 samples_ringbuf: 915 0000 00000000 .space 2048 915 00000000 915 00000000 915 00000000 915 00000000 916 .global sine_increment 917 .section .bss.sine_increment,"aw",%nobits 918 .align 3 921 sine_increment: 922 0000 00000000 .space 8 922 00000000 923 .global stato_audio 924 .section .bss.stato_audio,"aw",%nobits 927 stato_audio: 928 0000 00 .space 1 929 .global sample_value 930 .section .bss.sample_value,"aw",%nobits 931 .align 1 934 sample_value: 935 0000 0000 .space 2 936 .global adc_allarmi ARM GAS /tmp/ccxqDFkN.s page 21 937 .section .bss.adc_allarmi,"aw",%nobits 938 .align 2 941 adc_allarmi: 942 0000 00000000 .space 4 943 .global adc_blocco 944 .section .bss.adc_blocco,"aw",%nobits 947 adc_blocco: 948 0000 00 .space 1 949 .global adc2_done 950 .section .bss.adc2_done,"aw",%nobits 953 adc2_done: 954 0000 00 .space 1 955 .global adc2_valori 956 .section .bss.adc2_valori,"aw",%nobits 957 .align 2 960 adc2_valori: 961 0000 00000000 .space 8 961 00000000 962 .global adc1_valore 963 .section .bss.adc1_valore,"aw",%nobits 964 .align 1 967 adc1_valore: 968 0000 0000 .space 2 969 .global freq 970 .section .bss.freq,"aw",%nobits 971 .align 2 974 freq: 975 0000 00000000 .space 4 976 .global UART_RX_buf 977 .section .bss.UART_RX_buf,"aw",%nobits 978 .align 2 981 UART_RX_buf: 982 0000 00000000 .space 64 982 00000000 982 00000000 982 00000000 982 00000000 983 .global pwm_tick 984 .section .bss.pwm_tick,"aw",%nobits 987 pwm_tick: 988 0000 00 .space 1 989 .global sys_tick_prescale 990 .section .bss.sys_tick_prescale,"aw",%nobits 993 sys_tick_prescale: 994 0000 00 .space 1 995 .global sys_tick 996 .section .bss.sys_tick,"aw",%nobits 999 sys_tick: 1000 0000 00 .space 1 1001 .text 1002 .Letext0: 1003 .file 2 "/home/fra/bin/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/mach 1004 .file 3 "/home/fra/bin/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/sys/ 1005 .file 4 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 1006 .file 5 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_gpio.h" 1007 .file 6 "Inc/squeow.h" 1008 .file 7 "Inc/squeow_ui.h" ARM GAS /tmp/ccxqDFkN.s page 22 1009 .file 8 "Inc/si5351.h" 1010 .file 9 "/home/fra/bin/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/arm-none-eabi/include/math ARM GAS /tmp/ccxqDFkN.s page 23 DEFINED SYMBOLS *ABS*:00000000 squeow.c /tmp/ccxqDFkN.s:21 .rodata.squeow_init.str1.4:00000000 $d /tmp/ccxqDFkN.s:25 .text.squeow_init:00000000 $t /tmp/ccxqDFkN.s:31 .text.squeow_init:00000000 squeow_init /tmp/ccxqDFkN.s:89 .text.squeow_init:00000040 $d /tmp/ccxqDFkN.s:921 .bss.sine_increment:00000000 sine_increment /tmp/ccxqDFkN.s:907 .bss.samples_ringbuf_input_index:00000000 samples_ringbuf_input_index /tmp/ccxqDFkN.s:900 .bss.samples_ringbuf_output_index:00000000 samples_ringbuf_output_index /tmp/ccxqDFkN.s:974 .bss.freq:00000000 freq /tmp/ccxqDFkN.s:960 .bss.adc2_valori:00000000 adc2_valori /tmp/ccxqDFkN.s:102 .text.sat_sub:00000000 $t /tmp/ccxqDFkN.s:108 .text.sat_sub:00000000 sat_sub /tmp/ccxqDFkN.s:147 .text.u12_sine:00000000 $t /tmp/ccxqDFkN.s:153 .text.u12_sine:00000000 u12_sine /tmp/ccxqDFkN.s:215 .text.u12_sine:00000058 $d /tmp/ccxqDFkN.s:847 .bss.angle.0:00000000 angle.0 /tmp/ccxqDFkN.s:225 .text.ringbuf_increment:00000000 $t /tmp/ccxqDFkN.s:231 .text.ringbuf_increment:00000000 ringbuf_increment /tmp/ccxqDFkN.s:260 .text.store_sample:00000000 $t /tmp/ccxqDFkN.s:266 .text.store_sample:00000000 store_sample /tmp/ccxqDFkN.s:298 .text.store_sample:00000018 $d /tmp/ccxqDFkN.s:914 .bss.samples_ringbuf:00000000 samples_ringbuf /tmp/ccxqDFkN.s:304 .text.store_samples:00000000 $t /tmp/ccxqDFkN.s:310 .text.store_samples:00000000 store_samples /tmp/ccxqDFkN.s:356 .text.get_sample:00000000 $t /tmp/ccxqDFkN.s:362 .text.get_sample:00000000 get_sample /tmp/ccxqDFkN.s:389 .text.get_sample:00000018 $d /tmp/ccxqDFkN.s:395 .text.store_buffer:00000000 $t /tmp/ccxqDFkN.s:401 .text.store_buffer:00000000 store_buffer /tmp/ccxqDFkN.s:455 .text.vu_meter:00000000 $t /tmp/ccxqDFkN.s:461 .text.vu_meter:00000000 vu_meter /tmp/ccxqDFkN.s:508 .text.vu_meter:00000028 $d /tmp/ccxqDFkN.s:513 .rodata.adc_rileva_soglie.str1.4:00000000 $d /tmp/ccxqDFkN.s:523 .text.adc_rileva_soglie:00000000 $t /tmp/ccxqDFkN.s:529 .text.adc_rileva_soglie:00000000 adc_rileva_soglie /tmp/ccxqDFkN.s:634 .text.adc_rileva_soglie:00000070 $d /tmp/ccxqDFkN.s:941 .bss.adc_allarmi:00000000 adc_allarmi /tmp/ccxqDFkN.s:947 .bss.adc_blocco:00000000 adc_blocco /tmp/ccxqDFkN.s:644 .text.array_values_mean:00000000 $t /tmp/ccxqDFkN.s:650 .text.array_values_mean:00000000 array_values_mean /tmp/ccxqDFkN.s:664 .rodata.squeow_synth_init.str1.4:00000000 $d /tmp/ccxqDFkN.s:668 .text.squeow_synth_init:00000000 $t /tmp/ccxqDFkN.s:674 .text.squeow_synth_init:00000000 squeow_synth_init /tmp/ccxqDFkN.s:698 .text.squeow_synth_init:00000010 $d /tmp/ccxqDFkN.s:703 .rodata.squeow_synth_set.str1.4:00000000 $d /tmp/ccxqDFkN.s:707 .text.squeow_synth_set:00000000 $t /tmp/ccxqDFkN.s:713 .text.squeow_synth_set:00000000 squeow_synth_set /tmp/ccxqDFkN.s:751 .text.squeow_synth_set:00000020 $d /tmp/ccxqDFkN.s:756 .rodata.squeow_synth_on.str1.4:00000000 $d /tmp/ccxqDFkN.s:760 .text.squeow_synth_on:00000000 $t /tmp/ccxqDFkN.s:766 .text.squeow_synth_on:00000000 squeow_synth_on /tmp/ccxqDFkN.s:795 .text.squeow_synth_on:00000018 $d /tmp/ccxqDFkN.s:800 .rodata.squeow_synth_off.str1.4:00000000 $d /tmp/ccxqDFkN.s:804 .text.squeow_synth_off:00000000 $t /tmp/ccxqDFkN.s:810 .text.squeow_synth_off:00000000 squeow_synth_off /tmp/ccxqDFkN.s:839 .text.squeow_synth_off:00000018 $d ARM GAS /tmp/ccxqDFkN.s page 24 /tmp/ccxqDFkN.s:844 .bss.angle.0:00000000 $d /tmp/ccxqDFkN.s:853 .bss.rails_number:00000000 rails_number /tmp/ccxqDFkN.s:854 .bss.rails_number:00000000 $d /tmp/ccxqDFkN.s:860 .bss.pwm_value4:00000000 pwm_value4 /tmp/ccxqDFkN.s:857 .bss.pwm_value4:00000000 $d /tmp/ccxqDFkN.s:867 .bss.pwm_value3:00000000 pwm_value3 /tmp/ccxqDFkN.s:864 .bss.pwm_value3:00000000 $d /tmp/ccxqDFkN.s:874 .bss.pwm_value2:00000000 pwm_value2 /tmp/ccxqDFkN.s:871 .bss.pwm_value2:00000000 $d /tmp/ccxqDFkN.s:881 .bss.pwm_value1:00000000 pwm_value1 /tmp/ccxqDFkN.s:878 .bss.pwm_value1:00000000 $d /tmp/ccxqDFkN.s:887 .bss.analog_wd_status:00000000 analog_wd_status /tmp/ccxqDFkN.s:888 .bss.analog_wd_status:00000000 $d /tmp/ccxqDFkN.s:893 .bss.usb_audio_tick:00000000 usb_audio_tick /tmp/ccxqDFkN.s:894 .bss.usb_audio_tick:00000000 $d /tmp/ccxqDFkN.s:897 .bss.samples_ringbuf_output_index:00000000 $d /tmp/ccxqDFkN.s:904 .bss.samples_ringbuf_input_index:00000000 $d /tmp/ccxqDFkN.s:911 .bss.samples_ringbuf:00000000 $d /tmp/ccxqDFkN.s:918 .bss.sine_increment:00000000 $d /tmp/ccxqDFkN.s:927 .bss.stato_audio:00000000 stato_audio /tmp/ccxqDFkN.s:928 .bss.stato_audio:00000000 $d /tmp/ccxqDFkN.s:934 .bss.sample_value:00000000 sample_value /tmp/ccxqDFkN.s:931 .bss.sample_value:00000000 $d /tmp/ccxqDFkN.s:938 .bss.adc_allarmi:00000000 $d /tmp/ccxqDFkN.s:948 .bss.adc_blocco:00000000 $d /tmp/ccxqDFkN.s:953 .bss.adc2_done:00000000 adc2_done /tmp/ccxqDFkN.s:954 .bss.adc2_done:00000000 $d /tmp/ccxqDFkN.s:957 .bss.adc2_valori:00000000 $d /tmp/ccxqDFkN.s:967 .bss.adc1_valore:00000000 adc1_valore /tmp/ccxqDFkN.s:964 .bss.adc1_valore:00000000 $d /tmp/ccxqDFkN.s:971 .bss.freq:00000000 $d /tmp/ccxqDFkN.s:981 .bss.UART_RX_buf:00000000 UART_RX_buf /tmp/ccxqDFkN.s:978 .bss.UART_RX_buf:00000000 $d /tmp/ccxqDFkN.s:987 .bss.pwm_tick:00000000 pwm_tick /tmp/ccxqDFkN.s:988 .bss.pwm_tick:00000000 $d /tmp/ccxqDFkN.s:993 .bss.sys_tick_prescale:00000000 sys_tick_prescale /tmp/ccxqDFkN.s:994 .bss.sys_tick_prescale:00000000 $d /tmp/ccxqDFkN.s:999 .bss.sys_tick:00000000 sys_tick /tmp/ccxqDFkN.s:1000 .bss.sys_tick:00000000 $d UNDEFINED SYMBOLS seriow_log __aeabi_dadd __aeabi_dcmpge __aeabi_dmul __aeabi_d2uiz sin vu_tmp_value HAL_GPIO_WritePin si5351_initialize si5351_set_frequency si5351_on_clk si5351_off_clk