小智 6
我创建了一个固件框架-PolyMCU https://github.com/labapart/polymcu-基于支持GCC和LLVM的CMake。因为它基于CMake,所以您可以在Linux / Windows / MacOS上构建固件。它还使用Newlib-看起来您的所有需求都在那里!
我还写了一个博客,比较了ARM Cortex-M上的GCC和LLVM构建大小:http : //labapart.com/blogs/3-the-importance-of-the-toolchain-version-in-embedded-space 有趣的结果,Clang生成的代码并不比Cortex-M上的GCC大很多。
不幸的是,目前 clang 不支持灵活的交叉编译设置。因此,很可能您需要使用所有必要的参数调用必要的工具。
首先使用 --target=thumbv7-eabi 配置参数构建 llvm + clang (请注意,从昨天开始,您将需要 llvm + clang)。您可能还想指定 --enable-targets=arm 。这将指示 clang 默认生成拇指代码。之后,您可以调用 clang -mcpu=cortex-m3 来生成代码。
您必须通过 -I / -L 等手动提供所有必要的包含/库路径。
如果您对某些 C++ 黑客攻击感到满意,您可以编写必要的“HostInfo”,这样它将调用正确的工具并自动提供正确的路径。