Commit 55e81fa1 authored by Christophe Favergeon's avatar Christophe Favergeon
Browse files

Improve doxygen

parent e71a2ba1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2430,7 +2430,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED             = DOXYGEN HAS_VECTOR HAS_PREDICATED_LOOP ARM_MATH_NEON=1 ARM_FLOAT16_SUPPORTED=1 __STATIC_FORCEINLINE= __ALIGNED(x)=
PREDEFINED             = DOXYGEN ARM_DSP_ATTRIBUTE= ARM_DSP_TABLE_ATTRIBUTE= HAS_VECTOR HAS_PREDICATED_LOOP ARM_MATH_NEON=1 ARM_FLOAT16_SUPPORTED=1 __STATIC_FORCEINLINE= __ALIGNED(x)=

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
+21 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ The library ships with a number of examples which demonstrate how to use the lib

## Toolchain Support {#toolchain}

The library is now tested on Fast Models building with cmake. Core M0, M4, M7, M33, M55, A32 are tested.
The library is now tested on Fast Models building with cmake. Core M0, M4, M7, M33, M55 are tested.

## Access to CMSIS-DSP {#pack}

@@ -120,6 +120,26 @@ Each library project has different preprocessor macros.
 - `ARM_MATH_AUTOVECTORIZE`:
   - 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.

 - `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)

 - `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. 

 - `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.

## Code size

Constant tables can use a lot of read only memory. The linker can remove the unused functions and constant tables.

For this you need to use the right initialization functions in the library and the right options for the linker (they are compiler dependent).

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`).

By using the right initialization function, you're telling the linker what is really used.

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.

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` ...

## License {#license}

The CMSIS-DSP is provided free of charge under the [Apache 2.0 License](https://raw.githubusercontent.com/ARM-software/CMSIS-DSP/main/LICENSE).