You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here I can see that some new compilations symbols have been introduced to avoid including all the tables if they are not needed.
If no new symbol is defined, everything will behave as usual. If ARM_DSP_CONFIG_TABLES is defined then the new symbols will be taken into account.
Then you can select all FFT tables or all interpolation tables by defining following compilation symbols:
ARM_ALL_FFT_TABLES : All FFT tables are included
ARM_ALL_FAST_TABLES : All interpolation tables are included
From the above lines, it seems that once ARM_DSP_CONFIG_TABLES has been defined, it's enough to select which tables are needed.
I think this is not true, unfortunately, because I tried and it didn't work.
# So the code for FFT and FAST maths may be included
# so we allow the table to be included if they are needed.
r.append("-DARM_FAST_ALLOW_TABLES")
r.append("-DARM_FFT_ALLOW_TABLES")
If I'm right this means that I need to define three symbols:
ARM_DSP_CONFIG_TABLES to enable the "selective" build
ARM_FFT_ALLOW_TABLES so that the needed fft tables could be included (if at least one of them is needed)
ARM_FAST_ALLOW_TABLES so that the needed interpolation tables could be included (if at least one of them is needed)
then the other symbols of the needed tables.
The necessity of ARM_FFT_ALLOW_TABLES and/or ARM_FAST_ALLOW_TABLES seems confirmed looking into the source code.
As an example
@escherstair Indeed, the ALLOW options are used because a build may not include the FFT code and in that case the FFT tables must not be included.
I'll update the README to advise people to use the Python configuration script to generate the -D options for the command line. It is the simplest otherwise knowing which option to use require to know how the algorithm is implemented (which tables are needed).
@christophe0606 if you'll give advise to use the Python script, please specify that the -D options for the command line are generated if the build method is set to Make
I have recreated the github issues on the new repository (sometimes merging a few related ones). You can see the link just above this comment (... mentioned this issue ...).
Here I can see that some new compilations symbols have been introduced to avoid including all the tables if they are not needed.
From the above lines, it seems that once ARM_DSP_CONFIG_TABLES has been defined, it's enough to select which tables are needed.
I think this is not true, unfortunately, because I tried and it didn't work.
So I looked inside cmsisdspconfig.py and I see
CMSIS_5/CMSIS/DSP/cmsisdspconfig.py
Lines 292 to 298 in 72dd917
If I'm right this means that I need to define three symbols:
then the other symbols of the needed tables.
The necessity of ARM_FFT_ALLOW_TABLES and/or ARM_FAST_ALLOW_TABLES seems confirmed looking into the source code.
As an example
CMSIS_5/CMSIS/DSP/Source/FastMathFunctions/FastMathFunctions.c
Line 29 in 72dd917
either ARM_DSP_CONFIG_TABLES is NOT defined, or ARM_FAST_ALLOW_TABLES MUST be defined too, otherwise nothing is compiled.
If this is the case, I suggest to improve README.md adding this clarification.
The text was updated successfully, but these errors were encountered: