ARM GAS /tmp/ccut0RQx.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "bassofono.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .global __aeabi_ldivmod 16 .section .text.set_nco1_freq,"ax",%progbits 17 .align 1 18 .p2align 2,,3 19 .global set_nco1_freq 20 .syntax unified 21 .thumb 22 .thumb_func 23 .fpu fpv4-sp-d16 25 set_nco1_freq: 26 .LFB404: 27 .file 1 "Core/Src/bassofono.c" 1:Core/Src/bassofono.c **** /* 2:Core/Src/bassofono.c **** "THE CHINOTTO-WARE LICENSE" (Revision 42): 3:Core/Src/bassofono.c **** 4:Core/Src/bassofono.c **** IZ4KLL a.k.a. cesco@ventuordici.org wrote this code. 5:Core/Src/bassofono.c **** 6:Core/Src/bassofono.c **** As long as you retain this notice you can do whatever you want with this stuff. 7:Core/Src/bassofono.c **** I reserve the right to do the absolute minimum provided by law, up to and including absolutely not 8:Core/Src/bassofono.c **** If we meet some day, and you think this stuff is worth it, you can buy me a chinotto in return. 9:Core/Src/bassofono.c **** */ 10:Core/Src/bassofono.c **** 11:Core/Src/bassofono.c **** #include 12:Core/Src/bassofono.c **** #include "bassofono.h" 13:Core/Src/bassofono.c **** #include "tx.h" 14:Core/Src/bassofono.c **** #include "rx.h" 15:Core/Src/bassofono.c **** #include "interface.h" 16:Core/Src/bassofono.c **** #include "main.h" 17:Core/Src/bassofono.c **** #include "FIRFilterCode.h" 18:Core/Src/bassofono.c **** #include 19:Core/Src/bassofono.c **** #include 20:Core/Src/bassofono.c **** 21:Core/Src/bassofono.c **** /* 22:Core/Src/bassofono.c **** BASSOFONO .-. 23:Core/Src/bassofono.c **** (___________________________()6 `-, 24:Core/Src/bassofono.c **** ( ______________________ /''"` 25:Core/Src/bassofono.c **** //\\ //\\ 26:Core/Src/bassofono.c **** "" "" "" "" 27:Core/Src/bassofono.c **** ~~~~ ricetrasmettitore basso ~~~~ 28:Core/Src/bassofono.c **** 29:Core/Src/bassofono.c **** Ricetrasmettittore multimodo per 30:Core/Src/bassofono.c **** onde lunghe e lunghissime. 31:Core/Src/bassofono.c **** */ ARM GAS /tmp/ccut0RQx.s page 2 32:Core/Src/bassofono.c **** 33:Core/Src/bassofono.c **** // state 34:Core/Src/bassofono.c **** uint8_t receive, transmit; 35:Core/Src/bassofono.c **** uint32_t frequency; 36:Core/Src/bassofono.c **** int32_t modulation; 37:Core/Src/bassofono.c **** int32_t gain; 38:Core/Src/bassofono.c **** int32_t volume; 39:Core/Src/bassofono.c **** int32_t squelch; 40:Core/Src/bassofono.c **** int32_t mic_gain; 41:Core/Src/bassofono.c **** int32_t scan; 42:Core/Src/bassofono.c **** q31_t nco1_increment; 43:Core/Src/bassofono.c **** uint32_t audio_filter_freq, audio_filter_bw, audio_filter_beta; 44:Core/Src/bassofono.c **** 45:Core/Src/bassofono.c **** // maschera, ogni bit uno stato 46:Core/Src/bassofono.c **** uint16_t state_changed; 47:Core/Src/bassofono.c **** 48:Core/Src/bassofono.c **** // uart rx 49:Core/Src/bassofono.c **** char uart_rx_buf[2], rx_cmd_rb[RX_CMD_RB_SIZE]; 50:Core/Src/bassofono.c **** uint8_t rx_cmd_rb_in_idx, rx_cmd_rb_out_idx; 51:Core/Src/bassofono.c **** 52:Core/Src/bassofono.c **** // uart tx 53:Core/Src/bassofono.c **** char uart_tx_buf[UART_TX_BUFFER_SIZE]; 54:Core/Src/bassofono.c **** uint16_t uart_tx_buf_in_idx; 55:Core/Src/bassofono.c **** 56:Core/Src/bassofono.c **** // bufffah 57:Core/Src/bassofono.c **** uint16_t adc_buffer[ADC_BUFFER_SIZE]; 58:Core/Src/bassofono.c **** 59:Core/Src/bassofono.c **** q31_t if_I[LF_BUFFER_SIZE]; 60:Core/Src/bassofono.c **** q31_t if_Q[LF_BUFFER_SIZE]; 61:Core/Src/bassofono.c **** 62:Core/Src/bassofono.c **** // RX 63:Core/Src/bassofono.c **** uint8_t lf_buffer_toggle; 64:Core/Src/bassofono.c **** q31_t prefilter_lf_buffer[LF_BUFFER_SIZE]; 65:Core/Src/bassofono.c **** q31_t lf_buffer[2][LF_BUFFER_SIZE]; 66:Core/Src/bassofono.c **** 67:Core/Src/bassofono.c **** // TX 68:Core/Src/bassofono.c **** volatile uint8_t half_tx_dac_buffer_empty, tx_dac_buffer_toggle; 69:Core/Src/bassofono.c **** q31_t tx_dac_buffer[2][TX_DAC_BUFFER_SIZE]; 70:Core/Src/bassofono.c **** 71:Core/Src/bassofono.c **** // ============ 72:Core/Src/bassofono.c **** 73:Core/Src/bassofono.c **** int32_t set_nco1_freq(int32_t freq){ 28 .loc 1 73 0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 .LVL0: 33 0000 08B5 push {r3, lr} 34 .LCFI0: 35 .cfi_def_cfa_offset 8 36 .cfi_offset 3, -8 37 .cfi_offset 14, -4 74:Core/Src/bassofono.c **** int64_t tmp_increment; 75:Core/Src/bassofono.c **** if(modulation == MOD_USB) freq += (NCO2_FREQUENCY); 38 .loc 1 75 0 39 0002 094B ldr r3, .L7 40 0004 1B68 ldr r3, [r3] ARM GAS /tmp/ccut0RQx.s page 3 41 0006 022B cmp r3, #2 73:Core/Src/bassofono.c **** int64_t tmp_increment; 42 .loc 1 73 0 43 0008 0146 mov r1, r0 44 .loc 1 75 0 45 000a 09D0 beq .L6 76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 46 .loc 1 76 0 47 000c 012B cmp r3, #1 48 000e 08BF it eq 49 0010 A0F21E71 subweq r1, r0, #1822 50 .LVL1: 51 .L3: 77:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE; 52 .loc 1 77 0 53 0014 054A ldr r2, .L7+4 54 0016 0023 movs r3, #0 55 0018 0020 movs r0, #0 56 001a FFF7FEFF bl __aeabi_ldivmod 57 .LVL2: 78:Core/Src/bassofono.c **** return (int32_t)tmp_increment; 79:Core/Src/bassofono.c **** } 58 .loc 1 79 0 59 001e 08BD pop {r3, pc} 60 .LVL3: 61 .L6: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 62 .loc 1 75 0 discriminator 1 63 0020 00F21E71 addw r1, r0, #1822 64 .LVL4: 65 0024 F6E7 b .L3 66 .L8: 67 0026 00BF .align 2 68 .L7: 69 0028 00000000 .word modulation 70 002c 30570500 .word 350000 71 .cfi_endproc 72 .LFE404: 74 .section .text.ringbuf_increment,"ax",%progbits 75 .align 1 76 .p2align 2,,3 77 .global ringbuf_increment 78 .syntax unified 79 .thumb 80 .thumb_func 81 .fpu fpv4-sp-d16 83 ringbuf_increment: 84 .LFB405: 80:Core/Src/bassofono.c **** 81:Core/Src/bassofono.c **** inline uint16_t ringbuf_increment(uint8_t *index, uint8_t buff_size_mask) { 85 .loc 1 81 0 86 .cfi_startproc 87 @ args = 0, pretend = 0, frame = 0 88 @ frame_needed = 0, uses_anonymous_args = 0 89 @ link register save eliminated. 90 .LVL5: 82:Core/Src/bassofono.c **** (*index)++; ARM GAS /tmp/ccut0RQx.s page 4 91 .loc 1 82 0 92 0000 0378 ldrb r3, [r0] @ zero_extendqisi2 93 0002 0133 adds r3, r3, #1 83:Core/Src/bassofono.c **** *index &= buff_size_mask; 94 .loc 1 83 0 95 0004 1940 ands r1, r1, r3 96 .LVL6: 97 0006 0170 strb r1, [r0] 84:Core/Src/bassofono.c **** return *index; 85:Core/Src/bassofono.c **** } 98 .loc 1 85 0 99 0008 0846 mov r0, r1 100 .LVL7: 101 000a 7047 bx lr 102 .cfi_endproc 103 .LFE405: 105 .section .text.sat_mult_q31,"ax",%progbits 106 .align 1 107 .p2align 2,,3 108 .global sat_mult_q31 109 .syntax unified 110 .thumb 111 .thumb_func 112 .fpu fpv4-sp-d16 114 sat_mult_q31: 115 .LFB406: 86:Core/Src/bassofono.c **** 87:Core/Src/bassofono.c **** q31_t sat_mult_q31(q31_t a, q31_t b){ 116 .loc 1 87 0 117 .cfi_startproc 118 @ args = 0, pretend = 0, frame = 0 119 @ frame_needed = 0, uses_anonymous_args = 0 120 @ link register save eliminated. 121 .LVL8: 88:Core/Src/bassofono.c **** q31_t out; 89:Core/Src/bassofono.c **** out = ((q63_t) a * b) >> 32; 122 .loc 1 89 0 123 0000 80FB0101 smull r0, r1, r0, r1 124 .LVL9: 125 .LBB12: 90:Core/Src/bassofono.c **** out = __SSAT(out, 31); 126 .loc 1 90 0 127 .syntax unified 128 @ 90 "Core/Src/bassofono.c" 1 129 0004 01F31E00 ssat r0, #31, r1 130 @ 0 "" 2 131 .LVL10: 132 .thumb 133 .syntax unified 134 .LBE12: 91:Core/Src/bassofono.c **** return out << 1U; 92:Core/Src/bassofono.c **** } 135 .loc 1 92 0 136 0008 4000 lsls r0, r0, #1 137 .LVL11: 138 000a 7047 bx lr 139 .cfi_endproc ARM GAS /tmp/ccut0RQx.s page 5 140 .LFE406: 142 .section .text.enqueue_cmd,"ax",%progbits 143 .align 1 144 .p2align 2,,3 145 .global enqueue_cmd 146 .syntax unified 147 .thumb 148 .thumb_func 149 .fpu fpv4-sp-d16 151 enqueue_cmd: 152 .LFB407: 93:Core/Src/bassofono.c **** 94:Core/Src/bassofono.c **** // uart 95:Core/Src/bassofono.c **** 96:Core/Src/bassofono.c **** void enqueue_cmd(char in){ 153 .loc 1 96 0 154 .cfi_startproc 155 @ args = 0, pretend = 0, frame = 0 156 @ frame_needed = 0, uses_anonymous_args = 0 157 @ link register save eliminated. 158 .LVL12: 159 0000 10B4 push {r4} 160 .LCFI1: 161 .cfi_def_cfa_offset 4 162 .cfi_offset 4, -4 97:Core/Src/bassofono.c **** rx_cmd_rb[rx_cmd_rb_in_idx] = in; 163 .loc 1 97 0 164 0002 054A ldr r2, .L13 165 0004 054C ldr r4, .L13+4 166 0006 1178 ldrb r1, [r2] @ zero_extendqisi2 167 .LBB13: 168 .LBB14: 82:Core/Src/bassofono.c **** *index &= buff_size_mask; 169 .loc 1 82 0 170 0008 4B1C adds r3, r1, #1 83:Core/Src/bassofono.c **** return *index; 171 .loc 1 83 0 172 000a 03F01F03 and r3, r3, #31 173 000e 1370 strb r3, [r2] 174 .LBE14: 175 .LBE13: 176 .loc 1 97 0 177 0010 6054 strb r0, [r4, r1] 178 .LVL13: 98:Core/Src/bassofono.c **** ringbuf_increment(&rx_cmd_rb_in_idx, RX_CMD_RB_SIZE_MASK); 99:Core/Src/bassofono.c **** } 179 .loc 1 99 0 180 0012 5DF8044B ldr r4, [sp], #4 181 .LCFI2: 182 .cfi_restore 4 183 .cfi_def_cfa_offset 0 184 0016 7047 bx lr 185 .L14: 186 .align 2 187 .L13: 188 0018 00000000 .word rx_cmd_rb_in_idx 189 001c 00000000 .word rx_cmd_rb ARM GAS /tmp/ccut0RQx.s page 6 190 .cfi_endproc 191 .LFE407: 193 .section .text.dequeue_cmd,"ax",%progbits 194 .align 1 195 .p2align 2,,3 196 .global dequeue_cmd 197 .syntax unified 198 .thumb 199 .thumb_func 200 .fpu fpv4-sp-d16 202 dequeue_cmd: 203 .LFB408: 100:Core/Src/bassofono.c **** 101:Core/Src/bassofono.c **** void dequeue_cmd(void){ 204 .loc 1 101 0 205 .cfi_startproc 206 @ args = 0, pretend = 0, frame = 0 207 @ frame_needed = 0, uses_anonymous_args = 0 208 0000 10B5 push {r4, lr} 209 .LCFI3: 210 .cfi_def_cfa_offset 8 211 .cfi_offset 4, -8 212 .cfi_offset 14, -4 102:Core/Src/bassofono.c **** decode_cmd(rx_cmd_rb[rx_cmd_rb_out_idx]); 213 .loc 1 102 0 214 0002 064C ldr r4, .L17 215 0004 064A ldr r2, .L17+4 216 0006 2378 ldrb r3, [r4] @ zero_extendqisi2 217 0008 D05C ldrb r0, [r2, r3] @ zero_extendqisi2 218 000a FFF7FEFF bl decode_cmd 219 .LVL14: 220 .LBB15: 221 .LBB16: 82:Core/Src/bassofono.c **** *index &= buff_size_mask; 222 .loc 1 82 0 223 000e 2378 ldrb r3, [r4] @ zero_extendqisi2 224 0010 0133 adds r3, r3, #1 83:Core/Src/bassofono.c **** return *index; 225 .loc 1 83 0 226 0012 03F01F03 and r3, r3, #31 227 0016 2370 strb r3, [r4] 228 .LVL15: 229 .LBE16: 230 .LBE15: 103:Core/Src/bassofono.c **** ringbuf_increment(&rx_cmd_rb_out_idx, RX_CMD_RB_SIZE_MASK); 104:Core/Src/bassofono.c **** } 231 .loc 1 104 0 232 0018 10BD pop {r4, pc} 233 .L18: 234 001a 00BF .align 2 235 .L17: 236 001c 00000000 .word rx_cmd_rb_out_idx 237 0020 00000000 .word rx_cmd_rb 238 .cfi_endproc 239 .LFE408: 241 .section .text.enqueue_tx,"ax",%progbits 242 .align 1 ARM GAS /tmp/ccut0RQx.s page 7 243 .p2align 2,,3 244 .global enqueue_tx 245 .syntax unified 246 .thumb 247 .thumb_func 248 .fpu fpv4-sp-d16 250 enqueue_tx: 251 .LFB409: 105:Core/Src/bassofono.c **** 106:Core/Src/bassofono.c **** void enqueue_tx(char * data, uint16_t len){ 252 .loc 1 106 0 253 .cfi_startproc 254 @ args = 0, pretend = 0, frame = 0 255 @ frame_needed = 0, uses_anonymous_args = 0 256 @ link register save eliminated. 257 .LVL16: 258 .LBB17: 107:Core/Src/bassofono.c **** for( uint8_t index = 0; index < len; index++){ 259 .loc 1 107 0 260 0000 E1B1 cbz r1, .L32 261 .LBE17: 106:Core/Src/bassofono.c **** for( uint8_t index = 0; index < len; index++){ 262 .loc 1 106 0 263 0002 F0B4 push {r4, r5, r6, r7} 264 .LCFI4: 265 .cfi_def_cfa_offset 16 266 .cfi_offset 4, -16 267 .cfi_offset 5, -12 268 .cfi_offset 6, -8 269 .cfi_offset 7, -4 270 .LBB18: 108:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index]; 271 .loc 1 108 0 272 0004 0E4E ldr r6, .L35 273 0006 0F4F ldr r7, .L35+4 274 0008 3288 ldrh r2, [r6] 275 000a 0378 ldrb r3, [r0] @ zero_extendqisi2 276 000c BB54 strb r3, [r7, r2] 109:Core/Src/bassofono.c **** uart_tx_buf_in_idx++; 277 .loc 1 109 0 278 000e 0132 adds r2, r2, #1 279 0010 92B2 uxth r2, r2 110:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break; 280 .loc 1 110 0 281 0012 B2F5007F cmp r2, #512 109:Core/Src/bassofono.c **** uart_tx_buf_in_idx++; 282 .loc 1 109 0 283 0016 3280 strh r2, [r6] @ movhi 284 .loc 1 110 0 285 0018 0ED0 beq .L19 107:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index]; 286 .loc 1 107 0 287 001a 0023 movs r3, #0 288 001c 06E0 b .L22 289 .LVL17: 290 .L23: 108:Core/Src/bassofono.c **** uart_tx_buf_in_idx++; ARM GAS /tmp/ccut0RQx.s page 8 291 .loc 1 108 0 292 001e C55C ldrb r5, [r0, r3] @ zero_extendqisi2 293 0020 BD54 strb r5, [r7, r2] 109:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break; 294 .loc 1 109 0 295 0022 A2B2 uxth r2, r4 296 .loc 1 110 0 297 0024 B2F5007F cmp r2, #512 109:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break; 298 .loc 1 109 0 299 0028 3280 strh r2, [r6] @ movhi 300 .loc 1 110 0 301 002a 05D0 beq .L19 302 .LVL18: 303 .L22: 107:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index]; 304 .loc 1 107 0 discriminator 2 305 002c 0133 adds r3, r3, #1 306 .LVL19: 307 002e DBB2 uxtb r3, r3 308 .LVL20: 309 0030 8B42 cmp r3, r1 109:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break; 310 .loc 1 109 0 discriminator 2 311 0032 02F10104 add r4, r2, #1 107:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index]; 312 .loc 1 107 0 discriminator 2 313 0036 F2D3 bcc .L23 314 .LVL21: 315 .L19: 316 .LBE18: 111:Core/Src/bassofono.c **** } 112:Core/Src/bassofono.c **** } 317 .loc 1 112 0 318 0038 F0BC pop {r4, r5, r6, r7} 319 .LCFI5: 320 .cfi_restore 7 321 .cfi_restore 6 322 .cfi_restore 5 323 .cfi_restore 4 324 .cfi_def_cfa_offset 0 325 003a 7047 bx lr 326 .LVL22: 327 .L32: 328 003c 7047 bx lr 329 .L36: 330 003e 00BF .align 2 331 .L35: 332 0040 00000000 .word uart_tx_buf_in_idx 333 0044 00000000 .word uart_tx_buf 334 .cfi_endproc 335 .LFE409: 337 .section .text.set_frequency,"ax",%progbits 338 .align 1 339 .p2align 2,,3 340 .global set_frequency 341 .syntax unified ARM GAS /tmp/ccut0RQx.s page 9 342 .thumb 343 .thumb_func 344 .fpu fpv4-sp-d16 346 set_frequency: 347 .LFB410: 113:Core/Src/bassofono.c **** 114:Core/Src/bassofono.c **** // state changes 115:Core/Src/bassofono.c **** void set_frequency(void){ 348 .loc 1 115 0 349 .cfi_startproc 350 @ args = 0, pretend = 0, frame = 0 351 @ frame_needed = 0, uses_anonymous_args = 0 352 0000 08B5 push {r3, lr} 353 .LCFI6: 354 .cfi_def_cfa_offset 8 355 .cfi_offset 3, -8 356 .cfi_offset 14, -4 357 .LBB19: 358 .LBB20: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 359 .loc 1 75 0 360 0002 0A4B ldr r3, .L43 361 .LBE20: 362 .LBE19: 116:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency); 363 .loc 1 116 0 364 0004 0A4A ldr r2, .L43+4 365 .LBB25: 366 .LBB21: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 367 .loc 1 75 0 368 0006 1B68 ldr r3, [r3] 369 .LBE21: 370 .LBE25: 371 .loc 1 116 0 372 0008 1168 ldr r1, [r2] 373 .LVL23: 374 .LBB26: 375 .LBB22: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 376 .loc 1 75 0 377 000a 022B cmp r3, #2 378 000c 0BD0 beq .L42 76:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE; 379 .loc 1 76 0 380 000e 012B cmp r3, #1 381 0010 08BF it eq 382 0012 A1F21E71 subweq r1, r1, #1822 383 .LVL24: 384 .L39: 77:Core/Src/bassofono.c **** return (int32_t)tmp_increment; 385 .loc 1 77 0 386 0016 0023 movs r3, #0 387 0018 064A ldr r2, .L43+8 388 001a 0020 movs r0, #0 389 001c FFF7FEFF bl __aeabi_ldivmod 390 .LVL25: ARM GAS /tmp/ccut0RQx.s page 10 391 .LBE22: 392 .LBE26: 393 .loc 1 116 0 394 0020 054B ldr r3, .L43+12 395 .LBB27: 396 .LBB23: 78:Core/Src/bassofono.c **** } 397 .loc 1 78 0 398 0022 1860 str r0, [r3] 399 .LBE23: 400 .LBE27: 117:Core/Src/bassofono.c **** } 401 .loc 1 117 0 402 0024 08BD pop {r3, pc} 403 .LVL26: 404 .L42: 405 .LBB28: 406 .LBB24: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 407 .loc 1 75 0 408 0026 01F21E71 addw r1, r1, #1822 409 .LVL27: 410 002a F4E7 b .L39 411 .L44: 412 .align 2 413 .L43: 414 002c 00000000 .word modulation 415 0030 00000000 .word frequency 416 0034 30570500 .word 350000 417 0038 00000000 .word nco1_increment 418 .LBE24: 419 .LBE28: 420 .cfi_endproc 421 .LFE410: 423 .section .text.set_filter,"ax",%progbits 424 .align 1 425 .p2align 2,,3 426 .global set_filter 427 .syntax unified 428 .thumb 429 .thumb_func 430 .fpu fpv4-sp-d16 432 set_filter: 433 .LFB411: 118:Core/Src/bassofono.c **** 119:Core/Src/bassofono.c **** void set_filter(void){ 434 .loc 1 119 0 435 .cfi_startproc 436 @ args = 0, pretend = 0, frame = 0 437 @ frame_needed = 0, uses_anonymous_args = 0 438 @ link register save eliminated. 120:Core/Src/bassofono.c **** audio_filter_generate_coeffs(audio_filter_coeffs, audio_filter_freq, audio_filter_bw, audio 439 .loc 1 120 0 440 0000 044B ldr r3, .L46 441 0002 054A ldr r2, .L46+4 442 0004 0549 ldr r1, .L46+8 443 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2 ARM GAS /tmp/ccut0RQx.s page 11 444 0008 1268 ldr r2, [r2] 445 000a 0968 ldr r1, [r1] 446 000c 0448 ldr r0, .L46+12 447 000e FFF7FEBF b audio_filter_generate_coeffs 448 .LVL28: 449 .L47: 450 0012 00BF .align 2 451 .L46: 452 0014 00000000 .word audio_filter_beta 453 0018 00000000 .word audio_filter_bw 454 001c 00000000 .word audio_filter_freq 455 0020 00000000 .word audio_filter_coeffs 456 .cfi_endproc 457 .LFE411: 459 .section .text.set_modulation,"ax",%progbits 460 .align 1 461 .p2align 2,,3 462 .global set_modulation 463 .syntax unified 464 .thumb 465 .thumb_func 466 .fpu fpv4-sp-d16 468 set_modulation: 469 .LFB412: 121:Core/Src/bassofono.c **** } 122:Core/Src/bassofono.c **** 123:Core/Src/bassofono.c **** void set_modulation(void){ 470 .loc 1 123 0 471 .cfi_startproc 472 @ args = 0, pretend = 0, frame = 0 473 @ frame_needed = 0, uses_anonymous_args = 0 474 0000 08B5 push {r3, lr} 475 .LCFI7: 476 .cfi_def_cfa_offset 8 477 .cfi_offset 3, -8 478 .cfi_offset 14, -4 124:Core/Src/bassofono.c **** st2_filter_init(); 479 .loc 1 124 0 480 0002 FFF7FEFF bl st2_filter_init 481 .LVL29: 482 .LBB29: 483 .LBB30: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 484 .loc 1 75 0 485 0006 0A4B ldr r3, .L54 486 .LBE30: 487 .LBE29: 125:Core/Src/bassofono.c **** // cambia offset 126:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency); 488 .loc 1 126 0 489 0008 0A4A ldr r2, .L54+4 490 .LBB35: 491 .LBB31: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 492 .loc 1 75 0 493 000a 1B68 ldr r3, [r3] 494 .LBE31: ARM GAS /tmp/ccut0RQx.s page 12 495 .LBE35: 496 .loc 1 126 0 497 000c 1168 ldr r1, [r2] 498 .LVL30: 499 .LBB36: 500 .LBB32: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 501 .loc 1 75 0 502 000e 022B cmp r3, #2 503 0010 0BD0 beq .L53 76:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE; 504 .loc 1 76 0 505 0012 012B cmp r3, #1 506 0014 08BF it eq 507 0016 A1F21E71 subweq r1, r1, #1822 508 .LVL31: 509 .L50: 77:Core/Src/bassofono.c **** return (int32_t)tmp_increment; 510 .loc 1 77 0 511 001a 0023 movs r3, #0 512 001c 064A ldr r2, .L54+8 513 001e 0020 movs r0, #0 514 0020 FFF7FEFF bl __aeabi_ldivmod 515 .LVL32: 516 .LBE32: 517 .LBE36: 518 .loc 1 126 0 519 0024 054B ldr r3, .L54+12 520 .LBB37: 521 .LBB33: 78:Core/Src/bassofono.c **** } 522 .loc 1 78 0 523 0026 1860 str r0, [r3] 524 .LBE33: 525 .LBE37: 127:Core/Src/bassofono.c **** } 526 .loc 1 127 0 527 0028 08BD pop {r3, pc} 528 .LVL33: 529 .L53: 530 .LBB38: 531 .LBB34: 75:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY); 532 .loc 1 75 0 533 002a 01F21E71 addw r1, r1, #1822 534 .LVL34: 535 002e F4E7 b .L50 536 .L55: 537 .align 2 538 .L54: 539 0030 00000000 .word modulation 540 0034 00000000 .word frequency 541 0038 30570500 .word 350000 542 003c 00000000 .word nco1_increment 543 .LBE34: 544 .LBE38: 545 .cfi_endproc ARM GAS /tmp/ccut0RQx.s page 13 546 .LFE412: 548 .section .text.set_dummy,"ax",%progbits 549 .align 1 550 .p2align 2,,3 551 .global set_dummy 552 .syntax unified 553 .thumb 554 .thumb_func 555 .fpu fpv4-sp-d16 557 set_dummy: 558 .LFB413: 128:Core/Src/bassofono.c **** 129:Core/Src/bassofono.c **** void set_dummy(void){ 559 .loc 1 129 0 560 .cfi_startproc 561 @ args = 0, pretend = 0, frame = 0 562 @ frame_needed = 0, uses_anonymous_args = 0 563 @ link register save eliminated. 130:Core/Src/bassofono.c **** // non fare NULLAH 131:Core/Src/bassofono.c **** } 564 .loc 1 131 0 565 0000 7047 bx lr 566 .cfi_endproc 567 .LFE413: 569 0002 00BF .section .text.set_changed,"ax",%progbits 570 .align 1 571 .p2align 2,,3 572 .global set_changed 573 .syntax unified 574 .thumb 575 .thumb_func 576 .fpu fpv4-sp-d16 578 set_changed: 579 .LFB414: 132:Core/Src/bassofono.c **** 133:Core/Src/bassofono.c **** 134:Core/Src/bassofono.c **** void set_changed(uint8_t state){ 580 .loc 1 134 0 581 .cfi_startproc 582 @ args = 0, pretend = 0, frame = 0 583 @ frame_needed = 0, uses_anonymous_args = 0 584 @ link register save eliminated. 585 .LVL35: 135:Core/Src/bassofono.c **** state_changed |= (1U<> state) & 1U; 654 .loc 1 143 0 655 0000 034B ldr r3, .L64 656 0002 1B88 ldrh r3, [r3] 657 0004 43FA00F0 asr r0, r3, r0 658 .LVL40: 144:Core/Src/bassofono.c **** } 659 .loc 1 144 0 660 0008 00F00100 and r0, r0, #1 661 000c 7047 bx lr 662 .L65: 663 000e 00BF .align 2 664 .L64: 665 0010 00000000 .word state_changed 666 .cfi_endproc 667 .LFE416: 669 .section .text.state_set_default,"ax",%progbits 670 .align 1 671 .p2align 2,,3 672 .global state_set_default 673 .syntax unified 674 .thumb 675 .thumb_func 676 .fpu fpv4-sp-d16 678 state_set_default: 679 .LFB417: 145:Core/Src/bassofono.c **** 146:Core/Src/bassofono.c **** void state_set_default(void){ 680 .loc 1 146 0 681 .cfi_startproc 682 @ args = 0, pretend = 0, frame = 0 683 @ frame_needed = 0, uses_anonymous_args = 0 684 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 685 .LCFI8: 686 .cfi_def_cfa_offset 24 687 .cfi_offset 3, -24 688 .cfi_offset 4, -20 689 .cfi_offset 5, -16 690 .cfi_offset 6, -12 691 .cfi_offset 7, -8 692 .cfi_offset 14, -4 147:Core/Src/bassofono.c **** modulation = MOD_USB; 693 .loc 1 147 0 694 0002 114E ldr r6, .L68 148:Core/Src/bassofono.c **** frequency = 129000; 695 .loc 1 148 0 696 0004 114D ldr r5, .L68+4 149:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency); 697 .loc 1 149 0 698 0006 124B ldr r3, .L68+8 150:Core/Src/bassofono.c **** gain = 4; 699 .loc 1 150 0 700 0008 124A ldr r2, .L68+12 151:Core/Src/bassofono.c **** volume = 16; 701 .loc 1 151 0 702 000a 134C ldr r4, .L68+16 ARM GAS /tmp/ccut0RQx.s page 16 152:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF; 153:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF; 154:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF; 703 .loc 1 154 0 704 000c 1349 ldr r1, .L68+20 152:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF; 705 .loc 1 152 0 706 000e 1448 ldr r0, .L68+24 147:Core/Src/bassofono.c **** frequency = 129000; 707 .loc 1 147 0 708 0010 0227 movs r7, #2 709 0012 3760 str r7, [r6] 148:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency); 710 .loc 1 148 0 711 0014 134E ldr r6, .L68+28 712 0016 2E60 str r6, [r5] 149:Core/Src/bassofono.c **** gain = 4; 713 .loc 1 149 0 714 0018 134D ldr r5, .L68+32 715 001a 1D60 str r5, [r3] 151:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF; 716 .loc 1 151 0 717 001c 1023 movs r3, #16 150:Core/Src/bassofono.c **** volume = 16; 718 .loc 1 150 0 719 001e 0425 movs r5, #4 720 0020 1560 str r5, [r2] 151:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF; 721 .loc 1 151 0 722 0022 2360 str r3, [r4] 152:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF; 723 .loc 1 152 0 724 0024 40F24652 movw r2, #1350 153:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF; 725 .loc 1 153 0 726 0028 4FF4FA64 mov r4, #2000 727 002c 0F4D ldr r5, .L68+36 728 .loc 1 154 0 729 002e 0B60 str r3, [r1] 152:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF; 730 .loc 1 152 0 731 0030 0260 str r2, [r0] 155:Core/Src/bassofono.c **** audio_filter_generate_coeffs(audio_filter_coeffs, audio_filter_freq, audio_filter_bw, audio 732 .loc 1 155 0 733 0032 1146 mov r1, r2 734 0034 0E48 ldr r0, .L68+40 153:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF; 735 .loc 1 153 0 736 0036 2C60 str r4, [r5] 737 .loc 1 155 0 738 0038 2246 mov r2, r4 739 003a FFF7FEFF bl audio_filter_generate_coeffs 740 .LVL41: 156:Core/Src/bassofono.c **** state_changed = 0xFFFF; 741 .loc 1 156 0 742 003e 0D4B ldr r3, .L68+44 743 0040 4FF6FF72 movw r2, #65535 ARM GAS /tmp/ccut0RQx.s page 17 744 0044 1A80 strh r2, [r3] @ movhi 157:Core/Src/bassofono.c **** } 745 .loc 1 157 0 746 0046 F8BD pop {r3, r4, r5, r6, r7, pc} 747 .L69: 748 .align 2 749 .L68: 750 0048 00000000 .word modulation 751 004c 00000000 .word frequency 752 0050 00000000 .word nco1_increment 753 0054 00000000 .word gain 754 0058 00000000 .word volume 755 005c 00000000 .word audio_filter_beta 756 0060 00000000 .word audio_filter_freq 757 0064 E8F70100 .word 129000 758 0068 DCDBAF5F .word 1605360604 759 006c 00000000 .word audio_filter_bw 760 0070 00000000 .word audio_filter_coeffs 761 0074 00000000 .word state_changed 762 .cfi_endproc 763 .LFE417: 765 .section .text.diag,"ax",%progbits 766 .align 1 767 .p2align 2,,3 768 .global diag 769 .syntax unified 770 .thumb 771 .thumb_func 772 .fpu fpv4-sp-d16 774 diag: 775 .LFB418: 158:Core/Src/bassofono.c **** 159:Core/Src/bassofono.c **** // diag 160:Core/Src/bassofono.c **** 161:Core/Src/bassofono.c **** void diag(void){ 776 .loc 1 161 0 777 .cfi_startproc 778 @ args = 0, pretend = 0, frame = 0 779 @ frame_needed = 0, uses_anonymous_args = 0 780 0000 70B5 push {r4, r5, r6, lr} 781 .LCFI9: 782 .cfi_def_cfa_offset 16 783 .cfi_offset 4, -16 784 .cfi_offset 5, -12 785 .cfi_offset 6, -8 786 .cfi_offset 14, -4 162:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC sample rate: %d\nADC oversampling: %d\n", ADC_SAMPL 787 .loc 1 162 0 788 0002 304D ldr r5, .L72 789 0004 304C ldr r4, .L72+4 790 0006 314A ldr r2, .L72+8 791 0008 3149 ldr r1, .L72+12 792 000a 2846 mov r0, r5 793 000c 0223 movs r3, #2 794 000e FFF7FEFF bl sprintf 795 .LVL42: 796 0012 2688 ldrh r6, [r4] ARM GAS /tmp/ccut0RQx.s page 18 163:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC buffer size: %d\n1st decimation factor: %d\n", ADC_ 797 .loc 1 163 0 798 0014 2F49 ldr r1, .L72+16 162:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC sample rate: %d\nADC oversampling: %d\n", ADC_SAMPL 799 .loc 1 162 0 800 0016 2C36 adds r6, r6, #44 801 .loc 1 163 0 802 0018 2846 mov r0, r5 803 001a 0423 movs r3, #4 804 001c 4FF48062 mov r2, #1024 162:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC sample rate: %d\nADC oversampling: %d\n", ADC_SAMPL 805 .loc 1 162 0 806 0020 2680 strh r6, [r4] @ movhi 807 .loc 1 163 0 808 0022 FFF7FEFF bl sprintf 809 .LVL43: 810 0026 2388 ldrh r3, [r4] 164:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"1st out sample rate: %d\n", ST1_OUT_SAMPLE_RATE); 811 .loc 1 164 0 812 0028 2B4A ldr r2, .L72+20 813 002a 2C49 ldr r1, .L72+24 163:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC buffer size: %d\n1st decimation factor: %d\n", ADC_ 814 .loc 1 163 0 815 002c 2F33 adds r3, r3, #47 816 .loc 1 164 0 817 002e 2846 mov r0, r5 163:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"ADC buffer size: %d\n1st decimation factor: %d\n", ADC_ 818 .loc 1 163 0 819 0030 2380 strh r3, [r4] @ movhi 820 .loc 1 164 0 821 0032 FFF7FEFF bl sprintf 822 .LVL44: 823 0036 2688 ldrh r6, [r4] 165:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st buffer size: %d\n2st decimation factor: %d\n", ST2_ 824 .loc 1 165 0 825 0038 2949 ldr r1, .L72+28 164:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"1st out sample rate: %d\n", ST1_OUT_SAMPLE_RATE); 826 .loc 1 164 0 827 003a 1B36 adds r6, r6, #27 828 .loc 1 165 0 829 003c 2846 mov r0, r5 830 003e 0823 movs r3, #8 831 0040 4FF48072 mov r2, #256 164:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"1st out sample rate: %d\n", ST1_OUT_SAMPLE_RATE); 832 .loc 1 164 0 833 0044 2680 strh r6, [r4] @ movhi 834 .loc 1 165 0 835 0046 FFF7FEFF bl sprintf 836 .LVL45: 837 004a 2388 ldrh r3, [r4] 166:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st out sample rate: %d\n", ST2_OUT_SAMPLE_RATE); 838 .loc 1 166 0 839 004c 2549 ldr r1, .L72+32 165:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st buffer size: %d\n2st decimation factor: %d\n", ST2_ 840 .loc 1 165 0 841 004e 2E33 adds r3, r3, #46 842 .loc 1 166 0 ARM GAS /tmp/ccut0RQx.s page 19 843 0050 2846 mov r0, r5 844 0052 45F27352 movw r2, #21875 165:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st buffer size: %d\n2st decimation factor: %d\n", ST2_ 845 .loc 1 165 0 846 0056 2380 strh r3, [r4] @ movhi 847 .loc 1 166 0 848 0058 FFF7FEFF bl sprintf 849 .LVL46: 850 005c 2388 ldrh r3, [r4] 167:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain); 851 .loc 1 167 0 852 005e 224A ldr r2, .L72+36 853 0060 2249 ldr r1, .L72+40 854 0062 1268 ldr r2, [r2] 166:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st out sample rate: %d\n", ST2_OUT_SAMPLE_RATE); 855 .loc 1 166 0 856 0064 1B33 adds r3, r3, #27 857 .loc 1 167 0 858 0066 2846 mov r0, r5 166:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"2st out sample rate: %d\n", ST2_OUT_SAMPLE_RATE); 859 .loc 1 166 0 860 0068 2380 strh r3, [r4] @ movhi 861 .loc 1 167 0 862 006a FFF7FEFF bl sprintf 863 .LVL47: 864 006e 2388 ldrh r3, [r4] 168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume); 865 .loc 1 168 0 866 0070 1F4A ldr r2, .L72+44 867 0072 2049 ldr r1, .L72+48 868 0074 1268 ldr r2, [r2] 167:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain); 869 .loc 1 167 0 870 0076 0344 add r3, r3, r0 871 .loc 1 168 0 872 0078 2846 mov r0, r5 167:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain); 873 .loc 1 167 0 874 007a 2380 strh r3, [r4] @ movhi 875 .loc 1 168 0 876 007c FFF7FEFF bl sprintf 877 .LVL48: 878 0080 2388 ldrh r3, [r4] 169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment); 879 .loc 1 169 0 880 0082 1D4A ldr r2, .L72+52 881 0084 1D49 ldr r1, .L72+56 882 0086 1268 ldr r2, [r2] 168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume); 883 .loc 1 168 0 884 0088 0344 add r3, r3, r0 885 .loc 1 169 0 886 008a 2846 mov r0, r5 168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume); 887 .loc 1 168 0 888 008c 2380 strh r3, [r4] @ movhi 889 .loc 1 169 0 ARM GAS /tmp/ccut0RQx.s page 20 890 008e FFF7FEFF bl sprintf 891 .LVL49: 892 0092 2388 ldrh r3, [r4] 170:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco2 inc %d\n", NCO2_INCREMENT); 893 .loc 1 170 0 894 0094 1A4A ldr r2, .L72+60 895 0096 1B49 ldr r1, .L72+64 169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment); 896 .loc 1 169 0 897 0098 0344 add r3, r3, r0 898 .loc 1 170 0 899 009a 2846 mov r0, r5 169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment); 900 .loc 1 169 0 901 009c 2380 strh r3, [r4] @ movhi 902 .loc 1 170 0 903 009e FFF7FEFF bl sprintf 904 .LVL50: 905 00a2 2688 ldrh r6, [r4] 171:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"audio filter f %d bw %d\n", audio_filter_freq, audio_fi 906 .loc 1 171 0 907 00a4 184B ldr r3, .L72+68 908 00a6 194A ldr r2, .L72+72 909 00a8 1B68 ldr r3, [r3] 910 00aa 1268 ldr r2, [r2] 911 00ac 1849 ldr r1, .L72+76 912 00ae 2846 mov r0, r5 170:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco2 inc %d\n", NCO2_INCREMENT); 913 .loc 1 170 0 914 00b0 06F11305 add r5, r6, #19 915 00b4 2580 strh r5, [r4] @ movhi 916 .loc 1 171 0 917 00b6 FFF7FEFF bl sprintf 918 .LVL51: 919 00ba 2388 ldrh r3, [r4] 920 00bc 1844 add r0, r0, r3 921 00be 2080 strh r0, [r4] @ movhi 172:Core/Src/bassofono.c **** } 922 .loc 1 172 0 923 00c0 70BD pop {r4, r5, r6, pc} 924 .L73: 925 00c2 00BF .align 2 926 .L72: 927 00c4 00000000 .word uart_tx_buf 928 00c8 00000000 .word uart_tx_buf_in_idx 929 00cc 30570500 .word 350000 930 00d0 00000000 .word .LC0 931 00d4 2C000000 .word .LC1 932 00d8 CC550100 .word 87500 933 00dc 5C000000 .word .LC2 934 00e0 78000000 .word .LC3 935 00e4 A8000000 .word .LC4 936 00e8 00000000 .word gain 937 00ec C4000000 .word .LC5 938 00f0 00000000 .word volume 939 00f4 D0000000 .word .LC6 940 00f8 00000000 .word nco1_increment ARM GAS /tmp/ccut0RQx.s page 21 941 00fc DC000000 .word .LC7 942 0100 47E17A14 .word 343597383 943 0104 EC000000 .word .LC8 944 0108 00000000 .word audio_filter_bw 945 010c 00000000 .word audio_filter_freq 946 0110 FC000000 .word .LC9 947 .cfi_endproc 948 .LFE418: 950 .comm tx_dac_buffer,8192,4 951 .comm tx_dac_buffer_toggle,1,1 952 .comm half_tx_dac_buffer_empty,1,1 953 .comm lf_buffer,512,4 954 .comm prefilter_lf_buffer,256,4 955 .comm lf_buffer_toggle,1,1 956 .comm if_Q,256,4 957 .comm if_I,256,4 958 .comm adc_buffer,2048,4 959 .comm uart_tx_buf_in_idx,2,2 960 .comm uart_tx_buf,512,4 961 .comm rx_cmd_rb_out_idx,1,1 962 .comm rx_cmd_rb_in_idx,1,1 963 .comm rx_cmd_rb,32,4 964 .comm uart_rx_buf,2,4 965 .comm state_changed,2,2 966 .comm audio_filter_beta,4,4 967 .comm audio_filter_bw,4,4 968 .comm audio_filter_freq,4,4 969 .comm nco1_increment,4,4 970 .comm scan,4,4 971 .comm mic_gain,4,4 972 .comm squelch,4,4 973 .comm volume,4,4 974 .comm gain,4,4 975 .comm modulation,4,4 976 .comm frequency,4,4 977 .comm transmit,1,1 978 .comm receive,1,1 979 .section .rodata.diag.str1.4,"aMS",%progbits,1 980 .align 2 981 .LC0: 982 0000 41444320 .ascii "ADC sample rate: %d\012ADC oversampling: %d\012\000" 982 73616D70 982 6C652072 982 6174653A 982 2025640A 983 002a 0000 .space 2 984 .LC1: 985 002c 41444320 .ascii "ADC buffer size: %d\0121st decimation factor: %d\012" 985 62756666 985 65722073 985 697A653A 985 2025640A 986 005a 00 .ascii "\000" 987 005b 00 .space 1 988 .LC2: 989 005c 31737420 .ascii "1st out sample rate: %d\012\000" 989 6F757420 ARM GAS /tmp/ccut0RQx.s page 22 989 73616D70 989 6C652072 989 6174653A 990 0075 000000 .space 3 991 .LC3: 992 0078 32737420 .ascii "2st buffer size: %d\0122st decimation factor: %d\012" 992 62756666 992 65722073 992 697A653A 992 2025640A 993 00a6 00 .ascii "\000" 994 00a7 00 .space 1 995 .LC4: 996 00a8 32737420 .ascii "2st out sample rate: %d\012\000" 996 6F757420 996 73616D70 996 6C652072 996 6174653A 997 00c1 000000 .space 3 998 .LC5: 999 00c4 696E2067 .ascii "in gain %d\012\000" 999 61696E20 999 25640A00 1000 .LC6: 1001 00d0 61662067 .ascii "af gain %d\012\000" 1001 61696E20 1001 25640A00 1002 .LC7: 1003 00dc 6E636F31 .ascii "nco1 inc %d\012\000" 1003 20696E63 1003 2025640A 1003 00 1004 00e9 000000 .space 3 1005 .LC8: 1006 00ec 6E636F32 .ascii "nco2 inc %d\012\000" 1006 20696E63 1006 2025640A 1006 00 1007 00f9 000000 .space 3 1008 .LC9: 1009 00fc 61756469 .ascii "audio filter f %d bw %d\012\000" 1009 6F206669 1009 6C746572 1009 20662025 1009 64206277 1010 .text 1011 .Letext0: 1012 .file 2 "/usr/include/newlib/machine/_default_types.h" 1013 .file 3 "/usr/include/newlib/sys/_stdint.h" 1014 .file 4 "/usr/include/newlib/sys/lock.h" 1015 .file 5 "/usr/include/newlib/sys/_types.h" 1016 .file 6 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h" 1017 .file 7 "/usr/include/newlib/sys/reent.h" 1018 .file 8 "/usr/include/newlib/math.h" 1019 .file 9 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h" 1020 .file 10 "Drivers/CMSIS/Include/core_cm4.h" 1021 .file 11 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" ARM GAS /tmp/ccut0RQx.s page 23 1022 .file 12 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 1023 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 1024 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 1025 .file 15 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cordic.h" 1026 .file 16 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" 1027 .file 17 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" 1028 .file 18 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" 1029 .file 19 "Core/Inc/rx.h" 1030 .file 20 "Core/Inc/tx.h" 1031 .file 21 "Core/Inc/bassofono.h" 1032 .file 22 "Core/Inc/interface.h" 1033 .file 23 "/usr/include/newlib/stdio.h" ARM GAS /tmp/ccut0RQx.s page 24 DEFINED SYMBOLS *ABS*:0000000000000000 bassofono.c /tmp/ccut0RQx.s:17 .text.set_nco1_freq:0000000000000000 $t /tmp/ccut0RQx.s:25 .text.set_nco1_freq:0000000000000000 set_nco1_freq /tmp/ccut0RQx.s:69 .text.set_nco1_freq:0000000000000028 $d *COM*:0000000000000004 modulation /tmp/ccut0RQx.s:75 .text.ringbuf_increment:0000000000000000 $t /tmp/ccut0RQx.s:83 .text.ringbuf_increment:0000000000000000 ringbuf_increment /tmp/ccut0RQx.s:106 .text.sat_mult_q31:0000000000000000 $t /tmp/ccut0RQx.s:114 .text.sat_mult_q31:0000000000000000 sat_mult_q31 /tmp/ccut0RQx.s:143 .text.enqueue_cmd:0000000000000000 $t /tmp/ccut0RQx.s:151 .text.enqueue_cmd:0000000000000000 enqueue_cmd /tmp/ccut0RQx.s:188 .text.enqueue_cmd:0000000000000018 $d *COM*:0000000000000001 rx_cmd_rb_in_idx *COM*:0000000000000020 rx_cmd_rb /tmp/ccut0RQx.s:194 .text.dequeue_cmd:0000000000000000 $t /tmp/ccut0RQx.s:202 .text.dequeue_cmd:0000000000000000 dequeue_cmd /tmp/ccut0RQx.s:236 .text.dequeue_cmd:000000000000001c $d *COM*:0000000000000001 rx_cmd_rb_out_idx /tmp/ccut0RQx.s:242 .text.enqueue_tx:0000000000000000 $t /tmp/ccut0RQx.s:250 .text.enqueue_tx:0000000000000000 enqueue_tx /tmp/ccut0RQx.s:332 .text.enqueue_tx:0000000000000040 $d *COM*:0000000000000002 uart_tx_buf_in_idx *COM*:0000000000000200 uart_tx_buf /tmp/ccut0RQx.s:338 .text.set_frequency:0000000000000000 $t /tmp/ccut0RQx.s:346 .text.set_frequency:0000000000000000 set_frequency /tmp/ccut0RQx.s:414 .text.set_frequency:000000000000002c $d *COM*:0000000000000004 frequency *COM*:0000000000000004 nco1_increment /tmp/ccut0RQx.s:424 .text.set_filter:0000000000000000 $t /tmp/ccut0RQx.s:432 .text.set_filter:0000000000000000 set_filter /tmp/ccut0RQx.s:452 .text.set_filter:0000000000000014 $d *COM*:0000000000000004 audio_filter_beta *COM*:0000000000000004 audio_filter_bw *COM*:0000000000000004 audio_filter_freq /tmp/ccut0RQx.s:460 .text.set_modulation:0000000000000000 $t /tmp/ccut0RQx.s:468 .text.set_modulation:0000000000000000 set_modulation /tmp/ccut0RQx.s:539 .text.set_modulation:0000000000000030 $d /tmp/ccut0RQx.s:549 .text.set_dummy:0000000000000000 $t /tmp/ccut0RQx.s:557 .text.set_dummy:0000000000000000 set_dummy /tmp/ccut0RQx.s:570 .text.set_changed:0000000000000000 $t /tmp/ccut0RQx.s:578 .text.set_changed:0000000000000000 set_changed /tmp/ccut0RQx.s:599 .text.set_changed:0000000000000010 $d *COM*:0000000000000002 state_changed /tmp/ccut0RQx.s:604 .text.reset_changed:0000000000000000 $t /tmp/ccut0RQx.s:612 .text.reset_changed:0000000000000000 reset_changed /tmp/ccut0RQx.s:633 .text.reset_changed:0000000000000014 $d /tmp/ccut0RQx.s:638 .text.get_changed:0000000000000000 $t /tmp/ccut0RQx.s:646 .text.get_changed:0000000000000000 get_changed /tmp/ccut0RQx.s:665 .text.get_changed:0000000000000010 $d /tmp/ccut0RQx.s:670 .text.state_set_default:0000000000000000 $t /tmp/ccut0RQx.s:678 .text.state_set_default:0000000000000000 state_set_default /tmp/ccut0RQx.s:750 .text.state_set_default:0000000000000048 $d *COM*:0000000000000004 gain *COM*:0000000000000004 volume /tmp/ccut0RQx.s:766 .text.diag:0000000000000000 $t /tmp/ccut0RQx.s:774 .text.diag:0000000000000000 diag ARM GAS /tmp/ccut0RQx.s page 25 /tmp/ccut0RQx.s:927 .text.diag:00000000000000c4 $d *COM*:0000000000002000 tx_dac_buffer *COM*:0000000000000001 tx_dac_buffer_toggle *COM*:0000000000000001 half_tx_dac_buffer_empty *COM*:0000000000000200 lf_buffer *COM*:0000000000000100 prefilter_lf_buffer *COM*:0000000000000001 lf_buffer_toggle *COM*:0000000000000100 if_Q *COM*:0000000000000100 if_I *COM*:0000000000000800 adc_buffer *COM*:0000000000000002 uart_rx_buf *COM*:0000000000000004 scan *COM*:0000000000000004 mic_gain *COM*:0000000000000004 squelch *COM*:0000000000000001 transmit *COM*:0000000000000001 receive /tmp/ccut0RQx.s:980 .rodata.diag.str1.4:0000000000000000 $d UNDEFINED SYMBOLS __aeabi_ldivmod decode_cmd audio_filter_generate_coeffs audio_filter_coeffs st2_filter_init sprintf