1. 51 架构 (8051)
51 单片机不属于 ARM 这种“通用处理器”生态,其工具链相对专有或开源。
- SDCC (Small Device C Compiler):
这是目前 51 架构最主流的开源免费工具链。它是一套针对 8 位微控制器的优化 C 编译器,支持 MCS51 (即 51 内核)、Z80、STM8 等。配合
SDCC本身,加上stcgal等烧录工具,可以组成完整的开源开发环境。 - Keil C51 (商业): 这是 51 架构事实上的“工业标准”,由 ARM 公司(原 Keil)提供。虽然它是商业软件,但在 51 开发中使用率极高,代码密度和稳定性表现优秀。Arm GNU Toolchain 并不能直接编译 51 内核代码。
2. RISC-V 架构 (RV)
RISC-V 作为开源指令集,其 GNU 工具链非常完善,且由基金会和各大厂商积极维护。
- RISC-V GNU Toolchain (riscv-gnu-toolchain):
这是 RISC-V 的官方 GNU 工具链,功能上类似 Arm GNU Toolchain。它包含
riscv64-unknown-elf-gcc(用于裸机)和riscv64-linux-gnu-gcc(用于 Linux 系统)等。- 源码:托管在 GitHub 的
riscv-collab/riscv-gnu-toolchain。 - 预编译包:许多 Linux 发行版(如 Ubuntu/Debian)可以直接通过
apt install gcc-riscv64-linux-gnu或gcc-riscv64-unknown-elf安装。
- 源码:托管在 GitHub 的
- 厂商定制版本:
和 ARM 一样,芯片厂商也会提供定制化的工具链。
- SiFive:提供针对其 CoreIP 优化的 Freedom Studio(基于 Eclipse 和 GNU 工具链)。
- 沁恒 (WCH):其 RISC-V 系列 MCU(如 CH32V系列)虽也可用标准 GNU 工具链,但官方推荐使用 MounRiver Studio(集成了定制版 GCC 和调试工具)。
3. ARM架构
ARM Cortex-M/R/A很多交叉编译器分别编译不同的系列,常用的Arm GNU Toolchain (arm-none-eabi-gcc)
4. X86架构
x86架构要根据编译的系统做调整,也就是说编译到不同的os平台,比如linux,mac,windows。
如果在windows上编译windwos应用一般使用VS的MSVC,在linux编译windwos使用MinGW-w64/w32工具链。
至于mac,更多时候是在mac是编程自己的应用。