嵌入式系统开发 需要的环境配置

嵌入式开发的环境配置取决于"目标芯片/板卡"和"操作系统(或无OS)"。以下是通用核心组件 + 分场景清单,你按需选一条路线即可。


🧱 一、所有路线都需要的"基础设施"

  1. 交叉编译工具链(最重要)

    • 例如 ARM: gcc-arm-none-eabi(MCU/裸机)、arm-linux-gnueabihf-*(Linux应用)

    • RISC-V: riscv64-unknown-elf-gcc/ riscv64-unknown-linux-gnu-gcc

  2. 调试/烧录工具

    • 硬件:J-Link、ST-Link、DAPLink、FTDI串口模块等

    • 软件:OpenOCD、pyOCD、J-Link GDB Server

  3. IDE / 编辑器 + 构建系统

    • IDE:VS Code + Cortex-Debug / PlatformIO;或商业 IDE(Keil、IAR、SEGGER Embedded Studio)

    • 构建系统:CMake(推荐)、Makefile;RT-Thread/BSP 常用 scons/env.py

  4. 目标板通信

    • 串口/UART:minicom/screen(mac/Linux)、MobaXterm/PuTTY/WindTerm(Windows)

    • 网络:SSH/Telnet、TFTP/NFS(若跑 Linux)

  5. 工程基建(强烈建议尽早引入)

    • Git + 合适的分支策略(如 main/dev/feature)

    • 包/依赖管理:虽不如 Web 成熟,但可用 Conan/vcpkg/manual vendor SDK


📍 二、按常见路线快速选配

A. STM32/Cortex-M MCU(裸机/FreeRTOS)

  • 工具链:arm-none-eabi-gcc+ libnewlib-nano

  • 调试:ST-Link/V2/V3 + OpenOCD

  • 固件库/框架:STM32CubeMX/LL/HAL,或 libopencm3/ch32v003-hal 等裸写寄存器方案

  • VS Code 插件:C/C++、Cortex-Debug、HexView

B. 嵌入式 Linux(树莓派/IMX6ULL/RK3568 等)

  • 工具链:对应 SoC 的 Linaro/SDK 预编译链(如 arm-linux-gnueabihf-

  • 构建:Buildroot/Yocto/OpenWrt(做根文件系统);内核用 Kbuild

  • 调试:gdbserver 远程 attach、strace/perf/valgrind 定位问题

  • 部署:scp/rsync/nfs;uboot/tftp 启动调试

C. RISC-V MCU(GD32V/ESP32-C3/K210 等)

  • 工具链:SiFive/平头哥/官方 SDK 提供的 riscv-none-elf 或 riscv64-unknown-elf

  • 调试:ft2232h/openocd/jtag 适配;部分开发板自带 USB-JTAG

  • IDE:VS Code + RISC-V 插件;PlatformIO 对 ESP32-C3 开箱即用


⚡ 三、STM32F103 最小可运行示例(Ubuntu/WSL/macOS)

复制代码
# 安装工具链 & openocd
sudo apt install gcc-arm-none-eabi openocd

# 获取代码模板(带 Makefile+linker script)
git clone --depth 1 https://github.com/STMicroelectronics/STM32CubeF1.git
cd STM32CubeF1/Projects/YourBoard/Example

# 编译(确保 Makefile 里 CC=arm-none-eabi-gcc)
make -j$(nproc)

# 连接 ST-Link,openocd 监听 gdb
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg

✅ 四、怎么选更省心?

告诉我:芯片型号/板子名(如 STM32F407、树莓派 CM4) ​ + 是否跑 Linux ​ + 你最习惯的系统(Win/Mac/Ubuntu),我可以给你一套"复制粘贴就能跑通"的命令清单和目录结构。

相关推荐
小岐AI观4 小时前
智赋岐黄适合养生馆吗?
大数据·人工智能·物联网
wuyk5555 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法
恒锐丰-罗生7 小时前
国产 H 桥驱动 SS6289|18V/4A 有刷电机驱动芯片性与应用分析 内置采样 + 多保护,门锁 / 机器人优选器件
驱动开发·嵌入式硬件·硬件工程
数字新视界9 小时前
动环监控信创适配助力机房管理智能化转型
物联网·数据中心·动环监控·微模块机房·模块化机房
zcmodeltech10 小时前
工程机械与矿山机械沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的露天开采-井下掘进-智慧矿山全场景联动方案
数据库·stm32·单片机·嵌入式硬件·制造·多分类
云泽80811 小时前
深入浅出 STM32(十五):多通道GPIO驱动的软件抽象与实现
stm32·单片机·嵌入式硬件
嵌入式阿蔡12 小时前
OTA 实战五(收官):量产落地 Checklist —— 版本号 / 防回滚 / 灰度 / 断点续传
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
乐橙开放平台13 小时前
物业 SaaS 笔记:子账号 Policy 按通道隔离,At_ 管控面 / St_ 数据面治理 accessToken
后端·物联网·音视频
碧海银沙音频科技研究院13 小时前
基于杰理AC7016C的GTCRN门控卷积神经网络语音增强方法
人工智能·嵌入式硬件·语音识别
DoLovya13 小时前
从零实现 ESP8266 + MQTT 智能门禁:公网一键开门、舵机控制、在线监控完整方案
python·物联网·mqtt·嵌入式·esp8266·门禁系统