edgetx
edgetx copied to clipboard
chore: DRY linker scripts, picolibc & LLVM toolchain
Summary of changes:
- DRY linker scripts
- support for LLVM embedded toolchain including picolibc.
TODO:
- [ ] integrate Thread Local Storage init (see here).
- [ ] bump FreeRTOS and take advantage of TLS support added in
10.6.0.
Hi, does LLVM + picolibc give size or performance benefits?
Hi, does LLVM + picolibc give size or performance benefits?
It’s too early to say. The bootloader turns slightly smaller while the complete firmware is 1.5% bigger on average.
The main idea here is to be able to take advantage of LLVM’s static analyzers and better error messages.
picolibc seems to add a couple of interesting features:
- support for Thread Local Storage
- floating point string conversions that do not allocate memory in the process (
newlib nano, just like the regular libc usesmallocwhen printing floating point numbers!)