Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: DRY linker scripts, picolibc & LLVM toolchain #4287

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

raphaelcoeffic
Copy link
Member

@raphaelcoeffic raphaelcoeffic commented Nov 5, 2023

Summary of changes:

TODO:

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

@pfeerick pfeerick added compilation Related to compiling the firmware and firmware options house keeping 🧹 Cleanup of code and house keeping labels Nov 5, 2023
@ajjjjjjjj
Copy link
Contributor

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

@raphaelcoeffic
Copy link
Member Author

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!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compilation Related to compiling the firmware and firmware options house keeping 🧹 Cleanup of code and house keeping
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants