The ESP-DSP library includes implementations of the following functions:
Many of the library functions are written in assembly and are optimized for the CPU configuration used in the ESP32. In addition to the optimized implementations, reference implementations written in ANSI C are provided.
Function implementations are provided for single precision floating point (32-bit float), and 16-bit signed integers.
Documentation found in the above links is automatically generated from the contents of this repository. If you find that some information is missing or incomplete, please report an issue.
If you haven't created an ESP-IDF project yet, and wish to try the examples provided with ESP-DSP, you can clone ESP-DSP repository into any directory, and then run examples from there:
cd ~/esp git clone https://github.com/espressif/esp-dsp.git cd esp-dsp/examples/dotprod make -j4 flash monitor ESPPORT=PORT
or, if you are using CMake based build system,
idf.py -p PORT flash monitor
PORT is the UART port name of your development board, such as
Note that you need to set up environment variables (
PATH) before building the project. Refer to the ESP-IDF Getting Started Guide if you don't have the environment set up yet.
For the list of the examples, please see README.md in the examples directory.
To include ESP-DSP into your ESP-IDF project, clone ESP-DSP repository (or add it as a submodule) into the components directory of the project:
cd your-project-directory mkdir -p components cd components git clone https://github.com/espressif/esp-dsp.git
ESP-IDF build system also allows including components which are not located in the project components directory, using
EXTRA_COMPONENT_DIRS project variable. Please refer to the ESP-IDF build system documentation for details.
The Benchmark table esp-dsp-benchmarks.rst contains benchmarks for ESP32 and ESP32S3 CPUs. The benchmarks collected with compiler optimization flags for speed (Os) and for size (Q2). To build this table please collect benchmarks data by running "DSP Benchmarks data" test from test application and place result data to the CSV file. Then run the Python scrip to generate the benchmark table esp-dsp-benchmarks.rst.
If you have found an issue in ESP-DSP, or wish to submit an enhancement request, please use the Issues section on Github.
For general questions related to this library, please use the esp32.com forum.
All original source code in this repository is Copyright (C) 2018-2019 Espressif Systems. This source code is licensed under the Apache License 2.0 as described in the file LICENSE.