3 ms·
While interesting the niche for Smash seems to be small. You'd have to have a system that's big enough to have some RAM where to decompress in the first place.
by vardump 6y ago
While interesting the niche for Smash seems to be small.
You'd have to have a system that's big enough to have some RAM where to decompress in the first place. So forget those ultra small 256 bytes or less RAM systems.
Mid-sized systems (say 16 kB+ RAM), I think you'd still mostly run directly from ROM. Any RAM is probably needed for other use.
Larger systems with ARM M0 core (or better) and 64 kB+ RAM have a ton of CPU power and typically plenty of other resources as well.
Perhaps there are people who need to deal with mask ROMs, but do those need to be that small either in 2020? Or penny pincher cases where you just can't have an extra I2C EEPROM / flash chip and your target uC doesn't have enough flash storage.
Maybe I'm missing something.
In any case, LZ-family compressors (like LZ4) have served me well so far.
Edit: That LZSA mentioned in other comment(s) looks cool. Regardless, a small niche of applications where you'd need this in the first place.