如何搭建嵌入式开发环境
搭建嵌入式开发环境主要包括以下步骤,根据你的目标硬件平台(如ARM Cortex-M, RISC-V等)和操作系统(裸机、RTOS或Linux)有所不同:
1. 安装必备工具
(1) 交叉编译器
-
ARM架构:安装
gcc-arm-none-eabisudo apt update sudo apt install gcc-arm-none-eabi # Ubuntu/Debian- 验证:
arm-none-eabi-gcc -v
- 验证:
-
RISC-V架构:安装
gcc-riscv64-unknown-elfsudo apt install gcc-riscv64-unknown-elf
(2) 构建工具
sudo apt install build-essential cmake make
(3) 调试工具
- OpenOCD(通用调试器支持)
sudo apt install openocd - J-Link/GDB工具(若使用Segger J-Link)
从Segger官网下载驱动。
(4) 串口工具
sudo apt install minicom picocom # 串口监控
2. 配置开发环境
(1) IDE选择(可选)
- VSCode:轻量级编辑器 + 插件
安装插件:C/C++、Cortex-Debug、CMake Tools。 - Eclipse + CDT:传统嵌入式开发环境。
- STM32CubeIDE(针对ST芯片):官网下载
- Keil MDK/IAR EWARM:商用IDE(需授权)。
(2) 硬件连接
- 通过USB转串口模块连接开发板串口。
- 通过J-Link/ST-Link连接调试接口(SWD/JTAG)。
3. 创建并编译项目
(1) 手动构建(Makefile示例)
- 创建项目结构:
my_project/ ├── src/main.c ├── inc/main.h └── Makefile -
Makefile示例(ARM Cortex-M):
TARGET = firmware CC = arm-none-eabi-gcc CFLAGS = -mcpu=cortex-m4 -Wall -O0 all: $(CC) $(CFLAGS) src/main.c -o $(TARGET).elf
(2) 使用IDE
- STM32CubeIDE:通过图形化向导生成代码和编译配置。
- VSCode:配置
tasks.json和launch.json实现一键编译调试。
4. 烧录与调试
(1) 烧录固件
- OpenOCD(通过ST-Link):
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c "program firmware.elf verify reset exit" - J-Link Commander:
JLinkExe -device STM32F407VG -commandfile jlink_commands.txt
(2) GDB调试
- 启动OpenOCD后台:
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg - 启动GDB:
arm-none-eabi-gdb firmware.elf (gdb) target extended-remote :3333 (gdb) load (gdb) monitor reset halt (gdb) continue
5. 常用问题解决
- 权限问题:将用户加入
dialout和plugdev组:sudo usermod -aG dialout,plugdev $USER - 缺少库:根据错误提示安装
libusb等依赖:sudo apt install libusb-1.0-0-dev
6. 进阶配置
- RTOS支持:集成FreeRTOS/Zephyr(需在工程中包含RTOS源码)。
- 单元测试:使用Unity + Ceedling框架。
- 持续集成:GitHub Actions + Docker编译环境。
总结
1. 安装工具链(交叉编译器 + OpenOCD + 串口工具)
2. 配置IDE(VSCode/Keil/STM32CubeIDE)
3. 连接硬件(串口 + 调试器)
4. 编写代码 + 编译(Makefile/CMake)
5. 烧录固件(OpenOCD/J-Link)
6. 调试(GDB + OpenOCD)
⚠️ 注意:具体细节需参考开发板手册(如引脚连接、启动模式)。首次使用时,建议从厂商提供的示例项目(如ST的HAL库示例)开始。
从零搭建嵌入式开发环境:C、Makefile、调试全流程
“配置”,但它是每个嵌入式工程师的入门仪式。你能否顺利跑通第一个程序,决定了你之后能不能真正理解底层逻辑。今天我们就从最基础出发,完整走一遍嵌入式开发环境
2026-01-09 19:04:21
嵌入式开发(一):嵌入式开发新手入门(转载后续需要修改补充)
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC
资料下载
訾存贵
2021-11-02 20:06:00
嵌入式系统移植-01嵌入式基本概念,嵌入式开发环境搭建,目标机搭建,TFTP服务搭建,NFS服务搭建
Android系统嵌入式开发环境搭建嵌入式Linux交叉
资料下载
佚名
2021-10-20 17:21:00
嵌入式开发(一):嵌入式开发新手入门
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC
资料下载
佚名
2021-10-14 10:58:31
嵌入式开发流程是怎样的?
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC
嵌入式开发环境搭建综述
嵌入式开发环境搭建综述安装虚拟机vmware、ubuntu与samba文件共享工具使用(Windows)合理的创建标题,有助于目录的生成如何改变
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机