85 lines
2.6 KiB
Plaintext
85 lines
2.6 KiB
Plaintext
# ESP-IDF sdkconfig defaults for Android Auto Nav Head Unit
|
|
# Target: ESP32-S3, WT32-SC01 Plus
|
|
|
|
# CPU at max frequency (240MHz) — critical for SW H.264 decode + I420→RGB565
|
|
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
|
|
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
|
|
|
|
# Compiler optimization for performance (-O2 for ESP-IDF C code)
|
|
CONFIG_COMPILER_OPTIMIZATION_PERF=y
|
|
|
|
# Main task stack — needs to be large for TLS + protobuf
|
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=32768
|
|
|
|
# PSRAM (2MB on WT32-SC01 Plus)
|
|
CONFIG_SPIRAM=y
|
|
CONFIG_SPIRAM_MODE_QUAD=y
|
|
CONFIG_SPIRAM_SPEED_80M=y
|
|
CONFIG_SPIRAM_USE_MALLOC=y
|
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
|
|
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
|
|
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
|
|
CONFIG_SPIRAM_MEMTEST=n
|
|
|
|
# Data Cache — maximize for PSRAM performance (H.264 decode reads PSRAM constantly)
|
|
CONFIG_ESP32S3_DATA_CACHE_64KB=y
|
|
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
|
|
|
|
# Instruction cache — 32KB reduces flash cache misses in hot decode/render loops
|
|
CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y
|
|
|
|
# Flash (16MB on WT32-SC01 Plus) — 80MHz QIO for faster code fetch
|
|
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
|
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
|
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
|
|
|
# LCD I80 bus — use PLL clock source for stable 40MHz pixel clock
|
|
CONFIG_LCD_PERIPH_CLK_SRC_PLL160M=y
|
|
|
|
# Bluetooth — DISABLED to save ~20KB DRAM
|
|
CONFIG_BT_ENABLED=n
|
|
|
|
# WiFi — minimize internal SRAM usage (leave room for DMA buffers)
|
|
CONFIG_ESP_WIFI_ENABLED=y
|
|
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
|
|
CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1
|
|
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=8
|
|
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=6
|
|
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=16
|
|
CONFIG_ESP_WIFI_RX_BA_WIN=4
|
|
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
|
|
|
|
# H.264 software decoder (esp_h264 component)
|
|
CONFIG_ESP_H264_DECODER_IRAM=y
|
|
CONFIG_ESP_H264_DUAL_TASK=y
|
|
CONFIG_ESP_H264_DUAL_TASK_CORE=1
|
|
CONFIG_ESP_H264_DUAL_TASK_PRIORITY=19
|
|
|
|
# TLS — mbedtls for Android Auto TLS handshake
|
|
CONFIG_MBEDTLS_TLS_CLIENT=y
|
|
CONFIG_MBEDTLS_TLS_SERVER=y
|
|
CONFIG_MBEDTLS_SSL_ALPN=y
|
|
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=n
|
|
CONFIG_MBEDTLS_HARDWARE_AES=y
|
|
CONFIG_MBEDTLS_HARDWARE_SHA=y
|
|
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
|
|
CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC=y
|
|
|
|
# TCP/IP — 16KB windows for video streaming
|
|
CONFIG_LWIP_MAX_SOCKETS=10
|
|
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=16384
|
|
CONFIG_LWIP_TCP_WND_DEFAULT=16384
|
|
CONFIG_LWIP_TCP_RECVMBOX_SIZE=16
|
|
|
|
# Logging — disable dynamic level checks
|
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
|
CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=n
|
|
CONFIG_LOG_TAG_LEVEL_IMPL_NONE=y
|
|
|
|
# FreeRTOS — 1ms ticks for responsive scheduling
|
|
CONFIG_FREERTOS_HZ=1000
|
|
|
|
# Task watchdog — 15s for heavy decode workload
|
|
CONFIG_ESP_TASK_WDT_TIMEOUT_S=15
|
|
CONFIG_ESP_INT_WDT_CHECK_CPU1=n
|