- rename a view things
- run player_task on core 1 with max priority - create/destroy chunk queue as required automatically - use mutex to access snapcast config and communicate this change by queue with size 1 - increase buffers for WIFI and LWIP in sdkconfig for NO_SPIRAM config - add some more debug output
This commit is contained in:
@@ -39,27 +39,26 @@ typedef enum codec_type_e
|
||||
typedef struct snapcastSetting_s
|
||||
{
|
||||
uint32_t buffer_ms;
|
||||
uint32_t chunkDuration_ms;
|
||||
int32_t clientDacLatency_ms;
|
||||
uint32_t chkDur_ms;
|
||||
int32_t cDacLat_ms;
|
||||
|
||||
codec_type_t codec;
|
||||
int32_t sampleRate;
|
||||
uint8_t channels;
|
||||
int32_t sr;
|
||||
uint8_t ch;
|
||||
i2s_bits_per_sample_t bits;
|
||||
|
||||
bool muted;
|
||||
uint32_t volume;
|
||||
} snapcastSetting_t;
|
||||
|
||||
QueueHandle_t init_player (void);
|
||||
int init_player (void);
|
||||
int deinit_player (void);
|
||||
|
||||
int8_t insert_pcm_chunk (wire_chunk_message_t *decodedWireChunk);
|
||||
int8_t free_pcm_chunk (pcm_chunk_message_t *pcmChunk);
|
||||
|
||||
int8_t player_latency_insert (int64_t newValue);
|
||||
int8_t player_notify_buffer_ms (uint32_t ms);
|
||||
int8_t player_send_snapcast_setting (snapcastSetting_t setting);
|
||||
int8_t player_send_snapcast_setting (snapcastSetting_t *setting);
|
||||
|
||||
int8_t reset_latency_buffer (void);
|
||||
int8_t latency_buffer_full (void);
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
#include "i2s.h" // use custom i2s driver instead of IDF version
|
||||
|
||||
#define SYNC_TASK_PRIORITY 20
|
||||
#define SYNC_TASK_CORE_ID tskNO_AFFINITY
|
||||
#define SYNC_TASK_PRIORITY configMAX_PRIORITIES - 1 // 20
|
||||
#define SYNC_TASK_CORE_ID 1 // tskNO_AFFINITY
|
||||
|
||||
static const char *TAG = "PLAYER";
|
||||
|
||||
@@ -54,12 +54,11 @@ static sMedianNode_t shortMedianBuffer[SHORT_BUFFER_LEN];
|
||||
static int8_t currentDir = 0; //!< current apll direction, see apll_adjust()
|
||||
|
||||
static QueueHandle_t pcmChunkQueueHandle = NULL;
|
||||
#define PCM_CHNK_QUEUE_LENGTH \
|
||||
50 // TODO: one chunk is hardcoded to 20ms, change it to be dynamically
|
||||
// adjustable.
|
||||
static StaticQueue_t pcmChunkQueue;
|
||||
static uint8_t pcmChunkQueueStorageArea[PCM_CHNK_QUEUE_LENGTH
|
||||
* sizeof (pcm_chunk_message_t *)];
|
||||
|
||||
//#define PCM_CHNK_QUEUE_LENGTH 50 // TODO: one chunk is hardcoded to 20ms,
|
||||
// change it to be dynamically adjustable. static StaticQueue_t pcmChunkQueue;
|
||||
// static uint8_t pcmChunkQueueStorageArea[PCM_CHNK_QUEUE_LENGTH
|
||||
// * sizeof (pcm_chunk_message_t *)];
|
||||
|
||||
static TaskHandle_t syncTaskHandle = NULL;
|
||||
|
||||
@@ -70,11 +69,12 @@ static size_t chunkInBytes;
|
||||
static uint32_t i2sDmaBufCnt;
|
||||
static uint32_t i2sDmaBufMaxLen;
|
||||
|
||||
snapcastSetting_t currentSnapcastSetting;
|
||||
static SemaphoreHandle_t snapcastSettingsMux = NULL;
|
||||
static snapcastSetting_t currentSnapcastSetting;
|
||||
|
||||
static void tg0_timer_init (void);
|
||||
static void tg0_timer_deinit (void);
|
||||
static void snapcast_sync_task (void *pvParameters);
|
||||
static void player_task (void *pvParameters);
|
||||
|
||||
/*
|
||||
#define CONFIG_MASTER_I2S_BCK_PIN 5
|
||||
@@ -94,10 +94,10 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
const int __dmaBufMaxLen = 1024;
|
||||
int m_scale = 8, fi2s_clk;
|
||||
|
||||
chunkInBytes = (setting->chunkDuration_ms * setting->sampleRate
|
||||
* setting->channels * (setting->bits / 8))
|
||||
/ 1000;
|
||||
chunkInFrames = chunkInBytes / (setting->channels * (setting->bits / 8));
|
||||
chunkInBytes
|
||||
= (setting->chkDur_ms * setting->sr * setting->ch * (setting->bits / 8))
|
||||
/ 1000;
|
||||
chunkInFrames = chunkInBytes / (setting->ch * (setting->bits / 8));
|
||||
|
||||
__dmaBufCnt = 1;
|
||||
__dmaBufLen = chunkInFrames;
|
||||
@@ -121,10 +121,10 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
i2sDmaBufCnt = __dmaBufCnt;
|
||||
i2sDmaBufMaxLen = __dmaBufLen;
|
||||
|
||||
fi2s_clk = setting->sampleRate * setting->channels * setting->bits * m_scale;
|
||||
fi2s_clk = setting->sr * setting->ch * setting->bits * m_scale;
|
||||
|
||||
apll_normal_predefine[0] = setting->bits;
|
||||
apll_normal_predefine[1] = setting->sampleRate;
|
||||
apll_normal_predefine[1] = setting->sr;
|
||||
if (i2s_apll_calculate_fi2s (
|
||||
fi2s_clk, setting->bits, &apll_normal_predefine[2],
|
||||
&apll_normal_predefine[3], &apll_normal_predefine[4],
|
||||
@@ -135,7 +135,7 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
}
|
||||
|
||||
apll_corr_predefine[0][0] = setting->bits;
|
||||
apll_corr_predefine[0][1] = setting->sampleRate * 1.001;
|
||||
apll_corr_predefine[0][1] = setting->sr * 1.001;
|
||||
if (i2s_apll_calculate_fi2s (
|
||||
fi2s_clk * 1.001, setting->bits, &apll_corr_predefine[0][2],
|
||||
&apll_corr_predefine[0][3], &apll_corr_predefine[0][4],
|
||||
@@ -145,7 +145,7 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
ESP_LOGE (TAG, "ERROR, fi2s_clk * 1.001");
|
||||
}
|
||||
apll_corr_predefine[1][0] = setting->bits;
|
||||
apll_corr_predefine[1][1] = setting->sampleRate * 0.999;
|
||||
apll_corr_predefine[1][1] = setting->sr * 0.999;
|
||||
if (i2s_apll_calculate_fi2s (
|
||||
fi2s_clk * 0.999, setting->bits, &apll_corr_predefine[1][2],
|
||||
&apll_corr_predefine[1][3], &apll_corr_predefine[1][4],
|
||||
@@ -160,7 +160,7 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
|
||||
i2s_config_t i2s_config0 = {
|
||||
.mode = I2S_MODE_MASTER | I2S_MODE_TX, // Only TX
|
||||
.sample_rate = setting->sampleRate,
|
||||
.sample_rate = setting->sr,
|
||||
.bits_per_sample = setting->bits,
|
||||
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // 2-channels
|
||||
.communication_format = I2S_COMM_FORMAT_STAND_I2S,
|
||||
@@ -182,14 +182,51 @@ player_setup_i2s (i2s_port_t i2sNum, snapcastSetting_t *setting)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static int
|
||||
destroy_pcm_queue (QueueHandle_t *queueHandle)
|
||||
{
|
||||
int ret = pdPASS;
|
||||
pcm_chunk_message_t *chnk = NULL;
|
||||
|
||||
if (*queueHandle == NULL)
|
||||
{
|
||||
ESP_LOGW (TAG, "no pcm chunk queue created?");
|
||||
ret = pdFAIL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// free all allocated memory
|
||||
while (uxQueueMessagesWaiting (*queueHandle))
|
||||
{
|
||||
ret = xQueueReceive (*queueHandle, &chnk, pdMS_TO_TICKS (2000));
|
||||
if (ret != pdFAIL)
|
||||
{
|
||||
if (chnk != NULL)
|
||||
{
|
||||
free_pcm_chunk (chnk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// delete the queue
|
||||
vQueueDelete (*queueHandle);
|
||||
*queueHandle = NULL;
|
||||
|
||||
ret = pdPASS;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// ensure this is called after http_task was killed!
|
||||
int
|
||||
deinit_player (void)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
pcm_chunk_message_t *chnk = NULL;
|
||||
|
||||
// stop the task
|
||||
if (syncTaskHandle == NULL)
|
||||
{
|
||||
@@ -200,30 +237,13 @@ deinit_player (void)
|
||||
vTaskDelete (syncTaskHandle);
|
||||
}
|
||||
|
||||
if (pcmChunkQueueHandle == NULL)
|
||||
if (snapcastSettingsMux != NULL)
|
||||
{
|
||||
ESP_LOGW (TAG, "no pcm chunk queue created?");
|
||||
vSemaphoreDelete (snapcastSettingsMux);
|
||||
snapcastSettingsMux = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
// free all allocated memory
|
||||
while (uxQueueMessagesWaiting (pcmChunkQueueHandle))
|
||||
{
|
||||
ret = xQueueReceive (pcmChunkQueueHandle, &chnk,
|
||||
pdMS_TO_TICKS (2000));
|
||||
if (ret != pdFAIL)
|
||||
{
|
||||
if (chnk != NULL)
|
||||
{
|
||||
free_pcm_chunk (chnk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// delete the queue
|
||||
vQueueDelete (pcmChunkQueueHandle);
|
||||
pcmChunkQueueHandle = NULL;
|
||||
}
|
||||
ret = destroy_pcm_queue (&pcmChunkQueueHandle);
|
||||
|
||||
if (latencyBufSemaphoreHandle == NULL)
|
||||
{
|
||||
@@ -245,26 +265,32 @@ deinit_player (void)
|
||||
/**
|
||||
* call before http task creation!
|
||||
*/
|
||||
QueueHandle_t
|
||||
int
|
||||
init_player (void)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
|
||||
currentSnapcastSetting.buffer_ms = 1000;
|
||||
currentSnapcastSetting.chunkDuration_ms = 20;
|
||||
currentSnapcastSetting.chkDur_ms = 20;
|
||||
currentSnapcastSetting.codec = NONE;
|
||||
currentSnapcastSetting.sampleRate = 44100;
|
||||
currentSnapcastSetting.channels = 2;
|
||||
currentSnapcastSetting.sr = 44100;
|
||||
currentSnapcastSetting.ch = 2;
|
||||
currentSnapcastSetting.bits = 16;
|
||||
currentSnapcastSetting.muted = false;
|
||||
currentSnapcastSetting.volume = 70;
|
||||
|
||||
if (snapcastSettingsMux == NULL)
|
||||
{
|
||||
snapcastSettingsMux = xSemaphoreCreateMutex ();
|
||||
xSemaphoreGive (snapcastSettingsMux);
|
||||
}
|
||||
|
||||
ret = player_setup_i2s (I2S_NUM_0, ¤tSnapcastSetting);
|
||||
if (ret < 0)
|
||||
{
|
||||
ESP_LOGE (TAG, "player_setup_i2s failed: %d", ret);
|
||||
|
||||
return NULL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// create semaphore for time diff buffer to server
|
||||
@@ -273,14 +299,6 @@ init_player (void)
|
||||
latencyBufSemaphoreHandle = xSemaphoreCreateMutex ();
|
||||
}
|
||||
|
||||
// create snapcast receive buffer
|
||||
if (pcmChunkQueueHandle == NULL)
|
||||
{
|
||||
pcmChunkQueueHandle = xQueueCreateStatic (
|
||||
PCM_CHNK_QUEUE_LENGTH, sizeof (pcm_chunk_message_t *),
|
||||
pcmChunkQueueStorageArea, &pcmChunkQueue);
|
||||
}
|
||||
|
||||
// init diff buff median filter
|
||||
latencyMedianFilterLong.numNodes = LATENCY_MEDIAN_FILTER_LEN;
|
||||
latencyMedianFilterLong.medianBuffer = latencyMedianLongBuffer;
|
||||
@@ -292,14 +310,42 @@ init_player (void)
|
||||
{
|
||||
ESP_LOGI (TAG, "Start snapcast_sync_task");
|
||||
|
||||
xTaskCreatePinnedToCore (snapcast_sync_task, "snapcast_sync_task",
|
||||
8 * 1024, NULL, SYNC_TASK_PRIORITY,
|
||||
&syncTaskHandle, SYNC_TASK_CORE_ID);
|
||||
xTaskCreatePinnedToCore (player_task, "snapcast_sync_task", 8 * 1024,
|
||||
NULL, SYNC_TASK_PRIORITY, &syncTaskHandle,
|
||||
SYNC_TASK_CORE_ID);
|
||||
}
|
||||
|
||||
ESP_LOGI (TAG, "init player done");
|
||||
|
||||
return pcmChunkQueueHandle;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int8_t
|
||||
player_set_snapcast_settings (snapcastSetting_t *setting)
|
||||
{
|
||||
int8_t ret = pdPASS;
|
||||
|
||||
xSemaphoreTake (snapcastSettingsMux, portMAX_DELAY);
|
||||
|
||||
memcpy (¤tSnapcastSetting, setting, sizeof (snapcastSetting_t));
|
||||
|
||||
xSemaphoreGive (snapcastSettingsMux);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int8_t
|
||||
player_get_snapcast_settings (snapcastSetting_t *setting)
|
||||
{
|
||||
int8_t ret = pdPASS;
|
||||
|
||||
xSemaphoreTake (snapcastSettingsMux, portMAX_DELAY);
|
||||
|
||||
memcpy (setting, ¤tSnapcastSetting, sizeof (snapcastSetting_t));
|
||||
|
||||
xSemaphoreGive (snapcastSettingsMux);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int8_t
|
||||
@@ -331,54 +377,66 @@ player_latency_insert (int64_t newValue)
|
||||
*
|
||||
*/
|
||||
int8_t
|
||||
player_notify_buffer_ms (uint32_t ms)
|
||||
{
|
||||
if (syncTaskHandle == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
// notify task of changed parameters
|
||||
xTaskNotify (syncTaskHandle, ms, eSetBits);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
int8_t
|
||||
player_send_snapcast_setting (snapcastSetting_t setting)
|
||||
player_send_snapcast_setting (snapcastSetting_t *setting)
|
||||
{
|
||||
int ret;
|
||||
snapcastSetting_t curSet;
|
||||
uint8_t settingChanged = 1;
|
||||
|
||||
if ((syncTaskHandle == NULL) || (snapcastSettingQueueHandle == NULL))
|
||||
{
|
||||
return -1;
|
||||
return pdFAIL;
|
||||
}
|
||||
|
||||
if ((currentSnapcastSetting.bits != setting.bits)
|
||||
|| (currentSnapcastSetting.buffer_ms != setting.buffer_ms)
|
||||
|| (currentSnapcastSetting.channels != setting.channels)
|
||||
|| (currentSnapcastSetting.chunkDuration_ms != setting.chunkDuration_ms)
|
||||
|| (currentSnapcastSetting.codec != setting.codec)
|
||||
|| (currentSnapcastSetting.muted != setting.muted)
|
||||
|| (currentSnapcastSetting.sampleRate != setting.sampleRate)
|
||||
|| (currentSnapcastSetting.volume != setting.volume))
|
||||
ret = player_get_snapcast_settings (&curSet);
|
||||
|
||||
if ((curSet.bits != setting->bits)
|
||||
|| (curSet.buffer_ms != setting->buffer_ms) || (curSet.ch != setting->ch)
|
||||
|| (curSet.chkDur_ms != setting->chkDur_ms)
|
||||
|| (curSet.codec != setting->codec) || (curSet.muted != setting->muted)
|
||||
|| (curSet.sr != setting->sr) || (curSet.volume != setting->volume))
|
||||
{
|
||||
// notify task of changed parameters
|
||||
memcpy (¤tSnapcastSetting, &setting, sizeof (snapcastSetting_t));
|
||||
ret = xQueueSend (snapcastSettingQueueHandle, ¤tSnapcastSetting,
|
||||
pdMS_TO_TICKS (10));
|
||||
if (ret != pdPASS)
|
||||
// check if it is only volume / mute related setting, which is handled by
|
||||
// http_get_task()
|
||||
if (((curSet.muted != setting->muted)
|
||||
|| (curSet.volume != setting->volume))
|
||||
&& ((curSet.bits == setting->bits)
|
||||
&& (curSet.buffer_ms == setting->buffer_ms)
|
||||
&& (curSet.ch == setting->ch)
|
||||
&& (curSet.chkDur_ms == setting->chkDur_ms)
|
||||
&& (curSet.codec == setting->codec)
|
||||
&& (curSet.sr == setting->sr)))
|
||||
{
|
||||
ESP_LOGE (
|
||||
TAG,
|
||||
"player_send_snapcast_setting: couldn't send snapcast setting");
|
||||
// no notify needed, only set changed parameters
|
||||
ret = player_set_snapcast_settings (setting);
|
||||
if (ret != pdPASS)
|
||||
{
|
||||
ESP_LOGE (TAG, "player_send_snapcast_setting: couldn't change "
|
||||
"snapcast setting");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = xQueueOverwrite (snapcastSettingQueueHandle, &settingChanged);
|
||||
if (ret != pdPASS)
|
||||
{
|
||||
ESP_LOGE (TAG, "player_send_snapcast_setting: couldn't notify "
|
||||
"snapcast setting");
|
||||
}
|
||||
else
|
||||
{
|
||||
// notify successful, so change parameters
|
||||
ret = player_set_snapcast_settings (setting);
|
||||
if (ret != pdPASS)
|
||||
{
|
||||
ESP_LOGE (TAG, "player_send_snapcast_setting: couldn't "
|
||||
"change snapcast setting");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return pdPASS;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -619,7 +677,6 @@ void
|
||||
adjust_apll (int8_t direction)
|
||||
{
|
||||
int sdm0, sdm1, sdm2, o_div;
|
||||
// int index = 2; // 2 for slow adjustment, 0 for fast adjustment
|
||||
|
||||
// only change if necessary
|
||||
if (currentDir == direction)
|
||||
@@ -627,28 +684,6 @@ adjust_apll (int8_t direction)
|
||||
return;
|
||||
}
|
||||
|
||||
// if (direction == 1) {
|
||||
// // speed up
|
||||
// sdm0 = apll_predefine_48k_corr[index][2];
|
||||
// sdm1 = apll_predefine_48k_corr[index][3];
|
||||
// sdm2 = apll_predefine_48k_corr[index][4];
|
||||
// o_div = apll_predefine_48k_corr[index][5];
|
||||
// } else if (direction == -1) {
|
||||
// // slow down
|
||||
// sdm0 = apll_predefine_48k_corr[index + 1][2];
|
||||
// sdm1 = apll_predefine_48k_corr[index + 1][3];
|
||||
// sdm2 = apll_predefine_48k_corr[index + 1][4];
|
||||
// o_div = apll_predefine_48k_corr[index + 1][5];
|
||||
// } else {
|
||||
// // reset to normal playback speed
|
||||
// sdm0 = apll_predefine[5][2];
|
||||
// sdm1 = apll_predefine[5][3];
|
||||
// sdm2 = apll_predefine[5][4];
|
||||
// o_div = apll_predefine[5][5];
|
||||
//
|
||||
// direction = 0;
|
||||
// }
|
||||
|
||||
if (direction == 1)
|
||||
{
|
||||
// speed up
|
||||
@@ -759,6 +794,13 @@ insert_pcm_chunk (wire_chunk_message_t *decodedWireChunk)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (pcmChunkQueueHandle == NULL)
|
||||
{
|
||||
ESP_LOGW (TAG, "pcm chunk queue not created");
|
||||
|
||||
return -2;
|
||||
}
|
||||
|
||||
pcmChunk = (pcm_chunk_message_t *)calloc (1, sizeof (pcm_chunk_message_t));
|
||||
if (pcmChunk == NULL)
|
||||
{
|
||||
@@ -902,8 +944,6 @@ insert_pcm_chunk (wire_chunk_message_t *decodedWireChunk)
|
||||
if (largestFreeBlock <= tmpSize)
|
||||
{
|
||||
s = largestFreeBlock;
|
||||
// TODO: DMA buffer needs to be changed also to
|
||||
// one chunk size if sample rate changes
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1099,17 +1139,18 @@ insert_pcm_chunk (wire_chunk_message_t *decodedWireChunk)
|
||||
*
|
||||
*/
|
||||
static void
|
||||
snapcast_sync_task (void *pvParameters)
|
||||
player_task (void *pvParameters)
|
||||
{
|
||||
pcm_chunk_message_t *chnk = NULL;
|
||||
int64_t serverNow = 0;
|
||||
int64_t age;
|
||||
BaseType_t ret;
|
||||
int64_t chunkDuration_us; // = WIRE_CHUNK_DURATION_MS * 1000;
|
||||
int64_t chunkDuration_us;
|
||||
char *p_payload = NULL;
|
||||
size_t size = 0;
|
||||
uint32_t notifiedValue;
|
||||
snapcastSetting_t snapcastSetting;
|
||||
snapcastSetting_t scSet;
|
||||
uint8_t scSetChgd = 0;
|
||||
uint64_t timer_val;
|
||||
const int32_t alarmValSub = 0;
|
||||
int initialSync = 0;
|
||||
@@ -1120,10 +1161,12 @@ snapcast_sync_task (void *pvParameters)
|
||||
size_t written;
|
||||
bool gotSnapserverConfig = false;
|
||||
int64_t clientDacLatency_us = 0;
|
||||
uint64_t start, end;
|
||||
|
||||
ESP_LOGI (TAG, "started sync task");
|
||||
|
||||
snapcastSettingQueueHandle = xQueueCreate (1, sizeof (snapcastSetting_t));
|
||||
// create message queue to inform task of changed settings
|
||||
snapcastSettingQueueHandle = xQueueCreate (1, sizeof (uint8_t));
|
||||
|
||||
initialSync = 0;
|
||||
|
||||
@@ -1141,22 +1184,20 @@ snapcast_sync_task (void *pvParameters)
|
||||
{
|
||||
// check if we got changed setting available, if so we need to
|
||||
// reinitialize
|
||||
ret = xQueueReceive (snapcastSettingQueueHandle, &snapcastSetting, 0);
|
||||
ret = xQueueReceive (snapcastSettingQueueHandle, &scSetChgd, 0);
|
||||
if (ret == pdTRUE)
|
||||
{
|
||||
buffer_us_local = (int64_t) (snapcastSetting.buffer_ms) * 1000LL;
|
||||
player_get_snapcast_settings (&scSet);
|
||||
|
||||
chunkDuration_us
|
||||
= (int64_t) (snapcastSetting.chunkDuration_ms) * 1000LL;
|
||||
buffer_us_local = (int64_t) (scSet.buffer_ms) * 1000LL;
|
||||
|
||||
chunkDuration_us = (int64_t) (scSet.chkDur_ms) * 1000LL;
|
||||
chunkInBytes
|
||||
= (snapcastSetting.chunkDuration_ms * snapcastSetting.sampleRate
|
||||
* snapcastSetting.channels * (snapcastSetting.bits / 8))
|
||||
= (scSet.chkDur_ms * scSet.sr * scSet.ch * (scSet.bits / 8))
|
||||
/ 1000;
|
||||
clientDacLatency_us
|
||||
= (int64_t)snapcastSetting.clientDacLatency_ms * 1000LL;
|
||||
clientDacLatency_us = (int64_t)scSet.cDacLat_ms * 1000LL;
|
||||
|
||||
if ((snapcastSetting.sampleRate > 0) && (snapcastSetting.bits) > 0
|
||||
&& (snapcastSetting.channels > 0))
|
||||
if ((scSet.sr > 0) && (scSet.bits) > 0 && (scSet.ch > 0))
|
||||
{
|
||||
i2s_custom_stop (I2S_NUM_0);
|
||||
|
||||
@@ -1172,19 +1213,31 @@ snapcast_sync_task (void *pvParameters)
|
||||
= 1; // force adjust_apll to set correct playback speed
|
||||
adjust_apll (0);
|
||||
|
||||
i2s_custom_set_clk (I2S_NUM_0, snapcastSetting.sampleRate,
|
||||
snapcastSetting.bits,
|
||||
snapcastSetting.channels);
|
||||
i2s_custom_set_clk (I2S_NUM_0, scSet.sr, scSet.bits, scSet.ch);
|
||||
initialSync = 0;
|
||||
}
|
||||
|
||||
if ((scSet.buffer_ms > 0) && (scSet.chkDur_ms > 0))
|
||||
{
|
||||
// create snapcast receive buffer
|
||||
if (pcmChunkQueueHandle != NULL)
|
||||
{
|
||||
destroy_pcm_queue (&pcmChunkQueueHandle);
|
||||
}
|
||||
|
||||
int entries = ((float)scSet.buffer_ms / (float)scSet.chkDur_ms)
|
||||
+ 0.5; // round up
|
||||
pcmChunkQueueHandle
|
||||
= xQueueCreate (entries, sizeof (pcm_chunk_message_t *));
|
||||
|
||||
ESP_LOGI (TAG, "created new queue with %d", entries);
|
||||
}
|
||||
|
||||
ESP_LOGI (TAG,
|
||||
"snapserver config changed, buffer %dms, chunk %dms, "
|
||||
"sample rate %d, ch %d, bits %d",
|
||||
snapcastSetting.buffer_ms,
|
||||
snapcastSetting.chunkDuration_ms,
|
||||
snapcastSetting.sampleRate, snapcastSetting.channels,
|
||||
snapcastSetting.bits);
|
||||
"sample rate %d, ch %d, bits %d mute %d",
|
||||
scSet.buffer_ms, scSet.chkDur_ms, scSet.sr, scSet.ch,
|
||||
scSet.bits, scSet.muted);
|
||||
|
||||
gotSnapserverConfig = true;
|
||||
}
|
||||
@@ -1195,10 +1248,26 @@ snapcast_sync_task (void *pvParameters)
|
||||
continue;
|
||||
}
|
||||
|
||||
start = esp_timer_get_time ();
|
||||
|
||||
if (chnk == NULL)
|
||||
{
|
||||
ret = xQueueReceive (pcmChunkQueueHandle, &chnk,
|
||||
pdMS_TO_TICKS (2000));
|
||||
if (pcmChunkQueueHandle != NULL)
|
||||
{
|
||||
ret = xQueueReceive (pcmChunkQueueHandle, &chnk,
|
||||
pdMS_TO_TICKS (2000));
|
||||
}
|
||||
else
|
||||
{
|
||||
// ESP_LOGE (TAG,
|
||||
// "Couldn't get PCM chunk, pcm queue not
|
||||
// created");
|
||||
|
||||
vTaskDelay (pdMS_TO_TICKS (100));
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ret != pdFAIL)
|
||||
{
|
||||
// ESP_LOGW(TAG, "got pcm chunk");
|
||||
@@ -1393,7 +1462,11 @@ snapcast_sync_task (void *pvParameters)
|
||||
|
||||
int64_t t;
|
||||
get_diff_to_server (&t);
|
||||
ESP_LOGW (TAG, "RESYNCING HARD 1 %lldus, %lldus", age, t);
|
||||
end = esp_timer_get_time ();
|
||||
ESP_LOGW (
|
||||
TAG,
|
||||
"RESYNCING HARD 1 %lldus, %lldus, %lldus, exTime: %lldus",
|
||||
age, avg, t, end - start);
|
||||
|
||||
dir = 0;
|
||||
|
||||
@@ -1402,17 +1475,17 @@ snapcast_sync_task (void *pvParameters)
|
||||
continue;
|
||||
}
|
||||
|
||||
const uint8_t enableControlLoop = 1;
|
||||
const int64_t age_expect
|
||||
= -chunkDuration_us
|
||||
* 1; // this value is highly coupled with I2S DMA buffer
|
||||
// size. DMA buffer has a size of 1 chunk (e.g. 20ms)
|
||||
// so next chunk we get from queue will be -20ms
|
||||
const int64_t maxOffset = 50; //µs, softsync 1
|
||||
const int64_t hardResyncThreshold = 3000; //µs, hard sync
|
||||
|
||||
if (initialSync == 1)
|
||||
{
|
||||
const uint8_t enableControlLoop = 1;
|
||||
const int64_t age_expect
|
||||
= -chunkDuration_us
|
||||
* 1; // this value is highly coupled with I2S DMA buffer
|
||||
// size. DMA buffer has a size of 1 chunk (e.g. 20ms)
|
||||
// so next chunk we get from queue will be -20ms
|
||||
const int64_t maxOffset = 50; //µs, softsync 1
|
||||
const int64_t hardResyncThreshold = 3000; //µs, hard sync
|
||||
|
||||
avg = MEDIANFILTER_Insert (&shortMedianFilter,
|
||||
age + (-age_expect));
|
||||
if (MEDIANFILTER_isFull (&shortMedianFilter) == 0)
|
||||
@@ -1433,8 +1506,11 @@ snapcast_sync_task (void *pvParameters)
|
||||
|
||||
int64_t t;
|
||||
get_diff_to_server (&t);
|
||||
ESP_LOGW (TAG, "RESYNCING HARD 2 %lldus, %lldus, %lldus",
|
||||
age, avg, t);
|
||||
end = esp_timer_get_time ();
|
||||
ESP_LOGW (TAG,
|
||||
"RESYNCING HARD 2 %lldus, %lldus, %lldus, "
|
||||
"exTime: %lldus",
|
||||
age, avg, t, end - start);
|
||||
|
||||
initialSync = 0;
|
||||
|
||||
@@ -1460,6 +1536,24 @@ snapcast_sync_task (void *pvParameters)
|
||||
adjust_apll (dir);
|
||||
}
|
||||
|
||||
int64_t t;
|
||||
get_diff_to_server (&t);
|
||||
|
||||
if ((avg < 30 * -maxOffset) || (avg > 30 * maxOffset))
|
||||
{
|
||||
end = esp_timer_get_time ();
|
||||
|
||||
ESP_LOGW (TAG, "%d: %lldus, %lldus %lldus, exTime: %lldus",
|
||||
dir, age, avg, t, end - start);
|
||||
}
|
||||
else
|
||||
{
|
||||
end = esp_timer_get_time ();
|
||||
|
||||
ESP_LOGI (TAG, "%d: %lldus, %lldus %lldus, exTime: %lldus",
|
||||
dir, age, avg, t, end - start);
|
||||
}
|
||||
|
||||
fragment = chnk->fragment;
|
||||
p_payload = fragment->payload;
|
||||
size = fragment->size;
|
||||
@@ -1502,19 +1596,20 @@ snapcast_sync_task (void *pvParameters)
|
||||
}
|
||||
while (1);
|
||||
}
|
||||
|
||||
int64_t t;
|
||||
get_diff_to_server (&t);
|
||||
ESP_LOGI (TAG, "%d: %lldus, %lldus %lldus", dir, age, avg, t);
|
||||
}
|
||||
else
|
||||
{
|
||||
int64_t t;
|
||||
|
||||
get_diff_to_server (&t);
|
||||
ESP_LOGE (TAG,
|
||||
"Couldn't get PCM chunk, recv: messages waiting %d, "
|
||||
"latency %lldus",
|
||||
uxQueueMessagesWaiting (pcmChunkQueueHandle), t);
|
||||
|
||||
if (pcmChunkQueueHandle != NULL)
|
||||
{
|
||||
ESP_LOGE (TAG,
|
||||
"Couldn't get PCM chunk, recv: messages waiting %d, "
|
||||
"latency %lldus",
|
||||
uxQueueMessagesWaiting (pcmChunkQueueHandle), t);
|
||||
}
|
||||
|
||||
dir = 0;
|
||||
|
||||
|
||||
127
main/main.c
127
main/main.c
@@ -61,8 +61,6 @@ xTaskHandle t_http_get_task;
|
||||
|
||||
xQueueHandle prot_queue;
|
||||
|
||||
static snapcastSetting_t snapcastSetting;
|
||||
|
||||
// static int64_t clientDacLatency = 0;
|
||||
// uint32_t buffer_ms = 400;
|
||||
// uint8_t muteCH[4] = {0};
|
||||
@@ -84,7 +82,7 @@ static const char *TAG = "SNAPCAST";
|
||||
|
||||
extern char mac_address[18];
|
||||
|
||||
static QueueHandle_t playerChunkQueueHandle;
|
||||
// static QueueHandle_t playerChunkQueueHandle = NULL;
|
||||
SemaphoreHandle_t timeSyncSemaphoreHandle = NULL;
|
||||
|
||||
#if CONFIG_USE_DSP_PROCESSOR
|
||||
@@ -97,13 +95,17 @@ uint8_t dspFlow = dspfStereo; // dspfBiamp; // dspfStereo; // dspfBassBoost;
|
||||
void
|
||||
time_sync_msg_cb (void *args)
|
||||
{
|
||||
static BaseType_t xHigherPriorityTaskWoken;
|
||||
BaseType_t xHigherPriorityTaskWoken;
|
||||
|
||||
// causes kernel panic, which shouldn't happen though?
|
||||
// Isn't it called from timer task instead of ISR?
|
||||
// xSemaphoreGive(timeSyncSemaphoreHandle);
|
||||
|
||||
xSemaphoreGiveFromISR (timeSyncSemaphoreHandle, &xHigherPriorityTaskWoken);
|
||||
if (xHigherPriorityTaskWoken)
|
||||
{
|
||||
portYIELD_FROM_ISR ();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -139,6 +141,7 @@ http_get_task (void *pvParameters)
|
||||
mdns_result_t *r;
|
||||
OpusDecoder *opusDecoder = NULL;
|
||||
codec_type_t codec = NONE;
|
||||
snapcastSetting_t scSet;
|
||||
|
||||
// create a timer to send time sync messages every x µs
|
||||
esp_timer_create (&tSyncArgs, &timeSyncMessageTimer);
|
||||
@@ -320,14 +323,14 @@ http_get_task (void *pvParameters)
|
||||
hello_message_serialized = NULL;
|
||||
|
||||
// init default setting
|
||||
snapcastSetting.buffer_ms = 0;
|
||||
snapcastSetting.codec = NONE;
|
||||
snapcastSetting.bits = 0;
|
||||
snapcastSetting.channels = 0;
|
||||
snapcastSetting.sampleRate = 0;
|
||||
snapcastSetting.chunkDuration_ms = 0;
|
||||
snapcastSetting.volume = 0;
|
||||
snapcastSetting.muted = false;
|
||||
scSet.buffer_ms = 0;
|
||||
scSet.codec = NONE;
|
||||
scSet.bits = 0;
|
||||
scSet.ch = 0;
|
||||
scSet.sr = 0;
|
||||
scSet.chkDur_ms = 0;
|
||||
scSet.volume = 0;
|
||||
scSet.muted = true;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@@ -471,10 +474,10 @@ http_get_task (void *pvParameters)
|
||||
|
||||
codec = OPUS;
|
||||
|
||||
snapcastSetting.codec = codec;
|
||||
snapcastSetting.bits = bits;
|
||||
snapcastSetting.channels = channels;
|
||||
snapcastSetting.sampleRate = rate;
|
||||
scSet.codec = codec;
|
||||
scSet.bits = bits;
|
||||
scSet.ch = channels;
|
||||
scSet.sr = rate;
|
||||
}
|
||||
else if (strcmp (codec_header_message.codec, "pcm") == 0)
|
||||
{
|
||||
@@ -490,10 +493,10 @@ http_get_task (void *pvParameters)
|
||||
codec_header_message.codec, rate, bits,
|
||||
channels);
|
||||
|
||||
snapcastSetting.codec = codec;
|
||||
snapcastSetting.bits = bits;
|
||||
snapcastSetting.channels = channels;
|
||||
snapcastSetting.sampleRate = rate;
|
||||
scSet.codec = codec;
|
||||
scSet.bits = bits;
|
||||
scSet.ch = channels;
|
||||
scSet.sr = rate;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -566,15 +569,14 @@ http_get_task (void *pvParameters)
|
||||
{
|
||||
#if CONFIG_USE_PSRAM
|
||||
audio = (int16_t *)heap_caps_malloc (
|
||||
frameSize * snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8),
|
||||
frameSize * scSet.ch * (scSet.bits / 8),
|
||||
MALLOC_CAP_8BIT
|
||||
| MALLOC_CAP_SPIRAM); // 960*2: 20ms,
|
||||
// 960*1: 10ms
|
||||
#else
|
||||
audio = (int16_t *)malloc (
|
||||
frameSize * snapcastSetting.channels
|
||||
* (snapcastSetting.bits
|
||||
frameSize * scSet.ch
|
||||
* (scSet.bits
|
||||
/ 8)); // 960*2: 20ms, 960*1: 10ms
|
||||
#endif
|
||||
}
|
||||
@@ -601,8 +603,7 @@ http_get_task (void *pvParameters)
|
||||
#if CONFIG_USE_PSRAM
|
||||
audio = (int16_t *)heap_caps_realloc (
|
||||
audio,
|
||||
pcm_size * snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8),
|
||||
pcm_size * scSet.ch * (scSet.bits / 8),
|
||||
MALLOC_CAP_8BIT
|
||||
| MALLOC_CAP_SPIRAM); // 2 channels +
|
||||
// 2 Byte per
|
||||
@@ -610,9 +611,8 @@ http_get_task (void *pvParameters)
|
||||
// int32_t
|
||||
#else
|
||||
audio = (int16_t *)realloc (
|
||||
audio, pcm_size
|
||||
* snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8));
|
||||
audio,
|
||||
pcm_size * scSet.ch * (scSet.bits / 8));
|
||||
// audio = (int16_t
|
||||
// *)heap_caps_realloc(
|
||||
// (int32_t
|
||||
@@ -644,21 +644,19 @@ http_get_task (void *pvParameters)
|
||||
{
|
||||
wire_chunk_message_t pcm_chunk_message;
|
||||
|
||||
pcm_chunk_message.size
|
||||
= frame_size * snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8);
|
||||
pcm_chunk_message.size = frame_size
|
||||
* scSet.ch
|
||||
* (scSet.bits / 8);
|
||||
pcm_chunk_message.payload = (char *)audio;
|
||||
pcm_chunk_message.timestamp = timestamp;
|
||||
|
||||
snapcastSetting.chunkDuration_ms
|
||||
scSet.chkDur_ms
|
||||
= (1000UL * pcm_chunk_message.size)
|
||||
/ (uint32_t) (
|
||||
snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8))
|
||||
/ snapcastSetting.sampleRate;
|
||||
if (player_send_snapcast_setting (
|
||||
snapcastSetting)
|
||||
< 0)
|
||||
/ (uint32_t) (scSet.ch
|
||||
* (scSet.bits / 8))
|
||||
/ scSet.sr;
|
||||
if (player_send_snapcast_setting (&scSet)
|
||||
!= pdPASS)
|
||||
{
|
||||
ESP_LOGE (
|
||||
TAG,
|
||||
@@ -679,9 +677,8 @@ http_get_task (void *pvParameters)
|
||||
// }
|
||||
|
||||
#if CONFIG_USE_DSP_PROCESSOR
|
||||
dsp_setup_flow (
|
||||
500, snapcastSetting.sampleRate,
|
||||
snapcastSetting.chunkDuration_ms);
|
||||
dsp_setup_flow (500, scSet.sr,
|
||||
scSet.chkDur_ms);
|
||||
dsp_processor (pcm_chunk_message.payload,
|
||||
pcm_chunk_message.size,
|
||||
dspFlow);
|
||||
@@ -730,14 +727,12 @@ http_get_task (void *pvParameters)
|
||||
memcpy (pcm_chunk_message.payload, start,
|
||||
pcm_chunk_message.size);
|
||||
|
||||
snapcastSetting.chunkDuration_ms
|
||||
scSet.chkDur_ms
|
||||
= (1000UL * pcm_chunk_message.size)
|
||||
/ (uint32_t) (snapcastSetting.channels
|
||||
* (snapcastSetting.bits / 8))
|
||||
/ snapcastSetting.sampleRate;
|
||||
if (player_send_snapcast_setting (
|
||||
snapcastSetting)
|
||||
< 0)
|
||||
/ (uint32_t) (scSet.ch * (scSet.bits / 8))
|
||||
/ scSet.sr;
|
||||
if (player_send_snapcast_setting (&scSet)
|
||||
!= pdPASS)
|
||||
{
|
||||
ESP_LOGE (TAG,
|
||||
"Failed to notify sync task about "
|
||||
@@ -747,9 +742,7 @@ http_get_task (void *pvParameters)
|
||||
}
|
||||
|
||||
#if CONFIG_USE_DSP_PROCESSOR
|
||||
dsp_setup_flow (
|
||||
500, snapcastSetting.sampleRate,
|
||||
snapcastSetting.chunkDuration_ms);
|
||||
dsp_setup_flow (500, scSet.sr, scSet.chkDur_ms);
|
||||
dsp_processor (pcm_chunk_message.payload,
|
||||
pcm_chunk_message.size, dspFlow);
|
||||
#endif
|
||||
@@ -801,25 +794,23 @@ http_get_task (void *pvParameters)
|
||||
server_settings_message.volume);
|
||||
|
||||
// Volume setting using ADF HAL abstraction
|
||||
if (snapcastSetting.muted != server_settings_message.muted)
|
||||
if (scSet.muted != server_settings_message.muted)
|
||||
{
|
||||
audio_hal_set_mute (board_handle->audio_hal,
|
||||
server_settings_message.muted);
|
||||
}
|
||||
if (snapcastSetting.volume != server_settings_message.volume)
|
||||
if (scSet.volume != server_settings_message.volume)
|
||||
{
|
||||
audio_hal_set_mute (board_handle->audio_hal,
|
||||
server_settings_message.volume);
|
||||
audio_hal_set_volume (board_handle->audio_hal,
|
||||
server_settings_message.volume);
|
||||
}
|
||||
|
||||
snapcastSetting.clientDacLatency_ms
|
||||
= server_settings_message.latency;
|
||||
snapcastSetting.buffer_ms
|
||||
= server_settings_message.buffer_ms;
|
||||
snapcastSetting.muted = server_settings_message.muted;
|
||||
snapcastSetting.volume = server_settings_message.volume;
|
||||
scSet.cDacLat_ms = server_settings_message.latency;
|
||||
scSet.buffer_ms = server_settings_message.buffer_ms;
|
||||
scSet.muted = server_settings_message.muted;
|
||||
scSet.volume = server_settings_message.volume;
|
||||
|
||||
if (player_send_snapcast_setting (snapcastSetting) < 0)
|
||||
if (player_send_snapcast_setting (&scSet) != pdPASS)
|
||||
{
|
||||
ESP_LOGE (
|
||||
TAG,
|
||||
@@ -1053,7 +1044,7 @@ app_main (void)
|
||||
}
|
||||
ESP_ERROR_CHECK (ret);
|
||||
|
||||
esp_log_level_set ("*", ESP_LOG_INFO);
|
||||
esp_log_level_set ("*", ESP_LOG_WARN);
|
||||
// esp_log_level_set("c_I2S", ESP_LOG_NONE); //
|
||||
esp_log_level_set (
|
||||
"HEADPHONE",
|
||||
@@ -1076,11 +1067,7 @@ app_main (void)
|
||||
#endif
|
||||
|
||||
ESP_LOGI (TAG, "init player");
|
||||
playerChunkQueueHandle = init_player ();
|
||||
if (playerChunkQueueHandle == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
init_player ();
|
||||
|
||||
// Enable and setup WIFI in station mode and connect to Access point setup in
|
||||
// menu config or set up provisioning mode settable in menuconfig
|
||||
|
||||
60
sdkconfig
60
sdkconfig
@@ -285,7 +285,7 @@ CONFIG_ESP_DISPATCHER_DELEGATE_STACK_SIZE=4096
|
||||
#
|
||||
# ESP32 audio buffer and I2S config
|
||||
#
|
||||
CONFIG_USE_DSP_PROCESSOR=y
|
||||
# CONFIG_USE_DSP_PROCESSOR is not set
|
||||
CONFIG_USE_BIQUAD_ASM=y
|
||||
# end of ESP32 audio buffer and I2S config
|
||||
|
||||
@@ -321,8 +321,8 @@ CONFIG_SNAPCLIENT_NAME="esp-snapclient"
|
||||
# Compiler options
|
||||
#
|
||||
# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
|
||||
# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||
@@ -669,17 +669,17 @@ CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
||||
#
|
||||
# Wi-Fi
|
||||
#
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=2
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=6
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=12
|
||||
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=6
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=12
|
||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=2
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=2
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||
@@ -687,10 +687,10 @@ CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
||||
# CONFIG_ESP32_WIFI_IRAM_OPT is not set
|
||||
# CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set
|
||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
||||
# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set
|
||||
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
|
||||
# end of Wi-Fi
|
||||
|
||||
#
|
||||
@@ -781,7 +781,7 @@ CONFIG_FMB_TIMER_INDEX=0
|
||||
CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
|
||||
CONFIG_FREERTOS_CORETIMER_0=y
|
||||
# CONFIG_FREERTOS_CORETIMER_1 is not set
|
||||
CONFIG_FREERTOS_HZ=100
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
|
||||
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
|
||||
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
|
||||
@@ -874,7 +874,7 @@ CONFIG_LWIP_IP6_FRAG=y
|
||||
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
||||
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
||||
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=6
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=12
|
||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||
|
||||
@@ -898,13 +898,13 @@ CONFIG_LWIP_MAX_ACTIVE_TCP=3
|
||||
CONFIG_LWIP_MAX_LISTENING_TCP=3
|
||||
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
|
||||
CONFIG_LWIP_TCP_MAXRTX=12
|
||||
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
||||
CONFIG_LWIP_TCP_MSS=1440
|
||||
CONFIG_LWIP_TCP_TMR_INTERVAL=100
|
||||
CONFIG_LWIP_TCP_SYNMAXRTX=12
|
||||
CONFIG_LWIP_TCP_MSS=1460
|
||||
CONFIG_LWIP_TCP_TMR_INTERVAL=250
|
||||
CONFIG_LWIP_TCP_MSL=60000
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=5760
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5840
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=5840
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=12
|
||||
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_LWIP_TCP_SACK_OUT is not set
|
||||
# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||
@@ -930,10 +930,10 @@ CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
|
||||
# end of Checksums
|
||||
|
||||
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2048
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY is not set
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x0
|
||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||
@@ -1344,7 +1344,7 @@ CONFIG_MONITOR_BAUD_115200B=y
|
||||
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||
CONFIG_MONITOR_BAUD=115200
|
||||
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
|
||||
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
||||
@@ -1440,14 +1440,14 @@ CONFIG_TIMER_QUEUE_LENGTH=5
|
||||
# CONFIG_USE_ONLY_LWIP_SELECT is not set
|
||||
CONFIG_ESP_GRATUITOUS_ARP=y
|
||||
CONFIG_GARP_TMR_INTERVAL=60
|
||||
CONFIG_TCPIP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCPIP_RECVMBOX_SIZE=12
|
||||
CONFIG_TCP_MAXRTX=12
|
||||
CONFIG_TCP_SYNMAXRTX=6
|
||||
CONFIG_TCP_MSS=1440
|
||||
CONFIG_TCP_SYNMAXRTX=12
|
||||
CONFIG_TCP_MSS=1460
|
||||
CONFIG_TCP_MSL=60000
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_TCP_WND_DEFAULT=5760
|
||||
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=5840
|
||||
CONFIG_TCP_WND_DEFAULT=5840
|
||||
CONFIG_TCP_RECVMBOX_SIZE=12
|
||||
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||
CONFIG_TCP_OVERSIZE_MSS=y
|
||||
@@ -1455,10 +1455,10 @@ CONFIG_TCP_OVERSIZE_MSS=y
|
||||
# CONFIG_TCP_OVERSIZE_DISABLE is not set
|
||||
CONFIG_UDP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCPIP_TASK_STACK_SIZE=2048
|
||||
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY is not set
|
||||
CONFIG_TCPIP_TASK_AFFINITY_CPU0=y
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||
CONFIG_TCPIP_TASK_AFFINITY=0x0
|
||||
# CONFIG_PPP_SUPPORT is not set
|
||||
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||
|
||||
131
sdkconfig.old
131
sdkconfig.old
@@ -285,8 +285,7 @@ CONFIG_ESP_DISPATCHER_DELEGATE_STACK_SIZE=4096
|
||||
#
|
||||
# ESP32 audio buffer and I2S config
|
||||
#
|
||||
CONFIG_USE_PSRAM=y
|
||||
CONFIG_USE_DSP_PROCESSOR=y
|
||||
# CONFIG_USE_DSP_PROCESSOR is not set
|
||||
CONFIG_USE_BIQUAD_ASM=y
|
||||
# end of ESP32 audio buffer and I2S config
|
||||
|
||||
@@ -322,8 +321,8 @@ CONFIG_SNAPCLIENT_NAME="esp-snapclient"
|
||||
# Compiler options
|
||||
#
|
||||
# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
|
||||
# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||
@@ -473,7 +472,6 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y
|
||||
#
|
||||
# ESP32-specific
|
||||
#
|
||||
CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
|
||||
CONFIG_ESP32_REV_MIN_0=y
|
||||
# CONFIG_ESP32_REV_MIN_1 is not set
|
||||
# CONFIG_ESP32_REV_MIN_2 is not set
|
||||
@@ -484,68 +482,7 @@ CONFIG_ESP32_DPORT_WORKAROUND=y
|
||||
# CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
|
||||
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
|
||||
CONFIG_ESP32_SPIRAM_SUPPORT=y
|
||||
|
||||
#
|
||||
# SPI RAM config
|
||||
#
|
||||
CONFIG_SPIRAM_TYPE_AUTO=y
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set
|
||||
# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set
|
||||
CONFIG_SPIRAM_SIZE=-1
|
||||
# CONFIG_SPIRAM_SPEED_40M is not set
|
||||
CONFIG_SPIRAM_SPEED_80M=y
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_BOOT_INIT=y
|
||||
# CONFIG_SPIRAM_IGNORE_NOTFOUND is not set
|
||||
# CONFIG_SPIRAM_USE_MEMMAP is not set
|
||||
CONFIG_SPIRAM_USE_CAPS_ALLOC=y
|
||||
# CONFIG_SPIRAM_USE_MALLOC is not set
|
||||
CONFIG_SPIRAM_MEMTEST=y
|
||||
# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set
|
||||
# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
||||
|
||||
#
|
||||
# SPIRAM cache workaround debugging
|
||||
#
|
||||
CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW=y
|
||||
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST is not set
|
||||
# CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS is not set
|
||||
# end of SPIRAM cache workaround debugging
|
||||
|
||||
CONFIG_SPIRAM_BANKSWITCH_ENABLE=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_RESERVE=8
|
||||
# CONFIG_SPIRAM_OCCUPY_HSPI_HOST is not set
|
||||
CONFIG_SPIRAM_OCCUPY_VSPI_HOST=y
|
||||
# CONFIG_SPIRAM_OCCUPY_NO_HOST is not set
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-DOWD
|
||||
#
|
||||
CONFIG_D0WD_PSRAM_CLK_IO=17
|
||||
CONFIG_D0WD_PSRAM_CS_IO=16
|
||||
# end of PSRAM clock and cs IO for ESP32-DOWD
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-D2WD
|
||||
#
|
||||
CONFIG_D2WD_PSRAM_CLK_IO=9
|
||||
CONFIG_D2WD_PSRAM_CS_IO=10
|
||||
# end of PSRAM clock and cs IO for ESP32-D2WD
|
||||
|
||||
#
|
||||
# PSRAM clock and cs IO for ESP32-PICO
|
||||
#
|
||||
CONFIG_PICO_PSRAM_CS_IO=10
|
||||
# end of PSRAM clock and cs IO for ESP32-PICO
|
||||
|
||||
# CONFIG_SPIRAM_CUSTOM_SPIWP_SD3_PIN is not set
|
||||
CONFIG_SPIRAM_SPIWP_SD3_PIN=7
|
||||
# CONFIG_SPIRAM_2T_MODE is not set
|
||||
# end of SPI RAM config
|
||||
|
||||
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
|
||||
# CONFIG_ESP32_TRAX is not set
|
||||
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
|
||||
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
|
||||
@@ -710,6 +647,7 @@ CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
|
||||
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
|
||||
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
|
||||
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
|
||||
CONFIG_ESP_SYSTEM_PD_FLASH=y
|
||||
|
||||
#
|
||||
# Memory protection
|
||||
@@ -731,30 +669,28 @@ CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
|
||||
#
|
||||
# Wi-Fi
|
||||
#
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=8
|
||||
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
||||
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
|
||||
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
|
||||
CONFIG_ESP32_WIFI_CACHE_TX_BUFFER_NUM=32
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
||||
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=18
|
||||
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=4
|
||||
CONFIG_ESP32_WIFI_TX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=4
|
||||
# CONFIG_ESP32_WIFI_AMSDU_TX_ENABLED is not set
|
||||
CONFIG_ESP32_WIFI_RX_BA_WIN=6
|
||||
CONFIG_ESP32_WIFI_NVS_ENABLED=y
|
||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0 is not set
|
||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1=y
|
||||
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
|
||||
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
|
||||
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
|
||||
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
|
||||
# CONFIG_ESP32_WIFI_DEBUG_LOG_ENABLE is not set
|
||||
# CONFIG_ESP32_WIFI_IRAM_OPT is not set
|
||||
# CONFIG_ESP32_WIFI_RX_IRAM_OPT is not set
|
||||
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
|
||||
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
|
||||
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
|
||||
# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set
|
||||
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
|
||||
# end of Wi-Fi
|
||||
|
||||
#
|
||||
@@ -806,7 +742,6 @@ CONFIG_FATFS_LFN_NONE=y
|
||||
CONFIG_FATFS_FS_LOCK=0
|
||||
CONFIG_FATFS_TIMEOUT_MS=10000
|
||||
CONFIG_FATFS_PER_FILE_CACHE=y
|
||||
CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y
|
||||
# CONFIG_FATFS_USE_FASTSEEK is not set
|
||||
# end of FAT Filesystem support
|
||||
|
||||
@@ -939,7 +874,7 @@ CONFIG_LWIP_IP6_FRAG=y
|
||||
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
|
||||
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
|
||||
CONFIG_LWIP_GARP_TMR_INTERVAL=60
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=6
|
||||
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
|
||||
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
|
||||
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
|
||||
|
||||
@@ -963,12 +898,12 @@ CONFIG_LWIP_MAX_ACTIVE_TCP=3
|
||||
CONFIG_LWIP_MAX_LISTENING_TCP=3
|
||||
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
|
||||
CONFIG_LWIP_TCP_MAXRTX=12
|
||||
CONFIG_LWIP_TCP_SYNMAXRTX=6
|
||||
CONFIG_LWIP_TCP_MSS=1440
|
||||
CONFIG_LWIP_TCP_TMR_INTERVAL=100
|
||||
CONFIG_LWIP_TCP_SYNMAXRTX=12
|
||||
CONFIG_LWIP_TCP_MSS=1460
|
||||
CONFIG_LWIP_TCP_TMR_INTERVAL=250
|
||||
CONFIG_LWIP_TCP_MSL=60000
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=5760
|
||||
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5840
|
||||
CONFIG_LWIP_TCP_WND_DEFAULT=5840
|
||||
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_LWIP_TCP_SACK_OUT is not set
|
||||
@@ -995,10 +930,10 @@ CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
|
||||
# end of Checksums
|
||||
|
||||
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2048
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY is not set
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0=y
|
||||
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x0
|
||||
# CONFIG_LWIP_PPP_SUPPORT is not set
|
||||
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
|
||||
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
|
||||
@@ -1047,7 +982,6 @@ CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
|
||||
# mbedTLS
|
||||
#
|
||||
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
|
||||
# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set
|
||||
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
|
||||
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
|
||||
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
|
||||
@@ -1410,7 +1344,7 @@ CONFIG_MONITOR_BAUD_115200B=y
|
||||
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
|
||||
CONFIG_MONITOR_BAUD=115200
|
||||
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
|
||||
CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
|
||||
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
|
||||
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
|
||||
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
|
||||
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
|
||||
@@ -1429,8 +1363,7 @@ CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
|
||||
CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
|
||||
CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
|
||||
CONFIG_ADC2_DISABLE_DAC=y
|
||||
CONFIG_SPIRAM_SUPPORT=y
|
||||
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
|
||||
# CONFIG_SPIRAM_SUPPORT is not set
|
||||
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
|
||||
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
|
||||
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
|
||||
@@ -1507,13 +1440,13 @@ CONFIG_TIMER_QUEUE_LENGTH=5
|
||||
# CONFIG_USE_ONLY_LWIP_SELECT is not set
|
||||
CONFIG_ESP_GRATUITOUS_ARP=y
|
||||
CONFIG_GARP_TMR_INTERVAL=60
|
||||
CONFIG_TCPIP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCPIP_RECVMBOX_SIZE=32
|
||||
CONFIG_TCP_MAXRTX=12
|
||||
CONFIG_TCP_SYNMAXRTX=6
|
||||
CONFIG_TCP_MSS=1440
|
||||
CONFIG_TCP_SYNMAXRTX=12
|
||||
CONFIG_TCP_MSS=1460
|
||||
CONFIG_TCP_MSL=60000
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=2880
|
||||
CONFIG_TCP_WND_DEFAULT=5760
|
||||
CONFIG_TCP_SND_BUF_DEFAULT=5840
|
||||
CONFIG_TCP_WND_DEFAULT=5840
|
||||
CONFIG_TCP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCP_QUEUE_OOSEQ=y
|
||||
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
|
||||
@@ -1522,10 +1455,10 @@ CONFIG_TCP_OVERSIZE_MSS=y
|
||||
# CONFIG_TCP_OVERSIZE_DISABLE is not set
|
||||
CONFIG_UDP_RECVMBOX_SIZE=6
|
||||
CONFIG_TCPIP_TASK_STACK_SIZE=2048
|
||||
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY is not set
|
||||
CONFIG_TCPIP_TASK_AFFINITY_CPU0=y
|
||||
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
|
||||
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
|
||||
CONFIG_TCPIP_TASK_AFFINITY=0x0
|
||||
# CONFIG_PPP_SUPPORT is not set
|
||||
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
|
||||
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
|
||||
|
||||
Reference in New Issue
Block a user