-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathKconfig
More file actions
39 lines (35 loc) · 1.7 KB
/
Copy pathKconfig
File metadata and controls
39 lines (35 loc) · 1.7 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
menu "cUR (Uniform Resources)"
config UR_CRC32_SLICE_BY_8
bool "CRC32: use slice-by-8 (faster, +8 KB flash)"
default n
help
Use the slice-by-8 CRC32 implementation instead of the default
64-byte nibble table. About 2.7x faster on ESP32-P4, at the cost
of 8 KB of flash for a const lookup table. UR CRCs run over
individual fragments (typically a few hundred bytes per QR
frame), so the small table is rarely a bottleneck in practice.
config UR_XOR_ESP32P4_SIMD
bool "Fountain XOR: use ESP32-P4 PIE 128-bit SIMD"
depends on IDF_TARGET_ESP32P4
default y
help
Use the ESP32-P4 PIE (xesppie) 128-bit vector unit for the
fountain-code XOR reduction. About 4x faster than the portable
word-wise path on aligned runs; unaligned data transparently
falls back to the word-wise path. When enabled, cUR
16-byte-aligns its buffer allocations so the vector path
engages on them. Only visible on ESP32-P4; enabled by default
there since it costs no RAM and little flash — disable it to
keep the library free of target-specific code paths.
config UR_ALLOC_PSRAM
bool "Allocate working buffers in PSRAM"
default y
help
Route the library's allocations to external PSRAM
(MALLOC_CAP_SPIRAM), falling back to internal RAM when PSRAM is
absent or exhausted. Keeps the fountain decoder's churn of small
variably-sized buffers from consuming and fragmenting internal
RAM. Disable to keep buffers in internal RAM instead, e.g. when
chasing XOR throughput on ESP32-P4 or reserving PSRAM for
framebuffers. Harmless no-op when SPIRAM is not configured.
endmenu