2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 1
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 "FIRFilterCode.c"
|
|
|
|
|
|
12 .text
|
|
|
|
|
|
13 .Ltext0:
|
|
|
|
|
|
14 .cfi_sections .debug_frame
|
|
|
|
|
|
15 .global __aeabi_i2d
|
|
|
|
|
|
16 .global __aeabi_dmul
|
|
|
|
|
|
17 .global __aeabi_dsub
|
|
|
|
|
|
18 .global __aeabi_dcmpgt
|
|
|
|
|
|
19 .global __aeabi_dcmplt
|
|
|
|
|
|
20 .global __aeabi_ddiv
|
|
|
|
|
|
21 .global __aeabi_dcmpeq
|
|
|
|
|
|
22 .global __aeabi_dadd
|
|
|
|
|
|
23 .section .text.RectWinFIR,"ax",%progbits
|
|
|
|
|
|
24 .align 1
|
|
|
|
|
|
25 .p2align 2,,3
|
|
|
|
|
|
26 .global RectWinFIR
|
|
|
|
|
|
27 .syntax unified
|
|
|
|
|
|
28 .thumb
|
|
|
|
|
|
29 .thumb_func
|
|
|
|
|
|
30 .fpu fpv4-sp-d16
|
|
|
|
|
|
32 RectWinFIR:
|
|
|
|
|
|
33 .LFB0:
|
|
|
|
|
|
34 .file 1 "Core/Src/FIRFilterCode.c"
|
|
|
|
|
|
1:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2:Core/Src/FIRFilterCode.c **** /*
|
|
|
|
|
|
3:Core/Src/FIRFilterCode.c **** By Daniel Klostermann
|
|
|
|
|
|
4:Core/Src/FIRFilterCode.c **** Iowa Hills Software, LLC IowaHills.com
|
|
|
|
|
|
5:Core/Src/FIRFilterCode.c **** If you find a problem, please leave a note at:
|
|
|
|
|
|
6:Core/Src/FIRFilterCode.c **** http://www.iowahills.com/feedbackcomments.html
|
|
|
|
|
|
7:Core/Src/FIRFilterCode.c **** May 1, 2016
|
|
|
|
|
|
8:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
9:Core/Src/FIRFilterCode.c **** ShowMessage is a C++ Builder function, and it usage has been commented out.
|
|
|
|
|
|
10:Core/Src/FIRFilterCode.c **** If you are using C++ Builder, include vcl.h for ShowMessage.
|
|
|
|
|
|
11:Core/Src/FIRFilterCode.c **** Otherwise replace ShowMessage with something appropriate for yor compiler.
|
|
|
|
|
|
12:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
13:Core/Src/FIRFilterCode.c **** RectWinFIR() generates the impulse response for a rectangular windowed low pass, high pass,
|
|
|
|
|
|
14:Core/Src/FIRFilterCode.c **** band pass, or notch filter. Then a window, such as the Kaiser, is applied to the FIR coefficients.
|
|
|
|
|
|
15:Core/Src/FIRFilterCode.c **** See the FilterKitMain.cpp file for an example on how to use this code.
|
|
|
|
|
|
16:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
17:Core/Src/FIRFilterCode.c **** double FirCoeff[MAXNUMTAPS];
|
|
|
|
|
|
18:Core/Src/FIRFilterCode.c **** int NumTaps; NumTaps can be even or odd and < MAXNUMTAPS
|
|
|
|
|
|
19:Core/Src/FIRFilterCode.c **** TPassTypeName PassType; PassType is defined in the header file. firLPF, firHPF, firBPF
|
|
|
|
|
|
20:Core/Src/FIRFilterCode.c **** double OmegaC 0.0 < OmegaC < 1.0 The corner freq, or center freq if BPF or NOTCH
|
|
|
|
|
|
21:Core/Src/FIRFilterCode.c **** double BW 0.0 < BW < 1.0 The band width if BPF or NOTCH
|
|
|
|
|
|
22:Core/Src/FIRFilterCode.c **** */
|
|
|
|
|
|
23:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
24:Core/Src/FIRFilterCode.c **** // http://www.iowahills.com/Example%20Code/WindowedFIRFilterWebCode.txt
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 2
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
26:Core/Src/FIRFilterCode.c **** #include "FIRFilterCode.h"
|
|
|
|
|
|
27:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
28:Core/Src/FIRFilterCode.c **** #include <math.h>
|
|
|
|
|
|
29:Core/Src/FIRFilterCode.c **** // #include <new.h> // For the new operator.
|
|
|
|
|
|
30:Core/Src/FIRFilterCode.c **** #include <stdbool.h>
|
|
|
|
|
|
31:Core/Src/FIRFilterCode.c **** #include <stdlib.h>
|
|
|
|
|
|
32:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
33:Core/Src/FIRFilterCode.c **** // Rectangular Windowed FIR. The equations used here are developed in numerous textbooks.
|
|
|
|
|
|
34:Core/Src/FIRFilterCode.c **** void RectWinFIR(double *FirCoeff, int NumTaps, TFIRPassTypes PassType, double OmegaC, double BW){
|
|
|
|
|
|
35 .loc 1 34 0
|
|
|
|
|
|
36 .cfi_startproc
|
|
|
|
|
|
37 @ args = 0, pretend = 0, frame = 48
|
|
|
|
|
|
38 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
39 .LVL0:
|
|
|
|
|
|
40 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
41 .LCFI0:
|
|
|
|
|
|
42 .cfi_def_cfa_offset 36
|
|
|
|
|
|
43 .cfi_offset 4, -36
|
|
|
|
|
|
44 .cfi_offset 5, -32
|
|
|
|
|
|
45 .cfi_offset 6, -28
|
|
|
|
|
|
46 .cfi_offset 7, -24
|
|
|
|
|
|
47 .cfi_offset 8, -20
|
|
|
|
|
|
48 .cfi_offset 9, -16
|
|
|
|
|
|
49 .cfi_offset 10, -12
|
|
|
|
|
|
50 .cfi_offset 11, -8
|
|
|
|
|
|
51 .cfi_offset 14, -4
|
|
|
|
|
|
52 0004 2DED048B vpush.64 {d8, d9}
|
|
|
|
|
|
53 .LCFI1:
|
|
|
|
|
|
54 .cfi_def_cfa_offset 52
|
|
|
|
|
|
55 .cfi_offset 80, -52
|
|
|
|
|
|
56 .cfi_offset 81, -48
|
|
|
|
|
|
57 .cfi_offset 82, -44
|
|
|
|
|
|
58 .cfi_offset 83, -40
|
|
|
|
|
|
59 0008 8DB0 sub sp, sp, #52
|
|
|
|
|
|
60 .LCFI2:
|
|
|
|
|
|
61 .cfi_def_cfa_offset 104
|
|
|
|
|
|
62 .loc 1 34 0
|
|
|
|
|
|
63 000a 8146 mov r9, r0
|
|
|
|
|
|
64 000c 8B46 mov fp, r1
|
|
|
|
|
|
65 000e 8DED000B vstr.64 d0, [sp]
|
|
|
|
|
|
35:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
36:Core/Src/FIRFilterCode.c **** double Arg, OmegaLow, OmegaHigh;
|
|
|
|
|
|
37:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
38:Core/Src/FIRFilterCode.c **** switch(PassType)
|
|
|
|
|
|
66 .loc 1 38 0
|
|
|
|
|
|
67 0012 042A cmp r2, #4
|
|
|
|
|
|
68 0014 18D8 bhi .L1
|
|
|
|
|
|
69 0016 DFE812F0 tbh [pc, r2, lsl #1]
|
|
|
|
|
|
70 .L4:
|
|
|
|
|
|
71 001a 1C00 .2byte (.L3-.L4)/2
|
|
|
|
|
|
72 001c 6700 .2byte (.L5-.L4)/2
|
|
|
|
|
|
73 001e CF00 .2byte (.L6-.L4)/2
|
|
|
|
|
|
74 0020 4F01 .2byte (.L7-.L4)/2
|
|
|
|
|
|
75 0022 0500 .2byte (.L8-.L4)/2
|
|
|
|
|
|
76 .p2align 1
|
|
|
|
|
|
77 .L8:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 3
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 .LVL1:
|
|
|
|
|
|
39:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
40:Core/Src/FIRFilterCode.c **** case firLPF: // Low Pass
|
|
|
|
|
|
41:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
42:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
43:Core/Src/FIRFilterCode.c **** Arg = (double)j - (double)(NumTaps-1) / 2.0;
|
|
|
|
|
|
44:Core/Src/FIRFilterCode.c **** FirCoeff[j] = OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
45:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
46:Core/Src/FIRFilterCode.c **** break;
|
|
|
|
|
|
47:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
48:Core/Src/FIRFilterCode.c **** case firHPF: // High Pass
|
|
|
|
|
|
49:Core/Src/FIRFilterCode.c **** if(NumTaps % 2 == 1) // Odd tap counts
|
|
|
|
|
|
50:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
51:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
52:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
53:Core/Src/FIRFilterCode.c **** Arg = (double)j - (double)(NumTaps-1) / 2.0;
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
55:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
56:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
57:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
58:Core/Src/FIRFilterCode.c **** else // Even tap counts
|
|
|
|
|
|
59:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
60:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
61:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
62:Core/Src/FIRFilterCode.c **** Arg = (double)j - (double)(NumTaps-1) / 2.0;
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
64:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
65:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
66:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
67:Core/Src/FIRFilterCode.c **** break;
|
|
|
|
|
|
68:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
69:Core/Src/FIRFilterCode.c **** case firBPF: // Band Pass
|
|
|
|
|
|
70:Core/Src/FIRFilterCode.c **** OmegaLow = OmegaC - BW/2.0;
|
|
|
|
|
|
71:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
72:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
73:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
74:Core/Src/FIRFilterCode.c **** Arg = (double)j - (double)(NumTaps-1) / 2.0;
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
76:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
|
|
|
|
|
77:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
78:Core/Src/FIRFilterCode.c **** break;
|
|
|
|
|
|
79:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
80:Core/Src/FIRFilterCode.c **** case firNOTCH: // Notch, if NumTaps is even, the response at Pi is attenuated.
|
|
|
|
|
|
81:Core/Src/FIRFilterCode.c **** OmegaLow = OmegaC - BW/2.0;
|
|
|
|
|
|
82:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
84:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
85:Core/Src/FIRFilterCode.c **** Arg = (double)j - (double)(NumTaps-1) / 2.0;
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaHigh * Sinc(OmegaHigh * Arg * M_PI) - OmegaLow * Sinc(
|
|
|
|
|
|
87:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
88:Core/Src/FIRFilterCode.c **** break;
|
|
|
|
|
|
89:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
90:Core/Src/FIRFilterCode.c **** case firALLPASS: // All Pass, this is trivial, but it shows how an fir all pass (delay) can be d
|
|
|
|
|
|
91:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)FirCoeff[j] = 0.0;
|
|
|
|
|
|
79 .loc 1 91 0
|
|
|
|
|
|
80 0024 0029 cmp r1, #0
|
|
|
|
|
|
81 0026 03DD ble .L10
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 4
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 0028 CA00 lsls r2, r1, #3
|
|
|
|
|
|
83 .LVL2:
|
|
|
|
|
|
84 002a 0021 movs r1, #0
|
|
|
|
|
|
85 .LVL3:
|
|
|
|
|
|
86 002c FFF7FEFF bl memset
|
|
|
|
|
|
87 .LVL4:
|
|
|
|
|
|
88 .L10:
|
|
|
|
|
|
92:Core/Src/FIRFilterCode.c **** FirCoeff[(NumTaps-1) / 2] = 1.0;
|
|
|
|
|
|
89 .loc 1 92 0
|
|
|
|
|
|
90 0030 0BF1FF3B add fp, fp, #-1
|
|
|
|
|
|
91 .LVL5:
|
|
|
|
|
|
92 0034 0BEBDB7B add fp, fp, fp, lsr #31
|
|
|
|
|
|
93 .LVL6:
|
|
|
|
|
|
94 0038 CB4B ldr r3, .L72+40
|
|
|
|
|
|
95 003a 4FEA6B0B asr fp, fp, #1
|
|
|
|
|
|
96 003e 0022 movs r2, #0
|
|
|
|
|
|
97 0040 09EBCB09 add r9, r9, fp, lsl #3
|
|
|
|
|
|
98 .LVL7:
|
|
|
|
|
|
99 0044 C9E90023 strd r2, [r9]
|
|
|
|
|
|
100 .LVL8:
|
|
|
|
|
|
101 .L1:
|
|
|
|
|
|
93:Core/Src/FIRFilterCode.c **** break;
|
|
|
|
|
|
94:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
95:Core/Src/FIRFilterCode.c **** // Now use the FIRFilterWindow() function to reduce the sinc(x) effects.
|
|
|
|
|
|
96:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
102 .loc 1 96 0
|
|
|
|
|
|
103 0048 0DB0 add sp, sp, #52
|
|
|
|
|
|
104 .LCFI3:
|
|
|
|
|
|
105 .cfi_remember_state
|
|
|
|
|
|
106 .cfi_def_cfa_offset 52
|
|
|
|
|
|
107 @ sp needed
|
|
|
|
|
|
108 004a BDEC048B vldm sp!, {d8-d9}
|
|
|
|
|
|
109 .LCFI4:
|
|
|
|
|
|
110 .cfi_restore 82
|
|
|
|
|
|
111 .cfi_restore 83
|
|
|
|
|
|
112 .cfi_restore 80
|
|
|
|
|
|
113 .cfi_restore 81
|
|
|
|
|
|
114 .cfi_def_cfa_offset 36
|
|
|
|
|
|
115 004e BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
|
|
|
|
|
116 .LVL9:
|
|
|
|
|
|
117 .L3:
|
|
|
|
|
|
118 .LCFI5:
|
|
|
|
|
|
119 .cfi_restore_state
|
|
|
|
|
|
41:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
120 .loc 1 41 0
|
|
|
|
|
|
121 0052 0029 cmp r1, #0
|
|
|
|
|
|
122 0054 F8DD ble .L1
|
|
|
|
|
|
43:Core/Src/FIRFilterCode.c **** FirCoeff[j] = OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
123 .loc 1 43 0
|
|
|
|
|
|
124 0056 481E subs r0, r1, #1
|
|
|
|
|
|
125 .LVL10:
|
|
|
|
|
|
126 0058 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
127 .LVL11:
|
|
|
|
|
|
128 005c 0022 movs r2, #0
|
|
|
|
|
|
129 005e C34B ldr r3, .L72+44
|
|
|
|
|
|
130 0060 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
131 .LVL12:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 5
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 0064 B6A3 adr r3, .L72
|
|
|
|
|
|
133 0066 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
134 006a 0446 mov r4, r0
|
|
|
|
|
|
135 006c 0D46 mov r5, r1
|
|
|
|
|
|
136 006e DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
137 0072 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
138 .LVL13:
|
|
|
|
|
|
41:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
139 .loc 1 41 0
|
|
|
|
|
|
140 0076 4FF00008 mov r8, #0
|
|
|
|
|
|
141 007a CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
142 007e DA46 mov r10, fp
|
|
|
|
|
|
143 0080 0CE0 b .L15
|
|
|
|
|
|
144 .LVL14:
|
|
|
|
|
|
145 .L67:
|
|
|
|
|
|
146 .LBB17:
|
|
|
|
|
|
147 .LBB18:
|
|
|
|
|
|
97:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
98:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
99:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
100:Core/Src/FIRFilterCode.c **** // This gets used in numerous places above.
|
|
|
|
|
|
101:Core/Src/FIRFilterCode.c **** // If using Visual C, this (and the header file declaration) may need to be commented out.
|
|
|
|
|
|
102:Core/Src/FIRFilterCode.c **** double Sinc(double x)
|
|
|
|
|
|
103:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** if(x > -1.0E-5 && x < 1.0E-5)return(1.0);
|
|
|
|
|
|
148 .loc 1 104 0
|
|
|
|
|
|
149 0082 3046 mov r0, r6
|
|
|
|
|
|
150 0084 3946 mov r1, r7
|
|
|
|
|
|
151 0086 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
152 .LVL15:
|
|
|
|
|
|
153 008a F0B1 cbz r0, .L12
|
|
|
|
|
|
154 008c DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
155 .L14:
|
|
|
|
|
|
156 .LVL16:
|
|
|
|
|
|
157 .LBE18:
|
|
|
|
|
|
158 .LBE17:
|
|
|
|
|
|
41:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
159 .loc 1 41 0
|
|
|
|
|
|
160 0090 08F10108 add r8, r8, #1
|
|
|
|
|
|
161 .LVL17:
|
|
|
|
|
|
162 0094 C245 cmp r10, r8
|
|
|
|
|
|
44:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
163 .loc 1 44 0
|
|
|
|
|
|
164 0096 E9E80201 strd r0, [r9], #8
|
|
|
|
|
|
41:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
165 .loc 1 41 0
|
|
|
|
|
|
166 009a D5D0 beq .L1
|
|
|
|
|
|
167 .LVL18:
|
|
|
|
|
|
168 .L15:
|
|
|
|
|
|
43:Core/Src/FIRFilterCode.c **** FirCoeff[j] = OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
169 .loc 1 43 0
|
|
|
|
|
|
170 009c 4046 mov r0, r8
|
|
|
|
|
|
171 009e FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
172 .LVL19:
|
|
|
|
|
|
173 00a2 2246 mov r2, r4
|
|
|
|
|
|
174 00a4 2B46 mov r3, r5
|
|
|
|
|
|
175 00a6 FFF7FEFF bl __aeabi_dsub
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 6
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 .LVL20:
|
|
|
|
|
|
44:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
177 .loc 1 44 0
|
|
|
|
|
|
178 00aa DDE90223 ldrd r2, [sp, #8]
|
|
|
|
|
|
179 00ae FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
180 .LVL21:
|
|
|
|
|
|
181 .LBB21:
|
|
|
|
|
|
182 .LBB19:
|
|
|
|
|
|
183 .loc 1 104 0
|
|
|
|
|
|
184 00b2 A5A3 adr r3, .L72+8
|
|
|
|
|
|
185 00b4 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
186 .LBE19:
|
|
|
|
|
|
187 .LBE21:
|
|
|
|
|
|
44:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
188 .loc 1 44 0
|
|
|
|
|
|
189 00b8 0646 mov r6, r0
|
|
|
|
|
|
190 00ba 0F46 mov r7, r1
|
|
|
|
|
|
191 .LVL22:
|
|
|
|
|
|
192 .LBB22:
|
|
|
|
|
|
193 .LBB20:
|
|
|
|
|
|
194 .loc 1 104 0
|
|
|
|
|
|
195 00bc FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
196 .LVL23:
|
|
|
|
|
|
197 00c0 A3A3 adr r3, .L72+16
|
|
|
|
|
|
198 00c2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
199 00c6 0028 cmp r0, #0
|
|
|
|
|
|
200 00c8 DBD1 bne .L67
|
|
|
|
|
|
201 .L12:
|
|
|
|
|
|
105:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
202 .loc 1 105 0
|
|
|
|
|
|
203 00ca 47EC106B vmov d0, r6, r7
|
|
|
|
|
|
204 00ce FFF7FEFF bl sin
|
|
|
|
|
|
205 .LVL24:
|
|
|
|
|
|
206 00d2 3246 mov r2, r6
|
|
|
|
|
|
207 00d4 3B46 mov r3, r7
|
|
|
|
|
|
208 00d6 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
209 00da FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
210 .LVL25:
|
|
|
|
|
|
211 00de DDE90023 ldrd r2, [sp]
|
|
|
|
|
|
212 00e2 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
213 .LVL26:
|
|
|
|
|
|
214 00e6 D3E7 b .L14
|
|
|
|
|
|
215 .LVL27:
|
|
|
|
|
|
216 .L5:
|
|
|
|
|
|
217 .LBE20:
|
|
|
|
|
|
218 .LBE22:
|
|
|
|
|
|
49:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
219 .loc 1 49 0
|
|
|
|
|
|
220 00e8 0029 cmp r1, #0
|
|
|
|
|
|
221 00ea 01F00103 and r3, r1, #1
|
|
|
|
|
|
222 00ee B8BF it lt
|
|
|
|
|
|
223 00f0 5B42 rsblt r3, r3, #0
|
|
|
|
|
|
224 00f2 012B cmp r3, #1
|
|
|
|
|
|
225 00f4 00F0D381 beq .L17
|
|
|
|
|
|
226 .LVL28:
|
|
|
|
|
|
60:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
227 .loc 1 60 0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 7
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 00f8 0029 cmp r1, #0
|
|
|
|
|
|
229 00fa A5DD ble .L1
|
|
|
|
|
|
62:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
230 .loc 1 62 0
|
|
|
|
|
|
231 00fc 481E subs r0, r1, #1
|
|
|
|
|
|
232 .LVL29:
|
|
|
|
|
|
233 00fe FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
234 .LVL30:
|
|
|
|
|
|
235 0102 0022 movs r2, #0
|
|
|
|
|
|
236 0104 994B ldr r3, .L72+44
|
|
|
|
|
|
237 0106 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
238 .LVL31:
|
|
|
|
|
|
239 010a 8DA3 adr r3, .L72
|
|
|
|
|
|
240 010c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
241 0110 0446 mov r4, r0
|
|
|
|
|
|
242 0112 0D46 mov r5, r1
|
|
|
|
|
|
243 0114 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
244 0118 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
245 .LVL32:
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
246 .loc 1 63 0
|
|
|
|
|
|
247 011c 9FED8E9B vldr.64 d9, .L72+24
|
|
|
|
|
|
248 0120 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
60:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
249 .loc 1 60 0
|
|
|
|
|
|
250 0124 4FF00008 mov r8, #0
|
|
|
|
|
|
251 0128 DA46 mov r10, fp
|
|
|
|
|
|
252 012a 07E0 b .L29
|
|
|
|
|
|
253 .LVL33:
|
|
|
|
|
|
254 .L68:
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
255 .loc 1 63 0
|
|
|
|
|
|
256 012c 89ED009B vstr.64 d9, [r9]
|
|
|
|
|
|
257 .L28:
|
|
|
|
|
|
60:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
258 .loc 1 60 0
|
|
|
|
|
|
259 0130 08F10108 add r8, r8, #1
|
|
|
|
|
|
260 .LVL34:
|
|
|
|
|
|
261 0134 C245 cmp r10, r8
|
|
|
|
|
|
262 0136 09F10809 add r9, r9, #8
|
|
|
|
|
|
263 013a 85D0 beq .L1
|
|
|
|
|
|
264 .LVL35:
|
|
|
|
|
|
265 .L29:
|
|
|
|
|
|
62:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
266 .loc 1 62 0
|
|
|
|
|
|
267 013c 4046 mov r0, r8
|
|
|
|
|
|
268 013e FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
269 .LVL36:
|
|
|
|
|
|
270 0142 2246 mov r2, r4
|
|
|
|
|
|
271 0144 2B46 mov r3, r5
|
|
|
|
|
|
272 0146 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
273 .LVL37:
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
274 .loc 1 63 0
|
|
|
|
|
|
275 014a 0022 movs r2, #0
|
|
|
|
|
|
276 014c 0023 movs r3, #0
|
|
|
|
|
|
62:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 8
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
277 .loc 1 62 0
|
|
|
|
|
|
278 014e 0646 mov r6, r0
|
|
|
|
|
|
279 0150 0F46 mov r7, r1
|
|
|
|
|
|
280 .LVL38:
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
281 .loc 1 63 0
|
|
|
|
|
|
282 0152 FFF7FEFF bl __aeabi_dcmpeq
|
|
|
|
|
|
283 .LVL39:
|
|
|
|
|
|
64:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
284 .loc 1 64 0
|
|
|
|
|
|
285 0156 3246 mov r2, r6
|
|
|
|
|
|
286 0158 3B46 mov r3, r7
|
|
|
|
|
|
63:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = cos(OmegaC * Arg * M_PI) / M_PI / Arg + cos(Arg * M_PI);
|
|
|
|
|
|
287 .loc 1 63 0
|
|
|
|
|
|
288 015a 0028 cmp r0, #0
|
|
|
|
|
|
289 015c E6D1 bne .L68
|
|
|
|
|
|
64:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
290 .loc 1 64 0
|
|
|
|
|
|
291 015e DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
292 0162 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
293 .LVL40:
|
|
|
|
|
|
294 0166 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
295 016a FFF7FEFF bl cos
|
|
|
|
|
|
296 .LVL41:
|
|
|
|
|
|
297 016e 74A3 adr r3, .L72
|
|
|
|
|
|
298 0170 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
299 0174 B0EE408A vmov.f32 s16, s0
|
|
|
|
|
|
300 0178 F0EE608A vmov.f32 s17, s1
|
|
|
|
|
|
301 017c 3046 mov r0, r6
|
|
|
|
|
|
302 017e 3946 mov r1, r7
|
|
|
|
|
|
303 0180 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
304 .LVL42:
|
|
|
|
|
|
305 0184 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
306 0188 FFF7FEFF bl cos
|
|
|
|
|
|
307 .LVL43:
|
|
|
|
|
|
308 018c 74A3 adr r3, .L72+32
|
|
|
|
|
|
309 018e D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
310 0192 51EC180B vmov r0, r1, d8
|
|
|
|
|
|
311 0196 8DED000B vstr.64 d0, [sp]
|
|
|
|
|
|
312 019a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
313 .LVL44:
|
|
|
|
|
|
314 019e 3246 mov r2, r6
|
|
|
|
|
|
315 01a0 3B46 mov r3, r7
|
|
|
|
|
|
316 01a2 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
317 .LVL45:
|
|
|
|
|
|
318 01a6 9DED000B vldr.64 d0, [sp]
|
|
|
|
|
|
319 01aa 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
320 01ae FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
321 .LVL46:
|
|
|
|
|
|
322 01b2 C9E90001 strd r0, [r9]
|
|
|
|
|
|
323 01b6 BBE7 b .L28
|
|
|
|
|
|
324 .LVL47:
|
|
|
|
|
|
325 .L6:
|
|
|
|
|
|
70:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
326 .loc 1 70 0
|
|
|
|
|
|
327 01b8 51EC110B vmov r0, r1, d1
|
|
|
|
|
|
328 .LVL48:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 9
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 01bc 0022 movs r2, #0
|
|
|
|
|
|
330 .LVL49:
|
|
|
|
|
|
331 01be 6B4B ldr r3, .L72+44
|
|
|
|
|
|
332 01c0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
333 .LVL50:
|
|
|
|
|
|
334 01c4 DDE90067 ldrd r6, [sp]
|
|
|
|
|
|
335 01c8 0446 mov r4, r0
|
|
|
|
|
|
336 01ca 0D46 mov r5, r1
|
|
|
|
|
|
337 01cc 0246 mov r2, r0
|
|
|
|
|
|
338 01ce 0B46 mov r3, r1
|
|
|
|
|
|
339 01d0 3046 mov r0, r6
|
|
|
|
|
|
340 01d2 3946 mov r1, r7
|
|
|
|
|
|
341 01d4 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
342 .LVL51:
|
|
|
|
|
|
71:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
343 .loc 1 71 0
|
|
|
|
|
|
344 01d8 3246 mov r2, r6
|
|
|
|
|
|
70:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
345 .loc 1 70 0
|
|
|
|
|
|
346 01da CDE90001 strd r0, [sp]
|
|
|
|
|
|
347 .LVL52:
|
|
|
|
|
|
71:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
348 .loc 1 71 0
|
|
|
|
|
|
349 01de 3B46 mov r3, r7
|
|
|
|
|
|
350 01e0 2046 mov r0, r4
|
|
|
|
|
|
351 01e2 2946 mov r1, r5
|
|
|
|
|
|
352 01e4 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
353 .LVL53:
|
|
|
|
|
|
72:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
354 .loc 1 72 0
|
|
|
|
|
|
355 01e8 BBF1000F cmp fp, #0
|
|
|
|
|
|
71:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
356 .loc 1 71 0
|
|
|
|
|
|
357 01ec 0446 mov r4, r0
|
|
|
|
|
|
358 01ee 0D46 mov r5, r1
|
|
|
|
|
|
359 .LVL54:
|
|
|
|
|
|
72:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
360 .loc 1 72 0
|
|
|
|
|
|
361 01f0 7FF72AAF ble .L1
|
|
|
|
|
|
74:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
362 .loc 1 74 0
|
|
|
|
|
|
363 01f4 0BF1FF30 add r0, fp, #-1
|
|
|
|
|
|
364 01f8 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
365 .LVL55:
|
|
|
|
|
|
366 01fc 0022 movs r2, #0
|
|
|
|
|
|
367 01fe 5B4B ldr r3, .L72+44
|
|
|
|
|
|
368 0200 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
369 .LVL56:
|
|
|
|
|
|
370 0204 4EA3 adr r3, .L72
|
|
|
|
|
|
371 0206 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
372 020a 0746 mov r7, r0
|
|
|
|
|
|
373 020c 8846 mov r8, r1
|
|
|
|
|
|
374 020e DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
375 0212 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
376 .LVL57:
|
|
|
|
|
|
377 0216 4AA3 adr r3, .L72
|
|
|
|
|
|
378 0218 D3E90023 ldrd r2, [r3]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 10
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 021c CDE90001 strd r0, [sp]
|
|
|
|
|
|
380 0220 2046 mov r0, r4
|
|
|
|
|
|
381 0222 2946 mov r1, r5
|
|
|
|
|
|
382 0224 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
383 .LVL58:
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
|
|
|
|
|
384 .loc 1 75 0
|
|
|
|
|
|
385 0228 9FED4B9B vldr.64 d9, .L72+24
|
|
|
|
|
|
386 022c CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
72:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
387 .loc 1 72 0
|
|
|
|
|
|
388 0230 0026 movs r6, #0
|
|
|
|
|
|
389 .LVL59:
|
|
|
|
|
|
390 0232 DA46 mov r10, fp
|
|
|
|
|
|
391 0234 07E0 b .L33
|
|
|
|
|
|
392 .LVL60:
|
|
|
|
|
|
393 .L69:
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
|
|
|
|
|
394 .loc 1 75 0
|
|
|
|
|
|
395 0236 89ED009B vstr.64 d9, [r9]
|
|
|
|
|
|
396 .L32:
|
|
|
|
|
|
72:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
397 .loc 1 72 0
|
|
|
|
|
|
398 023a 0136 adds r6, r6, #1
|
|
|
|
|
|
399 .LVL61:
|
|
|
|
|
|
400 023c 5645 cmp r6, r10
|
|
|
|
|
|
401 023e 09F10809 add r9, r9, #8
|
|
|
|
|
|
402 0242 3FF401AF beq .L1
|
|
|
|
|
|
403 .LVL62:
|
|
|
|
|
|
404 .L33:
|
|
|
|
|
|
74:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
405 .loc 1 74 0
|
|
|
|
|
|
406 0246 3046 mov r0, r6
|
|
|
|
|
|
407 0248 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
408 .LVL63:
|
|
|
|
|
|
409 024c 3A46 mov r2, r7
|
|
|
|
|
|
410 024e 4346 mov r3, r8
|
|
|
|
|
|
411 0250 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
412 .LVL64:
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
|
|
|
|
|
413 .loc 1 75 0
|
|
|
|
|
|
414 0254 0022 movs r2, #0
|
|
|
|
|
|
415 0256 0023 movs r3, #0
|
|
|
|
|
|
74:Core/Src/FIRFilterCode.c **** if(Arg == 0.0)FirCoeff[j] = 0.0;
|
|
|
|
|
|
416 .loc 1 74 0
|
|
|
|
|
|
417 0258 0446 mov r4, r0
|
|
|
|
|
|
418 025a 0D46 mov r5, r1
|
|
|
|
|
|
419 .LVL65:
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
|
|
|
|
|
420 .loc 1 75 0
|
|
|
|
|
|
421 025c FFF7FEFF bl __aeabi_dcmpeq
|
|
|
|
|
|
422 .LVL66:
|
|
|
|
|
|
76:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
423 .loc 1 76 0
|
|
|
|
|
|
424 0260 2246 mov r2, r4
|
|
|
|
|
|
425 0262 2B46 mov r3, r5
|
|
|
|
|
|
75:Core/Src/FIRFilterCode.c **** else FirCoeff[j] = ( cos(OmegaLow * Arg * M_PI) - cos(OmegaHigh * Arg * M_PI) ) / M_PI / Arg
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 11
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 .loc 1 75 0
|
|
|
|
|
|
427 0264 0028 cmp r0, #0
|
|
|
|
|
|
428 0266 E6D1 bne .L69
|
|
|
|
|
|
76:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
429 .loc 1 76 0
|
|
|
|
|
|
430 0268 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
431 026c FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
432 .LVL67:
|
|
|
|
|
|
433 0270 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
434 0274 FFF7FEFF bl cos
|
|
|
|
|
|
435 .LVL68:
|
|
|
|
|
|
436 0278 2246 mov r2, r4
|
|
|
|
|
|
437 027a 2B46 mov r3, r5
|
|
|
|
|
|
438 027c DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
439 0280 B0EE408A vmov.f32 s16, s0
|
|
|
|
|
|
440 0284 F0EE608A vmov.f32 s17, s1
|
|
|
|
|
|
441 0288 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
442 .LVL69:
|
|
|
|
|
|
443 028c 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
444 0290 FFF7FEFF bl cos
|
|
|
|
|
|
445 .LVL70:
|
|
|
|
|
|
446 0294 51EC180B vmov r0, r1, d8
|
|
|
|
|
|
447 0298 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
448 029c FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
449 .LVL71:
|
|
|
|
|
|
450 02a0 2FA3 adr r3, .L72+32
|
|
|
|
|
|
451 02a2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
452 02a6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
453 .LVL72:
|
|
|
|
|
|
454 02aa 2246 mov r2, r4
|
|
|
|
|
|
455 02ac 2B46 mov r3, r5
|
|
|
|
|
|
456 02ae FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
457 .LVL73:
|
|
|
|
|
|
458 02b2 C9E90001 strd r0, [r9]
|
|
|
|
|
|
459 02b6 C0E7 b .L32
|
|
|
|
|
|
460 .LVL74:
|
|
|
|
|
|
461 .L7:
|
|
|
|
|
|
81:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
462 .loc 1 81 0
|
|
|
|
|
|
463 02b8 51EC110B vmov r0, r1, d1
|
|
|
|
|
|
464 .LVL75:
|
|
|
|
|
|
465 02bc 0022 movs r2, #0
|
|
|
|
|
|
466 .LVL76:
|
|
|
|
|
|
467 02be 2B4B ldr r3, .L72+44
|
|
|
|
|
|
468 02c0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
469 .LVL77:
|
|
|
|
|
|
470 02c4 DDE90067 ldrd r6, [sp]
|
|
|
|
|
|
471 02c8 0446 mov r4, r0
|
|
|
|
|
|
472 02ca 0D46 mov r5, r1
|
|
|
|
|
|
473 02cc 0246 mov r2, r0
|
|
|
|
|
|
474 02ce 0B46 mov r3, r1
|
|
|
|
|
|
475 02d0 3046 mov r0, r6
|
|
|
|
|
|
476 02d2 3946 mov r1, r7
|
|
|
|
|
|
477 02d4 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
478 .LVL78:
|
|
|
|
|
|
82:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
479 .loc 1 82 0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 12
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 02d8 3246 mov r2, r6
|
|
|
|
|
|
81:Core/Src/FIRFilterCode.c **** OmegaHigh = OmegaC + BW/2.0;
|
|
|
|
|
|
481 .loc 1 81 0
|
|
|
|
|
|
482 02da CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
483 .LVL79:
|
|
|
|
|
|
82:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
484 .loc 1 82 0
|
|
|
|
|
|
485 02de 3B46 mov r3, r7
|
|
|
|
|
|
486 02e0 2046 mov r0, r4
|
|
|
|
|
|
487 02e2 2946 mov r1, r5
|
|
|
|
|
|
488 02e4 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
489 .LVL80:
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
490 .loc 1 83 0
|
|
|
|
|
|
491 02e8 BBF1000F cmp fp, #0
|
|
|
|
|
|
82:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
492 .loc 1 82 0
|
|
|
|
|
|
493 02ec 0446 mov r4, r0
|
|
|
|
|
|
494 02ee 0D46 mov r5, r1
|
|
|
|
|
|
495 02f0 CDE90445 strd r4, [sp, #16]
|
|
|
|
|
|
496 .LVL81:
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
497 .loc 1 83 0
|
|
|
|
|
|
498 02f4 7FF7A8AE ble .L1
|
|
|
|
|
|
85:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaHigh * Sinc(OmegaHigh * Arg * M_PI) - OmegaLow * Sinc(
|
|
|
|
|
|
499 .loc 1 85 0
|
|
|
|
|
|
500 02f8 0BF1FF30 add r0, fp, #-1
|
|
|
|
|
|
501 02fc FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
502 .LVL82:
|
|
|
|
|
|
503 0300 0022 movs r2, #0
|
|
|
|
|
|
504 0302 1A4B ldr r3, .L72+44
|
|
|
|
|
|
505 0304 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
506 .LVL83:
|
|
|
|
|
|
507 0308 0DA3 adr r3, .L72
|
|
|
|
|
|
508 030a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
509 030e CDE90601 strd r0, [sp, #24]
|
|
|
|
|
|
510 0312 2046 mov r0, r4
|
|
|
|
|
|
511 0314 2946 mov r1, r5
|
|
|
|
|
|
512 0316 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
513 .LVL84:
|
|
|
|
|
|
514 031a 09A3 adr r3, .L72
|
|
|
|
|
|
515 031c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
516 0320 CDE90801 strd r0, [sp, #32]
|
|
|
|
|
|
517 0324 DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
518 0328 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
519 .LVL85:
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
520 .loc 1 83 0
|
|
|
|
|
|
521 032c 4FF0000A mov r10, #0
|
|
|
|
|
|
522 0330 CDE90A01 strd r0, [sp, #40]
|
|
|
|
|
|
523 0334 CDF80090 str r9, [sp]
|
|
|
|
|
|
524 .LVL86:
|
|
|
|
|
|
525 0338 6BE0 b .L43
|
|
|
|
|
|
526 .L73:
|
|
|
|
|
|
527 033a 00BFAFF3 .align 3
|
|
|
|
|
|
527 0080
|
|
|
|
|
|
528 .L72:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 13
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
529 0340 182D4454 .word 1413754136
|
|
|
|
|
|
530 0344 FB210940 .word 1074340347
|
|
|
|
|
|
531 0348 F168E388 .word 2296604913
|
|
|
|
|
|
532 034c B5F8E4BE .word -1092290379
|
|
|
|
|
|
533 0350 F168E388 .word 2296604913
|
|
|
|
|
|
534 0354 B5F8E43E .word 1055193269
|
|
|
|
|
|
535 0358 00000000 .word 0
|
|
|
|
|
|
536 035c 00000000 .word 0
|
|
|
|
|
|
537 0360 83C8C96D .word 1841940611
|
|
|
|
|
|
538 0364 305FD43F .word 1070882608
|
|
|
|
|
|
539 0368 0000F03F .word 1072693248
|
|
|
|
|
|
540 036c 0000E03F .word 1071644672
|
|
|
|
|
|
541 .LVL87:
|
|
|
|
|
|
542 .L70:
|
|
|
|
|
|
543 .LBB23:
|
|
|
|
|
|
544 .LBB24:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
545 .loc 1 104 0
|
|
|
|
|
|
546 0370 8FA3 adr r3, .L74+8
|
|
|
|
|
|
547 0372 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
548 0376 2046 mov r0, r4
|
|
|
|
|
|
549 0378 2946 mov r1, r5
|
|
|
|
|
|
550 037a FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
551 .LVL88:
|
|
|
|
|
|
552 037e 0028 cmp r0, #0
|
|
|
|
|
|
553 0380 5ED0 beq .L34
|
|
|
|
|
|
554 0382 8F4F ldr r7, .L74+24
|
|
|
|
|
|
555 0384 0026 movs r6, #0
|
|
|
|
|
|
556 .L36:
|
|
|
|
|
|
557 .LVL89:
|
|
|
|
|
|
558 .LBE24:
|
|
|
|
|
|
559 .LBE23:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
560 .loc 1 86 0
|
|
|
|
|
|
561 0386 4246 mov r2, r8
|
|
|
|
|
|
562 0388 4B46 mov r3, r9
|
|
|
|
|
|
563 038a DDE90801 ldrd r0, [sp, #32]
|
|
|
|
|
|
564 038e FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
565 .LVL90:
|
|
|
|
|
|
566 .LBB27:
|
|
|
|
|
|
567 .LBB28:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
568 .loc 1 104 0
|
|
|
|
|
|
569 0392 85A3 adr r3, .L74
|
|
|
|
|
|
570 0394 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
571 .LBE28:
|
|
|
|
|
|
572 .LBE27:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
573 .loc 1 86 0
|
|
|
|
|
|
574 0398 0446 mov r4, r0
|
|
|
|
|
|
575 039a 0D46 mov r5, r1
|
|
|
|
|
|
576 .LVL91:
|
|
|
|
|
|
577 .LBB31:
|
|
|
|
|
|
578 .LBB29:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
579 .loc 1 104 0
|
|
|
|
|
|
580 039c FFF7FEFF bl __aeabi_dcmpgt
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 14
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
581 .LVL92:
|
|
|
|
|
|
582 03a0 0028 cmp r0, #0
|
|
|
|
|
|
583 03a2 6BD0 beq .L37
|
|
|
|
|
|
584 03a4 82A3 adr r3, .L74+8
|
|
|
|
|
|
585 03a6 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
586 03aa 2046 mov r0, r4
|
|
|
|
|
|
587 03ac 2946 mov r1, r5
|
|
|
|
|
|
588 03ae FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
589 .LVL93:
|
|
|
|
|
|
590 03b2 0028 cmp r0, #0
|
|
|
|
|
|
591 03b4 62D0 beq .L37
|
|
|
|
|
|
592 03b6 DDE90423 ldrd r2, [sp, #16]
|
|
|
|
|
|
593 .L39:
|
|
|
|
|
|
594 .LVL94:
|
|
|
|
|
|
595 .LBE29:
|
|
|
|
|
|
596 .LBE31:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
597 .loc 1 86 0
|
|
|
|
|
|
598 03ba 3046 mov r0, r6
|
|
|
|
|
|
599 03bc 3946 mov r1, r7
|
|
|
|
|
|
600 03be FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
601 .LVL95:
|
|
|
|
|
|
602 03c2 4246 mov r2, r8
|
|
|
|
|
|
603 03c4 4B46 mov r3, r9
|
|
|
|
|
|
604 03c6 0646 mov r6, r0
|
|
|
|
|
|
605 03c8 0F46 mov r7, r1
|
|
|
|
|
|
606 03ca DDE90A01 ldrd r0, [sp, #40]
|
|
|
|
|
|
607 03ce FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
608 .LVL96:
|
|
|
|
|
|
609 .LBB32:
|
|
|
|
|
|
610 .LBB33:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
611 .loc 1 104 0
|
|
|
|
|
|
612 03d2 75A3 adr r3, .L74
|
|
|
|
|
|
613 03d4 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
614 .LBE33:
|
|
|
|
|
|
615 .LBE32:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
616 .loc 1 86 0
|
|
|
|
|
|
617 03d8 0446 mov r4, r0
|
|
|
|
|
|
618 03da 0D46 mov r5, r1
|
|
|
|
|
|
619 .LVL97:
|
|
|
|
|
|
620 .LBB36:
|
|
|
|
|
|
621 .LBB34:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
622 .loc 1 104 0
|
|
|
|
|
|
623 03dc FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
624 .LVL98:
|
|
|
|
|
|
625 03e0 0028 cmp r0, #0
|
|
|
|
|
|
626 03e2 3AD0 beq .L40
|
|
|
|
|
|
627 03e4 72A3 adr r3, .L74+8
|
|
|
|
|
|
628 03e6 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
629 03ea 2046 mov r0, r4
|
|
|
|
|
|
630 03ec 2946 mov r1, r5
|
|
|
|
|
|
631 03ee FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
632 .LVL99:
|
|
|
|
|
|
633 03f2 90B3 cbz r0, .L40
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 15
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
634 03f4 DDE90223 ldrd r2, [sp, #8]
|
|
|
|
|
|
635 .L42:
|
|
|
|
|
|
636 .LVL100:
|
|
|
|
|
|
637 .LBE34:
|
|
|
|
|
|
638 .LBE36:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
639 .loc 1 86 0
|
|
|
|
|
|
640 03f8 3046 mov r0, r6
|
|
|
|
|
|
641 03fa 3946 mov r1, r7
|
|
|
|
|
|
642 03fc FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
643 .LVL101:
|
|
|
|
|
|
644 0400 009B ldr r3, [sp]
|
|
|
|
|
|
645 0402 E3E80201 strd r0, [r3], #8
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
646 .loc 1 83 0
|
|
|
|
|
|
647 0406 0AF1010A add r10, r10, #1
|
|
|
|
|
|
648 .LVL102:
|
|
|
|
|
|
649 040a D345 cmp fp, r10
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
650 .loc 1 86 0
|
|
|
|
|
|
651 040c 0093 str r3, [sp]
|
|
|
|
|
|
83:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
652 .loc 1 83 0
|
|
|
|
|
|
653 040e 3FF41BAE beq .L1
|
|
|
|
|
|
654 .LVL103:
|
|
|
|
|
|
655 .L43:
|
|
|
|
|
|
85:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaHigh * Sinc(OmegaHigh * Arg * M_PI) - OmegaLow * Sinc(
|
|
|
|
|
|
656 .loc 1 85 0
|
|
|
|
|
|
657 0412 5046 mov r0, r10
|
|
|
|
|
|
658 0414 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
659 .LVL104:
|
|
|
|
|
|
660 0418 DDE90623 ldrd r2, [sp, #24]
|
|
|
|
|
|
661 041c FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
662 .LVL105:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
663 .loc 1 86 0
|
|
|
|
|
|
664 0420 65A3 adr r3, .L74+16
|
|
|
|
|
|
665 0422 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
85:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaHigh * Sinc(OmegaHigh * Arg * M_PI) - OmegaLow * Sinc(
|
|
|
|
|
|
666 .loc 1 85 0
|
|
|
|
|
|
667 0426 8046 mov r8, r0
|
|
|
|
|
|
668 0428 8946 mov r9, r1
|
|
|
|
|
|
669 .LVL106:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
670 .loc 1 86 0
|
|
|
|
|
|
671 042a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
672 .LVL107:
|
|
|
|
|
|
673 .LBB37:
|
|
|
|
|
|
674 .LBB25:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
675 .loc 1 104 0
|
|
|
|
|
|
676 042e 5EA3 adr r3, .L74
|
|
|
|
|
|
677 0430 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
678 .LBE25:
|
|
|
|
|
|
679 .LBE37:
|
|
|
|
|
|
86:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
680 .loc 1 86 0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 16
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
681 0434 0446 mov r4, r0
|
|
|
|
|
|
682 0436 0D46 mov r5, r1
|
|
|
|
|
|
683 .LVL108:
|
|
|
|
|
|
684 .LBB38:
|
|
|
|
|
|
685 .LBB26:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
686 .loc 1 104 0
|
|
|
|
|
|
687 0438 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
688 .LVL109:
|
|
|
|
|
|
689 043c 0028 cmp r0, #0
|
|
|
|
|
|
690 043e 97D1 bne .L70
|
|
|
|
|
|
691 .L34:
|
|
|
|
|
|
692 .loc 1 105 0
|
|
|
|
|
|
693 0440 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
694 0444 FFF7FEFF bl sin
|
|
|
|
|
|
695 .LVL110:
|
|
|
|
|
|
696 0448 2246 mov r2, r4
|
|
|
|
|
|
697 044a 2B46 mov r3, r5
|
|
|
|
|
|
698 044c 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
699 0450 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
700 .LVL111:
|
|
|
|
|
|
701 0454 0646 mov r6, r0
|
|
|
|
|
|
702 0456 0F46 mov r7, r1
|
|
|
|
|
|
703 0458 95E7 b .L36
|
|
|
|
|
|
704 .LVL112:
|
|
|
|
|
|
705 .L40:
|
|
|
|
|
|
706 .LBE26:
|
|
|
|
|
|
707 .LBE38:
|
|
|
|
|
|
708 .LBB39:
|
|
|
|
|
|
709 .LBB35:
|
|
|
|
|
|
710 045a 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
711 045e FFF7FEFF bl sin
|
|
|
|
|
|
712 .LVL113:
|
|
|
|
|
|
713 0462 2246 mov r2, r4
|
|
|
|
|
|
714 0464 2B46 mov r3, r5
|
|
|
|
|
|
715 0466 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
716 046a FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
717 .LVL114:
|
|
|
|
|
|
718 046e DDE90223 ldrd r2, [sp, #8]
|
|
|
|
|
|
719 0472 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
720 .LVL115:
|
|
|
|
|
|
721 0476 0246 mov r2, r0
|
|
|
|
|
|
722 0478 0B46 mov r3, r1
|
|
|
|
|
|
723 047a BDE7 b .L42
|
|
|
|
|
|
724 .LVL116:
|
|
|
|
|
|
725 .L37:
|
|
|
|
|
|
726 .LBE35:
|
|
|
|
|
|
727 .LBE39:
|
|
|
|
|
|
728 .LBB40:
|
|
|
|
|
|
729 .LBB30:
|
|
|
|
|
|
730 047c 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
731 0480 FFF7FEFF bl sin
|
|
|
|
|
|
732 .LVL117:
|
|
|
|
|
|
733 0484 2246 mov r2, r4
|
|
|
|
|
|
734 0486 2B46 mov r3, r5
|
|
|
|
|
|
735 0488 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
736 048c FFF7FEFF bl __aeabi_ddiv
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 17
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
737 .LVL118:
|
|
|
|
|
|
738 0490 DDE90423 ldrd r2, [sp, #16]
|
|
|
|
|
|
739 0494 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
740 .LVL119:
|
|
|
|
|
|
741 0498 0246 mov r2, r0
|
|
|
|
|
|
742 049a 0B46 mov r3, r1
|
|
|
|
|
|
743 049c 8DE7 b .L39
|
|
|
|
|
|
744 .LVL120:
|
|
|
|
|
|
745 .L17:
|
|
|
|
|
|
746 .LBE30:
|
|
|
|
|
|
747 .LBE40:
|
|
|
|
|
|
51:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
748 .loc 1 51 0
|
|
|
|
|
|
749 049e 0029 cmp r1, #0
|
|
|
|
|
|
750 04a0 7FF7D2AD ble .L1
|
|
|
|
|
|
53:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
751 .loc 1 53 0
|
|
|
|
|
|
752 04a4 481E subs r0, r1, #1
|
|
|
|
|
|
753 .LVL121:
|
|
|
|
|
|
754 04a6 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
755 .LVL122:
|
|
|
|
|
|
756 04aa 0022 movs r2, #0
|
|
|
|
|
|
757 04ac 454B ldr r3, .L74+28
|
|
|
|
|
|
758 04ae FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
759 .LVL123:
|
|
|
|
|
|
760 04b2 41A3 adr r3, .L74+16
|
|
|
|
|
|
761 04b4 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
762 04b8 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
763 04bc DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
764 04c0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
765 .LVL124:
|
|
|
|
|
|
51:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
766 .loc 1 51 0
|
|
|
|
|
|
767 04c4 4FF00008 mov r8, #0
|
|
|
|
|
|
768 04c8 CDE90401 strd r0, [sp, #16]
|
|
|
|
|
|
769 04cc CDF818B0 str fp, [sp, #24]
|
|
|
|
|
|
770 04d0 2FE0 b .L25
|
|
|
|
|
|
771 .LVL125:
|
|
|
|
|
|
772 .L71:
|
|
|
|
|
|
773 .LBB41:
|
|
|
|
|
|
774 .LBB42:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
775 .loc 1 104 0
|
|
|
|
|
|
776 04d2 2046 mov r0, r4
|
|
|
|
|
|
777 04d4 2946 mov r1, r5
|
|
|
|
|
|
778 04d6 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
779 .LVL126:
|
|
|
|
|
|
780 04da 0028 cmp r0, #0
|
|
|
|
|
|
781 04dc 43D0 beq .L19
|
|
|
|
|
|
782 04de DFF8E0B0 ldr fp, .L74+24
|
|
|
|
|
|
783 04e2 4FF0000A mov r10, #0
|
|
|
|
|
|
784 .L21:
|
|
|
|
|
|
785 .LVL127:
|
|
|
|
|
|
786 .LBE42:
|
|
|
|
|
|
787 .LBE41:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
788 .loc 1 54 0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 18
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
789 04e6 DDE90423 ldrd r2, [sp, #16]
|
|
|
|
|
|
790 04ea 3046 mov r0, r6
|
|
|
|
|
|
791 04ec 3946 mov r1, r7
|
|
|
|
|
|
792 04ee FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
793 .LVL128:
|
|
|
|
|
|
794 .LBB45:
|
|
|
|
|
|
795 .LBB46:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
796 .loc 1 104 0
|
|
|
|
|
|
797 04f2 2DA3 adr r3, .L74
|
|
|
|
|
|
798 04f4 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
799 .LBE46:
|
|
|
|
|
|
800 .LBE45:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
801 .loc 1 54 0
|
|
|
|
|
|
802 04f8 0446 mov r4, r0
|
|
|
|
|
|
803 04fa 0D46 mov r5, r1
|
|
|
|
|
|
804 .LVL129:
|
|
|
|
|
|
805 .LBB49:
|
|
|
|
|
|
806 .LBB47:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
807 .loc 1 104 0
|
|
|
|
|
|
808 04fc FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
809 .LVL130:
|
|
|
|
|
|
810 0500 2BA3 adr r3, .L74+8
|
|
|
|
|
|
811 0502 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
812 0506 0028 cmp r0, #0
|
|
|
|
|
|
813 0508 3AD0 beq .L22
|
|
|
|
|
|
814 050a 2046 mov r0, r4
|
|
|
|
|
|
815 050c 2946 mov r1, r5
|
|
|
|
|
|
816 050e FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
817 .LVL131:
|
|
|
|
|
|
818 0512 0028 cmp r0, #0
|
|
|
|
|
|
819 0514 34D0 beq .L22
|
|
|
|
|
|
820 0516 DDE90023 ldrd r2, [sp]
|
|
|
|
|
|
821 .L24:
|
|
|
|
|
|
822 .LVL132:
|
|
|
|
|
|
823 .LBE47:
|
|
|
|
|
|
824 .LBE49:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
825 .loc 1 54 0
|
|
|
|
|
|
826 051a 5046 mov r0, r10
|
|
|
|
|
|
827 051c 5946 mov r1, fp
|
|
|
|
|
|
828 051e FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
829 .LVL133:
|
|
|
|
|
|
51:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
830 .loc 1 51 0
|
|
|
|
|
|
831 0522 069B ldr r3, [sp, #24]
|
|
|
|
|
|
832 0524 08F10108 add r8, r8, #1
|
|
|
|
|
|
833 .LVL134:
|
|
|
|
|
|
834 0528 9845 cmp r8, r3
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
835 .loc 1 54 0
|
|
|
|
|
|
836 052a E9E80201 strd r0, [r9], #8
|
|
|
|
|
|
51:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
837 .loc 1 51 0
|
|
|
|
|
|
838 052e 3FF48BAD beq .L1
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 19
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
839 .LVL135:
|
|
|
|
|
|
840 .L25:
|
|
|
|
|
|
53:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
841 .loc 1 53 0
|
|
|
|
|
|
842 0532 4046 mov r0, r8
|
|
|
|
|
|
843 0534 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
844 .LVL136:
|
|
|
|
|
|
845 0538 DDE90223 ldrd r2, [sp, #8]
|
|
|
|
|
|
846 053c FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
847 .LVL137:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
848 .loc 1 54 0
|
|
|
|
|
|
849 0540 1DA3 adr r3, .L74+16
|
|
|
|
|
|
850 0542 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
53:Core/Src/FIRFilterCode.c **** FirCoeff[j] = Sinc(Arg * M_PI) - OmegaC * Sinc(OmegaC * Arg * M_PI);
|
|
|
|
|
|
851 .loc 1 53 0
|
|
|
|
|
|
852 0546 0646 mov r6, r0
|
|
|
|
|
|
853 0548 0F46 mov r7, r1
|
|
|
|
|
|
854 .LVL138:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
855 .loc 1 54 0
|
|
|
|
|
|
856 054a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
857 .LVL139:
|
|
|
|
|
|
858 .LBB50:
|
|
|
|
|
|
859 .LBB43:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
860 .loc 1 104 0
|
|
|
|
|
|
861 054e 16A3 adr r3, .L74
|
|
|
|
|
|
862 0550 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
863 .LBE43:
|
|
|
|
|
|
864 .LBE50:
|
|
|
|
|
|
54:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
865 .loc 1 54 0
|
|
|
|
|
|
866 0554 0446 mov r4, r0
|
|
|
|
|
|
867 0556 0D46 mov r5, r1
|
|
|
|
|
|
868 .LVL140:
|
|
|
|
|
|
869 .LBB51:
|
|
|
|
|
|
870 .LBB44:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
871 .loc 1 104 0
|
|
|
|
|
|
872 0558 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
873 .LVL141:
|
|
|
|
|
|
874 055c 14A3 adr r3, .L74+8
|
|
|
|
|
|
875 055e D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
876 0562 0028 cmp r0, #0
|
|
|
|
|
|
877 0564 B5D1 bne .L71
|
|
|
|
|
|
878 .L19:
|
|
|
|
|
|
879 .loc 1 105 0
|
|
|
|
|
|
880 0566 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
881 056a FFF7FEFF bl sin
|
|
|
|
|
|
882 .LVL142:
|
|
|
|
|
|
883 056e 2246 mov r2, r4
|
|
|
|
|
|
884 0570 2B46 mov r3, r5
|
|
|
|
|
|
885 0572 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
886 0576 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
887 .LVL143:
|
|
|
|
|
|
888 057a 8246 mov r10, r0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 20
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
889 057c 8B46 mov fp, r1
|
|
|
|
|
|
890 057e B2E7 b .L21
|
|
|
|
|
|
891 .LVL144:
|
|
|
|
|
|
892 .L22:
|
|
|
|
|
|
893 .LBE44:
|
|
|
|
|
|
894 .LBE51:
|
|
|
|
|
|
895 .LBB52:
|
|
|
|
|
|
896 .LBB48:
|
|
|
|
|
|
897 0580 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
898 0584 FFF7FEFF bl sin
|
|
|
|
|
|
899 .LVL145:
|
|
|
|
|
|
900 0588 2246 mov r2, r4
|
|
|
|
|
|
901 058a 2B46 mov r3, r5
|
|
|
|
|
|
902 058c 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
903 0590 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
904 .LVL146:
|
|
|
|
|
|
905 0594 DDE90023 ldrd r2, [sp]
|
|
|
|
|
|
906 0598 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
907 .LVL147:
|
|
|
|
|
|
908 059c 0246 mov r2, r0
|
|
|
|
|
|
909 059e 0B46 mov r3, r1
|
|
|
|
|
|
910 05a0 BBE7 b .L24
|
|
|
|
|
|
911 .L75:
|
|
|
|
|
|
912 05a2 00BFAFF3 .align 3
|
|
|
|
|
|
912 0080
|
|
|
|
|
|
913 .L74:
|
|
|
|
|
|
914 05a8 F168E388 .word 2296604913
|
|
|
|
|
|
915 05ac B5F8E4BE .word -1092290379
|
|
|
|
|
|
916 05b0 F168E388 .word 2296604913
|
|
|
|
|
|
917 05b4 B5F8E43E .word 1055193269
|
|
|
|
|
|
918 05b8 182D4454 .word 1413754136
|
|
|
|
|
|
919 05bc FB210940 .word 1074340347
|
|
|
|
|
|
920 05c0 0000F03F .word 1072693248
|
|
|
|
|
|
921 05c4 0000E03F .word 1071644672
|
|
|
|
|
|
922 .LBE48:
|
|
|
|
|
|
923 .LBE52:
|
|
|
|
|
|
924 .cfi_endproc
|
|
|
|
|
|
925 .LFE0:
|
|
|
|
|
|
927 .section .text.Sinc,"ax",%progbits
|
|
|
|
|
|
928 .align 1
|
|
|
|
|
|
929 .p2align 2,,3
|
|
|
|
|
|
930 .global Sinc
|
|
|
|
|
|
931 .syntax unified
|
|
|
|
|
|
932 .thumb
|
|
|
|
|
|
933 .thumb_func
|
|
|
|
|
|
934 .fpu fpv4-sp-d16
|
|
|
|
|
|
936 Sinc:
|
|
|
|
|
|
937 .LFB1:
|
|
|
|
|
|
103:Core/Src/FIRFilterCode.c **** if(x > -1.0E-5 && x < 1.0E-5)return(1.0);
|
|
|
|
|
|
938 .loc 1 103 0
|
|
|
|
|
|
939 .cfi_startproc
|
|
|
|
|
|
940 @ args = 0, pretend = 0, frame = 0
|
|
|
|
|
|
941 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
942 .LVL148:
|
|
|
|
|
|
943 0000 38B5 push {r3, r4, r5, lr}
|
|
|
|
|
|
944 .LCFI6:
|
|
|
|
|
|
945 .cfi_def_cfa_offset 16
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 21
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
946 .cfi_offset 3, -16
|
|
|
|
|
|
947 .cfi_offset 4, -12
|
|
|
|
|
|
948 .cfi_offset 5, -8
|
|
|
|
|
|
949 .cfi_offset 14, -4
|
|
|
|
|
|
103:Core/Src/FIRFilterCode.c **** if(x > -1.0E-5 && x < 1.0E-5)return(1.0);
|
|
|
|
|
|
950 .loc 1 103 0
|
|
|
|
|
|
951 0002 55EC104B vmov r4, r5, d0
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
952 .loc 1 104 0
|
|
|
|
|
|
953 0006 12A3 adr r3, .L83+8
|
|
|
|
|
|
954 0008 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
955 000c 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
956 0010 2946 mov r1, r5
|
|
|
|
|
|
957 0012 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
958 .LVL149:
|
|
|
|
|
|
959 0016 38B1 cbz r0, .L77
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
960 .loc 1 104 0 is_stmt 0 discriminator 1
|
|
|
|
|
|
961 0018 0FA3 adr r3, .L83+16
|
|
|
|
|
|
962 001a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
963 001e 2046 mov r0, r4
|
|
|
|
|
|
964 0020 2946 mov r1, r5
|
|
|
|
|
|
965 0022 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
966 .LVL150:
|
|
|
|
|
|
967 0026 60B9 cbnz r0, .L80
|
|
|
|
|
|
968 .L77:
|
|
|
|
|
|
969 .loc 1 105 0 is_stmt 1
|
|
|
|
|
|
970 0028 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
971 002c FFF7FEFF bl sin
|
|
|
|
|
|
972 .LVL151:
|
|
|
|
|
|
973 0030 2246 mov r2, r4
|
|
|
|
|
|
974 0032 2B46 mov r3, r5
|
|
|
|
|
|
975 0034 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
976 0038 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
977 .LVL152:
|
|
|
|
|
|
978 003c 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
106:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
979 .loc 1 106 0
|
|
|
|
|
|
980 0040 38BD pop {r3, r4, r5, pc}
|
|
|
|
|
|
981 .LVL153:
|
|
|
|
|
|
982 .L80:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
983 .loc 1 104 0
|
|
|
|
|
|
984 0042 9FED010B vldr.64 d0, .L83
|
|
|
|
|
|
985 .loc 1 106 0
|
|
|
|
|
|
986 0046 38BD pop {r3, r4, r5, pc}
|
|
|
|
|
|
987 .LVL154:
|
|
|
|
|
|
988 .L84:
|
|
|
|
|
|
989 .align 3
|
|
|
|
|
|
990 .L83:
|
|
|
|
|
|
991 0048 00000000 .word 0
|
|
|
|
|
|
992 004c 0000F03F .word 1072693248
|
|
|
|
|
|
993 0050 F168E388 .word 2296604913
|
|
|
|
|
|
994 0054 B5F8E4BE .word -1092290379
|
|
|
|
|
|
995 0058 F168E388 .word 2296604913
|
|
|
|
|
|
996 005c B5F8E43E .word 1055193269
|
|
|
|
|
|
997 .cfi_endproc
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 22
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
998 .LFE1:
|
|
|
|
|
|
1000 .section .text.Bessel,"ax",%progbits
|
|
|
|
|
|
1001 .align 1
|
|
|
|
|
|
1002 .p2align 2,,3
|
|
|
|
|
|
1003 .global Bessel
|
|
|
|
|
|
1004 .syntax unified
|
|
|
|
|
|
1005 .thumb
|
|
|
|
|
|
1006 .thumb_func
|
|
|
|
|
|
1007 .fpu fpv4-sp-d16
|
|
|
|
|
|
1009 Bessel:
|
|
|
|
|
|
1010 .LFB2:
|
|
|
|
|
|
107:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
108:Core/Src/FIRFilterCode.c **** // This gets used with the Kaiser window.
|
|
|
|
|
|
109:Core/Src/FIRFilterCode.c **** double Bessel(double x)
|
|
|
|
|
|
110:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
1011 .loc 1 110 0
|
|
|
|
|
|
1012 .cfi_startproc
|
|
|
|
|
|
1013 @ args = 0, pretend = 0, frame = 0
|
|
|
|
|
|
1014 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
1015 .LVL155:
|
|
|
|
|
|
1016 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr}
|
|
|
|
|
|
1017 .LCFI7:
|
|
|
|
|
|
1018 .cfi_def_cfa_offset 32
|
|
|
|
|
|
1019 .cfi_offset 4, -32
|
|
|
|
|
|
1020 .cfi_offset 5, -28
|
|
|
|
|
|
1021 .cfi_offset 6, -24
|
|
|
|
|
|
1022 .cfi_offset 7, -20
|
|
|
|
|
|
1023 .cfi_offset 8, -16
|
|
|
|
|
|
1024 .cfi_offset 9, -12
|
|
|
|
|
|
1025 .cfi_offset 10, -8
|
|
|
|
|
|
1026 .cfi_offset 14, -4
|
|
|
|
|
|
111:Core/Src/FIRFilterCode.c **** double Sum=0.0, XtoIpower;
|
|
|
|
|
|
112:Core/Src/FIRFilterCode.c **** int i, j, Factorial;
|
|
|
|
|
|
113:Core/Src/FIRFilterCode.c **** for(i=1; i<10; i++)
|
|
|
|
|
|
114:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** XtoIpower = pow(x/2.0, (double)i);
|
|
|
|
|
|
1027 .loc 1 115 0
|
|
|
|
|
|
1028 0004 0022 movs r2, #0
|
|
|
|
|
|
110:Core/Src/FIRFilterCode.c **** double Sum=0.0, XtoIpower;
|
|
|
|
|
|
1029 .loc 1 110 0
|
|
|
|
|
|
1030 0006 2DED028B vpush.64 {d8}
|
|
|
|
|
|
1031 .LCFI8:
|
|
|
|
|
|
1032 .cfi_def_cfa_offset 40
|
|
|
|
|
|
1033 .cfi_offset 80, -40
|
|
|
|
|
|
1034 .cfi_offset 81, -36
|
|
|
|
|
|
1035 .loc 1 115 0
|
|
|
|
|
|
1036 000a 534B ldr r3, .L109+56
|
|
|
|
|
|
1037 000c 524F ldr r7, .L109+56
|
|
|
|
|
|
1038 000e 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
1039 0012 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1040 .LVL156:
|
|
|
|
|
|
116:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** for(j=1; j<=i; j++)Factorial *= j;
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1041 .loc 1 118 0
|
|
|
|
|
|
1042 0016 42A5 adr r5, .L109
|
|
|
|
|
|
1043 0018 D5E90045 ldrd r4, [r5]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 23
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1044 .loc 1 115 0
|
|
|
|
|
|
1045 001c 41EC180B vmov d8, r0, r1
|
|
|
|
|
|
1046 0020 4FF0010A mov r10, #1
|
|
|
|
|
|
111:Core/Src/FIRFilterCode.c **** int i, j, Factorial;
|
|
|
|
|
|
1047 .loc 1 111 0
|
|
|
|
|
|
1048 0024 4FF00008 mov r8, #0
|
|
|
|
|
|
1049 0028 4FF00009 mov r9, #0
|
|
|
|
|
|
1050 002c 0026 movs r6, #0
|
|
|
|
|
|
1051 .LVL157:
|
|
|
|
|
|
1052 .L86:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1053 .loc 1 115 0
|
|
|
|
|
|
1054 002e 5046 mov r0, r10
|
|
|
|
|
|
1055 0030 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1056 .LVL158:
|
|
|
|
|
|
1057 0034 B0EE480A vmov.f32 s0, s16
|
|
|
|
|
|
1058 0038 F0EE680A vmov.f32 s1, s17
|
|
|
|
|
|
1059 003c 41EC110B vmov d1, r0, r1
|
|
|
|
|
|
1060 0040 FFF7FEFF bl pow
|
|
|
|
|
|
1061 .LVL159:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1062 .loc 1 117 0
|
|
|
|
|
|
1063 0044 BAF1010F cmp r10, #1
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1064 .loc 1 115 0
|
|
|
|
|
|
1065 0048 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
1066 .LVL160:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1067 .loc 1 117 0
|
|
|
|
|
|
1068 004c 32D0 beq .L87
|
|
|
|
|
|
1069 .LVL161:
|
|
|
|
|
|
1070 004e BAF1020F cmp r10, #2
|
|
|
|
|
|
1071 0052 45D0 beq .L102
|
|
|
|
|
|
1072 .LVL162:
|
|
|
|
|
|
1073 0054 BAF1030F cmp r10, #3
|
|
|
|
|
|
1074 0058 47D0 beq .L103
|
|
|
|
|
|
1075 .LVL163:
|
|
|
|
|
|
1076 005a BAF1040F cmp r10, #4
|
|
|
|
|
|
1077 005e 4AD0 beq .L104
|
|
|
|
|
|
1078 .LVL164:
|
|
|
|
|
|
1079 0060 BAF1050F cmp r10, #5
|
|
|
|
|
|
1080 0064 4DD0 beq .L105
|
|
|
|
|
|
1081 .LVL165:
|
|
|
|
|
|
1082 0066 BAF1060F cmp r10, #6
|
|
|
|
|
|
1083 006a 1ED0 beq .L106
|
|
|
|
|
|
1084 .LVL166:
|
|
|
|
|
|
1085 006c BAF1070F cmp r10, #7
|
|
|
|
|
|
1086 0070 4DD0 beq .L107
|
|
|
|
|
|
1087 .LVL167:
|
|
|
|
|
|
1088 0072 BAF1090F cmp r10, #9
|
|
|
|
|
|
1089 0076 2CD1 bne .L108
|
|
|
|
|
|
1090 .loc 1 118 0
|
|
|
|
|
|
1091 0078 2BA3 adr r3, .L109+8
|
|
|
|
|
|
1092 007a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1093 007e FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1094 .LVL168:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 24
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1095 0082 0246 mov r2, r0
|
|
|
|
|
|
1096 0084 0B46 mov r3, r1
|
|
|
|
|
|
1097 0086 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1098 .LVL169:
|
|
|
|
|
|
1099 008a 0246 mov r2, r0
|
|
|
|
|
|
1100 008c 0B46 mov r3, r1
|
|
|
|
|
|
1101 008e 4046 mov r0, r8
|
|
|
|
|
|
1102 0090 4946 mov r1, r9
|
|
|
|
|
|
1103 0092 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1104 .LVL170:
|
|
|
|
|
|
119:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
120:Core/Src/FIRFilterCode.c **** return(1.0 + Sum);
|
|
|
|
|
|
1105 .loc 1 120 0
|
|
|
|
|
|
1106 0096 0022 movs r2, #0
|
|
|
|
|
|
1107 0098 304B ldr r3, .L109+60
|
|
|
|
|
|
1108 009a FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1109 .LVL171:
|
|
|
|
|
|
121:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1110 .loc 1 121 0
|
|
|
|
|
|
1111 009e BDEC028B vldm sp!, {d8}
|
|
|
|
|
|
1112 .LCFI9:
|
|
|
|
|
|
1113 .cfi_remember_state
|
|
|
|
|
|
1114 .cfi_restore 80
|
|
|
|
|
|
1115 .cfi_restore 81
|
|
|
|
|
|
1116 .cfi_def_cfa_offset 32
|
|
|
|
|
|
1117 00a2 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
1118 00a6 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc}
|
|
|
|
|
|
1119 .LVL172:
|
|
|
|
|
|
1120 .L106:
|
|
|
|
|
|
1121 .LCFI10:
|
|
|
|
|
|
1122 .cfi_restore_state
|
|
|
|
|
|
1123 00aa 21A3 adr r3, .L109+16
|
|
|
|
|
|
1124 00ac D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1125 00b0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1126 .LVL173:
|
|
|
|
|
|
1127 .L87:
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1128 .loc 1 118 0
|
|
|
|
|
|
1129 00b4 0246 mov r2, r0
|
|
|
|
|
|
1130 00b6 0B46 mov r3, r1
|
|
|
|
|
|
1131 .L101:
|
|
|
|
|
|
1132 00b8 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1133 .LVL174:
|
|
|
|
|
|
1134 00bc 0246 mov r2, r0
|
|
|
|
|
|
1135 00be 0B46 mov r3, r1
|
|
|
|
|
|
1136 00c0 4046 mov r0, r8
|
|
|
|
|
|
1137 00c2 4946 mov r1, r9
|
|
|
|
|
|
1138 00c4 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1139 .LVL175:
|
|
|
|
|
|
1140 00c8 0AF1010A add r10, r10, #1
|
|
|
|
|
|
1141 .LVL176:
|
|
|
|
|
|
1142 00cc 8046 mov r8, r0
|
|
|
|
|
|
1143 .LVL177:
|
|
|
|
|
|
1144 00ce 8946 mov r9, r1
|
|
|
|
|
|
1145 .LVL178:
|
|
|
|
|
|
1146 00d0 ADE7 b .L86
|
|
|
|
|
|
1147 .LVL179:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 25
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1148 .L108:
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1149 .loc 1 118 0 is_stmt 0 discriminator 2
|
|
|
|
|
|
1150 00d2 2246 mov r2, r4
|
|
|
|
|
|
1151 00d4 2B46 mov r3, r5
|
|
|
|
|
|
1152 00d6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1153 .LVL180:
|
|
|
|
|
|
1154 00da 0246 mov r2, r0
|
|
|
|
|
|
1155 00dc 0B46 mov r3, r1
|
|
|
|
|
|
1156 00de EBE7 b .L101
|
|
|
|
|
|
1157 .LVL181:
|
|
|
|
|
|
1158 .L102:
|
|
|
|
|
|
1159 00e0 3246 mov r2, r6
|
|
|
|
|
|
1160 00e2 3B46 mov r3, r7
|
|
|
|
|
|
1161 00e4 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1162 .LVL182:
|
|
|
|
|
|
1163 00e8 E4E7 b .L87
|
|
|
|
|
|
1164 .LVL183:
|
|
|
|
|
|
1165 .L103:
|
|
|
|
|
|
1166 00ea 13A3 adr r3, .L109+24
|
|
|
|
|
|
1167 00ec D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1168 00f0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1169 .LVL184:
|
|
|
|
|
|
1170 00f4 DEE7 b .L87
|
|
|
|
|
|
1171 .LVL185:
|
|
|
|
|
|
1172 .L104:
|
|
|
|
|
|
1173 00f6 12A3 adr r3, .L109+32
|
|
|
|
|
|
1174 00f8 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1175 00fc FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1176 .LVL186:
|
|
|
|
|
|
1177 0100 D8E7 b .L87
|
|
|
|
|
|
1178 .LVL187:
|
|
|
|
|
|
1179 .L105:
|
|
|
|
|
|
1180 0102 11A3 adr r3, .L109+40
|
|
|
|
|
|
1181 0104 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1182 0108 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1183 .LVL188:
|
|
|
|
|
|
1184 010c D2E7 b .L87
|
|
|
|
|
|
1185 .LVL189:
|
|
|
|
|
|
1186 .L107:
|
|
|
|
|
|
1187 010e 10A3 adr r3, .L109+48
|
|
|
|
|
|
1188 0110 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1189 0114 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1190 .LVL190:
|
|
|
|
|
|
1191 0118 CCE7 b .L87
|
|
|
|
|
|
1192 .L110:
|
|
|
|
|
|
1193 011a 00BFAFF3 .align 3
|
|
|
|
|
|
1193 0080
|
|
|
|
|
|
1194 .L109:
|
|
|
|
|
|
1195 0120 1AA0011A .word 436314138
|
|
|
|
|
|
1196 0124 A001FA3E .word 1056571808
|
|
|
|
|
|
1197 0128 34C756A5 .word 2773927732
|
|
|
|
|
|
1198 012c E31DC73E .word 1053236707
|
|
|
|
|
|
1199 0130 176CC116 .word 381774871
|
|
|
|
|
|
1200 0134 6CC1563F .word 1062650220
|
|
|
|
|
|
1201 0138 55555555 .word 1431655765
|
|
|
|
|
|
1202 013c 5555C53F .word 1069897045
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 26
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1203 0140 55555555 .word 1431655765
|
|
|
|
|
|
1204 0144 5555A53F .word 1067799893
|
|
|
|
|
|
1205 0148 11111111 .word 286331153
|
|
|
|
|
|
1206 014c 1111813F .word 1065423121
|
|
|
|
|
|
1207 0150 1AA0011A .word 436314138
|
|
|
|
|
|
1208 0154 A0012A3F .word 1059717536
|
|
|
|
|
|
1209 0158 0000E03F .word 1071644672
|
|
|
|
|
|
1210 015c 0000F03F .word 1072693248
|
|
|
|
|
|
1211 .cfi_endproc
|
|
|
|
|
|
1212 .LFE2:
|
|
|
|
|
|
1214 .global __aeabi_dcmple
|
|
|
|
|
|
1215 .global __aeabi_dcmpge
|
|
|
|
|
|
1216 .section .text.FIRFilterWindow,"ax",%progbits
|
|
|
|
|
|
1217 .align 1
|
|
|
|
|
|
1218 .p2align 2,,3
|
|
|
|
|
|
1219 .global FIRFilterWindow
|
|
|
|
|
|
1220 .syntax unified
|
|
|
|
|
|
1221 .thumb
|
|
|
|
|
|
1222 .thumb_func
|
|
|
|
|
|
1223 .fpu fpv4-sp-d16
|
|
|
|
|
|
1225 FIRFilterWindow:
|
|
|
|
|
|
1226 .LFB3:
|
|
|
|
|
|
122:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
123:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
124:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
125:Core/Src/FIRFilterCode.c **** // Used to reduce the sinc(x) effects on a set of FIR coefficients. This will, unfortunately,
|
|
|
|
|
|
126:Core/Src/FIRFilterCode.c **** // widen the filter's transition band, but the stop band attenuation will improve dramatically.
|
|
|
|
|
|
127:Core/Src/FIRFilterCode.c **** void FIRFilterWindow(double *FIRCoeff, int N, TWindowType WindowType, double Beta)
|
|
|
|
|
|
128:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
1227 .loc 1 128 0 is_stmt 1
|
|
|
|
|
|
1228 .cfi_startproc
|
|
|
|
|
|
1229 @ args = 0, pretend = 0, frame = 56
|
|
|
|
|
|
1230 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
1231 .LVL191:
|
|
|
|
|
|
129:Core/Src/FIRFilterCode.c **** if(WindowType == wtNONE) return;
|
|
|
|
|
|
1232 .loc 1 129 0
|
|
|
|
|
|
1233 0000 012A cmp r2, #1
|
|
|
|
|
|
1234 0002 00F01382 beq .L178
|
|
|
|
|
|
128:Core/Src/FIRFilterCode.c **** if(WindowType == wtNONE) return;
|
|
|
|
|
|
1235 .loc 1 128 0
|
|
|
|
|
|
1236 0006 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
1237 .LCFI11:
|
|
|
|
|
|
1238 .cfi_def_cfa_offset 36
|
|
|
|
|
|
1239 .cfi_offset 4, -36
|
|
|
|
|
|
1240 .cfi_offset 5, -32
|
|
|
|
|
|
1241 .cfi_offset 6, -28
|
|
|
|
|
|
1242 .cfi_offset 7, -24
|
|
|
|
|
|
1243 .cfi_offset 8, -20
|
|
|
|
|
|
1244 .cfi_offset 9, -16
|
|
|
|
|
|
1245 .cfi_offset 10, -12
|
|
|
|
|
|
1246 .cfi_offset 11, -8
|
|
|
|
|
|
1247 .cfi_offset 14, -4
|
|
|
|
|
|
1248 000a 2DED048B vpush.64 {d8, d9}
|
|
|
|
|
|
1249 .LCFI12:
|
|
|
|
|
|
1250 .cfi_def_cfa_offset 52
|
|
|
|
|
|
1251 .cfi_offset 80, -52
|
|
|
|
|
|
1252 .cfi_offset 81, -48
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 27
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1253 .cfi_offset 82, -44
|
|
|
|
|
|
1254 .cfi_offset 83, -40
|
|
|
|
|
|
1255 000e 0B46 mov r3, r1
|
|
|
|
|
|
1256 0010 8FB0 sub sp, sp, #60
|
|
|
|
|
|
1257 .LCFI13:
|
|
|
|
|
|
1258 .cfi_def_cfa_offset 112
|
|
|
|
|
|
130:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
131:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
132:Core/Src/FIRFilterCode.c **** double dN, *WinCoeff;
|
|
|
|
|
|
133:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
134:Core/Src/FIRFilterCode.c **** if(Beta < 0.0)Beta = 0.0;
|
|
|
|
|
|
135:Core/Src/FIRFilterCode.c **** if(Beta > 10.0)Beta = 10.0;
|
|
|
|
|
|
136:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
137:Core/Src/FIRFilterCode.c **** // WinCoeff = new(std::nothrow) double[N+2];
|
|
|
|
|
|
138:Core/Src/FIRFilterCode.c **** WinCoeff = (double *) malloc(sizeof(double) * (N+2));
|
|
|
|
|
|
1259 .loc 1 138 0
|
|
|
|
|
|
1260 0012 0233 adds r3, r3, #2
|
|
|
|
|
|
1261 0014 DB00 lsls r3, r3, #3
|
|
|
|
|
|
1262 0016 0C90 str r0, [sp, #48]
|
|
|
|
|
|
1263 0018 1846 mov r0, r3
|
|
|
|
|
|
1264 .LVL192:
|
|
|
|
|
|
1265 001a 57EC106B vmov r6, r7, d0
|
|
|
|
|
|
1266 .LVL193:
|
|
|
|
|
|
1267 001e 0591 str r1, [sp, #20]
|
|
|
|
|
|
1268 0020 1546 mov r5, r2
|
|
|
|
|
|
1269 0022 0893 str r3, [sp, #32]
|
|
|
|
|
|
1270 0024 FFF7FEFF bl malloc
|
|
|
|
|
|
1271 .LVL194:
|
|
|
|
|
|
139:Core/Src/FIRFilterCode.c **** if(WinCoeff == NULL){
|
|
|
|
|
|
1272 .loc 1 139 0
|
|
|
|
|
|
1273 0028 0490 str r0, [sp, #16]
|
|
|
|
|
|
1274 002a 0028 cmp r0, #0
|
|
|
|
|
|
1275 002c 00F08D80 beq .L111
|
|
|
|
|
|
1276 0030 0022 movs r2, #0
|
|
|
|
|
|
1277 0032 D74B ldr r3, .L206+40
|
|
|
|
|
|
1278 0034 3046 mov r0, r6
|
|
|
|
|
|
1279 .LVL195:
|
|
|
|
|
|
1280 0036 3946 mov r1, r7
|
|
|
|
|
|
1281 0038 FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
1282 .LVL196:
|
|
|
|
|
|
1283 003c 0028 cmp r0, #0
|
|
|
|
|
|
1284 003e 00F08180 beq .L184
|
|
|
|
|
|
1285 .LVL197:
|
|
|
|
|
|
1286 .L115:
|
|
|
|
|
|
1287 0042 0022 movs r2, #0
|
|
|
|
|
|
1288 0044 0023 movs r3, #0
|
|
|
|
|
|
1289 0046 3046 mov r0, r6
|
|
|
|
|
|
1290 0048 3946 mov r1, r7
|
|
|
|
|
|
1291 004a 47EC186B vmov d8, r6, r7
|
|
|
|
|
|
1292 004e FFF7FEFF bl __aeabi_dcmpge
|
|
|
|
|
|
1293 .LVL198:
|
|
|
|
|
|
1294 0052 0028 cmp r0, #0
|
|
|
|
|
|
1295 0054 73D0 beq .L185
|
|
|
|
|
|
1296 .L116:
|
|
|
|
|
|
140:Core/Src/FIRFilterCode.c **** // ShowMessage("Failed to allocate memory in WindowData() ");
|
|
|
|
|
|
141:Core/Src/FIRFilterCode.c **** return;
|
|
|
|
|
|
142:Core/Src/FIRFilterCode.c **** }
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 28
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
144:Core/Src/FIRFilterCode.c **** // Calculate the window for N/2 points, then fold the window over (at the bottom).
|
|
|
|
|
|
145:Core/Src/FIRFilterCode.c **** dN = N + 1; // a double
|
|
|
|
|
|
1297 .loc 1 145 0
|
|
|
|
|
|
1298 0056 059B ldr r3, [sp, #20]
|
|
|
|
|
|
1299 0058 581C adds r0, r3, #1
|
|
|
|
|
|
1300 005a FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1301 .LVL199:
|
|
|
|
|
|
146:Core/Src/FIRFilterCode.c **** if(WindowType == wtKAISER)
|
|
|
|
|
|
1302 .loc 1 146 0
|
|
|
|
|
|
1303 005e 022D cmp r5, #2
|
|
|
|
|
|
145:Core/Src/FIRFilterCode.c **** if(WindowType == wtKAISER)
|
|
|
|
|
|
1304 .loc 1 145 0
|
|
|
|
|
|
1305 0060 CDE90601 strd r0, [sp, #24]
|
|
|
|
|
|
1306 .LVL200:
|
|
|
|
|
|
1307 .loc 1 146 0
|
|
|
|
|
|
1308 0064 76D0 beq .L186
|
|
|
|
|
|
147:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
148:Core/Src/FIRFilterCode.c **** double Arg;
|
|
|
|
|
|
149:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)
|
|
|
|
|
|
150:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
151:Core/Src/FIRFilterCode.c **** Arg = Beta * sqrt(1.0 - pow( ((double)(2*j+2) - dN) / dN, 2.0) );
|
|
|
|
|
|
152:Core/Src/FIRFilterCode.c **** WinCoeff[j] = Bessel(Arg) / Bessel(Beta);
|
|
|
|
|
|
153:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
154:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
155:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
156:Core/Src/FIRFilterCode.c **** else if(WindowType == wtSINC) // Lanczos
|
|
|
|
|
|
1309 .loc 1 156 0
|
|
|
|
|
|
1310 0066 032D cmp r5, #3
|
|
|
|
|
|
1311 0068 00F0E181 beq .L187
|
|
|
|
|
|
157:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
158:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = Sinc((double)(2*j+1-N)/dN * M_PI );
|
|
|
|
|
|
159:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
160:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
161:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
162:Core/Src/FIRFilterCode.c **** else if(WindowType == wtSINE) // Hanning if Beta = 2
|
|
|
|
|
|
1312 .loc 1 162 0
|
|
|
|
|
|
1313 006c 0E2D cmp r5, #14
|
|
|
|
|
|
1314 006e 5ED1 bne .L153
|
|
|
|
|
|
1315 .LVL201:
|
|
|
|
|
|
163:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
164:Core/Src/FIRFilterCode.c **** for(j=0; j<N/2; j++)WinCoeff[j] = sin((double)(j+1) * M_PI / dN);
|
|
|
|
|
|
1316 .loc 1 164 0
|
|
|
|
|
|
1317 0070 059B ldr r3, [sp, #20]
|
|
|
|
|
|
1318 0072 03EBD37A add r10, r3, r3, lsr #31
|
|
|
|
|
|
1319 0076 4FEA6A0A asr r10, r10, #1
|
|
|
|
|
|
1320 007a BAF1000F cmp r10, #0
|
|
|
|
|
|
1321 007e 42DD ble .L148
|
|
|
|
|
|
1322 0080 0246 mov r2, r0
|
|
|
|
|
|
1323 0082 0B46 mov r3, r1
|
|
|
|
|
|
1324 0084 0020 movs r0, #0
|
|
|
|
|
|
1325 .LVL202:
|
|
|
|
|
|
1326 0086 C349 ldr r1, .L206+44
|
|
|
|
|
|
1327 0088 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
1328 .LVL203:
|
|
|
|
|
|
1329 008c B6A7 adr r7, .L206
|
|
|
|
|
|
1330 008e D7E90067 ldrd r6, [r7]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 29
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1331 0092 DDF81090 ldr r9, [sp, #16]
|
|
|
|
|
|
1332 0096 0446 mov r4, r0
|
|
|
|
|
|
1333 0098 0D46 mov r5, r1
|
|
|
|
|
|
1334 009a C846 mov r8, r9
|
|
|
|
|
|
1335 009c 4FF0000B mov fp, #0
|
|
|
|
|
|
1336 .LVL204:
|
|
|
|
|
|
1337 .L149:
|
|
|
|
|
|
1338 .loc 1 164 0 is_stmt 0 discriminator 3
|
|
|
|
|
|
1339 00a0 0BF1010B add fp, fp, #1
|
|
|
|
|
|
1340 .LVL205:
|
|
|
|
|
|
1341 00a4 5846 mov r0, fp
|
|
|
|
|
|
1342 00a6 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1343 .LVL206:
|
|
|
|
|
|
1344 00aa 3246 mov r2, r6
|
|
|
|
|
|
1345 00ac 3B46 mov r3, r7
|
|
|
|
|
|
1346 00ae FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1347 .LVL207:
|
|
|
|
|
|
1348 00b2 2246 mov r2, r4
|
|
|
|
|
|
1349 00b4 2B46 mov r3, r5
|
|
|
|
|
|
1350 00b6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1351 .LVL208:
|
|
|
|
|
|
1352 00ba 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
1353 00be FFF7FEFF bl sin
|
|
|
|
|
|
1354 .LVL209:
|
|
|
|
|
|
1355 00c2 D345 cmp fp, r10
|
|
|
|
|
|
1356 00c4 A9EC020B vstmia.64 r9!, {d0}
|
|
|
|
|
|
1357 .LVL210:
|
|
|
|
|
|
1358 00c8 EAD1 bne .L149
|
|
|
|
|
|
1359 00ca 049B ldr r3, [sp, #16]
|
|
|
|
|
|
1360 00cc 03EBCB04 add r4, r3, fp, lsl #3
|
|
|
|
|
|
1361 .LVL211:
|
|
|
|
|
|
1362 .L150:
|
|
|
|
|
|
165:Core/Src/FIRFilterCode.c **** for(j=0; j<N/2; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
1363 .loc 1 165 0 is_stmt 1 discriminator 3
|
|
|
|
|
|
1364 00d0 98ED000B vldr.64 d0, [r8]
|
|
|
|
|
|
1365 00d4 B0EE481A vmov.f32 s2, s16
|
|
|
|
|
|
1366 00d8 F0EE681A vmov.f32 s3, s17
|
|
|
|
|
|
1367 00dc FFF7FEFF bl pow
|
|
|
|
|
|
1368 .LVL212:
|
|
|
|
|
|
1369 00e0 A8EC020B vstmia.64 r8!, {d0}
|
|
|
|
|
|
1370 00e4 4445 cmp r4, r8
|
|
|
|
|
|
1371 00e6 F3D1 bne .L150
|
|
|
|
|
|
1372 .L183:
|
|
|
|
|
|
1373 00e8 089B ldr r3, [sp, #32]
|
|
|
|
|
|
1374 00ea 103B subs r3, r3, #16
|
|
|
|
|
|
1375 00ec 0993 str r3, [sp, #36]
|
|
|
|
|
|
1376 .L151:
|
|
|
|
|
|
1377 00ee 099B ldr r3, [sp, #36]
|
|
|
|
|
|
1378 00f0 049A ldr r2, [sp, #16]
|
|
|
|
|
|
1379 00f2 1946 mov r1, r3
|
|
|
|
|
|
1380 00f4 1144 add r1, r1, r2
|
|
|
|
|
|
164:Core/Src/FIRFilterCode.c **** for(j=0; j<N/2; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
1381 .loc 1 164 0 discriminator 3
|
|
|
|
|
|
1382 00f6 0023 movs r3, #0
|
|
|
|
|
|
1383 .L152:
|
|
|
|
|
|
1384 .LVL213:
|
|
|
|
|
|
166:Core/Src/FIRFilterCode.c **** }
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 30
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
168:Core/Src/FIRFilterCode.c **** else // Error.
|
|
|
|
|
|
169:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
170:Core/Src/FIRFilterCode.c **** // ShowMessage("Incorrect window type in WindowFFTData");
|
|
|
|
|
|
171:Core/Src/FIRFilterCode.c **** // delete[] WinCoeff;
|
|
|
|
|
|
172:Core/Src/FIRFilterCode.c **** free(WinCoeff);
|
|
|
|
|
|
173:Core/Src/FIRFilterCode.c **** return;
|
|
|
|
|
|
174:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
175:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
176:Core/Src/FIRFilterCode.c **** // Fold the coefficients over.
|
|
|
|
|
|
177:Core/Src/FIRFilterCode.c **** for(j=0; j<N/2; j++)WinCoeff[N-j-1] = WinCoeff[j];
|
|
|
|
|
|
1385 .loc 1 177 0 discriminator 3
|
|
|
|
|
|
1386 00f8 F2E80245 ldrd r4, [r2], #8
|
|
|
|
|
|
1387 00fc 0133 adds r3, r3, #1
|
|
|
|
|
|
1388 .LVL214:
|
|
|
|
|
|
1389 00fe 5B45 cmp r3, fp
|
|
|
|
|
|
1390 0100 61E90245 strd r4, [r1, #-8]!
|
|
|
|
|
|
1391 0104 F8DB blt .L152
|
|
|
|
|
|
1392 .LVL215:
|
|
|
|
|
|
1393 .L148:
|
|
|
|
|
|
178:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
179:Core/Src/FIRFilterCode.c **** // Apply the window to the FIR coefficients.
|
|
|
|
|
|
180:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)FIRCoeff[j] *= WinCoeff[j];
|
|
|
|
|
|
1394 .loc 1 180 0
|
|
|
|
|
|
1395 0106 059B ldr r3, [sp, #20]
|
|
|
|
|
|
1396 0108 002B cmp r3, #0
|
|
|
|
|
|
1397 010a 10DD ble .L153
|
|
|
|
|
|
1398 010c 089B ldr r3, [sp, #32]
|
|
|
|
|
|
1399 010e 103B subs r3, r3, #16
|
|
|
|
|
|
1400 0110 0993 str r3, [sp, #36]
|
|
|
|
|
|
1401 .L157:
|
|
|
|
|
|
1402 0112 0C9C ldr r4, [sp, #48]
|
|
|
|
|
|
1403 0114 049D ldr r5, [sp, #16]
|
|
|
|
|
|
1404 0116 2344 add r3, r3, r4
|
|
|
|
|
|
1405 0118 1E46 mov r6, r3
|
|
|
|
|
|
1406 .LVL216:
|
|
|
|
|
|
1407 .L154:
|
|
|
|
|
|
1408 .loc 1 180 0 is_stmt 0 discriminator 3
|
|
|
|
|
|
1409 011a D4E90001 ldrd r0, [r4]
|
|
|
|
|
|
1410 011e F5E80223 ldrd r2, [r5], #8
|
|
|
|
|
|
1411 0122 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1412 .LVL217:
|
|
|
|
|
|
1413 0126 E4E80201 strd r0, [r4], #8
|
|
|
|
|
|
1414 012a A642 cmp r6, r4
|
|
|
|
|
|
1415 012c F5D1 bne .L154
|
|
|
|
|
|
1416 .L153:
|
|
|
|
|
|
181:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
182:Core/Src/FIRFilterCode.c **** // delete[] WinCoeff;
|
|
|
|
|
|
183:Core/Src/FIRFilterCode.c **** free(WinCoeff);
|
|
|
|
|
|
1417 .loc 1 183 0 is_stmt 1
|
|
|
|
|
|
1418 012e 0498 ldr r0, [sp, #16]
|
|
|
|
|
|
184:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
185:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1419 .loc 1 185 0
|
|
|
|
|
|
1420 0130 0FB0 add sp, sp, #60
|
|
|
|
|
|
1421 .LCFI14:
|
|
|
|
|
|
1422 .cfi_remember_state
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 31
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1423 .cfi_def_cfa_offset 52
|
|
|
|
|
|
1424 @ sp needed
|
|
|
|
|
|
1425 0132 BDEC048B vldm sp!, {d8-d9}
|
|
|
|
|
|
1426 .LCFI15:
|
|
|
|
|
|
1427 .cfi_restore 82
|
|
|
|
|
|
1428 .cfi_restore 83
|
|
|
|
|
|
1429 .cfi_restore 80
|
|
|
|
|
|
1430 .cfi_restore 81
|
|
|
|
|
|
1431 .cfi_def_cfa_offset 36
|
|
|
|
|
|
1432 0136 BDE8F04F pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
1433 .LCFI16:
|
|
|
|
|
|
1434 .cfi_restore 14
|
|
|
|
|
|
1435 .cfi_restore 11
|
|
|
|
|
|
1436 .cfi_restore 10
|
|
|
|
|
|
1437 .cfi_restore 9
|
|
|
|
|
|
1438 .cfi_restore 8
|
|
|
|
|
|
1439 .cfi_restore 7
|
|
|
|
|
|
1440 .cfi_restore 6
|
|
|
|
|
|
1441 .cfi_restore 5
|
|
|
|
|
|
1442 .cfi_restore 4
|
|
|
|
|
|
1443 .cfi_def_cfa_offset 0
|
|
|
|
|
|
1444 .LVL218:
|
|
|
|
|
|
183:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
1445 .loc 1 183 0
|
|
|
|
|
|
1446 013a FFF7FEBF b free
|
|
|
|
|
|
1447 .LVL219:
|
|
|
|
|
|
1448 .L185:
|
|
|
|
|
|
1449 .LCFI17:
|
|
|
|
|
|
1450 .cfi_restore_state
|
|
|
|
|
|
1451 013e 9FED8C8B vldr.64 d8, .L206+8
|
|
|
|
|
|
1452 0142 88E7 b .L116
|
|
|
|
|
|
1453 .LVL220:
|
|
|
|
|
|
1454 .L184:
|
|
|
|
|
|
1455 0144 0026 movs r6, #0
|
|
|
|
|
|
1456 .LVL221:
|
|
|
|
|
|
1457 0146 924F ldr r7, .L206+40
|
|
|
|
|
|
1458 0148 7BE7 b .L115
|
|
|
|
|
|
1459 .LVL222:
|
|
|
|
|
|
1460 .L111:
|
|
|
|
|
|
1461 .loc 1 185 0
|
|
|
|
|
|
1462 014a 0FB0 add sp, sp, #60
|
|
|
|
|
|
1463 .LCFI18:
|
|
|
|
|
|
1464 .cfi_remember_state
|
|
|
|
|
|
1465 .cfi_def_cfa_offset 52
|
|
|
|
|
|
1466 @ sp needed
|
|
|
|
|
|
1467 014c BDEC048B vldm sp!, {d8-d9}
|
|
|
|
|
|
1468 .LCFI19:
|
|
|
|
|
|
1469 .cfi_restore 82
|
|
|
|
|
|
1470 .cfi_restore 83
|
|
|
|
|
|
1471 .cfi_restore 80
|
|
|
|
|
|
1472 .cfi_restore 81
|
|
|
|
|
|
1473 .cfi_def_cfa_offset 36
|
|
|
|
|
|
1474 0150 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
|
|
|
|
|
1475 .LVL223:
|
|
|
|
|
|
1476 .L186:
|
|
|
|
|
|
1477 .LCFI20:
|
|
|
|
|
|
1478 .cfi_restore_state
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 32
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1479 0154 059B ldr r3, [sp, #20]
|
|
|
|
|
|
1480 0156 03EBD37B add fp, r3, r3, lsr #31
|
|
|
|
|
|
1481 .LBB60:
|
|
|
|
|
|
149:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
1482 .loc 1 149 0
|
|
|
|
|
|
1483 015a 002B cmp r3, #0
|
|
|
|
|
|
1484 015c 4FEA6B0B asr fp, fp, #1
|
|
|
|
|
|
1485 0160 40F3C581 ble .L118
|
|
|
|
|
|
1486 0164 0246 mov r2, r0
|
|
|
|
|
|
1487 0166 0B46 mov r3, r1
|
|
|
|
|
|
1488 0168 0020 movs r0, #0
|
|
|
|
|
|
1489 .LVL224:
|
|
|
|
|
|
1490 016a 8A49 ldr r1, .L206+44
|
|
|
|
|
|
151:Core/Src/FIRFilterCode.c **** WinCoeff[j] = Bessel(Arg) / Bessel(Beta);
|
|
|
|
|
|
1491 .loc 1 151 0
|
|
|
|
|
|
1492 016c DFF82492 ldr r9, .L206+44
|
|
|
|
|
|
1493 0170 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
1494 .LVL225:
|
|
|
|
|
|
1495 .LBB61:
|
|
|
|
|
|
1496 .LBB62:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1497 .loc 1 115 0
|
|
|
|
|
|
1498 0174 0022 movs r2, #0
|
|
|
|
|
|
1499 0176 CDE90A01 strd r0, [sp, #40]
|
|
|
|
|
|
1500 017a 874B ldr r3, .L206+48
|
|
|
|
|
|
1501 017c 51EC180B vmov r0, r1, d8
|
|
|
|
|
|
1502 0180 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1503 .LVL226:
|
|
|
|
|
|
1504 0184 089B ldr r3, [sp, #32]
|
|
|
|
|
|
1505 0186 049A ldr r2, [sp, #16]
|
|
|
|
|
|
1506 0188 CDF834B0 str fp, [sp, #52]
|
|
|
|
|
|
1507 018c 103B subs r3, r3, #16
|
|
|
|
|
|
1508 018e 0993 str r3, [sp, #36]
|
|
|
|
|
|
1509 0190 D318 adds r3, r2, r3
|
|
|
|
|
|
1510 .LBE62:
|
|
|
|
|
|
1511 .LBE61:
|
|
|
|
|
|
151:Core/Src/FIRFilterCode.c **** WinCoeff[j] = Bessel(Arg) / Bessel(Beta);
|
|
|
|
|
|
1512 .loc 1 151 0
|
|
|
|
|
|
1513 0192 4FF00008 mov r8, #0
|
|
|
|
|
|
1514 .LBB67:
|
|
|
|
|
|
1515 .LBB63:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1516 .loc 1 115 0
|
|
|
|
|
|
1517 0196 41EC180B vmov d8, r0, r1
|
|
|
|
|
|
1518 019a 0393 str r3, [sp, #12]
|
|
|
|
|
|
1519 019c 9246 mov r10, r2
|
|
|
|
|
|
1520 019e 2F46 mov r7, r5
|
|
|
|
|
|
1521 01a0 79E0 b .L139
|
|
|
|
|
|
1522 .LVL227:
|
|
|
|
|
|
1523 .L203:
|
|
|
|
|
|
1524 .LBE63:
|
|
|
|
|
|
1525 .LBE67:
|
|
|
|
|
|
1526 .LBB68:
|
|
|
|
|
|
1527 .LBB69:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1528 .loc 1 117 0
|
|
|
|
|
|
1529 01a2 022E cmp r6, #2
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 33
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1530 01a4 00F0FF80 beq .L188
|
|
|
|
|
|
1531 .LVL228:
|
|
|
|
|
|
1532 01a8 032E cmp r6, #3
|
|
|
|
|
|
1533 01aa 00F00781 beq .L189
|
|
|
|
|
|
1534 .LVL229:
|
|
|
|
|
|
1535 01ae 042E cmp r6, #4
|
|
|
|
|
|
1536 01b0 00F01081 beq .L190
|
|
|
|
|
|
1537 .LVL230:
|
|
|
|
|
|
1538 01b4 052E cmp r6, #5
|
|
|
|
|
|
1539 01b6 00F01981 beq .L191
|
|
|
|
|
|
1540 .LVL231:
|
|
|
|
|
|
1541 01ba 062E cmp r6, #6
|
|
|
|
|
|
1542 01bc 00F01C81 beq .L192
|
|
|
|
|
|
1543 .LVL232:
|
|
|
|
|
|
1544 01c0 072E cmp r6, #7
|
|
|
|
|
|
1545 01c2 00F02581 beq .L193
|
|
|
|
|
|
1546 .LVL233:
|
|
|
|
|
|
1547 01c6 092E cmp r6, #9
|
|
|
|
|
|
1548 01c8 40F0BB80 bne .L194
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1549 .loc 1 118 0
|
|
|
|
|
|
1550 01cc 6AA3 adr r3, .L206+16
|
|
|
|
|
|
1551 01ce D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1552 01d2 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1553 .LVL234:
|
|
|
|
|
|
1554 01d6 0246 mov r2, r0
|
|
|
|
|
|
1555 01d8 0B46 mov r3, r1
|
|
|
|
|
|
1556 01da FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1557 .LVL235:
|
|
|
|
|
|
1558 01de 0246 mov r2, r0
|
|
|
|
|
|
1559 01e0 0B46 mov r3, r1
|
|
|
|
|
|
1560 01e2 2046 mov r0, r4
|
|
|
|
|
|
1561 01e4 2946 mov r1, r5
|
|
|
|
|
|
1562 01e6 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1563 .LVL236:
|
|
|
|
|
|
120:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1564 .loc 1 120 0
|
|
|
|
|
|
1565 01ea 4246 mov r2, r8
|
|
|
|
|
|
1566 01ec 4B46 mov r3, r9
|
|
|
|
|
|
1567 01ee FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1568 .LVL237:
|
|
|
|
|
|
1569 01f2 CDE90001 strd r0, [sp]
|
|
|
|
|
|
1570 .LVL238:
|
|
|
|
|
|
1571 01f6 4FF0010B mov fp, #1
|
|
|
|
|
|
1572 .LBE69:
|
|
|
|
|
|
1573 .LBE68:
|
|
|
|
|
|
1574 .LBB72:
|
|
|
|
|
|
1575 .LBB64:
|
|
|
|
|
|
111:Core/Src/FIRFilterCode.c **** int i, j, Factorial;
|
|
|
|
|
|
1576 .loc 1 111 0
|
|
|
|
|
|
1577 01fa 0024 movs r4, #0
|
|
|
|
|
|
1578 01fc 0025 movs r5, #0
|
|
|
|
|
|
1579 .LVL239:
|
|
|
|
|
|
1580 .L129:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1581 .loc 1 115 0
|
|
|
|
|
|
1582 01fe 5846 mov r0, fp
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 34
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1583 0200 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1584 .LVL240:
|
|
|
|
|
|
1585 0204 B0EE480A vmov.f32 s0, s16
|
|
|
|
|
|
1586 0208 F0EE680A vmov.f32 s1, s17
|
|
|
|
|
|
1587 020c 41EC110B vmov d1, r0, r1
|
|
|
|
|
|
1588 0210 FFF7FEFF bl pow
|
|
|
|
|
|
1589 .LVL241:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1590 .loc 1 117 0
|
|
|
|
|
|
1591 0214 BBF1010F cmp fp, #1
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1592 .loc 1 115 0
|
|
|
|
|
|
1593 0218 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
1594 .LVL242:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1595 .loc 1 117 0
|
|
|
|
|
|
1596 021c 00F08280 beq .L130
|
|
|
|
|
|
1597 .LVL243:
|
|
|
|
|
|
1598 0220 BBF1020F cmp fp, #2
|
|
|
|
|
|
1599 0224 00F0BA80 beq .L195
|
|
|
|
|
|
1600 .LVL244:
|
|
|
|
|
|
1601 0228 BBF1030F cmp fp, #3
|
|
|
|
|
|
1602 022c 00F0C080 beq .L196
|
|
|
|
|
|
1603 .LVL245:
|
|
|
|
|
|
1604 0230 BBF1040F cmp fp, #4
|
|
|
|
|
|
1605 0234 00F0C880 beq .L197
|
|
|
|
|
|
1606 .LVL246:
|
|
|
|
|
|
1607 0238 BBF1050F cmp fp, #5
|
|
|
|
|
|
1608 023c 00F0D080 beq .L198
|
|
|
|
|
|
1609 .LVL247:
|
|
|
|
|
|
1610 0240 BBF1060F cmp fp, #6
|
|
|
|
|
|
1611 0244 69D0 beq .L199
|
|
|
|
|
|
1612 .LVL248:
|
|
|
|
|
|
1613 0246 BBF1070F cmp fp, #7
|
|
|
|
|
|
1614 024a 00F0DB80 beq .L200
|
|
|
|
|
|
1615 .LVL249:
|
|
|
|
|
|
1616 024e BBF1090F cmp fp, #9
|
|
|
|
|
|
1617 0252 7ED1 bne .L201
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1618 .loc 1 118 0
|
|
|
|
|
|
1619 0254 48A3 adr r3, .L206+16
|
|
|
|
|
|
1620 0256 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1621 025a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1622 .LVL250:
|
|
|
|
|
|
1623 025e 0246 mov r2, r0
|
|
|
|
|
|
1624 0260 0B46 mov r3, r1
|
|
|
|
|
|
1625 0262 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1626 .LVL251:
|
|
|
|
|
|
1627 0266 0246 mov r2, r0
|
|
|
|
|
|
1628 0268 0B46 mov r3, r1
|
|
|
|
|
|
1629 026a 2046 mov r0, r4
|
|
|
|
|
|
1630 026c 2946 mov r1, r5
|
|
|
|
|
|
1631 026e FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1632 .LVL252:
|
|
|
|
|
|
120:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1633 .loc 1 120 0
|
|
|
|
|
|
1634 0272 4246 mov r2, r8
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 35
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1635 0274 4B46 mov r3, r9
|
|
|
|
|
|
1636 0276 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1637 .LVL253:
|
|
|
|
|
|
1638 .LBE64:
|
|
|
|
|
|
1639 .LBE72:
|
|
|
|
|
|
152:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1640 .loc 1 152 0
|
|
|
|
|
|
1641 027a 0B46 mov r3, r1
|
|
|
|
|
|
1642 027c 0246 mov r2, r0
|
|
|
|
|
|
1643 027e DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
1644 0282 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
1645 .LVL254:
|
|
|
|
|
|
1646 0286 EAE80201 strd r0, [r10], #8
|
|
|
|
|
|
149:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
1647 .loc 1 149 0
|
|
|
|
|
|
1648 028a 039B ldr r3, [sp, #12]
|
|
|
|
|
|
1649 028c 5345 cmp r3, r10
|
|
|
|
|
|
1650 028e 07F10207 add r7, r7, #2
|
|
|
|
|
|
1651 0292 00F0C380 beq .L202
|
|
|
|
|
|
1652 .L139:
|
|
|
|
|
|
151:Core/Src/FIRFilterCode.c **** WinCoeff[j] = Bessel(Arg) / Bessel(Beta);
|
|
|
|
|
|
1653 .loc 1 151 0 discriminator 3
|
|
|
|
|
|
1654 0296 3846 mov r0, r7
|
|
|
|
|
|
1655 0298 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1656 .LVL255:
|
|
|
|
|
|
1657 029c DDE90623 ldrd r2, [sp, #24]
|
|
|
|
|
|
1658 02a0 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
1659 .LVL256:
|
|
|
|
|
|
1660 02a4 DDE90A23 ldrd r2, [sp, #40]
|
|
|
|
|
|
1661 02a8 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1662 .LVL257:
|
|
|
|
|
|
1663 02ac 0246 mov r2, r0
|
|
|
|
|
|
1664 02ae 0B46 mov r3, r1
|
|
|
|
|
|
1665 02b0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1666 .LVL258:
|
|
|
|
|
|
1667 02b4 0246 mov r2, r0
|
|
|
|
|
|
1668 02b6 0B46 mov r3, r1
|
|
|
|
|
|
1669 02b8 4046 mov r0, r8
|
|
|
|
|
|
1670 02ba 4946 mov r1, r9
|
|
|
|
|
|
1671 02bc FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
1672 .LVL259:
|
|
|
|
|
|
1673 02c0 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
1674 02c4 FFF7FEFF bl sqrt
|
|
|
|
|
|
1675 .LVL260:
|
|
|
|
|
|
1676 .LBB73:
|
|
|
|
|
|
1677 .LBB70:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1678 .loc 1 115 0 discriminator 3
|
|
|
|
|
|
1679 02c8 53EC182B vmov r2, r3, d8
|
|
|
|
|
|
1680 02cc 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
1681 02d0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1682 .LVL261:
|
|
|
|
|
|
1683 02d4 41EC190B vmov d9, r0, r1
|
|
|
|
|
|
1684 02d8 0126 movs r6, #1
|
|
|
|
|
|
111:Core/Src/FIRFilterCode.c **** int i, j, Factorial;
|
|
|
|
|
|
1685 .loc 1 111 0 discriminator 3
|
|
|
|
|
|
1686 02da 0024 movs r4, #0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 36
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1687 02dc 0025 movs r5, #0
|
|
|
|
|
|
1688 .LVL262:
|
|
|
|
|
|
1689 .L119:
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1690 .loc 1 115 0
|
|
|
|
|
|
1691 02de 3046 mov r0, r6
|
|
|
|
|
|
1692 02e0 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1693 .LVL263:
|
|
|
|
|
|
1694 02e4 B0EE490A vmov.f32 s0, s18
|
|
|
|
|
|
1695 02e8 F0EE690A vmov.f32 s1, s19
|
|
|
|
|
|
1696 02ec 41EC110B vmov d1, r0, r1
|
|
|
|
|
|
1697 02f0 FFF7FEFF bl pow
|
|
|
|
|
|
1698 .LVL264:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1699 .loc 1 117 0
|
|
|
|
|
|
1700 02f4 012E cmp r6, #1
|
|
|
|
|
|
115:Core/Src/FIRFilterCode.c **** Factorial = 1;
|
|
|
|
|
|
1701 .loc 1 115 0
|
|
|
|
|
|
1702 02f6 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
1703 .LVL265:
|
|
|
|
|
|
117:Core/Src/FIRFilterCode.c **** Sum += pow(XtoIpower / (double)Factorial, 2.0);
|
|
|
|
|
|
1704 .loc 1 117 0
|
|
|
|
|
|
1705 02fa 7FF452AF bne .L203
|
|
|
|
|
|
1706 .LVL266:
|
|
|
|
|
|
1707 .L120:
|
|
|
|
|
|
118:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1708 .loc 1 118 0
|
|
|
|
|
|
1709 02fe 0246 mov r2, r0
|
|
|
|
|
|
1710 0300 0B46 mov r3, r1
|
|
|
|
|
|
1711 .L181:
|
|
|
|
|
|
1712 0302 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1713 .LVL267:
|
|
|
|
|
|
1714 0306 0246 mov r2, r0
|
|
|
|
|
|
1715 0308 0B46 mov r3, r1
|
|
|
|
|
|
1716 030a 2046 mov r0, r4
|
|
|
|
|
|
1717 030c 2946 mov r1, r5
|
|
|
|
|
|
1718 030e FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1719 .LVL268:
|
|
|
|
|
|
1720 0312 0136 adds r6, r6, #1
|
|
|
|
|
|
1721 .LVL269:
|
|
|
|
|
|
1722 0314 0446 mov r4, r0
|
|
|
|
|
|
1723 .LVL270:
|
|
|
|
|
|
1724 0316 0D46 mov r5, r1
|
|
|
|
|
|
1725 .LVL271:
|
|
|
|
|
|
1726 0318 E1E7 b .L119
|
|
|
|
|
|
1727 .LVL272:
|
|
|
|
|
|
1728 .L199:
|
|
|
|
|
|
1729 031a 19A3 adr r3, .L206+24
|
|
|
|
|
|
1730 031c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1731 0320 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1732 .LVL273:
|
|
|
|
|
|
1733 .L130:
|
|
|
|
|
|
1734 .LBE70:
|
|
|
|
|
|
1735 .LBE73:
|
|
|
|
|
|
1736 .LBB74:
|
|
|
|
|
|
1737 .LBB65:
|
|
|
|
|
|
1738 0324 0246 mov r2, r0
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 37
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1739 0326 0B46 mov r3, r1
|
|
|
|
|
|
1740 .L182:
|
|
|
|
|
|
1741 0328 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1742 .LVL274:
|
|
|
|
|
|
1743 032c 0246 mov r2, r0
|
|
|
|
|
|
1744 032e 0B46 mov r3, r1
|
|
|
|
|
|
1745 0330 2046 mov r0, r4
|
|
|
|
|
|
1746 0332 2946 mov r1, r5
|
|
|
|
|
|
1747 0334 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
1748 .LVL275:
|
|
|
|
|
|
1749 0338 0BF1010B add fp, fp, #1
|
|
|
|
|
|
1750 .LVL276:
|
|
|
|
|
|
1751 033c 0446 mov r4, r0
|
|
|
|
|
|
1752 .LVL277:
|
|
|
|
|
|
1753 033e 0D46 mov r5, r1
|
|
|
|
|
|
1754 .LVL278:
|
|
|
|
|
|
1755 0340 5DE7 b .L129
|
|
|
|
|
|
1756 .LVL279:
|
|
|
|
|
|
1757 .L194:
|
|
|
|
|
|
1758 .LBE65:
|
|
|
|
|
|
1759 .LBE74:
|
|
|
|
|
|
1760 .LBB75:
|
|
|
|
|
|
1761 .LBB71:
|
|
|
|
|
|
1762 0342 11A3 adr r3, .L206+32
|
|
|
|
|
|
1763 0344 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1764 0348 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1765 .LVL280:
|
|
|
|
|
|
1766 034c 0246 mov r2, r0
|
|
|
|
|
|
1767 034e 0B46 mov r3, r1
|
|
|
|
|
|
1768 0350 D7E7 b .L181
|
|
|
|
|
|
1769 .LVL281:
|
|
|
|
|
|
1770 .L201:
|
|
|
|
|
|
1771 .LBE71:
|
|
|
|
|
|
1772 .LBE75:
|
|
|
|
|
|
1773 .LBB76:
|
|
|
|
|
|
1774 .LBB66:
|
|
|
|
|
|
1775 0352 0DA3 adr r3, .L206+32
|
|
|
|
|
|
1776 0354 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1777 0358 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1778 .LVL282:
|
|
|
|
|
|
1779 035c 0246 mov r2, r0
|
|
|
|
|
|
1780 035e 0B46 mov r3, r1
|
|
|
|
|
|
1781 0360 E2E7 b .L182
|
|
|
|
|
|
1782 .L207:
|
|
|
|
|
|
1783 0362 00BFAFF3 .align 3
|
|
|
|
|
|
1783 0080
|
|
|
|
|
|
1784 .L206:
|
|
|
|
|
|
1785 0368 182D4454 .word 1413754136
|
|
|
|
|
|
1786 036c FB210940 .word 1074340347
|
|
|
|
|
|
1787 0370 00000000 .word 0
|
|
|
|
|
|
1788 0374 00000000 .word 0
|
|
|
|
|
|
1789 0378 34C756A5 .word 2773927732
|
|
|
|
|
|
1790 037c E31DC73E .word 1053236707
|
|
|
|
|
|
1791 0380 176CC116 .word 381774871
|
|
|
|
|
|
1792 0384 6CC1563F .word 1062650220
|
|
|
|
|
|
1793 0388 1AA0011A .word 436314138
|
|
|
|
|
|
1794 038c A001FA3E .word 1056571808
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 38
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1795 0390 00002440 .word 1076101120
|
|
|
|
|
|
1796 0394 0000F03F .word 1072693248
|
|
|
|
|
|
1797 0398 0000E03F .word 1071644672
|
|
|
|
|
|
1798 .LVL283:
|
|
|
|
|
|
1799 .L195:
|
|
|
|
|
|
1800 039c 0022 movs r2, #0
|
|
|
|
|
|
1801 039e 664B ldr r3, .L208+64
|
|
|
|
|
|
1802 03a0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1803 .LVL284:
|
|
|
|
|
|
1804 03a4 BEE7 b .L130
|
|
|
|
|
|
1805 .LVL285:
|
|
|
|
|
|
1806 .L188:
|
|
|
|
|
|
1807 03a6 0022 movs r2, #0
|
|
|
|
|
|
1808 03a8 634B ldr r3, .L208+64
|
|
|
|
|
|
1809 03aa FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1810 .LVL286:
|
|
|
|
|
|
1811 03ae A6E7 b .L120
|
|
|
|
|
|
1812 .LVL287:
|
|
|
|
|
|
1813 .L196:
|
|
|
|
|
|
1814 03b0 51A3 adr r3, .L208
|
|
|
|
|
|
1815 03b2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1816 03b6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1817 .LVL288:
|
|
|
|
|
|
1818 03ba B3E7 b .L130
|
|
|
|
|
|
1819 .LVL289:
|
|
|
|
|
|
1820 .L189:
|
|
|
|
|
|
1821 03bc 4EA3 adr r3, .L208
|
|
|
|
|
|
1822 03be D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1823 03c2 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1824 .LVL290:
|
|
|
|
|
|
1825 03c6 9AE7 b .L120
|
|
|
|
|
|
1826 .LVL291:
|
|
|
|
|
|
1827 .L197:
|
|
|
|
|
|
1828 03c8 4DA3 adr r3, .L208+8
|
|
|
|
|
|
1829 03ca D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1830 03ce FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1831 .LVL292:
|
|
|
|
|
|
1832 03d2 A7E7 b .L130
|
|
|
|
|
|
1833 .LVL293:
|
|
|
|
|
|
1834 .L190:
|
|
|
|
|
|
1835 03d4 4AA3 adr r3, .L208+8
|
|
|
|
|
|
1836 03d6 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1837 03da FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1838 .LVL294:
|
|
|
|
|
|
1839 03de 8EE7 b .L120
|
|
|
|
|
|
1840 .LVL295:
|
|
|
|
|
|
1841 .L198:
|
|
|
|
|
|
1842 03e0 49A3 adr r3, .L208+16
|
|
|
|
|
|
1843 03e2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1844 03e6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1845 .LVL296:
|
|
|
|
|
|
1846 03ea 9BE7 b .L130
|
|
|
|
|
|
1847 .LVL297:
|
|
|
|
|
|
1848 .L191:
|
|
|
|
|
|
1849 03ec 46A3 adr r3, .L208+16
|
|
|
|
|
|
1850 03ee D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1851 03f2 FFF7FEFF bl __aeabi_dmul
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 39
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1852 .LVL298:
|
|
|
|
|
|
1853 03f6 82E7 b .L120
|
|
|
|
|
|
1854 .LVL299:
|
|
|
|
|
|
1855 .L192:
|
|
|
|
|
|
1856 03f8 45A3 adr r3, .L208+24
|
|
|
|
|
|
1857 03fa D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1858 03fe FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1859 .LVL300:
|
|
|
|
|
|
1860 0402 7CE7 b .L120
|
|
|
|
|
|
1861 .LVL301:
|
|
|
|
|
|
1862 .L200:
|
|
|
|
|
|
1863 0404 44A3 adr r3, .L208+32
|
|
|
|
|
|
1864 0406 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1865 040a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1866 .LVL302:
|
|
|
|
|
|
1867 040e 89E7 b .L130
|
|
|
|
|
|
1868 .LVL303:
|
|
|
|
|
|
1869 .L193:
|
|
|
|
|
|
1870 0410 41A3 adr r3, .L208+32
|
|
|
|
|
|
1871 0412 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1872 0416 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1873 .LVL304:
|
|
|
|
|
|
1874 041a 70E7 b .L120
|
|
|
|
|
|
1875 .LVL305:
|
|
|
|
|
|
1876 .L202:
|
|
|
|
|
|
1877 041c DDF834B0 ldr fp, [sp, #52]
|
|
|
|
|
|
1878 .L140:
|
|
|
|
|
|
1879 .LVL306:
|
|
|
|
|
|
1880 .LBE66:
|
|
|
|
|
|
1881 .LBE76:
|
|
|
|
|
|
1882 .LBE60:
|
|
|
|
|
|
177:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
1883 .loc 1 177 0
|
|
|
|
|
|
1884 0420 BBF1000F cmp fp, #0
|
|
|
|
|
|
1885 0424 3FF763AE bgt .L151
|
|
|
|
|
|
1886 0428 099B ldr r3, [sp, #36]
|
|
|
|
|
|
1887 042a 72E6 b .L157
|
|
|
|
|
|
1888 .LVL307:
|
|
|
|
|
|
1889 .L178:
|
|
|
|
|
|
1890 .LCFI21:
|
|
|
|
|
|
1891 .cfi_def_cfa_offset 0
|
|
|
|
|
|
1892 .cfi_restore 4
|
|
|
|
|
|
1893 .cfi_restore 5
|
|
|
|
|
|
1894 .cfi_restore 6
|
|
|
|
|
|
1895 .cfi_restore 7
|
|
|
|
|
|
1896 .cfi_restore 8
|
|
|
|
|
|
1897 .cfi_restore 9
|
|
|
|
|
|
1898 .cfi_restore 10
|
|
|
|
|
|
1899 .cfi_restore 11
|
|
|
|
|
|
1900 .cfi_restore 14
|
|
|
|
|
|
1901 .cfi_restore 80
|
|
|
|
|
|
1902 .cfi_restore 81
|
|
|
|
|
|
1903 .cfi_restore 82
|
|
|
|
|
|
1904 .cfi_restore 83
|
|
|
|
|
|
1905 042c 7047 bx lr
|
|
|
|
|
|
1906 .LVL308:
|
|
|
|
|
|
1907 .L187:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 40
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1908 .LCFI22:
|
|
|
|
|
|
1909 .cfi_def_cfa_offset 112
|
|
|
|
|
|
1910 .cfi_offset 4, -36
|
|
|
|
|
|
1911 .cfi_offset 5, -32
|
|
|
|
|
|
1912 .cfi_offset 6, -28
|
|
|
|
|
|
1913 .cfi_offset 7, -24
|
|
|
|
|
|
1914 .cfi_offset 8, -20
|
|
|
|
|
|
1915 .cfi_offset 9, -16
|
|
|
|
|
|
1916 .cfi_offset 10, -12
|
|
|
|
|
|
1917 .cfi_offset 11, -8
|
|
|
|
|
|
1918 .cfi_offset 14, -4
|
|
|
|
|
|
1919 .cfi_offset 80, -52
|
|
|
|
|
|
1920 .cfi_offset 81, -48
|
|
|
|
|
|
1921 .cfi_offset 82, -44
|
|
|
|
|
|
1922 .cfi_offset 83, -40
|
|
|
|
|
|
1923 042e 059B ldr r3, [sp, #20]
|
|
|
|
|
|
1924 0430 03EBD37B add fp, r3, r3, lsr #31
|
|
|
|
|
|
158:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
1925 .loc 1 158 0
|
|
|
|
|
|
1926 0434 002B cmp r3, #0
|
|
|
|
|
|
1927 0436 4FEA6B0B asr fp, fp, #1
|
|
|
|
|
|
1928 043a 58DD ble .L118
|
|
|
|
|
|
1929 043c 089A ldr r2, [sp, #32]
|
|
|
|
|
|
1930 043e 0499 ldr r1, [sp, #16]
|
|
|
|
|
|
1931 0440 CDF800B0 str fp, [sp]
|
|
|
|
|
|
1932 0444 103A subs r2, r2, #16
|
|
|
|
|
|
1933 0446 0992 str r2, [sp, #36]
|
|
|
|
|
|
1934 0448 01EB0209 add r9, r1, r2
|
|
|
|
|
|
1935 044c C3F10108 rsb r8, r3, #1
|
|
|
|
|
|
1936 0450 0D46 mov r5, r1
|
|
|
|
|
|
1937 0452 0C46 mov r4, r1
|
|
|
|
|
|
1938 0454 DDE906AB ldrd r10, [sp, #24]
|
|
|
|
|
|
1939 0458 0CE0 b .L145
|
|
|
|
|
|
1940 .LVL309:
|
|
|
|
|
|
1941 .L205:
|
|
|
|
|
|
1942 .LBB77:
|
|
|
|
|
|
1943 .LBB78:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
1944 .loc 1 104 0
|
|
|
|
|
|
1945 045a 3046 mov r0, r6
|
|
|
|
|
|
1946 045c 3946 mov r1, r7
|
|
|
|
|
|
1947 045e FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
1948 .LVL310:
|
|
|
|
|
|
1949 0462 28B3 cbz r0, .L142
|
|
|
|
|
|
1950 0464 3549 ldr r1, .L208+68
|
|
|
|
|
|
1951 .LVL311:
|
|
|
|
|
|
1952 0466 0020 movs r0, #0
|
|
|
|
|
|
1953 .LBE78:
|
|
|
|
|
|
1954 .LBE77:
|
|
|
|
|
|
158:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
1955 .loc 1 158 0
|
|
|
|
|
|
1956 0468 E4E80201 strd r0, [r4], #8
|
|
|
|
|
|
1957 046c A145 cmp r9, r4
|
|
|
|
|
|
1958 046e 08F10208 add r8, r8, #2
|
|
|
|
|
|
1959 0472 2DD0 beq .L204
|
|
|
|
|
|
1960 .L145:
|
|
|
|
|
|
1961 0474 5246 mov r2, r10
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 41
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1962 0476 5B46 mov r3, fp
|
|
|
|
|
|
1963 0478 29A1 adr r1, .L208+40
|
|
|
|
|
|
1964 047a D1E90001 ldrd r0, [r1]
|
|
|
|
|
|
1965 047e FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
1966 .LVL312:
|
|
|
|
|
|
1967 0482 0646 mov r6, r0
|
|
|
|
|
|
1968 0484 4046 mov r0, r8
|
|
|
|
|
|
1969 0486 0F46 mov r7, r1
|
|
|
|
|
|
1970 0488 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
1971 .LVL313:
|
|
|
|
|
|
1972 048c 0246 mov r2, r0
|
|
|
|
|
|
1973 048e 0B46 mov r3, r1
|
|
|
|
|
|
1974 0490 3046 mov r0, r6
|
|
|
|
|
|
1975 0492 3946 mov r1, r7
|
|
|
|
|
|
1976 0494 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
1977 .LVL314:
|
|
|
|
|
|
1978 .LBB81:
|
|
|
|
|
|
1979 .LBB79:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
1980 .loc 1 104 0
|
|
|
|
|
|
1981 0498 23A3 adr r3, .L208+48
|
|
|
|
|
|
1982 049a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1983 .LBE79:
|
|
|
|
|
|
1984 .LBE81:
|
|
|
|
|
|
158:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
1985 .loc 1 158 0
|
|
|
|
|
|
1986 049e 0646 mov r6, r0
|
|
|
|
|
|
1987 04a0 0F46 mov r7, r1
|
|
|
|
|
|
1988 .LVL315:
|
|
|
|
|
|
1989 .LBB82:
|
|
|
|
|
|
1990 .LBB80:
|
|
|
|
|
|
104:Core/Src/FIRFilterCode.c **** return(sin(x)/x);
|
|
|
|
|
|
1991 .loc 1 104 0
|
|
|
|
|
|
1992 04a2 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
1993 .LVL316:
|
|
|
|
|
|
1994 04a6 22A3 adr r3, .L208+56
|
|
|
|
|
|
1995 04a8 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
1996 04ac 0028 cmp r0, #0
|
|
|
|
|
|
1997 04ae D4D1 bne .L205
|
|
|
|
|
|
1998 .L142:
|
|
|
|
|
|
105:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
1999 .loc 1 105 0
|
|
|
|
|
|
2000 04b0 47EC106B vmov d0, r6, r7
|
|
|
|
|
|
2001 04b4 FFF7FEFF bl sin
|
|
|
|
|
|
2002 .LVL317:
|
|
|
|
|
|
2003 04b8 3246 mov r2, r6
|
|
|
|
|
|
2004 04ba 3B46 mov r3, r7
|
|
|
|
|
|
2005 04bc 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
2006 04c0 FFF7FEFF bl __aeabi_ddiv
|
|
|
|
|
|
2007 .LVL318:
|
|
|
|
|
|
2008 .LBE80:
|
|
|
|
|
|
2009 .LBE82:
|
|
|
|
|
|
158:Core/Src/FIRFilterCode.c **** for(j=0; j<N; j++)WinCoeff[j] = pow(WinCoeff[j], Beta);
|
|
|
|
|
|
2010 .loc 1 158 0
|
|
|
|
|
|
2011 04c4 E4E80201 strd r0, [r4], #8
|
|
|
|
|
|
2012 04c8 A145 cmp r9, r4
|
|
|
|
|
|
2013 04ca 08F10208 add r8, r8, #2
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 42
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014 04ce D1D1 bne .L145
|
|
|
|
|
|
2015 .L204:
|
|
|
|
|
|
2016 04d0 DDF800B0 ldr fp, [sp]
|
|
|
|
|
|
2017 .L146:
|
|
|
|
|
|
159:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2018 .loc 1 159 0 discriminator 3
|
|
|
|
|
|
2019 04d4 B0EE481A vmov.f32 s2, s16
|
|
|
|
|
|
2020 04d8 F0EE681A vmov.f32 s3, s17
|
|
|
|
|
|
2021 04dc 95ED000B vldr.64 d0, [r5]
|
|
|
|
|
|
2022 04e0 FFF7FEFF bl pow
|
|
|
|
|
|
2023 .LVL319:
|
|
|
|
|
|
2024 04e4 A5EC020B vstmia.64 r5!, {d0}
|
|
|
|
|
|
2025 04e8 AC42 cmp r4, r5
|
|
|
|
|
|
2026 04ea F3D1 bne .L146
|
|
|
|
|
|
2027 04ec 98E7 b .L140
|
|
|
|
|
|
2028 .LVL320:
|
|
|
|
|
|
2029 .L118:
|
|
|
|
|
|
177:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2030 .loc 1 177 0
|
|
|
|
|
|
2031 04ee BBF1000F cmp fp, #0
|
|
|
|
|
|
2032 04f2 7FF71CAE ble .L153
|
|
|
|
|
|
2033 04f6 F7E5 b .L183
|
|
|
|
|
|
2034 .L209:
|
|
|
|
|
|
2035 .align 3
|
|
|
|
|
|
2036 .L208:
|
|
|
|
|
|
2037 04f8 55555555 .word 1431655765
|
|
|
|
|
|
2038 04fc 5555C53F .word 1069897045
|
|
|
|
|
|
2039 0500 55555555 .word 1431655765
|
|
|
|
|
|
2040 0504 5555A53F .word 1067799893
|
|
|
|
|
|
2041 0508 11111111 .word 286331153
|
|
|
|
|
|
2042 050c 1111813F .word 1065423121
|
|
|
|
|
|
2043 0510 176CC116 .word 381774871
|
|
|
|
|
|
2044 0514 6CC1563F .word 1062650220
|
|
|
|
|
|
2045 0518 1AA0011A .word 436314138
|
|
|
|
|
|
2046 051c A0012A3F .word 1059717536
|
|
|
|
|
|
2047 0520 182D4454 .word 1413754136
|
|
|
|
|
|
2048 0524 FB210940 .word 1074340347
|
|
|
|
|
|
2049 0528 F168E388 .word 2296604913
|
|
|
|
|
|
2050 052c B5F8E4BE .word -1092290379
|
|
|
|
|
|
2051 0530 F168E388 .word 2296604913
|
|
|
|
|
|
2052 0534 B5F8E43E .word 1055193269
|
|
|
|
|
|
2053 0538 0000E03F .word 1071644672
|
|
|
|
|
|
2054 053c 0000F03F .word 1072693248
|
|
|
|
|
|
2055 .cfi_endproc
|
|
|
|
|
|
2056 .LFE3:
|
|
|
|
|
|
2058 .global __aeabi_d2iz
|
|
|
|
|
|
2059 .section .text.FIRFreqError,"ax",%progbits
|
|
|
|
|
|
2060 .align 1
|
|
|
|
|
|
2061 .p2align 2,,3
|
|
|
|
|
|
2062 .global FIRFreqError
|
|
|
|
|
|
2063 .syntax unified
|
|
|
|
|
|
2064 .thumb
|
|
|
|
|
|
2065 .thumb_func
|
|
|
|
|
|
2066 .fpu fpv4-sp-d16
|
|
|
|
|
|
2068 FIRFreqError:
|
|
|
|
|
|
2069 .LFB4:
|
|
|
|
|
|
186:Core/Src/FIRFilterCode.c ****
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 43
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187:Core/Src/FIRFilterCode.c **** /*
|
|
|
|
|
|
188:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
189:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
190:Core/Src/FIRFilterCode.c **** // This implements an FIR filter. The register shifts are done by rotating the indexes.
|
|
|
|
|
|
191:Core/Src/FIRFilterCode.c **** void FilterWithFIR(double *FirCoeff, int NumTaps, double *Signal, double *FilteredSignal, int NumSi
|
|
|
|
|
|
192:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
193:Core/Src/FIRFilterCode.c **** int j, k, n, Top = 0;
|
|
|
|
|
|
194:Core/Src/FIRFilterCode.c **** double y, Reg[MAX_NUMTAPS];
|
|
|
|
|
|
195:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
196:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)Reg[j] = 0.0;
|
|
|
|
|
|
197:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
198:Core/Src/FIRFilterCode.c **** for(j=0; j<NumSigPts; j++)
|
|
|
|
|
|
199:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
200:Core/Src/FIRFilterCode.c **** Reg[Top] = Signal[j];
|
|
|
|
|
|
201:Core/Src/FIRFilterCode.c **** y = 0.0;
|
|
|
|
|
|
202:Core/Src/FIRFilterCode.c **** n = 0;
|
|
|
|
|
|
203:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
204:Core/Src/FIRFilterCode.c **** // The FirCoeff index increases while the Reg index decreases.
|
|
|
|
|
|
205:Core/Src/FIRFilterCode.c **** for(k=Top; k>=0; k--)
|
|
|
|
|
|
206:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
207:Core/Src/FIRFilterCode.c **** y += FirCoeff[n++] * Reg[k];
|
|
|
|
|
|
208:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
209:Core/Src/FIRFilterCode.c **** for(k=NumTaps-1; k>Top; k--)
|
|
|
|
|
|
210:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
211:Core/Src/FIRFilterCode.c **** y += FirCoeff[n++] * Reg[k];
|
|
|
|
|
|
212:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
213:Core/Src/FIRFilterCode.c **** FilteredSignal[j] = y;
|
|
|
|
|
|
214:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
215:Core/Src/FIRFilterCode.c **** Top++;
|
|
|
|
|
|
216:Core/Src/FIRFilterCode.c **** if(Top >= NumTaps)Top = 0;
|
|
|
|
|
|
217:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
218:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
219:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
220:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
221:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
222:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
223:Core/Src/FIRFilterCode.c **** // This code is equivalent to the code above. It uses register shifts, which makes it
|
|
|
|
|
|
224:Core/Src/FIRFilterCode.c **** // less efficient, but it is easier to follow (i.e. compare to a FIR flow chart).
|
|
|
|
|
|
225:Core/Src/FIRFilterCode.c **** void FilterWithFIR2(double *FirCoeff, int NumTaps, double *Signal, double *FilteredSignal, int NumS
|
|
|
|
|
|
226:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
227:Core/Src/FIRFilterCode.c **** int j, k;
|
|
|
|
|
|
228:Core/Src/FIRFilterCode.c **** double y, Reg[MAX_NUMTAPS];
|
|
|
|
|
|
229:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
230:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)Reg[j] = 0.0; // Init the delay registers.
|
|
|
|
|
|
231:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
232:Core/Src/FIRFilterCode.c **** for(j=0; j<NumSigPts; j++)
|
|
|
|
|
|
233:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
234:Core/Src/FIRFilterCode.c **** // Shift the register values down and set Reg[0].
|
|
|
|
|
|
235:Core/Src/FIRFilterCode.c **** for(k=NumTaps; k>1; k--)Reg[k-1] = Reg[k-2];
|
|
|
|
|
|
236:Core/Src/FIRFilterCode.c **** Reg[0] = Signal[j];
|
|
|
|
|
|
237:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
238:Core/Src/FIRFilterCode.c **** y = 0.0;
|
|
|
|
|
|
239:Core/Src/FIRFilterCode.c **** for(k=0; k<NumTaps; k++)y += FirCoeff[k] * Reg[k];
|
|
|
|
|
|
240:Core/Src/FIRFilterCode.c **** FilteredSignal[j] = y;
|
|
|
|
|
|
241:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
242:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
243:Core/Src/FIRFilterCode.c **** }
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 44
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
245:Core/Src/FIRFilterCode.c **** */
|
|
|
|
|
|
246:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
247:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
248:Core/Src/FIRFilterCode.c **** // This function is used to correct the corner frequency values on FIR filters.
|
|
|
|
|
|
249:Core/Src/FIRFilterCode.c **** // We normally specify the 3 dB frequencies when specifing a filter. The Parks McClellan routine
|
|
|
|
|
|
250:Core/Src/FIRFilterCode.c **** // uses OmegaC and BW to set the 0 dB band edges, so its final OmegaC and BW values are not close
|
|
|
|
|
|
251:Core/Src/FIRFilterCode.c **** // to -3 dB. The Rectangular Windowed filters are better for high tap counts, but for low tap count
|
|
|
|
|
|
252:Core/Src/FIRFilterCode.c **** // their 3 dB frequencies are also well off the mark.
|
|
|
|
|
|
253:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
254:Core/Src/FIRFilterCode.c **** // To use this function, first calculate a set of FIR coefficients, then pass them here, along with
|
|
|
|
|
|
255:Core/Src/FIRFilterCode.c **** // OmegaC and BW. This calculates a corrected OmegaC for low and high pass filters. It calcultes a
|
|
|
|
|
|
256:Core/Src/FIRFilterCode.c **** // corrected BW for band pass and notch filters. Use these corrected values to recalculate the FIR
|
|
|
|
|
|
257:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
258:Core/Src/FIRFilterCode.c **** // The Goertzel algorithm is used to calculate the filter's magnitude response at the single
|
|
|
|
|
|
259:Core/Src/FIRFilterCode.c **** // frequency defined in the loop. We start in the pass band and work out to the -20dB freq.
|
|
|
|
|
|
260:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
261:Core/Src/FIRFilterCode.c **** void FIRFreqError(double *Coeff, int NumTaps, int PassType, double *OmegaC, double *BW)
|
|
|
|
|
|
262:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2070 .loc 1 262 0
|
|
|
|
|
|
2071 .cfi_startproc
|
|
|
|
|
|
2072 @ args = 4, pretend = 0, frame = 48
|
|
|
|
|
|
2073 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
2074 .LVL321:
|
|
|
|
|
|
2075 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
2076 .LCFI23:
|
|
|
|
|
|
2077 .cfi_def_cfa_offset 36
|
|
|
|
|
|
2078 .cfi_offset 4, -36
|
|
|
|
|
|
2079 .cfi_offset 5, -32
|
|
|
|
|
|
2080 .cfi_offset 6, -28
|
|
|
|
|
|
2081 .cfi_offset 7, -24
|
|
|
|
|
|
2082 .cfi_offset 8, -20
|
|
|
|
|
|
2083 .cfi_offset 9, -16
|
|
|
|
|
|
2084 .cfi_offset 10, -12
|
|
|
|
|
|
2085 .cfi_offset 11, -8
|
|
|
|
|
|
2086 .cfi_offset 14, -4
|
|
|
|
|
|
2087 0004 93ED007B vldr.64 d7, [r3]
|
|
|
|
|
|
2088 0008 8DB0 sub sp, sp, #52
|
|
|
|
|
|
2089 .LCFI24:
|
|
|
|
|
|
2090 .cfi_def_cfa_offset 88
|
|
|
|
|
|
2091 .loc 1 262 0
|
|
|
|
|
|
2092 000a CDE90510 strd r1, r0, [sp, #20]
|
|
|
|
|
|
2093 000e 0B93 str r3, [sp, #44]
|
|
|
|
|
|
2094 0010 8DED087B vstr.64 d7, [sp, #32]
|
|
|
|
|
|
263:Core/Src/FIRFilterCode.c **** int j, J3dB, CenterJ;
|
|
|
|
|
|
264:Core/Src/FIRFilterCode.c **** double Omega, CorrectedOmega, CorrectedBW, Omega1, Omega2, Mag;
|
|
|
|
|
|
265:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
266:Core/Src/FIRFilterCode.c **** // In these loops, we break at -20 dB to ensure that large ripple is ignored.
|
|
|
|
|
|
267:Core/Src/FIRFilterCode.c **** if(PassType == firLPF)
|
|
|
|
|
|
2095 .loc 1 267 0
|
|
|
|
|
|
2096 0014 0792 str r2, [sp, #28]
|
|
|
|
|
|
2097 0016 002A cmp r2, #0
|
|
|
|
|
|
2098 0018 40F0B280 bne .L211
|
|
|
|
|
|
2099 001c 00EBC105 add r5, r0, r1, lsl #3
|
|
|
|
|
|
2100 0020 834B ldr r3, .L301+48
|
|
|
|
|
|
2101 .LVL322:
|
|
|
|
|
|
268:Core/Src/FIRFilterCode.c **** {
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 45
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269:Core/Src/FIRFilterCode.c **** J3dB = 10;
|
|
|
|
|
|
2102 .loc 1 269 0
|
|
|
|
|
|
2103 0022 0A21 movs r1, #10
|
|
|
|
|
|
2104 .LVL323:
|
|
|
|
|
|
267:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2105 .loc 1 267 0
|
|
|
|
|
|
2106 0024 0022 movs r2, #0
|
|
|
|
|
|
2107 .LVL324:
|
|
|
|
|
|
2108 .loc 1 269 0
|
|
|
|
|
|
2109 0026 0A91 str r1, [sp, #40]
|
|
|
|
|
|
2110 0028 AB46 mov fp, r5
|
|
|
|
|
|
2111 .LVL325:
|
|
|
|
|
|
2112 .L216:
|
|
|
|
|
|
2113 .LBB95:
|
|
|
|
|
|
2114 .LBB96:
|
|
|
|
|
|
270:Core/Src/FIRFilterCode.c **** for(j=0; j<NUM_FREQ_ERR_PTS; j++)
|
|
|
|
|
|
271:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
272:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
273:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
274:Core/Src/FIRFilterCode.c **** if(Mag > 0.707)J3dB = j; // J3dB will be the last j where the response was > -3 dB
|
|
|
|
|
|
275:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break; // Stop when the response is down to -20 dB.
|
|
|
|
|
|
276:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
277:Core/Src/FIRFilterCode.c **** Omega = (double)J3dB / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
278:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
279:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
280:Core/Src/FIRFilterCode.c **** else if(PassType == firHPF)
|
|
|
|
|
|
281:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
282:Core/Src/FIRFilterCode.c **** J3dB = NUM_FREQ_ERR_PTS - 10;
|
|
|
|
|
|
283:Core/Src/FIRFilterCode.c **** for(j=NUM_FREQ_ERR_PTS-1; j>=0; j--)
|
|
|
|
|
|
284:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
285:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
286:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
287:Core/Src/FIRFilterCode.c **** if(Mag > 0.707)J3dB = j; // J3dB will be the last j where the response was > -3 dB
|
|
|
|
|
|
288:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break; // Stop when the response is down to -20 dB.
|
|
|
|
|
|
289:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
290:Core/Src/FIRFilterCode.c **** Omega = (double)J3dB / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
291:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
292:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
293:Core/Src/FIRFilterCode.c **** else if(PassType == firBPF)
|
|
|
|
|
|
294:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
295:Core/Src/FIRFilterCode.c **** CenterJ = (int)(dNUM_FREQ_ERR_PTS * *OmegaC);
|
|
|
|
|
|
296:Core/Src/FIRFilterCode.c **** J3dB = CenterJ;
|
|
|
|
|
|
297:Core/Src/FIRFilterCode.c **** for(j=CenterJ; j>=0; j--)
|
|
|
|
|
|
298:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
299:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
300:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
301:Core/Src/FIRFilterCode.c **** if(Mag > 0.707)J3dB = j;
|
|
|
|
|
|
302:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break;
|
|
|
|
|
|
303:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
304:Core/Src/FIRFilterCode.c **** Omega1 = (double)J3dB / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
305:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
306:Core/Src/FIRFilterCode.c **** J3dB = CenterJ;
|
|
|
|
|
|
307:Core/Src/FIRFilterCode.c **** for(j=CenterJ; j<NUM_FREQ_ERR_PTS; j++)
|
|
|
|
|
|
308:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
309:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
310:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
311:Core/Src/FIRFilterCode.c **** if(Mag > 0.707)J3dB = j;
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 46
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break;
|
|
|
|
|
|
313:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
314:Core/Src/FIRFilterCode.c **** Omega2 = (double)J3dB / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
315:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
316:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
317:Core/Src/FIRFilterCode.c **** // The code above starts in the pass band. This starts in the stop band.
|
|
|
|
|
|
318:Core/Src/FIRFilterCode.c **** else // PassType == firNOTCH
|
|
|
|
|
|
319:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
320:Core/Src/FIRFilterCode.c **** CenterJ = (int)(dNUM_FREQ_ERR_PTS * *OmegaC);
|
|
|
|
|
|
321:Core/Src/FIRFilterCode.c **** J3dB = CenterJ;
|
|
|
|
|
|
322:Core/Src/FIRFilterCode.c **** for(j=CenterJ; j>=0; j--)
|
|
|
|
|
|
323:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
324:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
325:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
326:Core/Src/FIRFilterCode.c **** if(Mag <= 0.707)J3dB = j;
|
|
|
|
|
|
327:Core/Src/FIRFilterCode.c **** if(Mag > 0.99)break;
|
|
|
|
|
|
328:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
329:Core/Src/FIRFilterCode.c **** Omega1 = (double)J3dB/dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
330:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
331:Core/Src/FIRFilterCode.c **** J3dB = CenterJ;
|
|
|
|
|
|
332:Core/Src/FIRFilterCode.c **** for(j=CenterJ; j<NUM_FREQ_ERR_PTS; j++)
|
|
|
|
|
|
333:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
334:Core/Src/FIRFilterCode.c **** Omega = (double)j / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
335:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
336:Core/Src/FIRFilterCode.c **** if(Mag <= 0.707)J3dB = j;
|
|
|
|
|
|
337:Core/Src/FIRFilterCode.c **** if(Mag > 0.99)break;
|
|
|
|
|
|
338:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
339:Core/Src/FIRFilterCode.c **** Omega2 = (double)J3dB / dNUM_FREQ_ERR_PTS;
|
|
|
|
|
|
340:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
341:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
342:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
343:Core/Src/FIRFilterCode.c **** // This calculates the corrected OmegaC and BW and error checks the values.
|
|
|
|
|
|
344:Core/Src/FIRFilterCode.c **** if(PassType == firLPF || PassType == firHPF )
|
|
|
|
|
|
345:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
346:Core/Src/FIRFilterCode.c **** CorrectedOmega = *OmegaC * 2.0 - Omega; // This is usually OK.
|
|
|
|
|
|
347:Core/Src/FIRFilterCode.c **** if(CorrectedOmega < 0.001)CorrectedOmega = 0.001;
|
|
|
|
|
|
348:Core/Src/FIRFilterCode.c **** if(CorrectedOmega > 0.99)CorrectedOmega = 0.99;
|
|
|
|
|
|
349:Core/Src/FIRFilterCode.c **** *OmegaC = CorrectedOmega;
|
|
|
|
|
|
350:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
351:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
352:Core/Src/FIRFilterCode.c **** else // PassType == firBPF || PassType == firNOTCH
|
|
|
|
|
|
353:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
354:Core/Src/FIRFilterCode.c **** CorrectedBW = *BW * 2.0 - (Omega2 - Omega1); // This routinely goes neg with Notch.
|
|
|
|
|
|
355:Core/Src/FIRFilterCode.c **** if(CorrectedBW < 0.01)CorrectedBW = 0.01;
|
|
|
|
|
|
356:Core/Src/FIRFilterCode.c **** if(CorrectedBW > *BW * 2.0)CorrectedBW = *BW * 2.0;
|
|
|
|
|
|
357:Core/Src/FIRFilterCode.c **** if(CorrectedBW > 0.98)CorrectedBW = 0.98;
|
|
|
|
|
|
358:Core/Src/FIRFilterCode.c **** *BW = CorrectedBW;
|
|
|
|
|
|
359:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
360:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
361:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
362:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
363:Core/Src/FIRFilterCode.c **** /*
|
|
|
|
|
|
364:Core/Src/FIRFilterCode.c **** //-----------------------------------------------------------------------------
|
|
|
|
|
|
365:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
366:Core/Src/FIRFilterCode.c **** // This shows how to adjust the delay of an FIR by a fractional amount.
|
|
|
|
|
|
367:Core/Src/FIRFilterCode.c **** // We take the FFT of the FIR coefficients to get to the frequency domain,
|
|
|
|
|
|
368:Core/Src/FIRFilterCode.c **** // then apply the Laplace delay operator, and then do an inverse FFT.
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 47
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
370:Core/Src/FIRFilterCode.c **** // Use this function last. i.e. After the window was applied to the coefficients.
|
|
|
|
|
|
371:Core/Src/FIRFilterCode.c **** // The Delay value is in terms of a fraction of a sample (not in terms of sampling freq).
|
|
|
|
|
|
372:Core/Src/FIRFilterCode.c **** // Delay may be pos or neg. Typically a filter's delay can be adjusted by +/- NumTaps/20
|
|
|
|
|
|
373:Core/Src/FIRFilterCode.c **** // without affecting its performance significantly. A typical Delay value would be 0.75
|
|
|
|
|
|
374:Core/Src/FIRFilterCode.c **** void AdjustDelay(double *FirCoeff, int NumTaps, double Delay)
|
|
|
|
|
|
375:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
376:Core/Src/FIRFilterCode.c **** int j, FFTSize;
|
|
|
|
|
|
377:Core/Src/FIRFilterCode.c **** double *FFTInputR, *FFTInputI, Arg, Temp;
|
|
|
|
|
|
378:Core/Src/FIRFilterCode.c **** FFTSize = RequiredFFTSize(NumTaps+(int)fabs(Delay)+1); // Zero pad by at least Delay + 1 to preven
|
|
|
|
|
|
379:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
380:Core/Src/FIRFilterCode.c **** FFTInputR = new(std::nothrow) double[FFTSize]; // Real part
|
|
|
|
|
|
381:Core/Src/FIRFilterCode.c **** FFTInputI = new(std::nothrow) double[FFTSize]; // Imag part
|
|
|
|
|
|
382:Core/Src/FIRFilterCode.c **** if(FFTInputR == NULL || FFTInputI == NULL)
|
|
|
|
|
|
383:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
384:Core/Src/FIRFilterCode.c **** //ShowMessage("Unable to allocate memory in AdjustDelay");
|
|
|
|
|
|
385:Core/Src/FIRFilterCode.c **** return;
|
|
|
|
|
|
386:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
387:Core/Src/FIRFilterCode.c **** for(j=0; j<FFTSize; j++)FFTInputR[j] = FFTInputI[j] = 0.0; // A mandatory init.
|
|
|
|
|
|
388:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)FFTInputR[j] = FirCoeff[j]; // Fill the real part with the FIR coef
|
|
|
|
|
|
389:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
390:Core/Src/FIRFilterCode.c **** FFT(FFTInputR, FFTInputI, FFTSize, FORWARD); // Do an FFT
|
|
|
|
|
|
391:Core/Src/FIRFilterCode.c **** for(j=0; j<=FFTSize/2; j++) // Apply the Laplace Delay operator e^(-
|
|
|
|
|
|
392:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
393:Core/Src/FIRFilterCode.c **** Arg = -Delay * (double)j / (double)FFTSize * M_2PI; // This is -Delay * (the FFT bin frequen
|
|
|
|
|
|
394:Core/Src/FIRFilterCode.c **** Temp = cos(Arg)*FFTInputR[j] - sin(Arg)*FFTInputI[j];
|
|
|
|
|
|
395:Core/Src/FIRFilterCode.c **** FFTInputI[j] = cos(Arg)*FFTInputI[j] + sin(Arg)*FFTInputR[j];
|
|
|
|
|
|
396:Core/Src/FIRFilterCode.c **** FFTInputR[j] = Temp;
|
|
|
|
|
|
397:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
398:Core/Src/FIRFilterCode.c **** for(j=1; j<FFTSize/2; j++) // Fill the neg freq bins with the conjugate values.
|
|
|
|
|
|
399:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
400:Core/Src/FIRFilterCode.c **** FFTInputR[FFTSize-j] = FFTInputR[j];
|
|
|
|
|
|
401:Core/Src/FIRFilterCode.c **** FFTInputI[FFTSize-j] = -FFTInputI[j];
|
|
|
|
|
|
402:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
403:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
404:Core/Src/FIRFilterCode.c **** FFT(FFTInputR, FFTInputI, FFTSize, INVERSE); // Inverse FFT
|
|
|
|
|
|
405:Core/Src/FIRFilterCode.c **** for(j=0; j<NumTaps; j++)
|
|
|
|
|
|
406:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
407:Core/Src/FIRFilterCode.c **** FirCoeff[j] = FFTInputR[j];
|
|
|
|
|
|
408:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
409:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
410:Core/Src/FIRFilterCode.c **** delete[] FFTInputR;
|
|
|
|
|
|
411:Core/Src/FIRFilterCode.c **** delete[] FFTInputI;
|
|
|
|
|
|
412:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
413:Core/Src/FIRFilterCode.c **** //-----------------------------------------------------------------------------
|
|
|
|
|
|
414:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
415:Core/Src/FIRFilterCode.c **** */
|
|
|
|
|
|
416:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
417:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
418:Core/Src/FIRFilterCode.c **** //---------------------------------------------------------------------------
|
|
|
|
|
|
419:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
420:Core/Src/FIRFilterCode.c **** // Goertzel is essentially a single frequency DFT, but without phase information.
|
|
|
|
|
|
421:Core/Src/FIRFilterCode.c **** // Its simplicity allows it to run about 3 times faster than a single frequency DFT.
|
|
|
|
|
|
422:Core/Src/FIRFilterCode.c **** // It is typically used to find a tone embedded in a signal. A DTMF tone for example.
|
|
|
|
|
|
423:Core/Src/FIRFilterCode.c **** // 256 pts in 6 us
|
|
|
|
|
|
424:Core/Src/FIRFilterCode.c **** double Goertzel(double *Samples, int N, double Omega)
|
|
|
|
|
|
425:Core/Src/FIRFilterCode.c **** {
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 48
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
427:Core/Src/FIRFilterCode.c **** double Reg0, Reg1, Reg2; // 3 shift registers
|
|
|
|
|
|
428:Core/Src/FIRFilterCode.c **** double CosVal, Mag;
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c **** Reg1 = Reg2 = 0.0;
|
|
|
|
|
|
430:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** CosVal = 2.0 * cos(M_PI * Omega );
|
|
|
|
|
|
2115 .loc 1 431 0
|
|
|
|
|
|
2116 002a 1946 mov r1, r3
|
|
|
|
|
|
2117 002c 1046 mov r0, r2
|
|
|
|
|
|
2118 002e FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2119 .LVL326:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2120 .loc 1 432 0
|
|
|
|
|
|
2121 0032 059B ldr r3, [sp, #20]
|
|
|
|
|
|
2122 0034 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2123 .loc 1 431 0
|
|
|
|
|
|
2124 0036 CDE90001 strd r0, [sp]
|
|
|
|
|
|
2125 .LVL327:
|
|
|
|
|
|
2126 .loc 1 432 0
|
|
|
|
|
|
2127 003a 73DD ble .L219
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2128 .loc 1 429 0
|
|
|
|
|
|
2129 003c 0026 movs r6, #0
|
|
|
|
|
|
2130 003e 0027 movs r7, #0
|
|
|
|
|
|
2131 .loc 1 432 0
|
|
|
|
|
|
2132 0040 DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2133 .loc 1 429 0
|
|
|
|
|
|
2134 0044 3446 mov r4, r6
|
|
|
|
|
|
2135 0046 3D46 mov r5, r7
|
|
|
|
|
|
2136 0048 03E0 b .L213
|
|
|
|
|
|
2137 .LVL328:
|
|
|
|
|
|
2138 .L260:
|
|
|
|
|
|
2139 004a DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
433:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg0 = Samples[j] + CosVal * Reg1 - Reg2;
|
|
|
|
|
|
2140 .loc 1 434 0
|
|
|
|
|
|
2141 004e 4446 mov r4, r8
|
|
|
|
|
|
2142 .LVL329:
|
|
|
|
|
|
2143 0050 4D46 mov r5, r9
|
|
|
|
|
|
2144 .LVL330:
|
|
|
|
|
|
2145 .L213:
|
|
|
|
|
|
2146 0052 2246 mov r2, r4
|
|
|
|
|
|
2147 0054 2B46 mov r3, r5
|
|
|
|
|
|
2148 0056 FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
2149 005a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2150 .LVL331:
|
|
|
|
|
|
2151 005e 3246 mov r2, r6
|
|
|
|
|
|
2152 0060 3B46 mov r3, r7
|
|
|
|
|
|
2153 0062 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
2154 0066 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2155 .LVL332:
|
|
|
|
|
|
2156 006a 4246 mov r2, r8
|
|
|
|
|
|
2157 006c 4B46 mov r3, r9
|
|
|
|
|
|
2158 006e FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2159 .LVL333:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 49
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2160 .loc 1 432 0
|
|
|
|
|
|
2161 0072 D345 cmp fp, r10
|
|
|
|
|
|
2162 .loc 1 434 0
|
|
|
|
|
|
2163 0074 8046 mov r8, r0
|
|
|
|
|
|
2164 0076 8946 mov r9, r1
|
|
|
|
|
|
2165 .LVL334:
|
|
|
|
|
|
2166 0078 2646 mov r6, r4
|
|
|
|
|
|
2167 007a 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2168 .loc 1 432 0
|
|
|
|
|
|
2169 007c E5D1 bne .L260
|
|
|
|
|
|
435:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
436:Core/Src/FIRFilterCode.c **** Reg1 = Reg0;
|
|
|
|
|
|
437:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c **** Mag = Reg2 * Reg2 + Reg1 * Reg1 - CosVal * Reg1 * Reg2;
|
|
|
|
|
|
2170 .loc 1 438 0
|
|
|
|
|
|
2171 007e 2246 mov r2, r4
|
|
|
|
|
|
2172 0080 2B46 mov r3, r5
|
|
|
|
|
|
2173 0082 2046 mov r0, r4
|
|
|
|
|
|
2174 0084 2946 mov r1, r5
|
|
|
|
|
|
2175 0086 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2176 .LVL335:
|
|
|
|
|
|
2177 008a 4246 mov r2, r8
|
|
|
|
|
|
2178 008c 0446 mov r4, r0
|
|
|
|
|
|
2179 .LVL336:
|
|
|
|
|
|
2180 008e 0D46 mov r5, r1
|
|
|
|
|
|
2181 0090 4B46 mov r3, r9
|
|
|
|
|
|
2182 0092 4046 mov r0, r8
|
|
|
|
|
|
2183 0094 4946 mov r1, r9
|
|
|
|
|
|
2184 0096 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2185 .LVL337:
|
|
|
|
|
|
2186 009a 0246 mov r2, r0
|
|
|
|
|
|
2187 009c 0B46 mov r3, r1
|
|
|
|
|
|
2188 009e 2046 mov r0, r4
|
|
|
|
|
|
2189 00a0 2946 mov r1, r5
|
|
|
|
|
|
2190 00a2 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2191 .LVL338:
|
|
|
|
|
|
2192 00a6 4246 mov r2, r8
|
|
|
|
|
|
2193 00a8 0446 mov r4, r0
|
|
|
|
|
|
2194 00aa 0D46 mov r5, r1
|
|
|
|
|
|
2195 00ac 4B46 mov r3, r9
|
|
|
|
|
|
2196 00ae DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
2197 00b2 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2198 .LVL339:
|
|
|
|
|
|
2199 00b6 0246 mov r2, r0
|
|
|
|
|
|
2200 00b8 0B46 mov r3, r1
|
|
|
|
|
|
2201 00ba 2046 mov r0, r4
|
|
|
|
|
|
2202 00bc 2946 mov r1, r5
|
|
|
|
|
|
2203 00be FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2204 .LVL340:
|
|
|
|
|
|
439:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
440:Core/Src/FIRFilterCode.c **** if(Mag > 0.0)Mag = sqrt(Mag);
|
|
|
|
|
|
2205 .loc 1 440 0
|
|
|
|
|
|
2206 00c2 0022 movs r2, #0
|
|
|
|
|
|
2207 00c4 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 50
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2208 .loc 1 438 0
|
|
|
|
|
|
2209 00c6 0446 mov r4, r0
|
|
|
|
|
|
2210 00c8 0D46 mov r5, r1
|
|
|
|
|
|
2211 .LVL341:
|
|
|
|
|
|
2212 .loc 1 440 0
|
|
|
|
|
|
2213 00ca FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2214 .LVL342:
|
|
|
|
|
|
2215 00ce 48B3 cbz r0, .L219
|
|
|
|
|
|
2216 .LVL343:
|
|
|
|
|
|
2217 .LBE96:
|
|
|
|
|
|
2218 .LBE95:
|
|
|
|
|
|
274:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break; // Stop when the response is down to -20 dB.
|
|
|
|
|
|
2219 .loc 1 274 0
|
|
|
|
|
|
2220 00d0 4BA3 adr r3, .L301
|
|
|
|
|
|
2221 00d2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2222 00d6 2946 mov r1, r5
|
|
|
|
|
|
2223 00d8 2046 mov r0, r4
|
|
|
|
|
|
2224 00da FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2225 .LVL344:
|
|
|
|
|
|
2226 00de 0A99 ldr r1, [sp, #40]
|
|
|
|
|
|
2227 00e0 079E ldr r6, [sp, #28]
|
|
|
|
|
|
2228 00e2 0F46 mov r7, r1
|
|
|
|
|
|
2229 00e4 0028 cmp r0, #0
|
|
|
|
|
|
2230 00e6 18BF it ne
|
|
|
|
|
|
2231 00e8 3746 movne r7, r6
|
|
|
|
|
|
275:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2232 .loc 1 275 0
|
|
|
|
|
|
2233 00ea 47A3 adr r3, .L301+8
|
|
|
|
|
|
2234 00ec D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2235 00f0 2046 mov r0, r4
|
|
|
|
|
|
2236 00f2 2946 mov r1, r5
|
|
|
|
|
|
2237 00f4 0A97 str r7, [sp, #40]
|
|
|
|
|
|
2238 .LVL345:
|
|
|
|
|
|
2239 00f6 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
2240 .LVL346:
|
|
|
|
|
|
2241 00fa 98B9 cbnz r0, .L219
|
|
|
|
|
|
270:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2242 .loc 1 270 0 discriminator 2
|
|
|
|
|
|
2243 00fc 0136 adds r6, r6, #1
|
|
|
|
|
|
2244 00fe B6F57A7F cmp r6, #1000
|
|
|
|
|
|
2245 0102 3046 mov r0, r6
|
|
|
|
|
|
2246 0104 0796 str r6, [sp, #28]
|
|
|
|
|
|
2247 .LVL347:
|
|
|
|
|
|
2248 0106 0DD0 beq .L219
|
|
|
|
|
|
2249 0108 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2250 .LVL348:
|
|
|
|
|
|
2251 010c 40A3 adr r3, .L301+16
|
|
|
|
|
|
2252 010e D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2253 0112 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2254 .LVL349:
|
|
|
|
|
|
2255 0116 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
2256 011a FFF7FEFF bl cos
|
|
|
|
|
|
2257 .LVL350:
|
|
|
|
|
|
2258 011e 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
2259 0122 82E7 b .L216
|
|
|
|
|
|
2260 .LVL351:
|
|
|
|
|
|
2261 .L219:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 51
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2262 .loc 1 290 0
|
|
|
|
|
|
2263 0124 0A98 ldr r0, [sp, #40]
|
|
|
|
|
|
2264 0126 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2265 .LVL352:
|
|
|
|
|
|
2266 012a 3BA3 adr r3, .L301+24
|
|
|
|
|
|
2267 012c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2268 0130 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2269 .LVL353:
|
|
|
|
|
|
346:Core/Src/FIRFilterCode.c **** if(CorrectedOmega < 0.001)CorrectedOmega = 0.001;
|
|
|
|
|
|
2270 .loc 1 346 0
|
|
|
|
|
|
2271 0134 DDE90823 ldrd r2, [sp, #32]
|
|
|
|
|
|
290:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2272 .loc 1 290 0
|
|
|
|
|
|
2273 0138 0446 mov r4, r0
|
|
|
|
|
|
2274 013a 0D46 mov r5, r1
|
|
|
|
|
|
2275 .LVL354:
|
|
|
|
|
|
346:Core/Src/FIRFilterCode.c **** if(CorrectedOmega < 0.001)CorrectedOmega = 0.001;
|
|
|
|
|
|
2276 .loc 1 346 0
|
|
|
|
|
|
2277 013c 1046 mov r0, r2
|
|
|
|
|
|
2278 013e 1946 mov r1, r3
|
|
|
|
|
|
2279 0140 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2280 .LVL355:
|
|
|
|
|
|
2281 0144 2246 mov r2, r4
|
|
|
|
|
|
2282 0146 2B46 mov r3, r5
|
|
|
|
|
|
2283 0148 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2284 .LVL356:
|
|
|
|
|
|
2285 014c 34A3 adr r3, .L301+32
|
|
|
|
|
|
2286 014e D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2287 0152 0446 mov r4, r0
|
|
|
|
|
|
2288 .LVL357:
|
|
|
|
|
|
2289 0154 0D46 mov r5, r1
|
|
|
|
|
|
2290 0156 FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
2291 .LVL358:
|
|
|
|
|
|
2292 015a 0028 cmp r0, #0
|
|
|
|
|
|
2293 015c 00F0B581 beq .L295
|
|
|
|
|
|
2294 .L255:
|
|
|
|
|
|
2295 .LVL359:
|
|
|
|
|
|
349:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2296 .loc 1 349 0
|
|
|
|
|
|
2297 0160 2DA3 adr r3, .L301+24
|
|
|
|
|
|
2298 0162 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2299 0166 2046 mov r0, r4
|
|
|
|
|
|
2300 0168 2946 mov r1, r5
|
|
|
|
|
|
2301 016a FFF7FEFF bl __aeabi_dcmpge
|
|
|
|
|
|
2302 .LVL360:
|
|
|
|
|
|
2303 016e 0028 cmp r0, #0
|
|
|
|
|
|
2304 0170 00F0A781 beq .L296
|
|
|
|
|
|
2305 .LVL361:
|
|
|
|
|
|
2306 .L256:
|
|
|
|
|
|
2307 0174 0B9B ldr r3, [sp, #44]
|
|
|
|
|
|
2308 0176 C3E90045 strd r4, [r3]
|
|
|
|
|
|
361:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2309 .loc 1 361 0
|
|
|
|
|
|
2310 017a 0DB0 add sp, sp, #52
|
|
|
|
|
|
2311 .LCFI25:
|
|
|
|
|
|
2312 .cfi_remember_state
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 52
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2313 .cfi_def_cfa_offset 36
|
|
|
|
|
|
2314 @ sp needed
|
|
|
|
|
|
2315 017c BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
|
|
|
|
|
2316 .LVL362:
|
|
|
|
|
|
2317 .L211:
|
|
|
|
|
|
2318 .LCFI26:
|
|
|
|
|
|
2319 .cfi_restore_state
|
|
|
|
|
|
280:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2320 .loc 1 280 0
|
|
|
|
|
|
2321 0180 012A cmp r2, #1
|
|
|
|
|
|
2322 0182 00F0B781 beq .L297
|
|
|
|
|
|
2323 0186 2B4B ldr r3, .L301+52
|
|
|
|
|
|
2324 .LVL363:
|
|
|
|
|
|
2325 0188 51EC170B vmov r0, r1, d7
|
|
|
|
|
|
2326 .LVL364:
|
|
|
|
|
|
2327 018c 0022 movs r2, #0
|
|
|
|
|
|
2328 .LVL365:
|
|
|
|
|
|
2329 018e FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2330 .LVL366:
|
|
|
|
|
|
2331 0192 FFF7FEFF bl __aeabi_d2iz
|
|
|
|
|
|
2332 .LVL367:
|
|
|
|
|
|
293:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2333 .loc 1 293 0
|
|
|
|
|
|
2334 0196 079B ldr r3, [sp, #28]
|
|
|
|
|
|
2335 0198 0A90 str r0, [sp, #40]
|
|
|
|
|
|
2336 019a 022B cmp r3, #2
|
|
|
|
|
|
2337 019c 00F03D82 beq .L298
|
|
|
|
|
|
2338 .LVL368:
|
|
|
|
|
|
322:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2339 .loc 1 322 0
|
|
|
|
|
|
2340 01a0 0028 cmp r0, #0
|
|
|
|
|
|
2341 01a2 C0F25B83 blt .L237
|
|
|
|
|
|
2342 01a6 059A ldr r2, [sp, #20]
|
|
|
|
|
|
2343 01a8 0699 ldr r1, [sp, #24]
|
|
|
|
|
|
2344 01aa D200 lsls r2, r2, #3
|
|
|
|
|
|
2345 01ac CDE90700 strd r0, r0, [sp, #28]
|
|
|
|
|
|
2346 .LVL369:
|
|
|
|
|
|
2347 01b0 8F18 adds r7, r1, r2
|
|
|
|
|
|
2348 01b2 0B92 str r2, [sp, #44]
|
|
|
|
|
|
2349 .LVL370:
|
|
|
|
|
|
2350 01b4 BB46 mov fp, r7
|
|
|
|
|
|
2351 .LVL371:
|
|
|
|
|
|
2352 .L243:
|
|
|
|
|
|
324:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
2353 .loc 1 324 0
|
|
|
|
|
|
2354 01b6 0798 ldr r0, [sp, #28]
|
|
|
|
|
|
2355 01b8 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2356 .LVL372:
|
|
|
|
|
|
2357 01bc 16A3 adr r3, .L301+24
|
|
|
|
|
|
2358 01be D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2359 01c2 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2360 .LVL373:
|
|
|
|
|
|
2361 .LBB97:
|
|
|
|
|
|
2362 .LBB98:
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2363 .loc 1 431 0
|
|
|
|
|
|
2364 01c6 18A3 adr r3, .L301+40
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 53
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2365 01c8 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2366 01cc FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2367 .LVL374:
|
|
|
|
|
|
2368 01d0 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
2369 01d4 FFF7FEFF bl cos
|
|
|
|
|
|
2370 .LVL375:
|
|
|
|
|
|
2371 01d8 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
2372 01dc 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
2373 01e0 1946 mov r1, r3
|
|
|
|
|
|
2374 01e2 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2375 .LVL376:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2376 .loc 1 432 0
|
|
|
|
|
|
2377 01e6 059B ldr r3, [sp, #20]
|
|
|
|
|
|
2378 01e8 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2379 .loc 1 431 0
|
|
|
|
|
|
2380 01ea CDE90001 strd r0, [sp]
|
|
|
|
|
|
2381 .LVL377:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2382 .loc 1 432 0
|
|
|
|
|
|
2383 01ee 40F37E81 ble .L292
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2384 .loc 1 429 0
|
|
|
|
|
|
2385 01f2 0026 movs r6, #0
|
|
|
|
|
|
2386 01f4 0027 movs r7, #0
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2387 .loc 1 432 0
|
|
|
|
|
|
2388 01f6 DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2389 .loc 1 429 0
|
|
|
|
|
|
2390 01fa 3446 mov r4, r6
|
|
|
|
|
|
2391 01fc 3D46 mov r5, r7
|
|
|
|
|
|
2392 01fe 1FE0 b .L239
|
|
|
|
|
|
2393 .L302:
|
|
|
|
|
|
2394 .align 3
|
|
|
|
|
|
2395 .L301:
|
|
|
|
|
|
2396 0200 2B0DFCA8 .word 2835090731
|
|
|
|
|
|
2397 0204 86FDDF3F .word 1071644038
|
|
|
|
|
|
2398 0208 7C14AE47 .word 1202590844
|
|
|
|
|
|
2399 020c E17A843F .word 1065646817
|
|
|
|
|
|
2400 0210 C3718BB6 .word 3062591939
|
|
|
|
|
|
2401 0214 65BC693F .word 1063894117
|
|
|
|
|
|
2402 0218 FCA9F1D2 .word 3539053052
|
|
|
|
|
|
2403 021c 4D62503F .word 1062232653
|
|
|
|
|
|
2404 0220 AE47E17A .word 2061584302
|
|
|
|
|
|
2405 0224 14AEEF3F .word 1072672276
|
|
|
|
|
|
2406 0228 182D4454 .word 1413754136
|
|
|
|
|
|
2407 022c FB210940 .word 1074340347
|
|
|
|
|
|
2408 0230 0000F03F .word 1072693248
|
|
|
|
|
|
2409 0234 00408F40 .word 1083129856
|
|
|
|
|
|
2410 .LVL378:
|
|
|
|
|
|
2411 .L269:
|
|
|
|
|
|
2412 0238 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2413 .loc 1 434 0
|
|
|
|
|
|
2414 023c 4446 mov r4, r8
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 54
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2415 .LVL379:
|
|
|
|
|
|
2416 023e 4D46 mov r5, r9
|
|
|
|
|
|
2417 .LVL380:
|
|
|
|
|
|
2418 .L239:
|
|
|
|
|
|
2419 0240 2246 mov r2, r4
|
|
|
|
|
|
2420 0242 2B46 mov r3, r5
|
|
|
|
|
|
2421 0244 FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
2422 0248 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2423 .LVL381:
|
|
|
|
|
|
2424 024c 3246 mov r2, r6
|
|
|
|
|
|
2425 024e 3B46 mov r3, r7
|
|
|
|
|
|
2426 0250 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
2427 0254 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2428 .LVL382:
|
|
|
|
|
|
2429 0258 4246 mov r2, r8
|
|
|
|
|
|
2430 025a 4B46 mov r3, r9
|
|
|
|
|
|
2431 025c FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2432 .LVL383:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2433 .loc 1 432 0
|
|
|
|
|
|
2434 0260 D345 cmp fp, r10
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2435 .loc 1 434 0
|
|
|
|
|
|
2436 0262 8046 mov r8, r0
|
|
|
|
|
|
2437 0264 8946 mov r9, r1
|
|
|
|
|
|
2438 .LVL384:
|
|
|
|
|
|
2439 0266 2646 mov r6, r4
|
|
|
|
|
|
2440 0268 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2441 .loc 1 432 0
|
|
|
|
|
|
2442 026a E5D1 bne .L269
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2443 .loc 1 438 0
|
|
|
|
|
|
2444 026c 2246 mov r2, r4
|
|
|
|
|
|
2445 026e 2B46 mov r3, r5
|
|
|
|
|
|
2446 0270 2046 mov r0, r4
|
|
|
|
|
|
2447 0272 2946 mov r1, r5
|
|
|
|
|
|
2448 0274 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2449 .LVL385:
|
|
|
|
|
|
2450 0278 4246 mov r2, r8
|
|
|
|
|
|
2451 027a 0446 mov r4, r0
|
|
|
|
|
|
2452 .LVL386:
|
|
|
|
|
|
2453 027c 0D46 mov r5, r1
|
|
|
|
|
|
2454 027e 4B46 mov r3, r9
|
|
|
|
|
|
2455 0280 4046 mov r0, r8
|
|
|
|
|
|
2456 0282 4946 mov r1, r9
|
|
|
|
|
|
2457 0284 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2458 .LVL387:
|
|
|
|
|
|
2459 0288 0246 mov r2, r0
|
|
|
|
|
|
2460 028a 0B46 mov r3, r1
|
|
|
|
|
|
2461 028c 2046 mov r0, r4
|
|
|
|
|
|
2462 028e 2946 mov r1, r5
|
|
|
|
|
|
2463 0290 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2464 .LVL388:
|
|
|
|
|
|
2465 0294 4246 mov r2, r8
|
|
|
|
|
|
2466 0296 0446 mov r4, r0
|
|
|
|
|
|
2467 0298 0D46 mov r5, r1
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 55
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2468 029a 4B46 mov r3, r9
|
|
|
|
|
|
2469 029c DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
2470 02a0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2471 .LVL389:
|
|
|
|
|
|
2472 02a4 0246 mov r2, r0
|
|
|
|
|
|
2473 02a6 0B46 mov r3, r1
|
|
|
|
|
|
2474 02a8 2046 mov r0, r4
|
|
|
|
|
|
2475 02aa 2946 mov r1, r5
|
|
|
|
|
|
2476 02ac FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2477 .LVL390:
|
|
|
|
|
|
2478 .loc 1 440 0
|
|
|
|
|
|
2479 02b0 0022 movs r2, #0
|
|
|
|
|
|
2480 02b2 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2481 .loc 1 438 0
|
|
|
|
|
|
2482 02b4 0446 mov r4, r0
|
|
|
|
|
|
2483 02b6 0D46 mov r5, r1
|
|
|
|
|
|
2484 .LVL391:
|
|
|
|
|
|
2485 .loc 1 440 0
|
|
|
|
|
|
2486 02b8 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2487 .LVL392:
|
|
|
|
|
|
2488 02bc 0028 cmp r0, #0
|
|
|
|
|
|
2489 02be 00F01681 beq .L292
|
|
|
|
|
|
2490 .LVL393:
|
|
|
|
|
|
2491 .LBE98:
|
|
|
|
|
|
2492 .LBE97:
|
|
|
|
|
|
326:Core/Src/FIRFilterCode.c **** if(Mag > 0.99)break;
|
|
|
|
|
|
2493 .loc 1 326 0
|
|
|
|
|
|
2494 02c2 0FF2CC53 adr r3, .L303
|
|
|
|
|
|
2495 02c6 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2496 02ca 2946 mov r1, r5
|
|
|
|
|
|
2497 02cc 2046 mov r0, r4
|
|
|
|
|
|
2498 02ce FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
2499 .LVL394:
|
|
|
|
|
|
2500 02d2 DDE90761 ldrd r6, r1, [sp, #28]
|
|
|
|
|
|
2501 02d6 0028 cmp r0, #0
|
|
|
|
|
|
2502 02d8 18BF it ne
|
|
|
|
|
|
2503 02da 3146 movne r1, r6
|
|
|
|
|
|
2504 02dc 0891 str r1, [sp, #32]
|
|
|
|
|
|
2505 .LVL395:
|
|
|
|
|
|
327:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2506 .loc 1 327 0
|
|
|
|
|
|
2507 02de 0FF2B853 adr r3, .L303+8
|
|
|
|
|
|
2508 02e2 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2509 02e6 2046 mov r0, r4
|
|
|
|
|
|
2510 02e8 2946 mov r1, r5
|
|
|
|
|
|
2511 .LVL396:
|
|
|
|
|
|
2512 02ea FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2513 .LVL397:
|
|
|
|
|
|
2514 02ee 28B9 cbnz r0, .L242
|
|
|
|
|
|
2515 .LVL398:
|
|
|
|
|
|
2516 .L238:
|
|
|
|
|
|
322:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2517 .loc 1 322 0 discriminator 2
|
|
|
|
|
|
2518 02f0 079B ldr r3, [sp, #28]
|
|
|
|
|
|
2519 02f2 013B subs r3, r3, #1
|
|
|
|
|
|
2520 02f4 0793 str r3, [sp, #28]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 56
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2521 .LVL399:
|
|
|
|
|
|
2522 02f6 0133 adds r3, r3, #1
|
|
|
|
|
|
2523 .LVL400:
|
|
|
|
|
|
2524 02f8 7FF45DAF bne .L243
|
|
|
|
|
|
2525 .L242:
|
|
|
|
|
|
329:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2526 .loc 1 329 0
|
|
|
|
|
|
2527 02fc 0898 ldr r0, [sp, #32]
|
|
|
|
|
|
2528 02fe FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2529 .LVL401:
|
|
|
|
|
|
2530 0302 0FF29C53 adr r3, .L303+16
|
|
|
|
|
|
2531 0306 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2532 030a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2533 .LVL402:
|
|
|
|
|
|
332:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2534 .loc 1 332 0
|
|
|
|
|
|
2535 030e 0A9B ldr r3, [sp, #40]
|
|
|
|
|
|
2536 0310 B3F57A7F cmp r3, #1000
|
|
|
|
|
|
329:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2537 .loc 1 329 0
|
|
|
|
|
|
2538 0314 CDE90801 strd r0, [sp, #32]
|
|
|
|
|
|
2539 .LVL403:
|
|
|
|
|
|
332:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2540 .loc 1 332 0
|
|
|
|
|
|
2541 0318 80F29080 bge .L244
|
|
|
|
|
|
2542 .L259:
|
|
|
|
|
|
2543 .LVL404:
|
|
|
|
|
|
2544 031c 0B9B ldr r3, [sp, #44]
|
|
|
|
|
|
2545 031e 069A ldr r2, [sp, #24]
|
|
|
|
|
|
2546 0320 1344 add r3, r3, r2
|
|
|
|
|
|
2547 0322 1F46 mov r7, r3
|
|
|
|
|
|
2548 .LBB101:
|
|
|
|
|
|
2549 .LBB99:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2550 .loc 1 432 0
|
|
|
|
|
|
2551 0324 0A9B ldr r3, [sp, #40]
|
|
|
|
|
|
2552 0326 0793 str r3, [sp, #28]
|
|
|
|
|
|
2553 0328 BB46 mov fp, r7
|
|
|
|
|
|
2554 .L249:
|
|
|
|
|
|
2555 .LVL405:
|
|
|
|
|
|
2556 .LBE99:
|
|
|
|
|
|
2557 .LBE101:
|
|
|
|
|
|
334:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
2558 .loc 1 334 0
|
|
|
|
|
|
2559 032a 0798 ldr r0, [sp, #28]
|
|
|
|
|
|
2560 032c FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2561 .LVL406:
|
|
|
|
|
|
2562 0330 0FF26C53 adr r3, .L303+16
|
|
|
|
|
|
2563 0334 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2564 0338 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2565 .LVL407:
|
|
|
|
|
|
2566 .LBB102:
|
|
|
|
|
|
2567 .LBB103:
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2568 .loc 1 431 0
|
|
|
|
|
|
2569 033c 0FF26853 adr r3, .L303+24
|
|
|
|
|
|
2570 0340 D3E90023 ldrd r2, [r3]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 57
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2571 0344 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2572 .LVL408:
|
|
|
|
|
|
2573 0348 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
2574 034c FFF7FEFF bl cos
|
|
|
|
|
|
2575 .LVL409:
|
|
|
|
|
|
2576 0350 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
2577 0354 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
2578 0358 1946 mov r1, r3
|
|
|
|
|
|
2579 035a FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2580 .LVL410:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2581 .loc 1 432 0
|
|
|
|
|
|
2582 035e 059B ldr r3, [sp, #20]
|
|
|
|
|
|
2583 0360 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2584 .loc 1 431 0
|
|
|
|
|
|
2585 0362 CDE90001 strd r0, [sp]
|
|
|
|
|
|
2586 .LVL411:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2587 .loc 1 432 0
|
|
|
|
|
|
2588 0366 40F3BF80 ble .L293
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2589 .loc 1 429 0
|
|
|
|
|
|
2590 036a 0026 movs r6, #0
|
|
|
|
|
|
2591 036c 0027 movs r7, #0
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2592 .loc 1 432 0
|
|
|
|
|
|
2593 036e DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2594 .loc 1 429 0
|
|
|
|
|
|
2595 0372 3446 mov r4, r6
|
|
|
|
|
|
2596 0374 3D46 mov r5, r7
|
|
|
|
|
|
2597 0376 03E0 b .L246
|
|
|
|
|
|
2598 .LVL412:
|
|
|
|
|
|
2599 .L273:
|
|
|
|
|
|
2600 0378 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2601 .loc 1 434 0
|
|
|
|
|
|
2602 037c 4446 mov r4, r8
|
|
|
|
|
|
2603 .LVL413:
|
|
|
|
|
|
2604 037e 4D46 mov r5, r9
|
|
|
|
|
|
2605 .LVL414:
|
|
|
|
|
|
2606 .L246:
|
|
|
|
|
|
2607 0380 2246 mov r2, r4
|
|
|
|
|
|
2608 0382 2B46 mov r3, r5
|
|
|
|
|
|
2609 0384 FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
2610 0388 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2611 .LVL415:
|
|
|
|
|
|
2612 038c 3246 mov r2, r6
|
|
|
|
|
|
2613 038e 3B46 mov r3, r7
|
|
|
|
|
|
2614 0390 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
2615 0394 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2616 .LVL416:
|
|
|
|
|
|
2617 0398 4246 mov r2, r8
|
|
|
|
|
|
2618 039a 4B46 mov r3, r9
|
|
|
|
|
|
2619 039c FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2620 .LVL417:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 58
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2621 .loc 1 432 0
|
|
|
|
|
|
2622 03a0 D345 cmp fp, r10
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2623 .loc 1 434 0
|
|
|
|
|
|
2624 03a2 8046 mov r8, r0
|
|
|
|
|
|
2625 03a4 8946 mov r9, r1
|
|
|
|
|
|
2626 .LVL418:
|
|
|
|
|
|
2627 03a6 2646 mov r6, r4
|
|
|
|
|
|
2628 03a8 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2629 .loc 1 432 0
|
|
|
|
|
|
2630 03aa E5D1 bne .L273
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2631 .loc 1 438 0
|
|
|
|
|
|
2632 03ac 2246 mov r2, r4
|
|
|
|
|
|
2633 03ae 2B46 mov r3, r5
|
|
|
|
|
|
2634 03b0 2046 mov r0, r4
|
|
|
|
|
|
2635 03b2 2946 mov r1, r5
|
|
|
|
|
|
2636 03b4 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2637 .LVL419:
|
|
|
|
|
|
2638 03b8 4246 mov r2, r8
|
|
|
|
|
|
2639 03ba 0446 mov r4, r0
|
|
|
|
|
|
2640 .LVL420:
|
|
|
|
|
|
2641 03bc 0D46 mov r5, r1
|
|
|
|
|
|
2642 03be 4B46 mov r3, r9
|
|
|
|
|
|
2643 03c0 4046 mov r0, r8
|
|
|
|
|
|
2644 03c2 4946 mov r1, r9
|
|
|
|
|
|
2645 03c4 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2646 .LVL421:
|
|
|
|
|
|
2647 03c8 0246 mov r2, r0
|
|
|
|
|
|
2648 03ca 0B46 mov r3, r1
|
|
|
|
|
|
2649 03cc 2046 mov r0, r4
|
|
|
|
|
|
2650 03ce 2946 mov r1, r5
|
|
|
|
|
|
2651 03d0 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2652 .LVL422:
|
|
|
|
|
|
2653 03d4 4246 mov r2, r8
|
|
|
|
|
|
2654 03d6 0446 mov r4, r0
|
|
|
|
|
|
2655 03d8 0D46 mov r5, r1
|
|
|
|
|
|
2656 03da 4B46 mov r3, r9
|
|
|
|
|
|
2657 03dc DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
2658 03e0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2659 .LVL423:
|
|
|
|
|
|
2660 03e4 0246 mov r2, r0
|
|
|
|
|
|
2661 03e6 0B46 mov r3, r1
|
|
|
|
|
|
2662 03e8 2046 mov r0, r4
|
|
|
|
|
|
2663 03ea 2946 mov r1, r5
|
|
|
|
|
|
2664 03ec FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2665 .LVL424:
|
|
|
|
|
|
2666 .loc 1 440 0
|
|
|
|
|
|
2667 03f0 0022 movs r2, #0
|
|
|
|
|
|
2668 03f2 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2669 .loc 1 438 0
|
|
|
|
|
|
2670 03f4 0446 mov r4, r0
|
|
|
|
|
|
2671 03f6 0D46 mov r5, r1
|
|
|
|
|
|
2672 .LVL425:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 59
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2673 .loc 1 440 0
|
|
|
|
|
|
2674 03f8 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2675 .LVL426:
|
|
|
|
|
|
2676 03fc 0028 cmp r0, #0
|
|
|
|
|
|
2677 03fe 73D0 beq .L293
|
|
|
|
|
|
2678 .LVL427:
|
|
|
|
|
|
2679 .LBE103:
|
|
|
|
|
|
2680 .LBE102:
|
|
|
|
|
|
336:Core/Src/FIRFilterCode.c **** if(Mag > 0.99)break;
|
|
|
|
|
|
2681 .loc 1 336 0
|
|
|
|
|
|
2682 0400 0FF28C43 adr r3, .L303
|
|
|
|
|
|
2683 0404 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2684 0408 2946 mov r1, r5
|
|
|
|
|
|
2685 040a 2046 mov r0, r4
|
|
|
|
|
|
2686 040c FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
2687 .LVL428:
|
|
|
|
|
|
2688 0410 0A99 ldr r1, [sp, #40]
|
|
|
|
|
|
2689 0412 079E ldr r6, [sp, #28]
|
|
|
|
|
|
2690 0414 0028 cmp r0, #0
|
|
|
|
|
|
2691 0416 18BF it ne
|
|
|
|
|
|
2692 0418 3146 movne r1, r6
|
|
|
|
|
|
2693 041a 0A91 str r1, [sp, #40]
|
|
|
|
|
|
2694 .LVL429:
|
|
|
|
|
|
337:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2695 .loc 1 337 0
|
|
|
|
|
|
2696 041c 0FF27843 adr r3, .L303+8
|
|
|
|
|
|
2697 0420 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2698 0424 2046 mov r0, r4
|
|
|
|
|
|
2699 0426 2946 mov r1, r5
|
|
|
|
|
|
2700 .LVL430:
|
|
|
|
|
|
2701 0428 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2702 .LVL431:
|
|
|
|
|
|
2703 042c 30B9 cbnz r0, .L244
|
|
|
|
|
|
2704 .LVL432:
|
|
|
|
|
|
2705 .L245:
|
|
|
|
|
|
332:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2706 .loc 1 332 0 discriminator 2
|
|
|
|
|
|
2707 042e 079B ldr r3, [sp, #28]
|
|
|
|
|
|
2708 0430 0133 adds r3, r3, #1
|
|
|
|
|
|
2709 0432 B3F57A7F cmp r3, #1000
|
|
|
|
|
|
2710 0436 0793 str r3, [sp, #28]
|
|
|
|
|
|
2711 .LVL433:
|
|
|
|
|
|
2712 0438 7FF477AF bne .L249
|
|
|
|
|
|
2713 .LVL434:
|
|
|
|
|
|
2714 .L244:
|
|
|
|
|
|
339:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2715 .loc 1 339 0
|
|
|
|
|
|
2716 043c 0A98 ldr r0, [sp, #40]
|
|
|
|
|
|
2717 043e FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2718 .LVL435:
|
|
|
|
|
|
2719 0442 0FF25C43 adr r3, .L303+16
|
|
|
|
|
|
2720 0446 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2721 044a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2722 .LVL436:
|
|
|
|
|
|
354:Core/Src/FIRFilterCode.c **** if(CorrectedBW < 0.01)CorrectedBW = 0.01;
|
|
|
|
|
|
2723 .loc 1 354 0
|
|
|
|
|
|
2724 044e 169B ldr r3, [sp, #88]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 60
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2725 0450 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
339:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2726 .loc 1 339 0
|
|
|
|
|
|
2727 0454 0646 mov r6, r0
|
|
|
|
|
|
2728 0456 0F46 mov r7, r1
|
|
|
|
|
|
2729 .LVL437:
|
|
|
|
|
|
354:Core/Src/FIRFilterCode.c **** if(CorrectedBW < 0.01)CorrectedBW = 0.01;
|
|
|
|
|
|
2730 .loc 1 354 0
|
|
|
|
|
|
2731 0458 1046 mov r0, r2
|
|
|
|
|
|
2732 045a 1946 mov r1, r3
|
|
|
|
|
|
2733 045c FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2734 .LVL438:
|
|
|
|
|
|
2735 0460 DDE90823 ldrd r2, [sp, #32]
|
|
|
|
|
|
2736 0464 0446 mov r4, r0
|
|
|
|
|
|
2737 0466 0D46 mov r5, r1
|
|
|
|
|
|
2738 0468 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2739 .LVL439:
|
|
|
|
|
|
2740 046c 3246 mov r2, r6
|
|
|
|
|
|
2741 046e 3B46 mov r3, r7
|
|
|
|
|
|
2742 0470 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2743 .LVL440:
|
|
|
|
|
|
355:Core/Src/FIRFilterCode.c **** if(CorrectedBW > *BW * 2.0)CorrectedBW = *BW * 2.0;
|
|
|
|
|
|
2744 .loc 1 355 0
|
|
|
|
|
|
2745 0474 0FF23843 adr r3, .L303+32
|
|
|
|
|
|
2746 0478 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
354:Core/Src/FIRFilterCode.c **** if(CorrectedBW < 0.01)CorrectedBW = 0.01;
|
|
|
|
|
|
2747 .loc 1 354 0
|
|
|
|
|
|
2748 047c 0646 mov r6, r0
|
|
|
|
|
|
2749 .LVL441:
|
|
|
|
|
|
2750 047e 0F46 mov r7, r1
|
|
|
|
|
|
2751 .LVL442:
|
|
|
|
|
|
355:Core/Src/FIRFilterCode.c **** if(CorrectedBW > *BW * 2.0)CorrectedBW = *BW * 2.0;
|
|
|
|
|
|
2752 .loc 1 355 0
|
|
|
|
|
|
2753 0480 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
2754 .LVL443:
|
|
|
|
|
|
2755 0484 28B3 cbz r0, .L299
|
|
|
|
|
|
2756 .LVL444:
|
|
|
|
|
|
356:Core/Src/FIRFilterCode.c **** if(CorrectedBW > 0.98)CorrectedBW = 0.98;
|
|
|
|
|
|
2757 .loc 1 356 0
|
|
|
|
|
|
2758 0486 0FF22843 adr r3, .L303+32
|
|
|
|
|
|
2759 048a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2760 048e 2046 mov r0, r4
|
|
|
|
|
|
2761 0490 2946 mov r1, r5
|
|
|
|
|
|
2762 0492 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
2763 .LVL445:
|
|
|
|
|
|
2764 0496 0028 cmp r0, #0
|
|
|
|
|
|
2765 0498 00F0BB80 beq .L300
|
|
|
|
|
|
2766 .LVL446:
|
|
|
|
|
|
2767 .L253:
|
|
|
|
|
|
2768 049c 0FF21843 adr r3, .L303+40
|
|
|
|
|
|
2769 04a0 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2770 04a4 2046 mov r0, r4
|
|
|
|
|
|
2771 04a6 2946 mov r1, r5
|
|
|
|
|
|
2772 04a8 FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
2773 .LVL447:
|
|
|
|
|
|
2774 04ac 18B9 cbnz r0, .L254
|
|
|
|
|
|
2775 04ae 0FF20845 adr r5, .L303+40
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 61
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2776 04b2 D5E90045 ldrd r4, [r5]
|
|
|
|
|
|
2777 .LVL448:
|
|
|
|
|
|
2778 .L254:
|
|
|
|
|
|
358:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2779 .loc 1 358 0
|
|
|
|
|
|
2780 04b6 169B ldr r3, [sp, #88]
|
|
|
|
|
|
2781 04b8 C3E90045 strd r4, [r3]
|
|
|
|
|
|
361:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2782 .loc 1 361 0
|
|
|
|
|
|
2783 04bc 0DB0 add sp, sp, #52
|
|
|
|
|
|
2784 .LCFI27:
|
|
|
|
|
|
2785 .cfi_remember_state
|
|
|
|
|
|
2786 .cfi_def_cfa_offset 36
|
|
|
|
|
|
2787 @ sp needed
|
|
|
|
|
|
2788 04be BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
|
|
|
|
|
2789 .LVL449:
|
|
|
|
|
|
2790 .L296:
|
|
|
|
|
|
2791 .LCFI28:
|
|
|
|
|
|
2792 .cfi_restore_state
|
|
|
|
|
|
349:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2793 .loc 1 349 0
|
|
|
|
|
|
2794 04c2 F7A5 adr r5, .L303+16
|
|
|
|
|
|
2795 04c4 D5E90045 ldrd r4, [r5]
|
|
|
|
|
|
2796 .LVL450:
|
|
|
|
|
|
2797 04c8 54E6 b .L256
|
|
|
|
|
|
2798 .L295:
|
|
|
|
|
|
2799 04ca FDA5 adr r5, .L303+48
|
|
|
|
|
|
2800 04cc D5E90045 ldrd r4, [r5]
|
|
|
|
|
|
2801 04d0 46E6 b .L255
|
|
|
|
|
|
2802 .LVL451:
|
|
|
|
|
|
2803 .L299:
|
|
|
|
|
|
2804 04d2 3246 mov r2, r6
|
|
|
|
|
|
2805 04d4 3B46 mov r3, r7
|
|
|
|
|
|
2806 04d6 2046 mov r0, r4
|
|
|
|
|
|
2807 04d8 2946 mov r1, r5
|
|
|
|
|
|
2808 04da FFF7FEFF bl __aeabi_dcmple
|
|
|
|
|
|
2809 .LVL452:
|
|
|
|
|
|
2810 04de 0028 cmp r0, #0
|
|
|
|
|
|
2811 04e0 DCD1 bne .L253
|
|
|
|
|
|
2812 04e2 3446 mov r4, r6
|
|
|
|
|
|
2813 04e4 3D46 mov r5, r7
|
|
|
|
|
|
2814 04e6 D9E7 b .L253
|
|
|
|
|
|
2815 .LVL453:
|
|
|
|
|
|
2816 .L293:
|
|
|
|
|
|
2817 .LBB105:
|
|
|
|
|
|
2818 .LBB104:
|
|
|
|
|
|
2819 .loc 1 440 0
|
|
|
|
|
|
2820 04e8 079B ldr r3, [sp, #28]
|
|
|
|
|
|
2821 04ea 0A93 str r3, [sp, #40]
|
|
|
|
|
|
2822 .LVL454:
|
|
|
|
|
|
2823 04ec 9FE7 b .L245
|
|
|
|
|
|
2824 .LVL455:
|
|
|
|
|
|
2825 .L292:
|
|
|
|
|
|
2826 .LBE104:
|
|
|
|
|
|
2827 .LBE105:
|
|
|
|
|
|
2828 .LBB106:
|
|
|
|
|
|
2829 .LBB100:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 62
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2830 04ee 079B ldr r3, [sp, #28]
|
|
|
|
|
|
2831 04f0 0893 str r3, [sp, #32]
|
|
|
|
|
|
2832 .LVL456:
|
|
|
|
|
|
2833 04f2 FDE6 b .L238
|
|
|
|
|
|
2834 .LVL457:
|
|
|
|
|
|
2835 .L297:
|
|
|
|
|
|
2836 04f4 0146 mov r1, r0
|
|
|
|
|
|
2837 .LVL458:
|
|
|
|
|
|
2838 04f6 0598 ldr r0, [sp, #20]
|
|
|
|
|
|
2839 .LVL459:
|
|
|
|
|
|
2840 .LBE100:
|
|
|
|
|
|
2841 .LBE106:
|
|
|
|
|
|
280:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2842 .loc 1 280 0
|
|
|
|
|
|
2843 04f8 F3A3 adr r3, .L303+56
|
|
|
|
|
|
2844 04fa D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2845 .LVL460:
|
|
|
|
|
|
2846 04fe 01EBC005 add r5, r1, r0, lsl #3
|
|
|
|
|
|
282:Core/Src/FIRFilterCode.c **** for(j=NUM_FREQ_ERR_PTS-1; j>=0; j--)
|
|
|
|
|
|
2847 .loc 1 282 0
|
|
|
|
|
|
2848 0502 40F2DE31 movw r1, #990
|
|
|
|
|
|
2849 0506 0A91 str r1, [sp, #40]
|
|
|
|
|
|
283:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2850 .loc 1 283 0
|
|
|
|
|
|
2851 0508 40F2E731 movw r1, #999
|
|
|
|
|
|
2852 050c 0791 str r1, [sp, #28]
|
|
|
|
|
|
2853 .LVL461:
|
|
|
|
|
|
2854 050e AB46 mov fp, r5
|
|
|
|
|
|
2855 .LVL462:
|
|
|
|
|
|
2856 .L223:
|
|
|
|
|
|
2857 .LBB107:
|
|
|
|
|
|
2858 .LBB108:
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2859 .loc 1 431 0
|
|
|
|
|
|
2860 0510 1946 mov r1, r3
|
|
|
|
|
|
2861 0512 1046 mov r0, r2
|
|
|
|
|
|
2862 0514 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2863 .LVL463:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2864 .loc 1 432 0
|
|
|
|
|
|
2865 0518 059B ldr r3, [sp, #20]
|
|
|
|
|
|
2866 051a 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
2867 .loc 1 431 0
|
|
|
|
|
|
2868 051c CDE90001 strd r0, [sp]
|
|
|
|
|
|
2869 .LVL464:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2870 .loc 1 432 0
|
|
|
|
|
|
2871 0520 7FF700AE ble .L219
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2872 .loc 1 429 0
|
|
|
|
|
|
2873 0524 0026 movs r6, #0
|
|
|
|
|
|
2874 0526 0027 movs r7, #0
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2875 .loc 1 432 0
|
|
|
|
|
|
2876 0528 DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 63
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2877 .loc 1 429 0
|
|
|
|
|
|
2878 052c 3446 mov r4, r6
|
|
|
|
|
|
2879 052e 3D46 mov r5, r7
|
|
|
|
|
|
2880 0530 03E0 b .L220
|
|
|
|
|
|
2881 .LVL465:
|
|
|
|
|
|
2882 .L262:
|
|
|
|
|
|
2883 0532 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2884 .loc 1 434 0
|
|
|
|
|
|
2885 0536 4446 mov r4, r8
|
|
|
|
|
|
2886 .LVL466:
|
|
|
|
|
|
2887 0538 4D46 mov r5, r9
|
|
|
|
|
|
2888 .LVL467:
|
|
|
|
|
|
2889 .L220:
|
|
|
|
|
|
2890 053a 2246 mov r2, r4
|
|
|
|
|
|
2891 053c 2B46 mov r3, r5
|
|
|
|
|
|
2892 053e FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
2893 0542 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2894 .LVL468:
|
|
|
|
|
|
2895 0546 3246 mov r2, r6
|
|
|
|
|
|
2896 0548 3B46 mov r3, r7
|
|
|
|
|
|
2897 054a CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
2898 054e FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2899 .LVL469:
|
|
|
|
|
|
2900 0552 4246 mov r2, r8
|
|
|
|
|
|
2901 0554 4B46 mov r3, r9
|
|
|
|
|
|
2902 0556 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2903 .LVL470:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2904 .loc 1 432 0
|
|
|
|
|
|
2905 055a D345 cmp fp, r10
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
2906 .loc 1 434 0
|
|
|
|
|
|
2907 055c 8046 mov r8, r0
|
|
|
|
|
|
2908 055e 8946 mov r9, r1
|
|
|
|
|
|
2909 .LVL471:
|
|
|
|
|
|
2910 0560 2646 mov r6, r4
|
|
|
|
|
|
2911 0562 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2912 .loc 1 432 0
|
|
|
|
|
|
2913 0564 E5D1 bne .L262
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2914 .loc 1 438 0
|
|
|
|
|
|
2915 0566 2246 mov r2, r4
|
|
|
|
|
|
2916 0568 2B46 mov r3, r5
|
|
|
|
|
|
2917 056a 2046 mov r0, r4
|
|
|
|
|
|
2918 056c 2946 mov r1, r5
|
|
|
|
|
|
2919 056e FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2920 .LVL472:
|
|
|
|
|
|
2921 0572 4246 mov r2, r8
|
|
|
|
|
|
2922 0574 0446 mov r4, r0
|
|
|
|
|
|
2923 .LVL473:
|
|
|
|
|
|
2924 0576 0D46 mov r5, r1
|
|
|
|
|
|
2925 0578 4B46 mov r3, r9
|
|
|
|
|
|
2926 057a 4046 mov r0, r8
|
|
|
|
|
|
2927 057c 4946 mov r1, r9
|
|
|
|
|
|
2928 057e FFF7FEFF bl __aeabi_dmul
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 64
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2929 .LVL474:
|
|
|
|
|
|
2930 0582 0246 mov r2, r0
|
|
|
|
|
|
2931 0584 0B46 mov r3, r1
|
|
|
|
|
|
2932 0586 2046 mov r0, r4
|
|
|
|
|
|
2933 0588 2946 mov r1, r5
|
|
|
|
|
|
2934 058a FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
2935 .LVL475:
|
|
|
|
|
|
2936 058e 4246 mov r2, r8
|
|
|
|
|
|
2937 0590 0446 mov r4, r0
|
|
|
|
|
|
2938 0592 0D46 mov r5, r1
|
|
|
|
|
|
2939 0594 4B46 mov r3, r9
|
|
|
|
|
|
2940 0596 DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
2941 059a FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2942 .LVL476:
|
|
|
|
|
|
2943 059e 0246 mov r2, r0
|
|
|
|
|
|
2944 05a0 0B46 mov r3, r1
|
|
|
|
|
|
2945 05a2 2046 mov r0, r4
|
|
|
|
|
|
2946 05a4 2946 mov r1, r5
|
|
|
|
|
|
2947 05a6 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
2948 .LVL477:
|
|
|
|
|
|
2949 .loc 1 440 0
|
|
|
|
|
|
2950 05aa 0022 movs r2, #0
|
|
|
|
|
|
2951 05ac 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
2952 .loc 1 438 0
|
|
|
|
|
|
2953 05ae 0446 mov r4, r0
|
|
|
|
|
|
2954 05b0 0D46 mov r5, r1
|
|
|
|
|
|
2955 .LVL478:
|
|
|
|
|
|
2956 .loc 1 440 0
|
|
|
|
|
|
2957 05b2 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2958 .LVL479:
|
|
|
|
|
|
2959 05b6 0028 cmp r0, #0
|
|
|
|
|
|
2960 05b8 3FF4B4AD beq .L219
|
|
|
|
|
|
2961 .LVL480:
|
|
|
|
|
|
2962 .LBE108:
|
|
|
|
|
|
2963 .LBE107:
|
|
|
|
|
|
287:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break; // Stop when the response is down to -20 dB.
|
|
|
|
|
|
2964 .loc 1 287 0
|
|
|
|
|
|
2965 05bc B4A3 adr r3, .L303
|
|
|
|
|
|
2966 05be D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2967 05c2 2946 mov r1, r5
|
|
|
|
|
|
2968 05c4 2046 mov r0, r4
|
|
|
|
|
|
2969 05c6 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
2970 .LVL481:
|
|
|
|
|
|
2971 05ca 0A99 ldr r1, [sp, #40]
|
|
|
|
|
|
2972 05cc 079E ldr r6, [sp, #28]
|
|
|
|
|
|
2973 05ce 0F46 mov r7, r1
|
|
|
|
|
|
2974 05d0 0028 cmp r0, #0
|
|
|
|
|
|
2975 05d2 18BF it ne
|
|
|
|
|
|
2976 05d4 3746 movne r7, r6
|
|
|
|
|
|
288:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
2977 .loc 1 288 0
|
|
|
|
|
|
2978 05d6 BEA3 adr r3, .L303+64
|
|
|
|
|
|
2979 05d8 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2980 05dc 2046 mov r0, r4
|
|
|
|
|
|
2981 05de 2946 mov r1, r5
|
|
|
|
|
|
2982 05e0 0A97 str r7, [sp, #40]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 65
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2983 .LVL482:
|
|
|
|
|
|
2984 05e2 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
2985 .LVL483:
|
|
|
|
|
|
2986 05e6 0028 cmp r0, #0
|
|
|
|
|
|
2987 05e8 7FF49CAD bne .L219
|
|
|
|
|
|
283:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
2988 .loc 1 283 0 discriminator 2
|
|
|
|
|
|
2989 05ec 701E subs r0, r6, #1
|
|
|
|
|
|
2990 05ee 431C adds r3, r0, #1
|
|
|
|
|
|
2991 05f0 0790 str r0, [sp, #28]
|
|
|
|
|
|
2992 .LVL484:
|
|
|
|
|
|
2993 05f2 3FF497AD beq .L219
|
|
|
|
|
|
2994 05f6 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
2995 .LVL485:
|
|
|
|
|
|
2996 05fa B7A3 adr r3, .L303+72
|
|
|
|
|
|
2997 05fc D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
2998 0600 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
2999 .LVL486:
|
|
|
|
|
|
3000 0604 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
3001 0608 FFF7FEFF bl cos
|
|
|
|
|
|
3002 .LVL487:
|
|
|
|
|
|
3003 060c 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
3004 0610 7EE7 b .L223
|
|
|
|
|
|
3005 .LVL488:
|
|
|
|
|
|
3006 .L300:
|
|
|
|
|
|
355:Core/Src/FIRFilterCode.c **** if(CorrectedBW > *BW * 2.0)CorrectedBW = *BW * 2.0;
|
|
|
|
|
|
3007 .loc 1 355 0
|
|
|
|
|
|
3008 0612 A7A5 adr r5, .L303+32
|
|
|
|
|
|
3009 0614 D5E90045 ldrd r4, [r5]
|
|
|
|
|
|
3010 0618 4DE7 b .L254
|
|
|
|
|
|
3011 .LVL489:
|
|
|
|
|
|
3012 .L298:
|
|
|
|
|
|
297:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3013 .loc 1 297 0
|
|
|
|
|
|
3014 061a 0028 cmp r0, #0
|
|
|
|
|
|
3015 061c C0F22B81 blt .L225
|
|
|
|
|
|
3016 0620 059A ldr r2, [sp, #20]
|
|
|
|
|
|
3017 0622 0699 ldr r1, [sp, #24]
|
|
|
|
|
|
3018 0624 D200 lsls r2, r2, #3
|
|
|
|
|
|
3019 0626 CDE90700 strd r0, r0, [sp, #28]
|
|
|
|
|
|
3020 .LVL490:
|
|
|
|
|
|
3021 062a 8D18 adds r5, r1, r2
|
|
|
|
|
|
3022 062c 0B92 str r2, [sp, #44]
|
|
|
|
|
|
3023 .LVL491:
|
|
|
|
|
|
3024 062e AB46 mov fp, r5
|
|
|
|
|
|
3025 .LVL492:
|
|
|
|
|
|
3026 .L230:
|
|
|
|
|
|
299:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
3027 .loc 1 299 0
|
|
|
|
|
|
3028 0630 0798 ldr r0, [sp, #28]
|
|
|
|
|
|
3029 0632 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
3030 .LVL493:
|
|
|
|
|
|
3031 .LBB109:
|
|
|
|
|
|
3032 .LBB110:
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3033 .loc 1 431 0
|
|
|
|
|
|
3034 0636 A8A3 adr r3, .L303+72
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 66
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3035 0638 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3036 063c FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3037 .LVL494:
|
|
|
|
|
|
3038 0640 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
3039 0644 FFF7FEFF bl cos
|
|
|
|
|
|
3040 .LVL495:
|
|
|
|
|
|
3041 0648 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
3042 064c 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
3043 0650 1946 mov r1, r3
|
|
|
|
|
|
3044 0652 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3045 .LVL496:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3046 .loc 1 432 0
|
|
|
|
|
|
3047 0656 059B ldr r3, [sp, #20]
|
|
|
|
|
|
3048 0658 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3049 .loc 1 431 0
|
|
|
|
|
|
3050 065a CDE90001 strd r0, [sp]
|
|
|
|
|
|
3051 .LVL497:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3052 .loc 1 432 0
|
|
|
|
|
|
3053 065e 63DD ble .L226
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3054 .loc 1 429 0
|
|
|
|
|
|
3055 0660 0026 movs r6, #0
|
|
|
|
|
|
3056 0662 0027 movs r7, #0
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3057 .loc 1 432 0
|
|
|
|
|
|
3058 0664 DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3059 .loc 1 429 0
|
|
|
|
|
|
3060 0668 3446 mov r4, r6
|
|
|
|
|
|
3061 066a 3D46 mov r5, r7
|
|
|
|
|
|
3062 066c 03E0 b .L227
|
|
|
|
|
|
3063 .LVL498:
|
|
|
|
|
|
3064 .L264:
|
|
|
|
|
|
3065 066e DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3066 .loc 1 434 0
|
|
|
|
|
|
3067 0672 4446 mov r4, r8
|
|
|
|
|
|
3068 .LVL499:
|
|
|
|
|
|
3069 0674 4D46 mov r5, r9
|
|
|
|
|
|
3070 .LVL500:
|
|
|
|
|
|
3071 .L227:
|
|
|
|
|
|
3072 0676 2246 mov r2, r4
|
|
|
|
|
|
3073 0678 2B46 mov r3, r5
|
|
|
|
|
|
3074 067a FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
3075 067e FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3076 .LVL501:
|
|
|
|
|
|
3077 0682 3246 mov r2, r6
|
|
|
|
|
|
3078 0684 3B46 mov r3, r7
|
|
|
|
|
|
3079 0686 CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
3080 068a FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3081 .LVL502:
|
|
|
|
|
|
3082 068e 4246 mov r2, r8
|
|
|
|
|
|
3083 0690 4B46 mov r3, r9
|
|
|
|
|
|
3084 0692 FFF7FEFF bl __aeabi_dadd
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 67
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3085 .LVL503:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3086 .loc 1 432 0
|
|
|
|
|
|
3087 0696 D345 cmp fp, r10
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3088 .loc 1 434 0
|
|
|
|
|
|
3089 0698 8046 mov r8, r0
|
|
|
|
|
|
3090 069a 8946 mov r9, r1
|
|
|
|
|
|
3091 .LVL504:
|
|
|
|
|
|
3092 069c 2646 mov r6, r4
|
|
|
|
|
|
3093 069e 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3094 .loc 1 432 0
|
|
|
|
|
|
3095 06a0 E5D1 bne .L264
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3096 .loc 1 438 0
|
|
|
|
|
|
3097 06a2 2246 mov r2, r4
|
|
|
|
|
|
3098 06a4 2B46 mov r3, r5
|
|
|
|
|
|
3099 06a6 2046 mov r0, r4
|
|
|
|
|
|
3100 06a8 2946 mov r1, r5
|
|
|
|
|
|
3101 06aa FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3102 .LVL505:
|
|
|
|
|
|
3103 06ae 4246 mov r2, r8
|
|
|
|
|
|
3104 06b0 0446 mov r4, r0
|
|
|
|
|
|
3105 .LVL506:
|
|
|
|
|
|
3106 06b2 0D46 mov r5, r1
|
|
|
|
|
|
3107 06b4 4B46 mov r3, r9
|
|
|
|
|
|
3108 06b6 4046 mov r0, r8
|
|
|
|
|
|
3109 06b8 4946 mov r1, r9
|
|
|
|
|
|
3110 06ba FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3111 .LVL507:
|
|
|
|
|
|
3112 06be 0246 mov r2, r0
|
|
|
|
|
|
3113 06c0 0B46 mov r3, r1
|
|
|
|
|
|
3114 06c2 2046 mov r0, r4
|
|
|
|
|
|
3115 06c4 2946 mov r1, r5
|
|
|
|
|
|
3116 06c6 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3117 .LVL508:
|
|
|
|
|
|
3118 06ca 4246 mov r2, r8
|
|
|
|
|
|
3119 06cc 0446 mov r4, r0
|
|
|
|
|
|
3120 06ce 0D46 mov r5, r1
|
|
|
|
|
|
3121 06d0 4B46 mov r3, r9
|
|
|
|
|
|
3122 06d2 DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
3123 06d6 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3124 .LVL509:
|
|
|
|
|
|
3125 06da 0246 mov r2, r0
|
|
|
|
|
|
3126 06dc 0B46 mov r3, r1
|
|
|
|
|
|
3127 06de 2046 mov r0, r4
|
|
|
|
|
|
3128 06e0 2946 mov r1, r5
|
|
|
|
|
|
3129 06e2 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3130 .LVL510:
|
|
|
|
|
|
3131 .loc 1 440 0
|
|
|
|
|
|
3132 06e6 0022 movs r2, #0
|
|
|
|
|
|
3133 06e8 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3134 .loc 1 438 0
|
|
|
|
|
|
3135 06ea 0446 mov r4, r0
|
|
|
|
|
|
3136 06ec 0D46 mov r5, r1
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 68
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3137 .LVL511:
|
|
|
|
|
|
3138 .loc 1 440 0
|
|
|
|
|
|
3139 06ee FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
3140 .LVL512:
|
|
|
|
|
|
3141 06f2 C8B1 cbz r0, .L226
|
|
|
|
|
|
3142 .LVL513:
|
|
|
|
|
|
3143 .LBE110:
|
|
|
|
|
|
3144 .LBE109:
|
|
|
|
|
|
301:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break;
|
|
|
|
|
|
3145 .loc 1 301 0
|
|
|
|
|
|
3146 06f4 66A3 adr r3, .L303
|
|
|
|
|
|
3147 06f6 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3148 06fa 2946 mov r1, r5
|
|
|
|
|
|
3149 06fc 2046 mov r0, r4
|
|
|
|
|
|
3150 06fe FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
3151 .LVL514:
|
|
|
|
|
|
3152 0702 0899 ldr r1, [sp, #32]
|
|
|
|
|
|
3153 0704 079E ldr r6, [sp, #28]
|
|
|
|
|
|
3154 0706 0F46 mov r7, r1
|
|
|
|
|
|
3155 0708 0028 cmp r0, #0
|
|
|
|
|
|
3156 070a 18BF it ne
|
|
|
|
|
|
3157 070c 3746 movne r7, r6
|
|
|
|
|
|
302:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
3158 .loc 1 302 0
|
|
|
|
|
|
3159 070e 70A3 adr r3, .L303+64
|
|
|
|
|
|
3160 0710 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3161 0714 2046 mov r0, r4
|
|
|
|
|
|
3162 0716 2946 mov r1, r5
|
|
|
|
|
|
3163 0718 0897 str r7, [sp, #32]
|
|
|
|
|
|
3164 .LVL515:
|
|
|
|
|
|
3165 071a FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
3166 .LVL516:
|
|
|
|
|
|
3167 071e 18B9 cbnz r0, .L226
|
|
|
|
|
|
297:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3168 .loc 1 297 0 discriminator 2
|
|
|
|
|
|
3169 0720 731E subs r3, r6, #1
|
|
|
|
|
|
3170 0722 0793 str r3, [sp, #28]
|
|
|
|
|
|
3171 .LVL517:
|
|
|
|
|
|
3172 0724 0133 adds r3, r3, #1
|
|
|
|
|
|
3173 .LVL518:
|
|
|
|
|
|
3174 0726 83D1 bne .L230
|
|
|
|
|
|
3175 .LVL519:
|
|
|
|
|
|
3176 .L226:
|
|
|
|
|
|
304:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3177 .loc 1 304 0
|
|
|
|
|
|
3178 0728 0898 ldr r0, [sp, #32]
|
|
|
|
|
|
3179 072a FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
3180 .LVL520:
|
|
|
|
|
|
3181 072e 5CA3 adr r3, .L303+16
|
|
|
|
|
|
3182 0730 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3183 0734 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3184 .LVL521:
|
|
|
|
|
|
307:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3185 .loc 1 307 0
|
|
|
|
|
|
3186 0738 0A9B ldr r3, [sp, #40]
|
|
|
|
|
|
3187 073a B3F57A7F cmp r3, #1000
|
|
|
|
|
|
304:Core/Src/FIRFilterCode.c ****
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 69
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3188 .loc 1 304 0
|
|
|
|
|
|
3189 073e CDE90801 strd r0, [sp, #32]
|
|
|
|
|
|
3190 .LVL522:
|
|
|
|
|
|
307:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3191 .loc 1 307 0
|
|
|
|
|
|
3192 0742 BFF67BAE bge .L244
|
|
|
|
|
|
3193 .L258:
|
|
|
|
|
|
3194 .LVL523:
|
|
|
|
|
|
3195 0746 0B9B ldr r3, [sp, #44]
|
|
|
|
|
|
3196 0748 069A ldr r2, [sp, #24]
|
|
|
|
|
|
3197 074a 1344 add r3, r3, r2
|
|
|
|
|
|
3198 074c 1D46 mov r5, r3
|
|
|
|
|
|
3199 074e 0A9B ldr r3, [sp, #40]
|
|
|
|
|
|
3200 0750 0793 str r3, [sp, #28]
|
|
|
|
|
|
3201 0752 AB46 mov fp, r5
|
|
|
|
|
|
3202 .L235:
|
|
|
|
|
|
3203 .LVL524:
|
|
|
|
|
|
309:Core/Src/FIRFilterCode.c **** Mag = Goertzel(Coeff, NumTaps, Omega);
|
|
|
|
|
|
3204 .loc 1 309 0
|
|
|
|
|
|
3205 0754 0798 ldr r0, [sp, #28]
|
|
|
|
|
|
3206 0756 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
3207 .LVL525:
|
|
|
|
|
|
3208 .LBB111:
|
|
|
|
|
|
3209 .LBB112:
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3210 .loc 1 431 0
|
|
|
|
|
|
3211 075a 5FA3 adr r3, .L303+72
|
|
|
|
|
|
3212 075c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3213 0760 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3214 .LVL526:
|
|
|
|
|
|
3215 0764 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
3216 0768 FFF7FEFF bl cos
|
|
|
|
|
|
3217 .LVL527:
|
|
|
|
|
|
3218 076c 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
3219 0770 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
3220 0774 1946 mov r1, r3
|
|
|
|
|
|
3221 0776 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3222 .LVL528:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3223 .loc 1 432 0
|
|
|
|
|
|
3224 077a 059B ldr r3, [sp, #20]
|
|
|
|
|
|
3225 077c 002B cmp r3, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3226 .loc 1 431 0
|
|
|
|
|
|
3227 077e CDE90001 strd r0, [sp]
|
|
|
|
|
|
3228 .LVL529:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3229 .loc 1 432 0
|
|
|
|
|
|
3230 0782 7FF75BAE ble .L244
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3231 .loc 1 429 0
|
|
|
|
|
|
3232 0786 0026 movs r6, #0
|
|
|
|
|
|
3233 0788 0027 movs r7, #0
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3234 .loc 1 432 0
|
|
|
|
|
|
3235 078a DDF818A0 ldr r10, [sp, #24]
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 70
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3236 .loc 1 429 0
|
|
|
|
|
|
3237 078e 3446 mov r4, r6
|
|
|
|
|
|
3238 0790 3D46 mov r5, r7
|
|
|
|
|
|
3239 0792 03E0 b .L232
|
|
|
|
|
|
3240 .LVL530:
|
|
|
|
|
|
3241 .L266:
|
|
|
|
|
|
3242 0794 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3243 .loc 1 434 0
|
|
|
|
|
|
3244 0798 4446 mov r4, r8
|
|
|
|
|
|
3245 .LVL531:
|
|
|
|
|
|
3246 079a 4D46 mov r5, r9
|
|
|
|
|
|
3247 .LVL532:
|
|
|
|
|
|
3248 .L232:
|
|
|
|
|
|
3249 079c 2246 mov r2, r4
|
|
|
|
|
|
3250 079e 2B46 mov r3, r5
|
|
|
|
|
|
3251 07a0 FAE80289 ldrd r8, [r10], #8
|
|
|
|
|
|
3252 07a4 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3253 .LVL533:
|
|
|
|
|
|
3254 07a8 3246 mov r2, r6
|
|
|
|
|
|
3255 07aa 3B46 mov r3, r7
|
|
|
|
|
|
3256 07ac CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
3257 07b0 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3258 .LVL534:
|
|
|
|
|
|
3259 07b4 4246 mov r2, r8
|
|
|
|
|
|
3260 07b6 4B46 mov r3, r9
|
|
|
|
|
|
3261 07b8 FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3262 .LVL535:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3263 .loc 1 432 0
|
|
|
|
|
|
3264 07bc D345 cmp fp, r10
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3265 .loc 1 434 0
|
|
|
|
|
|
3266 07be 8046 mov r8, r0
|
|
|
|
|
|
3267 07c0 8946 mov r9, r1
|
|
|
|
|
|
3268 .LVL536:
|
|
|
|
|
|
3269 07c2 2646 mov r6, r4
|
|
|
|
|
|
3270 07c4 2F46 mov r7, r5
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3271 .loc 1 432 0
|
|
|
|
|
|
3272 07c6 E5D1 bne .L266
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3273 .loc 1 438 0
|
|
|
|
|
|
3274 07c8 2246 mov r2, r4
|
|
|
|
|
|
3275 07ca 2B46 mov r3, r5
|
|
|
|
|
|
3276 07cc 2046 mov r0, r4
|
|
|
|
|
|
3277 07ce 2946 mov r1, r5
|
|
|
|
|
|
3278 07d0 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3279 .LVL537:
|
|
|
|
|
|
3280 07d4 4246 mov r2, r8
|
|
|
|
|
|
3281 07d6 0446 mov r4, r0
|
|
|
|
|
|
3282 .LVL538:
|
|
|
|
|
|
3283 07d8 0D46 mov r5, r1
|
|
|
|
|
|
3284 07da 4B46 mov r3, r9
|
|
|
|
|
|
3285 07dc 4046 mov r0, r8
|
|
|
|
|
|
3286 07de 4946 mov r1, r9
|
|
|
|
|
|
3287 07e0 FFF7FEFF bl __aeabi_dmul
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 71
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3288 .LVL539:
|
|
|
|
|
|
3289 07e4 0246 mov r2, r0
|
|
|
|
|
|
3290 07e6 0B46 mov r3, r1
|
|
|
|
|
|
3291 07e8 2046 mov r0, r4
|
|
|
|
|
|
3292 07ea 2946 mov r1, r5
|
|
|
|
|
|
3293 07ec FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3294 .LVL540:
|
|
|
|
|
|
3295 07f0 4246 mov r2, r8
|
|
|
|
|
|
3296 07f2 0446 mov r4, r0
|
|
|
|
|
|
3297 07f4 0D46 mov r5, r1
|
|
|
|
|
|
3298 07f6 4B46 mov r3, r9
|
|
|
|
|
|
3299 07f8 DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
3300 07fc FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3301 .LVL541:
|
|
|
|
|
|
3302 0800 0246 mov r2, r0
|
|
|
|
|
|
3303 0802 0B46 mov r3, r1
|
|
|
|
|
|
3304 0804 2046 mov r0, r4
|
|
|
|
|
|
3305 0806 2946 mov r1, r5
|
|
|
|
|
|
3306 0808 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3307 .LVL542:
|
|
|
|
|
|
3308 .loc 1 440 0
|
|
|
|
|
|
3309 080c 0022 movs r2, #0
|
|
|
|
|
|
3310 080e 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3311 .loc 1 438 0
|
|
|
|
|
|
3312 0810 0446 mov r4, r0
|
|
|
|
|
|
3313 0812 0D46 mov r5, r1
|
|
|
|
|
|
3314 .LVL543:
|
|
|
|
|
|
3315 .loc 1 440 0
|
|
|
|
|
|
3316 0814 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
3317 .LVL544:
|
|
|
|
|
|
3318 0818 0028 cmp r0, #0
|
|
|
|
|
|
3319 081a 3FF40FAE beq .L244
|
|
|
|
|
|
3320 .LVL545:
|
|
|
|
|
|
3321 .LBE112:
|
|
|
|
|
|
3322 .LBE111:
|
|
|
|
|
|
311:Core/Src/FIRFilterCode.c **** if(Mag < 0.1)break;
|
|
|
|
|
|
3323 .loc 1 311 0
|
|
|
|
|
|
3324 081e 1CA3 adr r3, .L303
|
|
|
|
|
|
3325 0820 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3326 0824 2946 mov r1, r5
|
|
|
|
|
|
3327 0826 2046 mov r0, r4
|
|
|
|
|
|
3328 0828 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
3329 .LVL546:
|
|
|
|
|
|
3330 082c 0A99 ldr r1, [sp, #40]
|
|
|
|
|
|
3331 082e 079E ldr r6, [sp, #28]
|
|
|
|
|
|
3332 0830 0F46 mov r7, r1
|
|
|
|
|
|
3333 0832 0028 cmp r0, #0
|
|
|
|
|
|
3334 0834 18BF it ne
|
|
|
|
|
|
3335 0836 3746 movne r7, r6
|
|
|
|
|
|
312:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
3336 .loc 1 312 0
|
|
|
|
|
|
3337 0838 25A3 adr r3, .L303+64
|
|
|
|
|
|
3338 083a D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3339 083e 2046 mov r0, r4
|
|
|
|
|
|
3340 0840 2946 mov r1, r5
|
|
|
|
|
|
3341 0842 0A97 str r7, [sp, #40]
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 72
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3342 .LVL547:
|
|
|
|
|
|
3343 0844 FFF7FEFF bl __aeabi_dcmplt
|
|
|
|
|
|
3344 .LVL548:
|
|
|
|
|
|
3345 0848 0028 cmp r0, #0
|
|
|
|
|
|
3346 084a 7FF4F7AD bne .L244
|
|
|
|
|
|
307:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3347 .loc 1 307 0 discriminator 2
|
|
|
|
|
|
3348 084e 0136 adds r6, r6, #1
|
|
|
|
|
|
3349 0850 B6F57A7F cmp r6, #1000
|
|
|
|
|
|
3350 0854 0796 str r6, [sp, #28]
|
|
|
|
|
|
3351 .LVL549:
|
|
|
|
|
|
3352 0856 7FF47DAF bne .L235
|
|
|
|
|
|
3353 085a EFE5 b .L244
|
|
|
|
|
|
3354 .LVL550:
|
|
|
|
|
|
3355 .L237:
|
|
|
|
|
|
329:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3356 .loc 1 329 0
|
|
|
|
|
|
3357 085c FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
3358 .LVL551:
|
|
|
|
|
|
3359 0860 0FA3 adr r3, .L303+16
|
|
|
|
|
|
3360 0862 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3361 0866 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3362 .LVL552:
|
|
|
|
|
|
3363 086a 059B ldr r3, [sp, #20]
|
|
|
|
|
|
3364 086c DB00 lsls r3, r3, #3
|
|
|
|
|
|
3365 086e CDE90801 strd r0, [sp, #32]
|
|
|
|
|
|
3366 .LVL553:
|
|
|
|
|
|
3367 0872 0B93 str r3, [sp, #44]
|
|
|
|
|
|
3368 .LVL554:
|
|
|
|
|
|
3369 0874 52E5 b .L259
|
|
|
|
|
|
3370 .LVL555:
|
|
|
|
|
|
3371 .L225:
|
|
|
|
|
|
304:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3372 .loc 1 304 0
|
|
|
|
|
|
3373 0876 FFF7FEFF bl __aeabi_i2d
|
|
|
|
|
|
3374 .LVL556:
|
|
|
|
|
|
3375 087a 09A3 adr r3, .L303+16
|
|
|
|
|
|
3376 087c D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
3377 0880 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3378 .LVL557:
|
|
|
|
|
|
3379 0884 059B ldr r3, [sp, #20]
|
|
|
|
|
|
3380 0886 DB00 lsls r3, r3, #3
|
|
|
|
|
|
3381 0888 CDE90801 strd r0, [sp, #32]
|
|
|
|
|
|
3382 .LVL558:
|
|
|
|
|
|
3383 088c 0B93 str r3, [sp, #44]
|
|
|
|
|
|
3384 .LVL559:
|
|
|
|
|
|
3385 088e 5AE7 b .L258
|
|
|
|
|
|
3386 .L304:
|
|
|
|
|
|
3387 .align 3
|
|
|
|
|
|
3388 .L303:
|
|
|
|
|
|
3389 0890 2B0DFCA8 .word 2835090731
|
|
|
|
|
|
3390 0894 86FDDF3F .word 1071644038
|
|
|
|
|
|
3391 0898 3EE8D9AC .word 2899961918
|
|
|
|
|
|
3392 089c FA5CEF3F .word 1072651514
|
|
|
|
|
|
3393 08a0 FCA9F1D2 .word 3539053052
|
|
|
|
|
|
3394 08a4 4D62503F .word 1062232653
|
|
|
|
|
|
3395 08a8 182D4454 .word 1413754136
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 73
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3396 08ac FB210940 .word 1074340347
|
|
|
|
|
|
3397 08b0 7B14AE47 .word 1202590843
|
|
|
|
|
|
3398 08b4 E17A843F .word 1065646817
|
|
|
|
|
|
3399 08b8 5C8FC2F5 .word 4123168604
|
|
|
|
|
|
3400 08bc 285CEF3F .word 1072651304
|
|
|
|
|
|
3401 08c0 AE47E17A .word 2061584302
|
|
|
|
|
|
3402 08c4 14AEEF3F .word 1072672276
|
|
|
|
|
|
3403 08c8 FF81A6A6 .word 2795930111
|
|
|
|
|
|
3404 08cc F5FFEFBF .word -1074790411
|
|
|
|
|
|
3405 08d0 7C14AE47 .word 1202590844
|
|
|
|
|
|
3406 08d4 E17A843F .word 1065646817
|
|
|
|
|
|
3407 08d8 C3718BB6 .word 3062591939
|
|
|
|
|
|
3408 08dc 65BC693F .word 1063894117
|
|
|
|
|
|
3409 .cfi_endproc
|
|
|
|
|
|
3410 .LFE4:
|
|
|
|
|
|
3412 .section .text.Goertzel,"ax",%progbits
|
|
|
|
|
|
3413 .align 1
|
|
|
|
|
|
3414 .p2align 2,,3
|
|
|
|
|
|
3415 .global Goertzel
|
|
|
|
|
|
3416 .syntax unified
|
|
|
|
|
|
3417 .thumb
|
|
|
|
|
|
3418 .thumb_func
|
|
|
|
|
|
3419 .fpu fpv4-sp-d16
|
|
|
|
|
|
3421 Goertzel:
|
|
|
|
|
|
3422 .LFB5:
|
|
|
|
|
|
425:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
3423 .loc 1 425 0
|
|
|
|
|
|
3424 .cfi_startproc
|
|
|
|
|
|
3425 @ args = 0, pretend = 0, frame = 16
|
|
|
|
|
|
3426 @ frame_needed = 0, uses_anonymous_args = 0
|
|
|
|
|
|
3427 .LVL560:
|
|
|
|
|
|
3428 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
3429 .LCFI29:
|
|
|
|
|
|
3430 .cfi_def_cfa_offset 36
|
|
|
|
|
|
3431 .cfi_offset 4, -36
|
|
|
|
|
|
3432 .cfi_offset 5, -32
|
|
|
|
|
|
3433 .cfi_offset 6, -28
|
|
|
|
|
|
3434 .cfi_offset 7, -24
|
|
|
|
|
|
3435 .cfi_offset 8, -20
|
|
|
|
|
|
3436 .cfi_offset 9, -16
|
|
|
|
|
|
3437 .cfi_offset 10, -12
|
|
|
|
|
|
3438 .cfi_offset 11, -8
|
|
|
|
|
|
3439 .cfi_offset 14, -4
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3440 .loc 1 431 0
|
|
|
|
|
|
3441 0004 3AA3 adr r3, .L315+8
|
|
|
|
|
|
3442 0006 D3E90023 ldrd r2, [r3]
|
|
|
|
|
|
425:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
3443 .loc 1 425 0
|
|
|
|
|
|
3444 000a 85B0 sub sp, sp, #20
|
|
|
|
|
|
3445 .LCFI30:
|
|
|
|
|
|
3446 .cfi_def_cfa_offset 56
|
|
|
|
|
|
425:Core/Src/FIRFilterCode.c **** int j;
|
|
|
|
|
|
3447 .loc 1 425 0
|
|
|
|
|
|
3448 000c 0D46 mov r5, r1
|
|
|
|
|
|
3449 000e 0446 mov r4, r0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 74
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3450 .loc 1 431 0
|
|
|
|
|
|
3451 0010 51EC100B vmov r0, r1, d0
|
|
|
|
|
|
3452 .LVL561:
|
|
|
|
|
|
3453 0014 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3454 .LVL562:
|
|
|
|
|
|
3455 0018 41EC100B vmov d0, r0, r1
|
|
|
|
|
|
3456 001c FFF7FEFF bl cos
|
|
|
|
|
|
3457 .LVL563:
|
|
|
|
|
|
3458 0020 53EC102B vmov r2, r3, d0
|
|
|
|
|
|
3459 0024 10EE100A vmov r0, s0 @ int
|
|
|
|
|
|
3460 0028 1946 mov r1, r3
|
|
|
|
|
|
3461 002a FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3462 .LVL564:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3463 .loc 1 432 0
|
|
|
|
|
|
3464 002e 002D cmp r5, #0
|
|
|
|
|
|
431:Core/Src/FIRFilterCode.c **** for (j=0; j<N; j++)
|
|
|
|
|
|
3465 .loc 1 431 0
|
|
|
|
|
|
3466 0030 CDE90001 strd r0, [sp]
|
|
|
|
|
|
3467 .LVL565:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3468 .loc 1 432 0
|
|
|
|
|
|
3469 0034 50DD ble .L313
|
|
|
|
|
|
429:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3470 .loc 1 429 0
|
|
|
|
|
|
3471 0036 0026 movs r6, #0
|
|
|
|
|
|
3472 0038 0027 movs r7, #0
|
|
|
|
|
|
3473 003a 04EBC505 add r5, r4, r5, lsl #3
|
|
|
|
|
|
3474 .LVL566:
|
|
|
|
|
|
3475 003e B246 mov r10, r6
|
|
|
|
|
|
3476 0040 BB46 mov fp, r7
|
|
|
|
|
|
3477 0042 03E0 b .L307
|
|
|
|
|
|
3478 .LVL567:
|
|
|
|
|
|
3479 .L310:
|
|
|
|
|
|
3480 0044 DDE90001 ldrd r0, [sp]
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3481 .loc 1 434 0
|
|
|
|
|
|
3482 0048 C246 mov r10, r8
|
|
|
|
|
|
3483 .LVL568:
|
|
|
|
|
|
3484 004a CB46 mov fp, r9
|
|
|
|
|
|
3485 .LVL569:
|
|
|
|
|
|
3486 .L307:
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3487 .loc 1 434 0 is_stmt 0 discriminator 3
|
|
|
|
|
|
3488 004c 5246 mov r2, r10
|
|
|
|
|
|
3489 004e 5B46 mov r3, fp
|
|
|
|
|
|
3490 0050 F4E80289 ldrd r8, [r4], #8
|
|
|
|
|
|
3491 0054 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3492 .LVL570:
|
|
|
|
|
|
3493 0058 3246 mov r2, r6
|
|
|
|
|
|
3494 005a 3B46 mov r3, r7
|
|
|
|
|
|
3495 005c CDE90201 strd r0, [sp, #8]
|
|
|
|
|
|
3496 0060 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3497 .LVL571:
|
|
|
|
|
|
3498 0064 4246 mov r2, r8
|
|
|
|
|
|
3499 0066 4B46 mov r3, r9
|
|
|
|
|
|
3500 0068 FFF7FEFF bl __aeabi_dadd
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 75
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3501 .LVL572:
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3502 .loc 1 432 0 is_stmt 1 discriminator 3
|
|
|
|
|
|
3503 006c A542 cmp r5, r4
|
|
|
|
|
|
434:Core/Src/FIRFilterCode.c **** Reg2 = Reg1; // Shift the values.
|
|
|
|
|
|
3504 .loc 1 434 0 discriminator 3
|
|
|
|
|
|
3505 006e 8046 mov r8, r0
|
|
|
|
|
|
3506 0070 8946 mov r9, r1
|
|
|
|
|
|
3507 .LVL573:
|
|
|
|
|
|
3508 0072 5646 mov r6, r10
|
|
|
|
|
|
3509 0074 5F46 mov r7, fp
|
|
|
|
|
|
432:Core/Src/FIRFilterCode.c **** {
|
|
|
|
|
|
3510 .loc 1 432 0 discriminator 3
|
|
|
|
|
|
3511 0076 E5D1 bne .L310
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3512 .loc 1 438 0
|
|
|
|
|
|
3513 0078 5246 mov r2, r10
|
|
|
|
|
|
3514 007a 5B46 mov r3, fp
|
|
|
|
|
|
3515 007c 3046 mov r0, r6
|
|
|
|
|
|
3516 007e 3946 mov r1, r7
|
|
|
|
|
|
3517 0080 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3518 .LVL574:
|
|
|
|
|
|
3519 0084 4246 mov r2, r8
|
|
|
|
|
|
3520 0086 0446 mov r4, r0
|
|
|
|
|
|
3521 0088 0D46 mov r5, r1
|
|
|
|
|
|
3522 008a 4B46 mov r3, r9
|
|
|
|
|
|
3523 008c 4046 mov r0, r8
|
|
|
|
|
|
3524 008e 4946 mov r1, r9
|
|
|
|
|
|
3525 0090 FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3526 .LVL575:
|
|
|
|
|
|
3527 0094 0246 mov r2, r0
|
|
|
|
|
|
3528 0096 0B46 mov r3, r1
|
|
|
|
|
|
3529 0098 2046 mov r0, r4
|
|
|
|
|
|
3530 009a 2946 mov r1, r5
|
|
|
|
|
|
3531 009c FFF7FEFF bl __aeabi_dadd
|
|
|
|
|
|
3532 .LVL576:
|
|
|
|
|
|
3533 00a0 4246 mov r2, r8
|
|
|
|
|
|
3534 00a2 0446 mov r4, r0
|
|
|
|
|
|
3535 00a4 0D46 mov r5, r1
|
|
|
|
|
|
3536 00a6 4B46 mov r3, r9
|
|
|
|
|
|
3537 00a8 DDE90201 ldrd r0, [sp, #8]
|
|
|
|
|
|
3538 00ac FFF7FEFF bl __aeabi_dmul
|
|
|
|
|
|
3539 .LVL577:
|
|
|
|
|
|
3540 00b0 0246 mov r2, r0
|
|
|
|
|
|
3541 00b2 0B46 mov r3, r1
|
|
|
|
|
|
3542 00b4 2046 mov r0, r4
|
|
|
|
|
|
3543 00b6 2946 mov r1, r5
|
|
|
|
|
|
3544 00b8 FFF7FEFF bl __aeabi_dsub
|
|
|
|
|
|
3545 .LVL578:
|
|
|
|
|
|
3546 .loc 1 440 0
|
|
|
|
|
|
3547 00bc 0022 movs r2, #0
|
|
|
|
|
|
3548 00be 0023 movs r3, #0
|
|
|
|
|
|
438:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
3549 .loc 1 438 0
|
|
|
|
|
|
3550 00c0 0446 mov r4, r0
|
|
|
|
|
|
3551 00c2 0D46 mov r5, r1
|
|
|
|
|
|
3552 .LVL579:
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 76
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3553 .loc 1 440 0
|
|
|
|
|
|
3554 00c4 FFF7FEFF bl __aeabi_dcmpgt
|
|
|
|
|
|
3555 .LVL580:
|
|
|
|
|
|
3556 00c8 30B1 cbz r0, .L313
|
|
|
|
|
|
3557 .loc 1 440 0 is_stmt 0 discriminator 1
|
|
|
|
|
|
3558 00ca 45EC104B vmov d0, r4, r5
|
|
|
|
|
|
441:Core/Src/FIRFilterCode.c **** else Mag = 1.0E-12;
|
|
|
|
|
|
442:Core/Src/FIRFilterCode.c ****
|
|
|
|
|
|
443:Core/Src/FIRFilterCode.c **** return(Mag);
|
|
|
|
|
|
444:Core/Src/FIRFilterCode.c **** }
|
|
|
|
|
|
3559 .loc 1 444 0 is_stmt 1 discriminator 1
|
|
|
|
|
|
3560 00ce 05B0 add sp, sp, #20
|
|
|
|
|
|
3561 .LCFI31:
|
|
|
|
|
|
3562 .cfi_remember_state
|
|
|
|
|
|
3563 .cfi_def_cfa_offset 36
|
|
|
|
|
|
3564 .LVL581:
|
|
|
|
|
|
3565 @ sp needed
|
|
|
|
|
|
3566 00d0 BDE8F04F pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
|
|
|
|
|
|
3567 .LCFI32:
|
|
|
|
|
|
3568 .cfi_restore 14
|
|
|
|
|
|
3569 .cfi_restore 11
|
|
|
|
|
|
3570 .cfi_restore 10
|
|
|
|
|
|
3571 .cfi_restore 9
|
|
|
|
|
|
3572 .cfi_restore 8
|
|
|
|
|
|
3573 .cfi_restore 7
|
|
|
|
|
|
3574 .cfi_restore 6
|
|
|
|
|
|
3575 .cfi_restore 5
|
|
|
|
|
|
3576 .cfi_restore 4
|
|
|
|
|
|
3577 .cfi_def_cfa_offset 0
|
|
|
|
|
|
3578 .LVL582:
|
|
|
|
|
|
440:Core/Src/FIRFilterCode.c **** else Mag = 1.0E-12;
|
|
|
|
|
|
3579 .loc 1 440 0 discriminator 1
|
|
|
|
|
|
3580 00d4 FFF7FEBF b sqrt
|
|
|
|
|
|
3581 .LVL583:
|
|
|
|
|
|
3582 .L313:
|
|
|
|
|
|
3583 .LCFI33:
|
|
|
|
|
|
3584 .cfi_restore_state
|
|
|
|
|
|
441:Core/Src/FIRFilterCode.c **** else Mag = 1.0E-12;
|
|
|
|
|
|
3585 .loc 1 441 0
|
|
|
|
|
|
3586 00d8 9FED030B vldr.64 d0, .L315
|
|
|
|
|
|
3587 .LVL584:
|
|
|
|
|
|
3588 .loc 1 444 0
|
|
|
|
|
|
3589 00dc 05B0 add sp, sp, #20
|
|
|
|
|
|
3590 .LCFI34:
|
|
|
|
|
|
3591 .cfi_def_cfa_offset 36
|
|
|
|
|
|
3592 .LVL585:
|
|
|
|
|
|
3593 @ sp needed
|
|
|
|
|
|
3594 00de BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
|
|
|
|
|
|
3595 .LVL586:
|
|
|
|
|
|
3596 .L316:
|
|
|
|
|
|
3597 00e2 00BFAFF3 .align 3
|
|
|
|
|
|
3597 0080
|
|
|
|
|
|
3598 .L315:
|
|
|
|
|
|
3599 00e8 11EA2D81 .word 2167269905
|
|
|
|
|
|
3600 00ec 9997713D .word 1030854553
|
|
|
|
|
|
3601 00f0 182D4454 .word 1413754136
|
|
|
|
|
|
3602 00f4 FB210940 .word 1074340347
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 77
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3603 .cfi_endproc
|
|
|
|
|
|
3604 .LFE5:
|
|
|
|
|
|
3606 .text
|
|
|
|
|
|
3607 .Letext0:
|
|
|
|
|
|
3608 .file 2 "Core/Inc/FIRFilterCode.h"
|
|
|
|
|
|
3609 .file 3 "/usr/include/newlib/sys/lock.h"
|
|
|
|
|
|
3610 .file 4 "/usr/include/newlib/sys/_types.h"
|
|
|
|
|
|
3611 .file 5 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h"
|
|
|
|
|
|
3612 .file 6 "/usr/include/newlib/sys/reent.h"
|
|
|
|
|
|
3613 .file 7 "/usr/include/newlib/math.h"
|
|
|
|
|
|
3614 .file 8 "/usr/include/newlib/stdlib.h"
|
|
|
|
|
|
3615 .file 9 "<built-in>"
|
2021-07-03 18:17:05 +02:00
|
|
|
|
ARM GAS /tmp/cclqT4it.s page 78
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DEFINED SYMBOLS
|
|
|
|
|
|
*ABS*:0000000000000000 FIRFilterCode.c
|
2021-07-03 18:17:05 +02:00
|
|
|
|
/tmp/cclqT4it.s:24 .text.RectWinFIR:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:32 .text.RectWinFIR:0000000000000000 RectWinFIR
|
|
|
|
|
|
/tmp/cclqT4it.s:71 .text.RectWinFIR:000000000000001a $d
|
|
|
|
|
|
/tmp/cclqT4it.s:76 .text.RectWinFIR:0000000000000024 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:529 .text.RectWinFIR:0000000000000340 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:546 .text.RectWinFIR:0000000000000370 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:914 .text.RectWinFIR:00000000000005a8 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:928 .text.Sinc:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:936 .text.Sinc:0000000000000000 Sinc
|
|
|
|
|
|
/tmp/cclqT4it.s:991 .text.Sinc:0000000000000048 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:1001 .text.Bessel:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:1009 .text.Bessel:0000000000000000 Bessel
|
|
|
|
|
|
/tmp/cclqT4it.s:1195 .text.Bessel:0000000000000120 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:1217 .text.FIRFilterWindow:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:1225 .text.FIRFilterWindow:0000000000000000 FIRFilterWindow
|
|
|
|
|
|
/tmp/cclqT4it.s:1785 .text.FIRFilterWindow:0000000000000368 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:1800 .text.FIRFilterWindow:000000000000039c $t
|
|
|
|
|
|
/tmp/cclqT4it.s:2037 .text.FIRFilterWindow:00000000000004f8 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:2060 .text.FIRFreqError:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:2068 .text.FIRFreqError:0000000000000000 FIRFreqError
|
|
|
|
|
|
/tmp/cclqT4it.s:2396 .text.FIRFreqError:0000000000000200 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:2412 .text.FIRFreqError:0000000000000238 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:3389 .text.FIRFreqError:0000000000000890 $d
|
|
|
|
|
|
/tmp/cclqT4it.s:3413 .text.Goertzel:0000000000000000 $t
|
|
|
|
|
|
/tmp/cclqT4it.s:3421 .text.Goertzel:0000000000000000 Goertzel
|
|
|
|
|
|
/tmp/cclqT4it.s:3599 .text.Goertzel:00000000000000e8 $d
|
2021-07-02 22:19:04 +02:00
|
|
|
|
|
|
|
|
|
|
UNDEFINED SYMBOLS
|
|
|
|
|
|
__aeabi_i2d
|
|
|
|
|
|
__aeabi_dmul
|
|
|
|
|
|
__aeabi_dsub
|
|
|
|
|
|
__aeabi_dcmpgt
|
|
|
|
|
|
__aeabi_dcmplt
|
|
|
|
|
|
__aeabi_ddiv
|
|
|
|
|
|
__aeabi_dcmpeq
|
|
|
|
|
|
__aeabi_dadd
|
|
|
|
|
|
memset
|
|
|
|
|
|
sin
|
|
|
|
|
|
cos
|
|
|
|
|
|
pow
|
|
|
|
|
|
__aeabi_dcmple
|
|
|
|
|
|
__aeabi_dcmpge
|
|
|
|
|
|
malloc
|
|
|
|
|
|
free
|
|
|
|
|
|
sqrt
|
|
|
|
|
|
__aeabi_d2iz
|