FastLED 3.9.15
Loading...
Searching...
No Matches

◆ FL_ALIGNAS() [4/5]

struct fl::FL_ALIGNAS ( 8 )

Container for 8 packed wave symbols (8 bytes total)

Byte-indexed expansion LUT (#2526): 256 entries × 8 bytes = 2 KB.

Lookup table for nibble-to-waveform expansion (64 bytes total)

Holds 8 Wave8Bit structures (1 byte each = 8 bytes total). The struct is 8-byte aligned for optimized memory access.

Maps each 4-bit nibble (0x0 to 0xF) to 4 Wave8Bit structures (4 bytes). This reduces byte conversion from 8 lookups (bit-level) to 2 lookups (nibble-level).

Total size: 16 nibbles × 4 Wave8Bit × 1 byte = 64 bytes

Maps a full input byte directly to its 8 Wave8Bit pulse symbols, so the hot expansion is a single indexed 8-byte copy instead of two nibble lookups + two 4-byte copies. Same total memory traffic, ~half the index/issue work — the win on the in-order RV32 core (which is issue-bound here, not bandwidth- bound). Keep this in internal SRAM (not PSRAM) so the lookup stays fast.

Definition at line 1 of file wave8.h.

30 {
31 Wave8Bit symbols[8]; // 8 bytes total (8 symbols × 1 byte each)
32};
Type-safe container for packed 8-bit wave pulse pattern.
Definition wave8.h:22