嵌入式开发是一个涉及硬件和软件协同的领域,需要多种工具。以下是主要类别的常用软件和工具,按用途分类并用中文列出:
一、集成开发环境 - 核心开发平台
- Keil MDK / µVision:
- 主要领域: ARM Cortex-M系列微控制器开发。
- 特点: 老牌经典,用户众多(尤其ST、NXP等),集成编辑器、编译器(ARMCC/Clang)、调试器、项目管理。在国内广泛使用。
- 开发厂商: Arm (原属于Keil,后被Arm收购)
- IAR Embedded Workbench:
- 主要领域: 微控制器开发,支持非常广泛的架构(ARM, RISC-V, 8/16位MCU等)。
- 特点: 高度优化(代码效率高、体积小),编译和调试性能优异,也是业界标杆之一。在国内企业界广泛应用。
- 开发厂商: IAR Systems
- STM32CubeIDE:
- 主要领域: 意法半导体(ST)的STM32系列微控制器。
- 特点: 基于Eclipse和GCC工具链,免费开源,集成了STM32CubeMX的图形化配置功能(引脚、时钟、外设、中间件),方便快捷启动ST项目。
- 开发厂商: 意法半导体
- RT-Thread Studio:
- 主要领域: 基于RT-Thread操作系统(国产优秀嵌入式RTOS)的嵌入式开发。
- 特点: 国产IDE,支持丰富的国产芯片(如瑞芯微、全志等),集成了RTOS配置、图形化组件、包管理器等功能,简化开发流程。
- 开发厂商: 睿赛德科技
- SEGGER Embedded Studio:
- 主要领域: ARM Cortex-M/M+/R/A微控制器开发。
- 特点: 与SEGGER调试器(如J-Link)深度集成,性能好,跨平台(Win/macOS/Linux),内置的CLang编译器免费,支持商业许可。越来越受欢迎。
- 开发厂商: SEGGER
- MPLAB X IDE:
- 主要领域: Microchip的PIC、dsPIC、AVR微控制器。
- 特点: Microchip官方主力IDE(基于NetBeans),支持其全系列MCU和MPU。
- 开发厂商: Microchip
- CCS - Code Composer Studio:
- 主要领域: 德州仪器(TI)的DSP(如C2000)和部分ARM MCU(如TM4C)。
- 特点: TI官方IDE(基于Eclipse),优化了对TI器件和实时操作系统的支持。
- 开发厂商: 德州仪器
- PlatformIO (VSCode插件/Atom插件/独立CLI):
- 主要领域: 跨平台(支持大量开发板、框架、芯片)。
- 特点: 开发生态强大(使用VSCode作为基础),包管理器管理开发板和库依赖,支持多种工具链(包括Arduino、ESP-IDF、Keil/Eclipse项目等),跨平台(Win/macOS/Linux)。个人和小团队流行。
- Eclipse + CDT + 插件 (通用):
- 主要领域: 通用强大的开源框架,特别适合带操作系统的开发(如Linux嵌入式)或需要高度定制的环境。
- 特点: 免费开源,模块化强,需自行配置插件(编译器、调试器、目标支持等)。
- Visual Studio Code + 插件:
- 主要领域: 通用文本编辑器,通过强大插件生态可支持嵌入式开发。
- 特点: 轻量快速,跨平台(Win/macOS/Linux),通过C/C++、PlatformIO、Cortex-Debug等插件支持编辑、编译(调用外部工具链)、调试(配合GDB/OpenOCD/J-Link等)。越来越流行。
二、编译器 - 将源代码翻译成机器码
- ARM Compiler (armcc/armclang): ARM官方商业编译器,通常集成在Keil MDK中,针对ARM架构优化。
- IAR C/C++ Compiler: IAR EW内置的商业编译器,以优化著称。
- GCC (GNU Compiler Collection): 开源免费。嵌入式领域极其重要!
arm-none-eabi-gcc: 用于裸机/RTOS ARM Cortex-M/M+/R/A应用最广泛的编译器。riscv-none-elf-gcc: 用于RISC-V架构。avr-gcc: 用于AVR微控制器。- (其他架构的交叉编译版本) 如
xtensa-esp32-elf-gcc(ESP32),xtensa-esp32s2-elf-gcc(ESP32-S2/S3),aarch64-none-linux-gnu-gcc(ARM 64位 Linux) 等。
- LLVM Clang: 开源,作为GCC的替代品在增长(如Segger Embedded Studio内置,Keil新版也开始集成),性能好,错误信息更友好。
- 供应商专属编译器: 如TI的编译器(集成在CCS中)、Microchip的XC8/XC16/XC32(集成在MPLAB X中)。
三、调试器/调试服务器 - 连接IDE和目标板进行调试
- 硬件调试器/仿真器 (Probe/Debug Probe):
- SEGGER J-Link: 业界最广泛使用,速度快,支持几乎所有主流微控制器架构(ARM, RISC-V等),兼容性好。有基础版到专业版多个型号。
- ST-Link: STM32开发板标配或单独售卖,主要支持ST MCU,成本低。功能不如J-Link强大但够用。
- DAPLink / CMSIS-DAP: 开源硬件调试器固件/协议,许多国产开发板(如GD32, RISC-V开发板)和第三方调试器采用,成本低廉,可用作USB转串口、拖拽烧录。
- Lauterbach Trace32: 功能极其强大的商业高端调试器,支持复杂系统、多核、实时追踪,用于汽车等高要求行业调试。国产的有劳得巴赫 Trace32。
- 供应商专属: 如TI XDS仿真器系列,Microchip PICkit/ICD。
- 调试服务器/接口软件:
- OpenOCD: 开源免费,充当GDB调试器和硬件调试器之间的桥梁,支持多种调试器(包括J-Link、ST-Link、DAPLink等)和大量芯片。非常常用,尤其配合GDB和IDE。
- pyOCD: 基于Python的开源调试器接口,主要用于ARM Cortex-M设备的CMSIS-DAP/DAPLink调试器。
- J-Link GDB Server: SEGGER提供,将J-Link连接到GDB客户端的软件。
四、烧录/编程工具 - 将程序写入目标芯片Flash
- 很多硬件调试器本身也具备编程功能(J-Link, ST-Link, DAPLink)。
- J-Flash / STM32CubeProgrammer: SEGGER和ST的专用烧录软件,功能强大可靠(擦除、烧写、校验、读保护等)。
- OpenOCD: 同样可以用来烧录程序(通过命令行或GUI)。
- 供应商工具: TI CCS内置烧写,MPLAB IPE (Microchip), DfuSe (ST DFU) 等。
- 系统级工具: 如
fastboot(常用于Android设备Bootloader),flashcp(Linux下烧写工具)。
五、操作系统 & 框架 SDK
- 裸机 Bare-metal / 简单前后台系统
- 实时操作系统:
- FreeRTOS: 开源免费,使用极其广泛。
- RT-Thread: 优秀的国产开源RTOS,文档丰富,社区活跃,支持多种开发方式(如前面提到的RT-Thread Studio)。
- μC/OS-II, μC/OS-III (现为Silicon Labs): 经典商业RTOS。
- ThreadX / Azure RTOS: 微软拥有的商业RTOS。
- Zephyr: Linux基金会托管的开源RTOS,支持多种架构。
- 嵌入式Linux (带完整操作系统):
- 需要交叉编译工具链 (如
aarch64-linux-gnu-gcc,arm-linux-gnueabihf-gcc)。 - Buildroot / Yocto Project: 用于构建定制的嵌入式Linux系统(内核、根文件系统)。
- 内核配置与驱动开发工具:
menuconfig/xconfig/gconfigdevicetree(设备树) 编译器工具 (dtc)
- 根文件系统工具:
BusyBox: 提供常用Linux命令。- 文件系统生成工具 (
mke2fs,mkfs.vfat,genimage,yocto/bitbake)
- 需要交叉编译工具链 (如
- 专有嵌入式框架/SDK:
- ESP-IDF: 乐鑫官方的ESP32系列开发框架(FreeRTOS核心),提供大量组件。
- Arduino Core: 简单易用的Arduino框架,支持多种AVR和ARM MCU板卡(原生态或社区移植)。
- STM32Cube FW: ST官方提供的STM32微控制器固件库/HAL库/LL库,集成在CubeIDE和CubeMX中。
- Nordic nRF Connect SDK: 用于Nordic nRF52/nRF53系列SoC,基于Zephyr RTOS。
- Raspberry Pi Pico SDK: 树莓派官方的RP2040芯片开发框架。
六、辅助工具
- 串口调试/通信工具:
- PuTTY: 经典串口终端。
- Tera Term: 功能丰富的串口终端。
- MobaXterm: 强大的远程终端工具集(支持SSH, Telnet, VNC, RDP, SCP, 串口,文件传输等)。
- SecureCRT / Xshell: 功能强大的商业终端仿真器。
- minicom / screen: Linux/macOS下的串口终端工具。
- 网络工具 (TCP/IP调试):
- Wireshark: 网络协议分析。
- netcat (nc): 万能网络调试工具。
- tcpdump / tshark: 命令行抓包。
- ping / telnet: 基础连通性测试。
- 静态代码分析: Cppcheck, PC-Lint / FlexeLint (现PC-lint Plus)。
- 版本控制: Git, SVN。
- UART/USB协议分析仪: 如 Saleae Logic Analyzer (逻辑分析仪功能也常用)。
总结关键点
- 没有“唯一”的软件: 根据你的芯片平台、操作系统、项目复杂度和预算来选择工具组合。
- IDE / 工具链是核心: Keil MDK、IAR EW、GCC+Eclipse/VSCode+OpenOCD+J-Link是最主流的几种开发模式。
- 调试器是关键硬件: J-Link功能强通用性好,ST-Link/DAPLink成本低廉够用。
- 开源工具链是基础: GCC、GDB、OpenOCD构成了强大的免费方案基础。
- 供应商工具不可少: 芯片厂(如ST、TI、Microchip、Espressif、Nordic、乐鑫)提供的IDE和SDK是重要起点。
- 国产工具崛起: RT-Thread Studio是重要的国产IDE代表,RT-Thread是优秀的国产RTOS,DAPLink在国内广泛集成。
- 辅助工具提升效率: 串口工具、Wireshark、Git等也是嵌入式开发者的日常必备。
简单说,初学者选一块开发板(如STM32、ESP32),用其官方推荐的IDE(如STM32CubeIDE、ESP-IDF)或自己搭建VSCode+PlatformIO环境,搭配板载或购买的调试器(如ST-Link, DAPLink, 或J-Link),就能上手开始嵌入式开发了。
希望这个分类清晰的中文列表能帮助你了解嵌入式开发的软件生态!如果你有特定的芯片或项目方向,可以告诉我,我可以帮你推荐更具体的工具组合。
如何看待Java开发和嵌入式开发
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择。
2019-06-15 10:33:46
Java开发和嵌入式开发该如何选择
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择。
2019-06-10 11:37:47
单片机开发和嵌入式开发的区别
单片机开发和嵌入式开发都是针对嵌入式系统的应用领域,但是两者有着不同的特点和应用场景。在本文中,我们将探讨单片机开发和嵌入式开发的区别,并介绍它们的应用场景和技术特点。
2023-04-14 16:36:43
究竟什么是嵌入式开发
什么是嵌入式开发。嵌入式开发,一般是指针对某个特定嵌入式系统的开发,嵌入式系统广义上可以认为是功能受限的计算机系统。由于是功能受限的计算机系统,所以一般都是专用的系统,而不像我们平时用的个人电脑(PC...
哎呀2015
2021-11-08 06:13:20
嵌入式开发中,嵌入式硬件和软件有什么区别?
嵌入式指的是把软件直接烧录在硬件里,而不是安装在外部存储介质上,就像赋予机器人灵魂,从而方便人类操控。在嵌入式开发中,分为嵌入式硬件和嵌入式软件,大多数人对嵌入式的硬件和软件之间的区别不是很了解
2022-07-18 18:11:26
嵌入式开发是什么意思
嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的EDA研发以外,侧重的就是在一定硬件条件下的系统化设计和软件研发。定义嵌入式开发是指利用
hdfsf
2021-10-28 08:35:47
嵌入式开发可以分为哪几类
嵌入式开发从大类上来说,主要分为两类:1)嵌入式硬件开发;2)嵌入式软件开发。对于嵌入式硬件开发而言,硬件是必须要懂得,因为涉及到电路原理图的设计。对于嵌入式软件而言,如果细分的话,又可以分为驱动开发和软件开发。这两者都需要一定的硬件知识,所以,嵌入式开发有必要学习硬件。
2020-08-24 14:29:39
Linux系统的嵌入式开发是什么
嵌入式开发听起来很高大上,但其实它就在我们身边。 嵌入式开发是指将操作系统、应用程序或数据存储在嵌入式设备中,如手机、平板电脑、智能家居等。 随着物联网时代的到来,嵌入式开发越来越成为一种重要的技术手段。
2023-10-12 15:40:39
Java开发和嵌入式开发
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择。Java语言的应用领域包括Web开发
泡芙奶昔
2021-11-05 08:02:10
什么是嵌入式?单片机开发与嵌入式开发的区别在哪
?1.3.2常见的嵌入式操作系统包括:1.4 嵌入式开发需要学习哪些内容?1.4.1应用软件开发:1.4.2系统软件开发:1.1 什么是嵌入式?嵌入式系统(Embedded System): 一种嵌...
cherr番茄
2022-02-24 06:29:14
嵌入式开发要学什么
[td] 最近遇到很多处于迷茫中的新手,在纠结要不要去学嵌入式,主要问题在于嵌入式的门槛非常高,经验少、或者非电子专业投身嵌入式行业能否发展下去。现在嵌入式开发行业的确发展很好,大多数从业者都是
xzx1
2021-01-18 06:36:18
嵌入式开发的优缺点是什么?
一.嵌入式开发概述:嵌入式:在已有硬件上移植操作系统,解决软硬件耦合度高导致的问题。(打个比方:软件的实现是为了调用open()函数,那么嵌入式开发就是在操作系统中实现open()函数对硬件的调用
叹久
2021-11-08 07:42:13
嵌入式开发前景怎么样?
嵌入式开发前景非常广阔,这主要得益于物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
2024-07-10 09:00:29
嵌入式开发流程是怎样的?
本篇文章整理下嵌入式开发中一些入门的基础技能,都是根据以往的工程经验整理,适用于之前没做过嵌入式开发的新手。嵌入式开发流程一般如下,一般是在PC机的Windows系统下安装Ubuntu虚拟机,搭建
来自南方的狼
2021-11-08 06:24:02
嵌入式开发的流程_嵌入式开发的前景
当前,嵌入式开发已经逐步规范化,在遵循一般工程开发流程的基础上,嵌入式开发有其自身的一些特点。主要包括系统需求分析(要求有严格规范的技术要求)、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最终得到产品。
2020-07-30 11:23:57
嵌入式开发的核心竞争力有哪些?
个人发挥的足够空间,而且都是未来人们科技生活中普遍用得到的方向。三,解决问题能力强。由于嵌入式开发必须要有非常丰富产品经验。在产品开发中如遇到问题,能够从硬件方面和软件方面综合考虑问题的出在哪里,快速
cdhqyj
2020-11-27 15:00:42
什么是嵌入式技术?嵌入式开发方向是什么?
嵌入式系统开发概述1、什么是嵌入式技术?答:操作系统—>嵌入式操作系统:管理资源,解耦软硬件。2、嵌入式开发方向:入式上层应用开发、嵌入式底层系统软件开发、嵌入式系统工程师。3、嵌入式学习路线
cd340823
2021-11-05 09:00:56
嵌入式开发:高门槛的系统性工程与 996 的行业困局
嵌入式开发的门槛,往往被培训机构和表象所掩盖。许多人误以为 “用 C 语言写个跑在 ARM 上的程序” 就是嵌入式,实则连皮毛都未触及。真正的嵌入式开发是硬件与软件深度融合的系统性工程,需跨越三重壁垒
2025-04-09 11:06:40
信必优嵌入式开发的相关资料分享
在 IoT(物联网)的世界,一切都是数字化的 – “智能”手表、“智能”汽车乃至“智能”家具 – 所有设备都经过特殊设计,可与用户无缝连接。这一切背后的技术就是嵌入式开发 – 它是汽车、可穿戴设备
76r456546
2021-11-08 08:01:40
嵌入式开发与非嵌入式开发的区别
通过初步的学习,了解到嵌入式是在已有的硬件上移植操作系统,在操作系统之上做上层应用开发,在操作系统之下做底层开发。嵌入式开发与非嵌入式开发的区别在于软件的耦合度不同等,众所周知,在单片机的开发中
青sky
2021-10-27 06:26:01
嵌入式开发中常用的软件架构
单片机软件开发的初期大多数开发者采用的都是简单的前后台顺序执行架构(我就是这样的)。在嵌入式软件开发中,程序架构主要分为三种,本篇文章将对这三种程序架构做出详解。
2021-01-01 10:16:00
嵌入式开发的优缺点?
学习笔记一:嵌入式系统课程学习储备知识:C语言+单片机(硬件的工作原理)1、嵌入式技术是什么?嵌入式软件与非嵌入式软件的区别?嵌入式开发与单片机开发的区别?嵌入式开发的优缺点?嵌入式技术是以应用为
horayte
2021-11-08 06:13:44
嵌入式开发中为什么选择C语言?它有哪些特点?
,操作系统是嵌入式开发的核心,操作系统的内核和驱动都是C语言编写的。在这之前小编先给大家介绍一下沐渥科技的嵌入式开发流程:前期进行需求分析、功能描述、模块划分和进度划分
2023-01-04 09:56:12
什么是嵌入式开发呢
地,所以对自动化农业、机器人这些就很感兴趣,也就误打误撞的,报考了自动化专业,自然而言的,工作后,也是就沉浸在了这个行业之中。其实,包括自己,在刚开始做这些的时候,对嵌入式开发的概念都是很模糊的。那么,什么是嵌入式开发呢?首先,我们要知道,什么叫嵌入式,是单片机才叫做嵌入式吗?答案是当然不是。在一切智能化的设备
哼小曲
2021-11-05 07:24:09
嵌入式开发教程哪家好呢?
嵌入式培训来加入这个行业。那么嵌入式开发教程哪家好呢?市场上需要的嵌入式人才必须具备C语言编程经验、嵌入式操作系统(嵌入式Linux)经验、内核裁剪经验、驱动程序开发经验,比如高级嵌入式软件开发工程师相关...
陈囝囝100
2021-11-08 06:09:02
如何在Nios II平台搭建RTEMS嵌入式开发环境
随着技术的不断发展,嵌入式技术逐渐成为计算机技术的一个重要分支。由于嵌入式产品所运用场合多种多样,不同应用场景对嵌入式实时响应、成本都有着不同的需求。嵌入式开发涉及硬件和软件设计,其中硬件开发包括板
2019-07-11 08:19:00
嵌入式开发的应用重点是什么
尽管物联网,嵌入式视觉,机器学习和其他新兴技术在开发组织中的重要性日益提高,但C和C ++仍是嵌入式开发人员中占主导地位的编程语言。
2019-12-27 16:17:33
嵌入式开发测试秘诀
在嵌入式软件开发过程中,花在测试和花在编码的时间比通常在3:1左右(实际上可能更多)。这个比例会随着工程师编程、测试水平的提高而不断下降,但无论如何,软件测试都是嵌入式软件开发中至关重要的部分
2023-11-24 16:18:07