Files
bassofono/codice/build/bassofono.lst
2021-07-03 18:17:05 +02:00

1431 lines
57 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
ARM GAS /tmp/ccpFu4qm.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 <stdint.h>
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 <arm_math.h>
19:Core/Src/bassofono.c **** #include <stm32g4xx_ll_cordic.h>
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/ccpFu4qm.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 peak, oldpeak, peakset;
39:Core/Src/bassofono.c **** int32_t volume;
40:Core/Src/bassofono.c **** int32_t squelch;
41:Core/Src/bassofono.c **** int32_t mic_gain;
42:Core/Src/bassofono.c **** int32_t scan;
43:Core/Src/bassofono.c **** q31_t nco1_increment;
44:Core/Src/bassofono.c **** uint32_t audio_filter_freq, audio_filter_bw, audio_filter_beta;
45:Core/Src/bassofono.c ****
46:Core/Src/bassofono.c **** // maschera, ogni bit uno stato
47:Core/Src/bassofono.c **** uint16_t state_changed;
48:Core/Src/bassofono.c ****
49:Core/Src/bassofono.c **** // uart rx
50:Core/Src/bassofono.c **** char uart_rx_buf[2], rx_cmd_rb[RX_CMD_RB_SIZE];
51:Core/Src/bassofono.c **** uint8_t rx_cmd_rb_in_idx, rx_cmd_rb_out_idx;
52:Core/Src/bassofono.c ****
53:Core/Src/bassofono.c **** // uart tx
54:Core/Src/bassofono.c **** char uart_tx_buf[UART_TX_BUFFER_SIZE];
55:Core/Src/bassofono.c **** uint16_t uart_tx_buf_in_idx;
56:Core/Src/bassofono.c ****
57:Core/Src/bassofono.c **** // bufffah
58:Core/Src/bassofono.c **** uint16_t adc_buffer[ADC_BUFFER_SIZE];
59:Core/Src/bassofono.c ****
60:Core/Src/bassofono.c **** q31_t if_I[LF_BUFFER_SIZE];
61:Core/Src/bassofono.c **** q31_t if_Q[LF_BUFFER_SIZE];
62:Core/Src/bassofono.c ****
63:Core/Src/bassofono.c **** // RX
64:Core/Src/bassofono.c **** uint8_t lf_buffer_toggle;
65:Core/Src/bassofono.c **** q31_t prefilter_lf_buffer[LF_BUFFER_SIZE];
66:Core/Src/bassofono.c **** q31_t lf_buffer[2][LF_BUFFER_SIZE];
67:Core/Src/bassofono.c ****
68:Core/Src/bassofono.c **** // TX
69:Core/Src/bassofono.c **** volatile uint8_t half_tx_dac_buffer_empty, tx_dac_buffer_toggle;
70:Core/Src/bassofono.c **** q31_t tx_dac_buffer[2][TX_DAC_BUFFER_SIZE];
71:Core/Src/bassofono.c ****
72:Core/Src/bassofono.c **** // ============
73:Core/Src/bassofono.c ****
74:Core/Src/bassofono.c **** int32_t set_nco1_freq(int32_t freq){
28 .loc 1 74 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
75:Core/Src/bassofono.c **** int64_t tmp_increment;
76:Core/Src/bassofono.c **** if(modulation == MOD_USB) freq += (NCO2_FREQUENCY);
38 .loc 1 76 0
39 0002 094B ldr r3, .L7
ARM GAS /tmp/ccpFu4qm.s page 3
40 0004 1B68 ldr r3, [r3]
41 0006 022B cmp r3, #2
74:Core/Src/bassofono.c **** int64_t tmp_increment;
42 .loc 1 74 0
43 0008 0146 mov r1, r0
44 .loc 1 76 0
45 000a 09D0 beq .L6
77:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
46 .loc 1 77 0
47 000c 012B cmp r3, #1
48 000e 08BF it eq
49 0010 A0F21E71 subweq r1, r0, #1822
50 .LVL1:
51 .L3:
78:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE;
52 .loc 1 78 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:
79:Core/Src/bassofono.c **** return (int32_t)tmp_increment;
80:Core/Src/bassofono.c **** }
58 .loc 1 80 0
59 001e 08BD pop {r3, pc}
60 .LVL3:
61 .L6:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
62 .loc 1 76 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:
81:Core/Src/bassofono.c ****
82:Core/Src/bassofono.c **** inline uint16_t ringbuf_increment(uint8_t *index, uint8_t buff_size_mask) {
85 .loc 1 82 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:
ARM GAS /tmp/ccpFu4qm.s page 4
83:Core/Src/bassofono.c **** (*index)++;
91 .loc 1 83 0
92 0000 0378 ldrb r3, [r0] @ zero_extendqisi2
93 0002 0133 adds r3, r3, #1
84:Core/Src/bassofono.c **** *index &= buff_size_mask;
94 .loc 1 84 0
95 0004 1940 ands r1, r1, r3
96 .LVL6:
97 0006 0170 strb r1, [r0]
85:Core/Src/bassofono.c **** return *index;
86:Core/Src/bassofono.c **** }
98 .loc 1 86 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:
87:Core/Src/bassofono.c ****
88:Core/Src/bassofono.c **** q31_t sat_mult_q31(q31_t a, q31_t b){
116 .loc 1 88 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:
89:Core/Src/bassofono.c **** q31_t out;
90:Core/Src/bassofono.c **** out = ((q63_t) a * b) >> 32;
122 .loc 1 90 0
123 0000 80FB0101 smull r0, r1, r0, r1
124 .LVL9:
125 .LBB12:
91:Core/Src/bassofono.c **** out = __SSAT(out, 31);
126 .loc 1 91 0
127 .syntax unified
128 @ 91 "Core/Src/bassofono.c" 1
129 0004 01F31E00 ssat r0, #31, r1
130 @ 0 "" 2
131 .LVL10:
132 .thumb
133 .syntax unified
134 .LBE12:
92:Core/Src/bassofono.c **** return out << 1U;
93:Core/Src/bassofono.c **** }
135 .loc 1 93 0
136 0008 4000 lsls r0, r0, #1
137 .LVL11:
138 000a 7047 bx lr
ARM GAS /tmp/ccpFu4qm.s page 5
139 .cfi_endproc
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:
94:Core/Src/bassofono.c ****
95:Core/Src/bassofono.c **** // uart
96:Core/Src/bassofono.c ****
97:Core/Src/bassofono.c **** void enqueue_cmd(char in){
153 .loc 1 97 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
98:Core/Src/bassofono.c **** rx_cmd_rb[rx_cmd_rb_in_idx] = in;
163 .loc 1 98 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:
83:Core/Src/bassofono.c **** *index &= buff_size_mask;
169 .loc 1 83 0
170 0008 4B1C adds r3, r1, #1
84:Core/Src/bassofono.c **** return *index;
171 .loc 1 84 0
172 000a 03F01F03 and r3, r3, #31
173 000e 1370 strb r3, [r2]
174 .LBE14:
175 .LBE13:
176 .loc 1 98 0
177 0010 6054 strb r0, [r4, r1]
178 .LVL13:
99:Core/Src/bassofono.c **** ringbuf_increment(&rx_cmd_rb_in_idx, RX_CMD_RB_SIZE_MASK);
100:Core/Src/bassofono.c **** }
179 .loc 1 100 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
ARM GAS /tmp/ccpFu4qm.s page 6
189 001c 00000000 .word rx_cmd_rb
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:
101:Core/Src/bassofono.c ****
102:Core/Src/bassofono.c **** void dequeue_cmd(void){
204 .loc 1 102 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
103:Core/Src/bassofono.c **** decode_cmd(rx_cmd_rb[rx_cmd_rb_out_idx]);
213 .loc 1 103 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:
83:Core/Src/bassofono.c **** *index &= buff_size_mask;
222 .loc 1 83 0
223 000e 2378 ldrb r3, [r4] @ zero_extendqisi2
224 0010 0133 adds r3, r3, #1
84:Core/Src/bassofono.c **** return *index;
225 .loc 1 84 0
226 0012 03F01F03 and r3, r3, #31
227 0016 2370 strb r3, [r4]
228 .LVL15:
229 .LBE16:
230 .LBE15:
104:Core/Src/bassofono.c **** ringbuf_increment(&rx_cmd_rb_out_idx, RX_CMD_RB_SIZE_MASK);
105:Core/Src/bassofono.c **** }
231 .loc 1 105 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
ARM GAS /tmp/ccpFu4qm.s page 7
242 .align 1
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:
106:Core/Src/bassofono.c ****
107:Core/Src/bassofono.c **** void enqueue_tx(char * data, uint16_t len){
252 .loc 1 107 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:
108:Core/Src/bassofono.c **** for( uint8_t index = 0; index < len; index++){
259 .loc 1 108 0
260 0000 E1B1 cbz r1, .L32
261 .LBE17:
107:Core/Src/bassofono.c **** for( uint8_t index = 0; index < len; index++){
262 .loc 1 107 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:
109:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index];
271 .loc 1 109 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]
110:Core/Src/bassofono.c **** uart_tx_buf_in_idx++;
277 .loc 1 110 0
278 000e 0132 adds r2, r2, #1
279 0010 92B2 uxth r2, r2
111:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break;
280 .loc 1 111 0
281 0012 B2F5007F cmp r2, #512
110:Core/Src/bassofono.c **** uart_tx_buf_in_idx++;
282 .loc 1 110 0
283 0016 3280 strh r2, [r6] @ movhi
284 .loc 1 111 0
285 0018 0ED0 beq .L19
108:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index];
286 .loc 1 108 0
287 001a 0023 movs r3, #0
288 001c 06E0 b .L22
289 .LVL17:
290 .L23:
ARM GAS /tmp/ccpFu4qm.s page 8
109:Core/Src/bassofono.c **** uart_tx_buf_in_idx++;
291 .loc 1 109 0
292 001e C55C ldrb r5, [r0, r3] @ zero_extendqisi2
293 0020 BD54 strb r5, [r7, r2]
110:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break;
294 .loc 1 110 0
295 0022 A2B2 uxth r2, r4
296 .loc 1 111 0
297 0024 B2F5007F cmp r2, #512
110:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break;
298 .loc 1 110 0
299 0028 3280 strh r2, [r6] @ movhi
300 .loc 1 111 0
301 002a 05D0 beq .L19
302 .LVL18:
303 .L22:
108:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index];
304 .loc 1 108 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
110:Core/Src/bassofono.c **** if(uart_tx_buf_in_idx == UART_TX_BUFFER_SIZE) break;
310 .loc 1 110 0 discriminator 2
311 0032 02F10104 add r4, r2, #1
108:Core/Src/bassofono.c **** uart_tx_buf[uart_tx_buf_in_idx] = data[index];
312 .loc 1 108 0 discriminator 2
313 0036 F2D3 bcc .L23
314 .LVL21:
315 .L19:
316 .LBE18:
112:Core/Src/bassofono.c **** }
113:Core/Src/bassofono.c **** }
317 .loc 1 113 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
ARM GAS /tmp/ccpFu4qm.s page 9
341 .syntax unified
342 .thumb
343 .thumb_func
344 .fpu fpv4-sp-d16
346 set_frequency:
347 .LFB410:
114:Core/Src/bassofono.c ****
115:Core/Src/bassofono.c **** // state changes
116:Core/Src/bassofono.c **** void set_frequency(void){
348 .loc 1 116 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:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
359 .loc 1 76 0
360 0002 0A4B ldr r3, .L43
361 .LBE20:
362 .LBE19:
117:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency);
363 .loc 1 117 0
364 0004 0A4A ldr r2, .L43+4
365 .LBB25:
366 .LBB21:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
367 .loc 1 76 0
368 0006 1B68 ldr r3, [r3]
369 .LBE21:
370 .LBE25:
371 .loc 1 117 0
372 0008 1168 ldr r1, [r2]
373 .LVL23:
374 .LBB26:
375 .LBB22:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
376 .loc 1 76 0
377 000a 022B cmp r3, #2
378 000c 0BD0 beq .L42
77:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE;
379 .loc 1 77 0
380 000e 012B cmp r3, #1
381 0010 08BF it eq
382 0012 A1F21E71 subweq r1, r1, #1822
383 .LVL24:
384 .L39:
78:Core/Src/bassofono.c **** return (int32_t)tmp_increment;
385 .loc 1 78 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
ARM GAS /tmp/ccpFu4qm.s page 10
390 .LVL25:
391 .LBE22:
392 .LBE26:
393 .loc 1 117 0
394 0020 054B ldr r3, .L43+12
395 .LBB27:
396 .LBB23:
79:Core/Src/bassofono.c **** }
397 .loc 1 79 0
398 0022 1860 str r0, [r3]
399 .LBE23:
400 .LBE27:
118:Core/Src/bassofono.c **** }
401 .loc 1 118 0
402 0024 08BD pop {r3, pc}
403 .LVL26:
404 .L42:
405 .LBB28:
406 .LBB24:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
407 .loc 1 76 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:
119:Core/Src/bassofono.c ****
120:Core/Src/bassofono.c **** void set_filter(void){
434 .loc 1 120 0
435 .cfi_startproc
436 @ args = 0, pretend = 0, frame = 0
437 @ frame_needed = 0, uses_anonymous_args = 0
438 @ link register save eliminated.
121:Core/Src/bassofono.c **** audio_filter_generate_coeffs(audio_filter_coeffs, audio_filter_freq, audio_filter_bw, audio
439 .loc 1 121 0
440 0000 044B ldr r3, .L46
441 0002 054A ldr r2, .L46+4
442 0004 0549 ldr r1, .L46+8
ARM GAS /tmp/ccpFu4qm.s page 11
443 0006 1B78 ldrb r3, [r3] @ zero_extendqisi2
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:
122:Core/Src/bassofono.c **** }
123:Core/Src/bassofono.c ****
124:Core/Src/bassofono.c **** void set_modulation(void){
470 .loc 1 124 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
125:Core/Src/bassofono.c **** st2_filter_init();
479 .loc 1 125 0
480 0002 FFF7FEFF bl st2_filter_init
481 .LVL29:
482 .LBB29:
483 .LBB30:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
484 .loc 1 76 0
485 0006 0A4B ldr r3, .L54
486 .LBE30:
487 .LBE29:
126:Core/Src/bassofono.c **** // cambia offset
127:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency);
488 .loc 1 127 0
489 0008 0A4A ldr r2, .L54+4
490 .LBB35:
491 .LBB31:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
492 .loc 1 76 0
493 000a 1B68 ldr r3, [r3]
ARM GAS /tmp/ccpFu4qm.s page 12
494 .LBE31:
495 .LBE35:
496 .loc 1 127 0
497 000c 1168 ldr r1, [r2]
498 .LVL30:
499 .LBB36:
500 .LBB32:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
501 .loc 1 76 0
502 000e 022B cmp r3, #2
503 0010 0BD0 beq .L53
77:Core/Src/bassofono.c **** tmp_increment = ((int64_t)freq * 0x100000000LL)/ADC_SAMPLE_RATE;
504 .loc 1 77 0
505 0012 012B cmp r3, #1
506 0014 08BF it eq
507 0016 A1F21E71 subweq r1, r1, #1822
508 .LVL31:
509 .L50:
78:Core/Src/bassofono.c **** return (int32_t)tmp_increment;
510 .loc 1 78 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 127 0
519 0024 054B ldr r3, .L54+12
520 .LBB37:
521 .LBB33:
79:Core/Src/bassofono.c **** }
522 .loc 1 79 0
523 0026 1860 str r0, [r3]
524 .LBE33:
525 .LBE37:
128:Core/Src/bassofono.c **** }
526 .loc 1 128 0
527 0028 08BD pop {r3, pc}
528 .LVL33:
529 .L53:
530 .LBB38:
531 .LBB34:
76:Core/Src/bassofono.c **** else if(modulation == MOD_LSB) freq -= (NCO2_FREQUENCY);
532 .loc 1 76 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:
ARM GAS /tmp/ccpFu4qm.s page 13
545 .cfi_endproc
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:
129:Core/Src/bassofono.c ****
130:Core/Src/bassofono.c **** void set_dummy(void){
559 .loc 1 130 0
560 .cfi_startproc
561 @ args = 0, pretend = 0, frame = 0
562 @ frame_needed = 0, uses_anonymous_args = 0
563 @ link register save eliminated.
131:Core/Src/bassofono.c **** // non fare NULLAH
132:Core/Src/bassofono.c **** }
564 .loc 1 132 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:
133:Core/Src/bassofono.c ****
134:Core/Src/bassofono.c ****
135:Core/Src/bassofono.c **** void set_changed(uint8_t state){
580 .loc 1 135 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:
136:Core/Src/bassofono.c **** state_changed |= (1U<<state);
586 .loc 1 136 0
587 0000 034A ldr r2, .L58
588 0002 0123 movs r3, #1
589 0004 1188 ldrh r1, [r2]
590 0006 03FA00F0 lsl r0, r3, r0
591 .LVL36:
592 000a 0843 orrs r0, r0, r1
593 000c 1080 strh r0, [r2] @ movhi
137:Core/Src/bassofono.c **** }
594 .loc 1 137 0
595 000e 7047 bx lr
596 .L59:
ARM GAS /tmp/ccpFu4qm.s page 14
597 .align 2
598 .L58:
599 0010 00000000 .word state_changed
600 .cfi_endproc
601 .LFE414:
603 .section .text.reset_changed,"ax",%progbits
604 .align 1
605 .p2align 2,,3
606 .global reset_changed
607 .syntax unified
608 .thumb
609 .thumb_func
610 .fpu fpv4-sp-d16
612 reset_changed:
613 .LFB415:
138:Core/Src/bassofono.c ****
139:Core/Src/bassofono.c **** void reset_changed(uint8_t state){
614 .loc 1 139 0
615 .cfi_startproc
616 @ args = 0, pretend = 0, frame = 0
617 @ frame_needed = 0, uses_anonymous_args = 0
618 @ link register save eliminated.
619 .LVL37:
140:Core/Src/bassofono.c **** state_changed &= ~(1U<<state);
620 .loc 1 140 0
621 0000 0449 ldr r1, .L61
622 0002 0122 movs r2, #1
623 0004 0B88 ldrh r3, [r1]
624 0006 02FA00F0 lsl r0, r2, r0
625 .LVL38:
626 000a 23EA0003 bic r3, r3, r0
627 000e 0B80 strh r3, [r1] @ movhi
141:Core/Src/bassofono.c **** }
628 .loc 1 141 0
629 0010 7047 bx lr
630 .L62:
631 0012 00BF .align 2
632 .L61:
633 0014 00000000 .word state_changed
634 .cfi_endproc
635 .LFE415:
637 .section .text.get_changed,"ax",%progbits
638 .align 1
639 .p2align 2,,3
640 .global get_changed
641 .syntax unified
642 .thumb
643 .thumb_func
644 .fpu fpv4-sp-d16
646 get_changed:
647 .LFB416:
142:Core/Src/bassofono.c ****
143:Core/Src/bassofono.c **** uint8_t get_changed(uint8_t state){
648 .loc 1 143 0
649 .cfi_startproc
650 @ args = 0, pretend = 0, frame = 0
651 @ frame_needed = 0, uses_anonymous_args = 0
ARM GAS /tmp/ccpFu4qm.s page 15
652 @ link register save eliminated.
653 .LVL39:
144:Core/Src/bassofono.c **** return (state_changed >> state) & 1U;
654 .loc 1 144 0
655 0000 034B ldr r3, .L64
656 0002 1B88 ldrh r3, [r3]
657 0004 43FA00F0 asr r0, r3, r0
658 .LVL40:
145:Core/Src/bassofono.c **** }
659 .loc 1 145 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:
146:Core/Src/bassofono.c ****
147:Core/Src/bassofono.c **** void state_set_default(void){
680 .loc 1 147 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
148:Core/Src/bassofono.c **** modulation = MOD_USB;
693 .loc 1 148 0
694 0002 114E ldr r6, .L68
149:Core/Src/bassofono.c **** frequency = 98600;
695 .loc 1 149 0
696 0004 114D ldr r5, .L68+4
150:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency);
697 .loc 1 150 0
698 0006 124B ldr r3, .L68+8
151:Core/Src/bassofono.c **** gain = 3;
699 .loc 1 151 0
700 0008 124A ldr r2, .L68+12
152:Core/Src/bassofono.c **** volume = 16;
701 .loc 1 152 0
ARM GAS /tmp/ccpFu4qm.s page 16
702 000a 134C ldr r4, .L68+16
153:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF;
154:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF;
155:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF;
703 .loc 1 155 0
704 000c 1349 ldr r1, .L68+20
153:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF;
705 .loc 1 153 0
706 000e 1448 ldr r0, .L68+24
148:Core/Src/bassofono.c **** frequency = 98600;
707 .loc 1 148 0
708 0010 0227 movs r7, #2
709 0012 3760 str r7, [r6]
149:Core/Src/bassofono.c **** nco1_increment = set_nco1_freq(frequency);
710 .loc 1 149 0
711 0014 134E ldr r6, .L68+28
712 0016 2E60 str r6, [r5]
150:Core/Src/bassofono.c **** gain = 3;
713 .loc 1 150 0
714 0018 134D ldr r5, .L68+32
715 001a 1D60 str r5, [r3]
152:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF;
716 .loc 1 152 0
717 001c 1023 movs r3, #16
151:Core/Src/bassofono.c **** volume = 16;
718 .loc 1 151 0
719 001e 0325 movs r5, #3
720 0020 1560 str r5, [r2]
152:Core/Src/bassofono.c **** audio_filter_freq = AUDIO_FILTER_FREQ_DEF;
721 .loc 1 152 0
722 0022 2360 str r3, [r4]
153:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF;
723 .loc 1 153 0
724 0024 40F24652 movw r2, #1350
154:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF;
725 .loc 1 154 0
726 0028 4FF4FA64 mov r4, #2000
727 002c 0F4D ldr r5, .L68+36
728 .loc 1 155 0
729 002e 0B60 str r3, [r1]
153:Core/Src/bassofono.c **** audio_filter_bw = AUDIO_FILTER_BW_DEF;
730 .loc 1 153 0
731 0030 0260 str r2, [r0]
156:Core/Src/bassofono.c **** audio_filter_generate_coeffs(audio_filter_coeffs, audio_filter_freq, audio_filter_bw, audio
732 .loc 1 156 0
733 0032 1146 mov r1, r2
734 0034 0E48 ldr r0, .L68+40
154:Core/Src/bassofono.c **** audio_filter_beta = AUDIO_FILTER_BETA_DEF;
735 .loc 1 154 0
736 0036 2C60 str r4, [r5]
737 .loc 1 156 0
738 0038 2246 mov r2, r4
739 003a FFF7FEFF bl audio_filter_generate_coeffs
740 .LVL41:
157:Core/Src/bassofono.c **** state_changed = 0xFFFF;
741 .loc 1 157 0
742 003e 0D4B ldr r3, .L68+44
ARM GAS /tmp/ccpFu4qm.s page 17
743 0040 4FF6FF72 movw r2, #65535
744 0044 1A80 strh r2, [r3] @ movhi
158:Core/Src/bassofono.c **** }
745 .loc 1 158 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 28810100 .word 98600
758 0068 D0967349 .word 1232312016
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:
159:Core/Src/bassofono.c ****
160:Core/Src/bassofono.c **** // diag
161:Core/Src/bassofono.c ****
162:Core/Src/bassofono.c **** void diag(void){
776 .loc 1 162 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
163: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 163 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:
ARM GAS /tmp/ccpFu4qm.s page 18
796 0012 2688 ldrh r6, [r4]
164: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 164 0
798 0014 2F49 ldr r1, .L72+16
163: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 163 0
800 0016 2C36 adds r6, r6, #44
801 .loc 1 164 0
802 0018 2846 mov r0, r5
803 001a 0423 movs r3, #4
804 001c 4FF48062 mov r2, #1024
163: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 163 0
806 0020 2680 strh r6, [r4] @ movhi
807 .loc 1 164 0
808 0022 FFF7FEFF bl sprintf
809 .LVL43:
810 0026 2388 ldrh r3, [r4]
165: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 165 0
812 0028 2B4A ldr r2, .L72+20
813 002a 2C49 ldr r1, .L72+24
164: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 164 0
815 002c 2F33 adds r3, r3, #47
816 .loc 1 165 0
817 002e 2846 mov r0, r5
164: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 164 0
819 0030 2380 strh r3, [r4] @ movhi
820 .loc 1 165 0
821 0032 FFF7FEFF bl sprintf
822 .LVL44:
823 0036 2688 ldrh r6, [r4]
166: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 166 0
825 0038 2949 ldr r1, .L72+28
165: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 165 0
827 003a 1B36 adds r6, r6, #27
828 .loc 1 166 0
829 003c 2846 mov r0, r5
830 003e 0823 movs r3, #8
831 0040 4FF48072 mov r2, #256
165: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 165 0
833 0044 2680 strh r6, [r4] @ movhi
834 .loc 1 166 0
835 0046 FFF7FEFF bl sprintf
836 .LVL45:
837 004a 2388 ldrh r3, [r4]
167: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 167 0
839 004c 2549 ldr r1, .L72+32
166: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 166 0
841 004e 2E33 adds r3, r3, #46
ARM GAS /tmp/ccpFu4qm.s page 19
842 .loc 1 167 0
843 0050 2846 mov r0, r5
844 0052 45F27352 movw r2, #21875
166: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 166 0
846 0056 2380 strh r3, [r4] @ movhi
847 .loc 1 167 0
848 0058 FFF7FEFF bl sprintf
849 .LVL46:
850 005c 2388 ldrh r3, [r4]
168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain);
851 .loc 1 168 0
852 005e 224A ldr r2, .L72+36
853 0060 2249 ldr r1, .L72+40
854 0062 1268 ldr r2, [r2]
167: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 167 0
856 0064 1B33 adds r3, r3, #27
857 .loc 1 168 0
858 0066 2846 mov r0, r5
167: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 167 0
860 0068 2380 strh r3, [r4] @ movhi
861 .loc 1 168 0
862 006a FFF7FEFF bl sprintf
863 .LVL47:
864 006e 2388 ldrh r3, [r4]
169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume);
865 .loc 1 169 0
866 0070 1F4A ldr r2, .L72+44
867 0072 2049 ldr r1, .L72+48
868 0074 1268 ldr r2, [r2]
168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain);
869 .loc 1 168 0
870 0076 0344 add r3, r3, r0
871 .loc 1 169 0
872 0078 2846 mov r0, r5
168:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"in gain %d\n", gain);
873 .loc 1 168 0
874 007a 2380 strh r3, [r4] @ movhi
875 .loc 1 169 0
876 007c FFF7FEFF bl sprintf
877 .LVL48:
878 0080 2388 ldrh r3, [r4]
170:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment);
879 .loc 1 170 0
880 0082 1D4A ldr r2, .L72+52
881 0084 1D49 ldr r1, .L72+56
882 0086 1268 ldr r2, [r2]
169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume);
883 .loc 1 169 0
884 0088 0344 add r3, r3, r0
885 .loc 1 170 0
886 008a 2846 mov r0, r5
169:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"af gain %d\n", volume);
887 .loc 1 169 0
888 008c 2380 strh r3, [r4] @ movhi
ARM GAS /tmp/ccpFu4qm.s page 20
889 .loc 1 170 0
890 008e FFF7FEFF bl sprintf
891 .LVL49:
892 0092 2388 ldrh r3, [r4]
171:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco2 inc %d\n", NCO2_INCREMENT);
893 .loc 1 171 0
894 0094 1A4A ldr r2, .L72+60
895 0096 1B49 ldr r1, .L72+64
170:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment);
896 .loc 1 170 0
897 0098 0344 add r3, r3, r0
898 .loc 1 171 0
899 009a 2846 mov r0, r5
170:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco1 inc %d\n", nco1_increment);
900 .loc 1 170 0
901 009c 2380 strh r3, [r4] @ movhi
902 .loc 1 171 0
903 009e FFF7FEFF bl sprintf
904 .LVL50:
905 00a2 2688 ldrh r6, [r4]
172: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 172 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
171:Core/Src/bassofono.c **** uart_tx_buf_in_idx += sprintf(uart_tx_buf,"nco2 inc %d\n", NCO2_INCREMENT);
913 .loc 1 171 0
914 00b0 06F11305 add r5, r6, #19
915 00b4 2580 strh r5, [r4] @ movhi
916 .loc 1 172 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
173:Core/Src/bassofono.c **** }
922 .loc 1 173 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
ARM GAS /tmp/ccpFu4qm.s page 21
940 00f8 00000000 .word nco1_increment
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 peakset,4,4
975 .comm oldpeak,4,4
976 .comm peak,4,4
977 .comm gain,4,4
978 .comm modulation,4,4
979 .comm frequency,4,4
980 .comm transmit,1,1
981 .comm receive,1,1
982 .section .rodata.diag.str1.4,"aMS",%progbits,1
983 .align 2
984 .LC0:
985 0000 41444320 .ascii "ADC sample rate: %d\012ADC oversampling: %d\012\000"
985 73616D70
985 6C652072
985 6174653A
985 2025640A
986 002a 0000 .space 2
987 .LC1:
988 002c 41444320 .ascii "ADC buffer size: %d\0121st decimation factor: %d\012"
988 62756666
988 65722073
988 697A653A
988 2025640A
989 005a 00 .ascii "\000"
ARM GAS /tmp/ccpFu4qm.s page 22
990 005b 00 .space 1
991 .LC2:
992 005c 31737420 .ascii "1st out sample rate: %d\012\000"
992 6F757420
992 73616D70
992 6C652072
992 6174653A
993 0075 000000 .space 3
994 .LC3:
995 0078 32737420 .ascii "2st buffer size: %d\0122st decimation factor: %d\012"
995 62756666
995 65722073
995 697A653A
995 2025640A
996 00a6 00 .ascii "\000"
997 00a7 00 .space 1
998 .LC4:
999 00a8 32737420 .ascii "2st out sample rate: %d\012\000"
999 6F757420
999 73616D70
999 6C652072
999 6174653A
1000 00c1 000000 .space 3
1001 .LC5:
1002 00c4 696E2067 .ascii "in gain %d\012\000"
1002 61696E20
1002 25640A00
1003 .LC6:
1004 00d0 61662067 .ascii "af gain %d\012\000"
1004 61696E20
1004 25640A00
1005 .LC7:
1006 00dc 6E636F31 .ascii "nco1 inc %d\012\000"
1006 20696E63
1006 2025640A
1006 00
1007 00e9 000000 .space 3
1008 .LC8:
1009 00ec 6E636F32 .ascii "nco2 inc %d\012\000"
1009 20696E63
1009 2025640A
1009 00
1010 00f9 000000 .space 3
1011 .LC9:
1012 00fc 61756469 .ascii "audio filter f %d bw %d\012\000"
1012 6F206669
1012 6C746572
1012 20662025
1012 64206277
1013 .text
1014 .Letext0:
1015 .file 2 "/usr/include/newlib/machine/_default_types.h"
1016 .file 3 "/usr/include/newlib/sys/_stdint.h"
1017 .file 4 "/usr/include/newlib/sys/lock.h"
1018 .file 5 "/usr/include/newlib/sys/_types.h"
1019 .file 6 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h"
1020 .file 7 "/usr/include/newlib/sys/reent.h"
ARM GAS /tmp/ccpFu4qm.s page 23
1021 .file 8 "/usr/include/newlib/math.h"
1022 .file 9 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h"
1023 .file 10 "Drivers/CMSIS/Include/core_cm4.h"
1024 .file 11 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h"
1025 .file 12 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h"
1026 .file 13 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h"
1027 .file 14 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h"
1028 .file 15 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cordic.h"
1029 .file 16 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h"
1030 .file 17 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h"
1031 .file 18 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h"
1032 .file 19 "Core/Inc/rx.h"
1033 .file 20 "Core/Inc/tx.h"
1034 .file 21 "Core/Inc/bassofono.h"
1035 .file 22 "Core/Inc/interface.h"
1036 .file 23 "/usr/include/newlib/stdio.h"
ARM GAS /tmp/ccpFu4qm.s page 24
DEFINED SYMBOLS
*ABS*:0000000000000000 bassofono.c
/tmp/ccpFu4qm.s:17 .text.set_nco1_freq:0000000000000000 $t
/tmp/ccpFu4qm.s:25 .text.set_nco1_freq:0000000000000000 set_nco1_freq
/tmp/ccpFu4qm.s:69 .text.set_nco1_freq:0000000000000028 $d
*COM*:0000000000000004 modulation
/tmp/ccpFu4qm.s:75 .text.ringbuf_increment:0000000000000000 $t
/tmp/ccpFu4qm.s:83 .text.ringbuf_increment:0000000000000000 ringbuf_increment
/tmp/ccpFu4qm.s:106 .text.sat_mult_q31:0000000000000000 $t
/tmp/ccpFu4qm.s:114 .text.sat_mult_q31:0000000000000000 sat_mult_q31
/tmp/ccpFu4qm.s:143 .text.enqueue_cmd:0000000000000000 $t
/tmp/ccpFu4qm.s:151 .text.enqueue_cmd:0000000000000000 enqueue_cmd
/tmp/ccpFu4qm.s:188 .text.enqueue_cmd:0000000000000018 $d
*COM*:0000000000000001 rx_cmd_rb_in_idx
*COM*:0000000000000020 rx_cmd_rb
/tmp/ccpFu4qm.s:194 .text.dequeue_cmd:0000000000000000 $t
/tmp/ccpFu4qm.s:202 .text.dequeue_cmd:0000000000000000 dequeue_cmd
/tmp/ccpFu4qm.s:236 .text.dequeue_cmd:000000000000001c $d
*COM*:0000000000000001 rx_cmd_rb_out_idx
/tmp/ccpFu4qm.s:242 .text.enqueue_tx:0000000000000000 $t
/tmp/ccpFu4qm.s:250 .text.enqueue_tx:0000000000000000 enqueue_tx
/tmp/ccpFu4qm.s:332 .text.enqueue_tx:0000000000000040 $d
*COM*:0000000000000002 uart_tx_buf_in_idx
*COM*:0000000000000200 uart_tx_buf
/tmp/ccpFu4qm.s:338 .text.set_frequency:0000000000000000 $t
/tmp/ccpFu4qm.s:346 .text.set_frequency:0000000000000000 set_frequency
/tmp/ccpFu4qm.s:414 .text.set_frequency:000000000000002c $d
*COM*:0000000000000004 frequency
*COM*:0000000000000004 nco1_increment
/tmp/ccpFu4qm.s:424 .text.set_filter:0000000000000000 $t
/tmp/ccpFu4qm.s:432 .text.set_filter:0000000000000000 set_filter
/tmp/ccpFu4qm.s:452 .text.set_filter:0000000000000014 $d
*COM*:0000000000000004 audio_filter_beta
*COM*:0000000000000004 audio_filter_bw
*COM*:0000000000000004 audio_filter_freq
/tmp/ccpFu4qm.s:460 .text.set_modulation:0000000000000000 $t
/tmp/ccpFu4qm.s:468 .text.set_modulation:0000000000000000 set_modulation
/tmp/ccpFu4qm.s:539 .text.set_modulation:0000000000000030 $d
/tmp/ccpFu4qm.s:549 .text.set_dummy:0000000000000000 $t
/tmp/ccpFu4qm.s:557 .text.set_dummy:0000000000000000 set_dummy
/tmp/ccpFu4qm.s:570 .text.set_changed:0000000000000000 $t
/tmp/ccpFu4qm.s:578 .text.set_changed:0000000000000000 set_changed
/tmp/ccpFu4qm.s:599 .text.set_changed:0000000000000010 $d
*COM*:0000000000000002 state_changed
/tmp/ccpFu4qm.s:604 .text.reset_changed:0000000000000000 $t
/tmp/ccpFu4qm.s:612 .text.reset_changed:0000000000000000 reset_changed
/tmp/ccpFu4qm.s:633 .text.reset_changed:0000000000000014 $d
/tmp/ccpFu4qm.s:638 .text.get_changed:0000000000000000 $t
/tmp/ccpFu4qm.s:646 .text.get_changed:0000000000000000 get_changed
/tmp/ccpFu4qm.s:665 .text.get_changed:0000000000000010 $d
/tmp/ccpFu4qm.s:670 .text.state_set_default:0000000000000000 $t
/tmp/ccpFu4qm.s:678 .text.state_set_default:0000000000000000 state_set_default
/tmp/ccpFu4qm.s:750 .text.state_set_default:0000000000000048 $d
*COM*:0000000000000004 gain
*COM*:0000000000000004 volume
/tmp/ccpFu4qm.s:766 .text.diag:0000000000000000 $t
/tmp/ccpFu4qm.s:774 .text.diag:0000000000000000 diag
ARM GAS /tmp/ccpFu4qm.s page 25
/tmp/ccpFu4qm.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*:0000000000000004 peakset
*COM*:0000000000000004 oldpeak
*COM*:0000000000000004 peak
*COM*:0000000000000001 transmit
*COM*:0000000000000001 receive
/tmp/ccpFu4qm.s:983 .rodata.diag.str1.4:0000000000000000 $d
UNDEFINED SYMBOLS
__aeabi_ldivmod
decode_cmd
audio_filter_generate_coeffs
audio_filter_coeffs
st2_filter_init
sprintf