We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Open source C/C++ embedded toolchains using LLVM

Formal Metadata

Title
Open source C/C++ embedded toolchains using LLVM
Title of Series
Number of Parts
542
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Open-source tools based on LLVM that target rich software platforms such as Linux are in widespread use. A large proportion of the investment in upstream LLVM development is targeted at this use case. There is much less use of open-source C/C++ toolchains for embedded software development, with GCC toolchains being dominant. This can be explained by a number of factors: * Assembling an embedded toolchain is complicated, due to cross-compilation and missing components such as the C-library. * Differences in the toolchain interface and missing functionality compared to GCC. * Code-size and performance gaps on embedded targets. There are efforts in the LLVM community to improve the suitability for embedded software development. This presentation will cover some of the gaps and what we are trying to do to fill them. Specifically: * Hosted versus embedded toolchains. * Why do we want to use LLVM for an embedded toolchain? * What components make up an embedded toolchain, and which of these can be supplied by the LLVM project. * The LLVM bare metal driver. * A comparison of a LLVM based toolchain against an equivalent GNU toolchain. * Work that is being done in the community to improve embedded development. * How to get involved! The presentation does not require any in depth knowledge of LLVM or compilers. An awareness of the components of a toolchain such as compiler, linker and libraries will be helpful. The toolchains used for comparison are the LLVM Embedded Toolchain for Arm and the GNU Arm Embedded Toolchain.