-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsdkconfig.defaults
More file actions
74 lines (67 loc) · 3.62 KB
/
Copy pathsdkconfig.defaults
File metadata and controls
74 lines (67 loc) · 3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
CONFIG_IDF_TARGET="esp32c6"
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_WIFI_NVS_ENABLED=y
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# Optimize for size (-Os) rather than the debug default (-Og). With the 4 MB
# layout this is no longer required to fit — see the flash-budget note in
# AGENTS.md — but it keeps the image smaller and faster to flash, and there's
# no downside for a device with no debugger attached in the field.
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
# This board (ESP32-C6 Super Mini class) has no separate UART-to-USB bridge
# chip — its single USB-C port is wired directly to the native USB-Serial-JTAG
# peripheral. Make that the primary console (jpp_serial_mgr's JPPD-SMP binary
# protocol talks to the same peripheral) and drop the secondary UART mirror,
# which also isn't reachable over that port and only costs flash.
CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y
CONFIG_ESP_CONSOLE_SECONDARY_NONE=y
# FAT filesystem — long filename support (heap-allocated; required for manifest.json)
CONFIG_FATFS_LFN_HEAP=y
# Volume label API used by the storage settings screen (f_getlabel)
CONFIG_FATFS_USE_LABEL=y
# Allow FF_MAX_SS=4096 for SD cards with non-512-byte physical sectors
CONFIG_FATFS_SECTOR_4096=y
# Wi-Fi memory — prevent heap exhaustion during file transfers.
# Static TX buffers are permanently allocated from the heap at Wi-Fi init,
# which drains startup heap and causes httpd task creation to fail.
# Keep TX dynamic but cap it at 8 (was 32): zero heap at startup, and
# at most 8 × ~1.6 KB = ~13 KB held during a burst transfer instead of ~51 KB.
# Dynamic RX is likewise capped at 8; TCP flow control (TCP_WND = 5760 B)
# limits the incoming burst so TCP retransmits any frame the driver drops.
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=8
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=8
# Native app loader — disable PMP IRAM/DRAM split so the entire unified HP SRAM
# heap satisfies MALLOC_CAP_EXEC. With the split enabled, ESP-IDF configures PMP
# to mark DRAM as non-executable, leaving only a tiny exhausted IRAM-only pool for
# MALLOC_CAP_EXEC. Without the split the whole free SRAM (~250 KB) is available
# for executable allocations, which is what jpp_native_loader_core needs.
# Trade-off: writable memory is also executable (no W^X). Acceptable for a
# single-owner embedded device that controls what binaries are loaded.
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=n
# TLS trust anchors for the https.request SDK capability. The TLS 1.2 client
# stack itself is already in the image (esp_http_client pulls in esp-tls and
# mbedTLS); what was missing was a CA bundle, which the linker discards unless
# something calls esp_crt_bundle_attach() — sd_https_request_cb() does.
#
# CMN rather than the full Mozilla set: 43 roots (Amazon, DigiCert, GlobalSign,
# GoDaddy, Google Trust Services, IdenTrust, ISRG/Let's Encrypt, Sectigo) for
# 17.9 KB of flash, against 69 KB for FULL. Flash headroom is no longer the
# constraint here (see AGENTS.md) — CMN is kept for a smaller, more auditable
# trust store, not because FULL wouldn't fit.
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y
# BLE — NimBLE host stack
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_CONTROLLER_ENABLED=y
CONFIG_BT_NIMBLE_ROLE_CENTRAL=y
CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y
CONFIG_BT_NIMBLE_ROLE_OBSERVER=y
CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y