edgetx icon indicating copy to clipboard operation
edgetx copied to clipboard

chore: DRY linker scripts, picolibc & LLVM toolchain

Open raphaelcoeffic opened this issue 2 years ago • 2 comments

Summary of changes:

TODO:

  • [ ] integrate Thread Local Storage init (see here).
  • [ ] bump FreeRTOS and take advantage of TLS support added in 10.6.0.

raphaelcoeffic avatar Nov 05 '23 17:11 raphaelcoeffic

Hi, does LLVM + picolibc give size or performance benefits?

ajjjjjjjj avatar Nov 09 '23 20:11 ajjjjjjjj

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 uses malloc when printing floating point numbers!)

raphaelcoeffic avatar Nov 09 '23 21:11 raphaelcoeffic