要点
本次更新主要增加了新的 Arm 编译器的支持: LLVM-embedded-toolchain-for-Arm,可以用于 cortex-m 项目
由于 clang 与 gcc 是基本兼容的,因此 gcc 工程切换一下编译器应该就可以完成迁移
由于 LLVM 默认使用 picolibc, 因此如果你的程序使用了 stdin/stdout/stderr
, malloc/free
等 os 函数,你需要实现相应的接口。否则可能出现 undefined symbol: stdout
这样的错误
实现方法见文档:
https://github.com/picolibc/picolibc/blob/main/doc/os.md
GCC vs LLVM 代码大小简要对比:
-mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
:

-mcpu=cortex-m3
:

结论:llvm 生成产物,ROM占用 比 gcc 略大,RAM占用 比 gcc 略小
更新日志
v3.23.1 update
新增:
改进:
Arm 项目
: 改进 CPU Extension Options
功能.
GCC Toolchain
: 在GUI中添加更多的 c/c++ 选项 . 比如: '-Oz', '-flto', '-fno-rtti' ...
Intellisence
: 改进 clangd 的配置生成
JLink
: 更新 jlink 到 v8.50. 修复 unix 环境下 JLink 二进制文件名称错误
更改:
unify_builder
: 更新到 v3.10.0