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
Copy file name to clipboardExpand all lines: Documentation/Doxygen/src/mainpage.md
+21-1Lines changed: 21 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ The library ships with a number of examples which demonstrate how to use the lib
54
54
55
55
## Toolchain Support {#toolchain}
56
56
57
-
The library is now tested on Fast Models building with cmake. Core M0, M4, M7, M33, M55, A32 are tested.
57
+
The library is now tested on Fast Models building with cmake. Core M0, M4, M7, M33, M55 are tested.
58
58
59
59
## Access to CMSIS-DSP {#pack}
60
60
@@ -120,6 +120,26 @@ Each library project has different preprocessor macros.
120
120
-`ARM_MATH_AUTOVECTORIZE`:
121
121
- With Helium or Neon, disable the use of vectorized code with C intrinsics and use pure C instead. The vectorization is then done by the compiler.
122
122
123
+
-`ARM_DSP_ATTRIBUTE`: Can be set to define CMSIS-DSP function as weak functions. This can either be set on the command line when building or in a new `arm_dsp_config.h` header (see below)
124
+
125
+
-`ARM_DSP_TABLE_ATTRIBUTE`: Can be set to define in which section constant tables must be mapped. This can either be set on the command line when building or in a new `arm_dsp_config.h` header (see below). Another way to set those sections is by modifying the linker scripts since the constant tables are defined only in a restricted set of source files.
126
+
127
+
-`ARM_DSP_CUSTOM_CONFIG` When set, the file `arm_dsp_config.h` is included by the `arm_math_types.h` headers. You can use this file to define any of the above compilation symbols.
128
+
129
+
## Code size
130
+
131
+
Constant tables can use a lot of read only memory. The linker can remove the unused functions and constant tables.
132
+
133
+
For this you need to use the right initialization functions in the library and the right options for the linker (they are compiler dependent).
134
+
135
+
For all transforms functions (CFFT, RFFT ...) instead of using a generic initialization function that works for all lengths (like `arm_cff_init_f32`), use a dedicated initialization function for a specific size (like `arm_cfft_init_1024_f32`).
136
+
137
+
By using the right initialization function, you're telling the linker what is really used.
138
+
139
+
If you use a generic function, the linker cannot deduce the used lengths and thus will keep all the constant tables required for each length.
140
+
141
+
Then you need to use the right options for the compiler so that the unused tables and functions are removed. It is compiler dependent but generally the options are named like `-ffunction-sections`, `-fdata-sections`, `--gc-sections` ...
142
+
123
143
## License {#license}
124
144
125
145
The CMSIS-DSP is provided free of charge under the [Apache 2.0 License](https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/main/LICENSE).
0 commit comments