Usage with uint8_t array
#5
Open
opened 3 years ago by cinderblock
·
2 comments
Loading…
Reference in New Issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
I have image data in a
uint8_t
array that takes up a lot of flash space in my embedded project. It's rather simple image patterns so I suspect it should be possible to compress significantly.At the lowest level, since C strings are basically just arrays of bytes, I feel it should be possible to use this awesome system to get the same compile time compression, but I'm not seeing the necessary syntax.
I bet I could coax my byte array into a string first and use this project directly, but with bytes often outside the ASCII range I expect that will end up rather... "ugly".
I could alternatively compress my image data ahead of time and use some runtime decompressor of my choosing, but that seems more complicated (for now).
So, is there some alternate API that I'm not seeing to use this with an array of bytes?
It looks like I never provided an easy way to use this with arrays, sorry. I've added two new methods to support this, they've been pushed so you can try them out:
The second option allows for a single declaration and "cleaner" syntax, though the first option compiles faster (20k elements in 10 seconds vs. 15 sec.).
array
is also kept out of the compiled binary. I tested on gcc 10.1 with no optimizations.Do one of these options work for you? I'm open to any suggestions.
These looks great! Thank you.
I'd tried something similar but didn't find the right syntax.
I'll give them a try later today.