嵌入式开发常用开发工具
在嵌入式开发中,通常会使用一系列工具来覆盖从编写代码、编译、构建、调试、到部署、测试和版本控制的整个生命周期。以下是一些最常用的开发工具类别和代表(名称已用中文标出):
一、 集成开发环境 - IDE(集成编辑器、编译器、调试器)
- Visual Studio Code + 插件: 当今极其流行的轻量级但强大的代码编辑器。通过安装插件(如:
C/C++、RTOS扩展、编译器调试器工具链、串口终端等)可以变成功能强大的嵌入式IDE。开源、免费、跨平台。 - Eclipse + CDT + 插件: 历史悠久的开源IDE框架。配合
CDT插件用于C/C++开发。许多半导体厂商(如NXP、Microchip)提供基于Eclipse定制的IDE(如S32 Design Studio,MPLAB X IDE)。开源、免费、跨平台。 - STM32CubeIDE: 意法半导体推出的免费官方IDE,基于Eclipse/CDT,深度集成STM32CubeMX配置工具和HAL/LL库。专注于STM32 MCU开发。
- Keil MDK-ARM: 老牌商业IDE,由ARM公司开发,专用于ARM Cortex-M内核MCU。编译器高效,调试支持好(尤其配合ULINK仿真器)。功能强大但收费,通常有评估版。
- IAR Embedded Workbench: 另一款广泛使用的商业IDE,支持多种嵌入式处理器架构(ARM, RISC-V, AVR, MSP430等)。编译器优化能力强,成熟稳定。收费,通常有评估版。
- MRS: 沁恒微电子的
MounRiver Studio,基于Eclipse,主要用于其自研RISC-V MCU和部分ARM MCU。免费。 - SEGGER Embedded Studio: 功能强大的商业/免费版IDE(非商业使用免费),由J-Link制造商SEGGER提供,特别优化了对J-Link调试的支持。跨平台,编译器基于Clang/LLVM。
二、 编译器/工具链(将源代码转为机器码)
- GNU Arm Embedded Toolchain(俗称:Arm-GCC): ARM官方维护的GCC交叉编译工具链(
arm-none-eabi-gcc,arm-none-eabi-g++等),开源免费,广泛用于ARM Cortex-M/R/A。是许多商业IDE的后备选择或基础。 - Clang/LLVM: 越来越受关注的现代编译器框架,在嵌入式领域的使用逐渐增多(尤其在RISC-V生态)。
LLVM Embedded Toolchain for Arm是基于Clang的工具链之一。开源免费。 - IAR C/C++ Compiler: IAR Embedded Workbench 内置的高性能优化编译器。商业。
- ARM Compiler: Keil MDK-ARM 内置的主要编译器(ARMClang)。商业。
三、 构建系统(自动编译、链接)
- CMake: 当前主流的、跨平台的开源构建系统生成器。现代嵌入式项目(特别是开源库和复杂项目)越来越多地使用CMake来管理构建过程。
- Make: 经典的构建工具(
make+Makefile)。虽然相对古老,但因其简单和通用性,在嵌入式项目(尤其是基于GNU工具链的)中仍然非常常见。
四、 调试器/烧写器(下载程序到芯片、在线调试、监控)
- J-Link (SEGGER): 业界最广泛支持的高性能调试探针。速度快,功能强大,兼容性好(支持SWD/JTAG/SWV等)。有不同版本(EDU版实惠强大)。配套软件
J-Link GDB Server,J-Flash等极其好用。多数硬件IDE也支持J-Link。 - OpenOCD (开放片上调试器): 开源免费的调试器软件,支持多种调试探针(包括J-Link, CMSIS-DAP兼容的如STLink, DAPLink等)和多种目标芯片。常作为后端,通过GDB或IDE前端进行调试。
- GDB (GNU调试器): 强大的命令行调试器。是许多图形化调试器(如VSCode调试器、Eclipse调试器)的底层引擎。使用
arm-none-eabi-gdb(或对应架构的gdb)配合J-Link GDB Server或OpenOCD进行硬件调试。 - STLink (V2/V3): 意法半导体为其STM8/STM32系列提供的官方调试器/编程器。价格低廉,随开发板附赠。兼容OpenOCD。
- DAPLink/CMSIS-DAP: 一种开源的调试器固件标准。许多第三方开发板、评估板(尤其国产MCU板卡)集成的调试器大多运行此固件(如板载
CH549,STM32F103等MCU实现的调试器)。兼容OpenOCD。 - ULINK: Keil MDK-ARM 配套的调试器系列。
五、 系统配置与可视化工具(生成初始化代码、配置引脚/时钟/外设)
- STM32CubeMX: 意法半导体的图形化配置工具(集成于STM32CubeIDE或独立)。用于初始化STM32芯片(时钟树、外设、引脚复用、中间件),生成HAL/LL库驱动的初始化代码框架。必备神器。
- MCUXpresso Config Tools: 恩智浦为其MCU系列提供的图形化配置工具集。
- 其他厂商配置工具: TI的
SysConfig, Microchip的MHC (MPLAB Harmony Configurator)等。
六、 版本控制(管理代码更改历史)
- Git: 分布式版本控制系统的绝对主流。托管平台如
GitHub,GitLab,Gitee等。
七、 串口/终端工具(与开发板控制台通信)
- PuTTY: 经典的免费串口终端工具。
- Tera Term: 功能丰富的开源串口终端。
- Minicom / C-Kermit: Linux下常用的串口终端。
- Screen: Linux/macOS命令行下的简单串口工具(
screen /dev/ttyUSB0 115200)。 - VSCode插件(如:
Serial Monitor): 直接在VSCode内查看串口输出,非常方便。
八、 网络工具(测试网络功能)
- Wireshark: 强大的开源网络协议分析器(抓包)。
- Ping / Traceroute: 基础网络诊断命令行工具。
- Netcat (nc): 万能网络瑞士军刀。
- TFTP Server/Client: 用于通过网络更新固件(如U-Boot常用)。
九、 硬件辅助工具
- 逻辑分析仪(Logic Analyzer): 捕获和分析数字信号时序(如协议解码:I2C, SPI, UART, PWM等)。代表:
Saleae Logic(软件强大易用,硬件版本不同价)、国产替代(如DSLogic,Kingst VIS)性价比高。 - 示波器(Oscilloscope): 观测电压波形(模拟/数字皆可),调试电源、时钟、信号完整性等。调试数字协议时不如逻辑分析仪直观高效。
- 万用表(Multimeter): 测量电压、电流、电阻、通断等。调试硬件必备基础工具。
十、 其他实用工具
- Binutils: 提供关键操作工具,如:
arm-none-eabi-objdump(反汇编查看代码)、arm-none-eabi-objcopy(格式转换,如从ELF转成bin/hex)、arm-none-eabi-size(查看固件各段大小统计)等。通常包含在工具链里。 - SRecord: 开源命令行工具集,用于操作各种格式的固件文件(bin, hex, srec等),转换、合并、校验等。
- Python 脚本: 极其广泛地用于自动化构建/测试/部署流程、解析数据、生成代码/文档、与设备通信等。是嵌入式开发者的重要辅助武器。
总结: 嵌入式开发的工具链是 模块化 和 多样化 的。选择哪些工具取决于:
- 目标芯片架构(ARM Cortex-M, RISC-V, ESP32, AVR, PIC, ...)
- 项目复杂度和团队规模
- 个人/团队偏好和经验
- 预算考量(商业工具 vs 开源工具)
新手通常从厂商提供的官方IDE+开发板套件(如STM32CubeIDE + STM32 Discovery/Nucleo开发板 + STLink)入门是最顺畅的。随着经验增长,很多人会转向 VSCode + GCC/Clang + CMake + OpenOCD/J-Link + GDB 这样灵活强大的开源组合。
STM32Cube嵌入式开发工具让MCU开发更智能
电子发烧友网站提供《STM32Cube嵌入式开发工具让MCU开发更智能.pdf》资料免费下载
资料下载
tr12345
2023-07-29 11:29:03
嵌入式开发培训学什么?嵌入式开发板知识讲解
,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。嵌入式开发是一项系统工程,要求
资料下载
李娜
2021-11-02 20:21:03
【嵌入式实验】《嵌入式开发工具使用》
嵌入式开发工具使用一.实验目的二.实验内容三.预备知识四.实验设备及工具(包括软件调试工具)五.实验步骤5.1 交叉编译
资料下载
吴藩
2021-10-21 13:06:04
嵌入式开发(一):嵌入式开发新手入门
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC
资料下载
佚名
2021-10-14 10:58:31
龙芯1x嵌入式开发工具怎么样
龙芯1x嵌入式开发工具收藏一下:龙芯1x嵌入式开发工具|Loongson 1x Embedded Develo…|关于我们|龙芯嵌入式开发工具|
嵌入式开发中的几种常用的工具介绍
4.docker容器技术 5.multipass 6.qemu 1.本文说明嵌入式开发已经从以往的单片机开发逐渐过渡到越来越依赖Linux的系统。虽然大多数情况下,windows的
2021-04-02 10:05:07
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- dtmb信号覆盖城市查询
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览