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

Support Zephyr Project as an ARM official toolchain #81

Open
andy0808 opened this issue Nov 24, 2021 · 3 comments
Open

Support Zephyr Project as an ARM official toolchain #81

andy0808 opened this issue Nov 24, 2021 · 3 comments
Labels
enhancement New feature or request rfc Request for Comments

Comments

@andy0808
Copy link

Zephyr Project is becoming more and more popular in the RTOS area. For ARM Cortex architecture, they have their own toolchain/SDK based on GCC. And the ARM maintained arm-none-eabi-gcc also works perfectly with this project.

They have discussed supporting LLVM a few years ago, but seems there's not any progress yet! I think the main reason is that there's no official LLVM toolchain maintained for ARM Cortex before.

Since you are supporting LLVM officially, is there any schedule to support these modern RTOS? Thank you : )

I think combining LLVM + modern RTOS makes it easier to use modern languages on microcontrollers such as Rust and Swift, they both are based on LLVM : ) This would help application development on microcontrollers a lot!

@miyuki miyuki added enhancement New feature or request rfc Request for Comments labels Nov 25, 2021
@lindblandro
Copy link

I think you could compile Rust code as a library by suitably declaring the exported interface (no name mangling and extern "C") and include that to your application using ExternalProject, maybe add some scripts to export C headers for the library for convenience. Having a binary crate as the cross-compiled application might be a lot trickier, but nice. There's also https://github.com/SiegeLord/RustCMake which doesn't seem to be maintained, but might serve as a starting point for something.

@adityashah1212
Copy link

@lindblandro, I think that is one way to do it, but brings in one issue. cross-language LTO won't be possible. I myself found LTO can save space quite a bit in the final binary and can also improve speeds quite a bit. Having LLVM directly support will improve on that.

@voltur01
Copy link
Contributor

I noticed this issue zephyrproject-rtos/zephyr#54826 in Zephyr project that refers to LLVMEmbeddedToolchainForArm-15.0.2, however seems to be stale by now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request rfc Request for Comments
Projects
None yet
Development

No branches or pull requests

5 participants