Lines Matching +full:for +full:- +full:compiler
1 # CMSIS-DSP
3 …-releases)](https://img.shields.io/github/v/release/ARM-software/CMSIS-DSP?include_prereleases) .
27 ### CMSIS-DSP Kernels
29 Kernels provided by CMSIS-DSP (list not exhaustive):
35 * Classical ML (Support Vector Machine, Distance functions for clustering ...)
51 For any questions or to reach the CMSIS-DSP team, please create a new issue in https://github.com/…
55 * [Building for speed](#building-for-speed)
56 * [Options to use](#options-to-use)
57 * [Options to avoid](#options-to-avoid)
58 * [Half float support](#half-float-support)
59 * [How to build](#how-to-build)
60 * [How to build with MDK or Open CMSIS-Pack](#how-to-build-with-mdk-or-open-cmsis-pack)
61 * [How to build with Make](#how-to-build-with-make)
62 * [How to build with cmake](#how-to-build-with-cmake)
63 * [How to build with any other build system](#how-to-build-with-any-other-build-system)
64 * [How to build for aarch64](#how-to-build-for-aarch64)
65 * [Code size](#code-size)
66 * [Folders and files](#folders-and-files)
70 ## Building for speed
72 CMSIS-DSP is used when you need performance. As consequence CMSIS-DSP should be compiled with the o…
76 * `-Ofast` must be used for best performances.
77 * When using Helium it is strongly advised to use `-Ofast`
78 …C` is currently not giving good performances when targeting Helium. You should use the Arm compiler
80 When float are used, then the fpu should be selected to ensure that the compiler is not using a sof…
82 …-DSP. For Neon, it is not the case and you must enable the option `-DARM_MATH_NEON` for the C comp…
84 * `-DLOOPUNROLL=ON` can also be used when compiling with cmake
85 * It corresponds to the C options `-DARM_MATH_LOOPUNROLL`
87 …ing. So this option may not be needed but it is highly dependent on the compiler. With some compil…
89 Speed of memory is important. If you can map the data and the constant tables used by CMSIS-DSP in …
93 * `-fno-builtin`
94 * `-ffreestanding` because it enables previous options
98 This optimization will **not** occur when `-fno-builtin` is used and it will have a **very bad** im…
100 Some compiler may also require the use of option `-munaligned-access` to specify that unaligned acc…
104 …ation (for instance with Helium extension). If you don't need `f16`, you should disable it since i…
108 You can build CMSIS-DSP with the open CMSIS-Pack, or cmake, or Makefile and it is also easy to buil…
110 ### How to build with MDK or Open CMSIS-Pack
112 The standard way to build is by using the CMSIS pack technology. CMSIS-DSP is available as a pack.
116 You can also use those packs using the [Open CMSIS-Pack](https://www.open-cmsis-pack.org/) technolo…
118 You should first install the tools from https://github.com/Open-CMSIS-Pack/devtools/tree/main/tools
120 You can get the CMSIS-Toolbox which is containing the package installer, cmsis build and cmsis proj…
122 * Documentation about [CMSIS Build](https://open-cmsis-pack.github.io/devtools/buildmgr/latest/inde…
123 * Documentation about [CMSIS Pack](https://open-cmsis-pack.github.io/Open-CMSIS-Pack-Spec/main/html…
124 * Documentation about [CMSIS Project manager](https://github.com/Open-CMSIS-Pack/devtools/blob/main…
128 Then, you'll need to convert a solution file into `.cprj`. For instance, for the CMSIS-DSP Examples…
134 `csolution convert -s examples.csolution_ac6.yml`
136 This command processes the `examples.csolution_ac6.yml` describing how to build the examples for se…
138 If you want to build the `FFT` example for the `Corstone-300` virtual hardware platform, you could …
140 `cbuild "fftbin.Release+VHT-Corstone-300.cprj"`
150 Then, for the includes you'll need to add the paths: `Include`, `PrivateInclude` and, since there i…
152 If you are building for `Cortex-A` and want to use Neon, you'll also need to include `ComputeLibrar…
158 Add CMSIS-DSP as a subdirectory. The variable `CMSISDSP` is the path to the CMSIS-DSP repository in…
169 CMSIS-DSP is dependent on the CMSIS Core includes. So, you should define `CMSISCORE` on the cmake c…
173 If you build for Helium, you should use any of the option `MVEF`, `MVEI` or `HELIUM`.
175 If you build for Neon, use `NEON` and/or `NEONEXPERIMENTAL`.
192 …ike `_f32.c`), or just compile the files without a datatype suffix. For instance for `BasicMathFun…
194 `f16` files are not mandatory. You can build with `-DDISABLEFLOAT16`
196 ### How to build for aarch64
198 The intrinsics defined in `Core_A/Include` are not available on recent Cortex-A processors.
200 But you can still build for those Cortex-A cores and benefit from the Neon intrinsics.
202 You need to build with `-D__GNUC_PYTHON__` on the compiler command line. This flag was introduced f…
204 When this flag is enabled, CMSIS-DSP is defining a few macros used in the library for compiler port…
212 …compiler you are using is requiring different definitions, you can add them to `arm_math_types.h` …
214 Then, you need to define `-DARM_MATH_NEON`
216 For cmake the equivalent options are:
218 * `-DHOST=ON`
219 * `-DNEON=ON`
225 …to control the code size. It was too complex and not available in case CMSIS-DSP is only delivered…
229 …e linker from being able to deduce which functions and tables must be kept for the FFT and everyth…
231 There are similar functions for RFFT, MFCC ...
237 The only folders required to build and use CMSIS-DSP Library are:
249 * Required to build the CMSIS-DSP PythonWrapper for the Python repository
252 * Some kernels required when building CMSIS-DSP with Neon acceleration
254 * Examples of use of CMSIS-DSP on bare metal Cortex-M
257 * Include files for CMSIS-DSP
259 * Some include needed to build CMSIS-DSP
261 * C code for the CMSIS-DSP PythonWrapper
262 * Examples for the PythonWrapper
265 * Script to generate some coefficient tables used by CMSIS-DSP
267 * CMSIS-DSP source
269 * CMSIS-DSP Test framework for bare metal Cortex-M and Cortex-A