|
ESP-IDF Firmware
Firmware architecture and call graph
|
#include <assert.h>#include <math.h>#include <stdint.h>#include <stdio.h>#include "FreeRTOS.h"#include "esp_adc/adc_cali.h"#include "esp_adc/adc_cali_scheme.h"#include "esp_adc/adc_continuous.h"#include "esp_adc/adc_filter.h"#include "esp_attr.h"#include "esp_crc.h"#include "esp_dsp.h"#include "esp_err.h"#include "esp_heap_caps.h"#include "esp_log.h"#include "esp_timer.h"#include "freertos/queue.h"#include "freertos/semphr.h"#include "freertos/task.h"#include "led_strip.h"#include "string.h"#include "tinyusb.h"#include "tusb_cdc_acm.h"Go to the source code of this file.
Data Structures | |
| struct | frame_wire_t |
Macros | |
| #define | OPTIMIZE_O2 |
| #define | FFT_SIZE CONFIG_ADC_FFT_SIZE |
| #define | ADC_SPS CONFIG_ADC_FS |
| #define | CHANNELS 2 |
| #define | SAMPLE_MAX 4096 |
| #define | LED_STRIP_RMT_RES_HZ (10 * 1000 * 1000) |
| #define | SPIKE_DB_THRESHOLD 20.0f |
| #define | SPIKE_RATIO_THRESHOLD 8.0f |
| #define | SPIKE_MIN_AVG_LINEAR 1e-7f |
| #define | FRAME_MAGIC_0 0xF0 |
| #define | FRAME_MAGIC_1 0x0D |
| #define | FRAME_MAGIC_2 0xF0 |
| #define | FRAME_MAGIC_3 0x0D |
| #define | FRAME_VERSION 0x02 |
| #define | FRAME_HEADER_SIZE 9u |
| #define | FRAME_PAYLOAD_SIZE (sizeof(frame_payload_t)) |
| #define | FRAME_TOTAL_SIZE (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u) |
| #define | CDC_TX_TASK_STACK_SIZE 4096 |
| #define | ADC_TASK_STACK_SIZE 8192 |
Functions | |
| struct | __attribute__ ((packed)) |
| static void | write_u16_le (uint8_t *dst, uint16_t value) |
| static void | write_u32_le (uint8_t *dst, uint32_t value) |
| static void | write_u64_le (uint8_t *dst, uint64_t value) |
| static uint32_t | frame_crc32 (const uint8_t *data, size_t len) |
| static void | build_frame (frame_wire_t *out, const float *data, const char label[4], uint64_t t_ms, uint32_t sps, uint16_t seq) |
| static bool | safe_cdcacm_write_flush (tinyusb_cdcacm_itf_t port, int max_retries) |
| static void | cdc_tx_task (void *arg) |
| bool | adc_calibration_init (adc_unit_t unit, adc_atten_t atten) |
| static float | sample_to_volts (uint16_t raw, bool calibrated) |
| static float | sample_to_centered (uint16_t raw, bool calibrated, int midpoint_mv) |
| static void | apply_window (float *buf) |
| static void | perform_fft (float *buf) |
| static void | apply_complex_cutoff (float *buf, uint32_t sps) |
| static adc_atten_t | cfg_atten (void) |
| static void | adc_fft_task (void *arg) |
| void | app_main (void) |
Variables | |
| static const char * | TAG = "adc_fft" |
| static float * | ch0 = NULL |
| static float * | ch1 = NULL |
| static float * | win = NULL |
| static adc_cali_handle_t | cali_handle |
| frame_payload_t | |
| static QueueHandle_t | g_frameq |
| static uint16_t | g_seq |
| static tinyusb_cdcacm_itf_t | g_data_port = TINYUSB_CDC_ACM_0 |
| static TaskHandle_t | g_cdc_task_handle |
| static TaskHandle_t | g_adc_task_handle |
| #define ADC_SPS CONFIG_ADC_FS |
Definition at line 40 of file main/main.c.
Referenced by adc_fft_task().
| #define ADC_TASK_STACK_SIZE 8192 |
Definition at line 107 of file main/main.c.
Referenced by app_main().
| #define CDC_TX_TASK_STACK_SIZE 4096 |
Definition at line 104 of file main/main.c.
Referenced by app_main().
| #define CHANNELS 2 |
Definition at line 50 of file main/main.c.
Referenced by adc_fft_task().
| #define FFT_SIZE CONFIG_ADC_FFT_SIZE |
Definition at line 39 of file main/main.c.
Referenced by __attribute__(), adc_fft_task(), app_main(), apply_complex_cutoff(), apply_window(), build_frame(), and perform_fft().
| #define FRAME_HEADER_SIZE 9u |
Definition at line 78 of file main/main.c.
Referenced by build_frame().
| #define FRAME_MAGIC_0 0xF0 |
Definition at line 73 of file main/main.c.
Referenced by build_frame().
| #define FRAME_MAGIC_1 0x0D |
Definition at line 74 of file main/main.c.
Referenced by build_frame().
| #define FRAME_MAGIC_2 0xF0 |
Definition at line 75 of file main/main.c.
Referenced by build_frame().
| #define FRAME_MAGIC_3 0x0D |
Definition at line 76 of file main/main.c.
Referenced by build_frame().
| #define FRAME_PAYLOAD_SIZE (sizeof(frame_payload_t)) |
Definition at line 79 of file main/main.c.
Referenced by build_frame().
| #define FRAME_TOTAL_SIZE (FRAME_HEADER_SIZE + FRAME_PAYLOAD_SIZE + 4u) |
Definition at line 80 of file main/main.c.
Referenced by cdc_tx_task().
| #define FRAME_VERSION 0x02 |
Definition at line 77 of file main/main.c.
Referenced by build_frame().
| #define LED_STRIP_RMT_RES_HZ (10 * 1000 * 1000) |
Definition at line 53 of file main/main.c.
| #define OPTIMIZE_O2 |
Definition at line 36 of file main/main.c.
Referenced by apply_complex_cutoff(), apply_window(), and perform_fft().
| #define SAMPLE_MAX 4096 |
Definition at line 51 of file main/main.c.
| #define SPIKE_DB_THRESHOLD 20.0f |
Definition at line 55 of file main/main.c.
| #define SPIKE_MIN_AVG_LINEAR 1e-7f |
Definition at line 57 of file main/main.c.
| #define SPIKE_RATIO_THRESHOLD 8.0f |
Definition at line 56 of file main/main.c.
| struct __attribute__ | ( | (packed) | ) |
Definition at line 63 of file main/main.c.
References __attribute__(), cali_handle, data, and FFT_SIZE.
Referenced by __attribute__().
| bool adc_calibration_init | ( | adc_unit_t | unit, |
| adc_atten_t | atten ) |
Definition at line 411 of file main/main.c.
References cali_handle, ESP_OK, and TAG.
Referenced by adc_fft_task().
|
static |
Definition at line 488 of file main/main.c.
References adc_calibration_init(), ADC_SPS, apply_window(), build_frame(), cali_handle, cfg_atten(), ch0, ch1, CHANNELS, ESP_OK, FFT_SIZE, g_frameq, g_seq, perform_fft(), sample_to_centered(), and TAG.
Referenced by app_main().
| void app_main | ( | void | ) |
Definition at line 720 of file main/main.c.
References adc_fft_task(), ADC_TASK_STACK_SIZE, cdc_tx_task(), CDC_TX_TASK_STACK_SIZE, ch0, ch1, dsps_fft4r_init_fc32(), dsps_wind_blackman_f32(), dsps_wind_blackman_harris_f32(), dsps_wind_blackman_nuttall_f32(), dsps_wind_flat_top_f32(), dsps_wind_hann_f32(), dsps_wind_nuttall_f32(), FFT_SIZE, g_adc_task_handle, g_cdc_task_handle, g_data_port, g_frameq, TAG, TINYUSB_CDC_ACM_0, TINYUSB_CDC_ACM_1, tinyusb_driver_install(), TINYUSB_USBDEV_0, tusb_cdc_acm_init(), wave_gen_init(), wave_gen_sdm_start(), wave_gen_set_type(), wave_gen_set_volume(), wave_gen_start(), WAVE_TYPE_SINE, and win.
|
static |
Definition at line 459 of file main/main.c.
References FFT_SIZE, k, and OPTIMIZE_O2.
|
static |
Definition at line 447 of file main/main.c.
References FFT_SIZE, OPTIMIZE_O2, and win.
Referenced by adc_fft_task().
|
static |
Definition at line 130 of file main/main.c.
References frame_wire_t::bytes, data, FFT_SIZE, frame_crc32(), FRAME_HEADER_SIZE, FRAME_MAGIC_0, FRAME_MAGIC_1, FRAME_MAGIC_2, FRAME_MAGIC_3, FRAME_PAYLOAD_SIZE, FRAME_VERSION, write_u16_le(), write_u32_le(), and write_u64_le().
Referenced by adc_fft_task().
|
static |
Definition at line 254 of file main/main.c.
References frame_wire_t::bytes, ESP_LOGD, FRAME_TOTAL_SIZE, g_adc_task_handle, g_cdc_task_handle, g_data_port, g_frameq, led_strip_refresh(), led_strip_set_pixel(), safe_cdcacm_write_flush(), TAG, tinyusb_cdcacm_write_queue(), and tusb_cdc_acm_initialized().
Referenced by app_main().
|
static |
Definition at line 476 of file main/main.c.
Referenced by adc_fft_task().
|
static |
Definition at line 126 of file main/main.c.
References data.
Referenced by build_frame().
|
static |
Definition at line 453 of file main/main.c.
References dsps_bit_rev4r_fc32, dsps_cplx2real_fc32, dsps_fft4r_fc32, FFT_SIZE, and OPTIMIZE_O2.
Referenced by adc_fft_task().
|
static |
Definition at line 221 of file main/main.c.
References ESP_OK, TAG, and tinyusb_cdcacm_write_flush().
Referenced by cdc_tx_task().
|
inlinestatic |
Definition at line 436 of file main/main.c.
References cali_handle, and ESP_OK.
Referenced by adc_fft_task().
|
inlinestatic |
Definition at line 426 of file main/main.c.
References cali_handle, and ESP_OK.
|
inlinestatic |
Definition at line 109 of file main/main.c.
Referenced by build_frame().
|
inlinestatic |
Definition at line 114 of file main/main.c.
Referenced by build_frame(), and write_u64_le().
|
inlinestatic |
Definition at line 121 of file main/main.c.
References write_u32_le().
Referenced by build_frame().
|
static |
Definition at line 63 of file main/main.c.
Referenced by __attribute__(), adc_calibration_init(), adc_fft_task(), sample_to_centered(), and sample_to_volts().
|
static |
Definition at line 59 of file main/main.c.
Referenced by adc_fft_task(), and app_main().
|
static |
Definition at line 60 of file main/main.c.
Referenced by adc_fft_task(), and app_main().
| frame_payload_t |
Definition at line 71 of file main/main.c.
|
static |
Definition at line 95 of file main/main.c.
Referenced by app_main(), and cdc_tx_task().
|
static |
Definition at line 94 of file main/main.c.
Referenced by app_main(), and cdc_tx_task().
|
static |
Definition at line 93 of file main/main.c.
Referenced by app_main(), and cdc_tx_task().
|
static |
Definition at line 91 of file main/main.c.
Referenced by adc_fft_task(), app_main(), and cdc_tx_task().
|
static |
Definition at line 92 of file main/main.c.
Referenced by adc_fft_task().
|
static |
Definition at line 31 of file main/main.c.
Referenced by adc_calibration_init(), adc_fft_task(), app_init(), app_init(), app_main(), app_main(), apply_path(), audio_process_task(), audio_process_task(), audio_process_task(), audio_read_task(), audio_read_task(), audio_read_task(), bsp_spi_init(), bsp_spi_init(), buttons_process_task(), buttons_process_task(), buttons_process_task(), cdc_obj_check(), cdc_tx_task(), dsp_display_brightness_init(), dsp_display_brightness_init(), dsp_display_new(), dsps_ccorr_f32_ansi(), dsps_conv_f32_ansi(), dsps_cplx_gen_freq_get(), dsps_cplx_gen_freq_set(), dsps_cplx_gen_init(), dsps_cplx_gen_phase_get(), dsps_cplx_gen_phase_set(), dsps_cplx_gen_set(), dsps_gen_bitrev2r_table(), dsps_gen_bitrev4r_table(), dsps_sfdr_f32(), dsps_snr_f32(), esp_tusb_deinit_console(), esp_tusb_init_console(), esp_vfs_tusb_cdc_register(), esp_vfs_tusb_cdc_unregister(), init_3d_matrix_struct(), init_3d_matrix_struct(), led_strip_clear(), led_strip_del(), led_strip_new_rmt_device(), led_strip_new_rmt_device(), led_strip_new_spi_device(), led_strip_refresh(), led_strip_rmt_del(), led_strip_rmt_del(), led_strip_rmt_refresh(), led_strip_rmt_refresh(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel(), led_strip_rmt_set_pixel_rgbw(), led_strip_set_pixel(), led_strip_set_pixel_hsv(), led_strip_set_pixel_rgbw(), led_strip_spi_del(), led_strip_spi_refresh(), led_strip_spi_set_pixel(), led_strip_spi_set_pixel_rgbw(), microphone_read_task(), microphone_read_task(), redirect_std_streams_to(), restore_std_streams(), ringbuf_mux_take(), rmt_new_led_strip_encoder(), safe_cdcacm_write_flush(), tinyusb_cdc_deinit(), tinyusb_cdc_init(), tinyusb_cdcacm_read(), tinyusb_cdcacm_register_callback(), tinyusb_cdcacm_unregister_callback(), tinyusb_cdcacm_write_flush(), tinyusb_driver_install(), tud_cdc_line_state_cb(), tud_cdc_rx_cb(), tud_descriptor_string_cb(), tusb_cdc_acm_init(), tusb_cdc_comm_init(), tusb_cdc_data_init(), tusb_cdc_deinit_comm(), tusb_cdc_deinit_data(), tusb_device_task(), tusb_run_task(), tusb_set_descriptor(), tusb_stop_task(), wave_gen_init(), wave_gen_sdm_start(), wave_gen_start(), wave_gen_stop(), and wave_gen_task().
|
static |
Definition at line 61 of file main/main.c.
Referenced by app_main(), and apply_window().