* Save 128 byte by moving variable to stack
* Make usb mass storage buffer smaller on F2 processors and put into reuseablebuffer
- Lower USB mass storage buffer to 512 bytes per default on F2
targets, makes usb speed slightly slower ~600 kB/s instead ~700 KB/s
in my tests, saving 3584 bytes
- Save another ~300 bytes by putting that buffer into reusableBuffer
* Don't put id into reusuableBuffer
All uses of id can be on the stack as well. Makes no difference for ram usage but makes it safer to reuse reusableBuffer
* Only link cdc serial when needed
We always linked usb cdc even in non debug builds. CDC uses about ~600 byte of RAM for its buffers and structures.
* Lua: All usage of double converted to float. printf("%f") still uses promotion to double, (floating point va_args are always promoted to double)
Speed improvements:
* reordering of rotable to put most used tables at the top
* caching of last found global table
Use real pointer to rotable instead of misusing void* to pass integer value
Lua internal traces now turned on by TRACE_LUA_INTERNALS cmake option
* Replaced floating point division with multiplication (where possible), the hardware FPU is much faster at multiplication vs division.
stb_image: enabled STBI_NO_HDR and STBI_NO_LINEAR (removes code that we don't need)
* [build][CMake] Use `find_package(Git)` to confirm existence before trying to use git for version stamp; Use friendlier detection of grep executable on Windows; Use "del" on Windows instead of "rm".
* [build][Windows] Include dirent and msinttypes headers in source tree.
* Remove grep dependency for lua exports generation
* Sneaky pythons hiding in code.
* [build] Change `git_id` macro to skip check if no git directory is present, also now fails gracefully; Fix `today` macro on Windows; Report git revision; Make sure QtSvg module is found.
* Flash savings: getFileExtension() de-templated, saves 160 bytes
* Flash savings: several variables moved to rodata, RGB macro optimization (speed and can now be used to initialize rodata)
Result for Horus:
text data bss dec
1261182 808603 42020 2111805 before
1267149 803335 42124 2112608 after (data size also counts .sram section)
5kB saved in .data section (RAM and FLASH)
* Removed compiler warnings
* RGB() and ARGB() gtests added
* ARGB() optimized