常用的嵌入式开发工具
好的,嵌入式开发涉及多个环节(硬件设计、软件开发、调试、测试等),每个环节都有常用的工具。以下是主要分类和常用工具的中文名称(括号内通常会包含常用英文名称或品牌):
一、 集成开发环境
这是最核心的软件工具,用于编写、编译、链接、调试代码。
- Keil MDK / Keil C51: (ARM架构最流行之一) - 由ARM公司所有,专注于ARM Cortex-M内核的微控制器开发。包含编辑器、编译器、调试器等。
- IAR Embedded Workbench: (支持多种架构) - 支持多种处理器架构(ARM, RISC-V, AVR, MSP430等),以代码效率和稳定性著称。
- STM32CubeIDE: (ST主推的免费IDE) - 意法半导体基于Eclipse和GCC工具链开发的免费IDE,专为STM32系列MCU优化,集成STM32CubeMX功能。
- Eclipse + 插件: (强大的开源框架) - 免费开源的框架,通过安装不同插件(如CDT - C/C++ Development Tooling, GNU ARM Eclipse插件等)可以构建强大的嵌入式开发环境,常用于配合GCC工具链。
- RT-Thread Studio: (国产RTOS IDE) - 基于Eclipse,深度整合国产开源RTOS RT-Thread及其软件包生态的开发环境。
- MRS (MounRiver Studio): (国产MCU常用) - 沁恒微电子推出的基于Eclipse的IDE,支持其自有内核和部分ARM内核芯片。
- Arduino IDE: (快速原型开发) - 针对Arduino平台的简易IDE,图形化操作多,上手简单,适合初学者和快速原型验证。
二、 编译器/工具链
负责将C/C++等源代码翻译成目标微控制器能执行的机器码(二进制文件)。
- GCC (GNU Compiler Collection): 免费开源的编译器集合,支持多种架构(如
arm-none-eabi-gcc用于ARM Cortex-M/R/A),是许多商业IDE(如STM32CubeIDE, Eclipse插件)和开源项目的基石。 - Keil ARMCC (ARM Compiler): MDK内置的商业编译器,由ARM开发,以优化程度高著称(通常性能优于GCC,但收费)。
- IAR C/C++ Compiler: IAR EW内置的商业编译器,以其优异的代码密度和执行效率闻名(收费)。
- Clang/LLVM: 开源编译器框架,近年来在嵌入式领域的支持也在增强,某些工具链(如Zephyr SDK)可能使用它构建。
三、 调试器/仿真器
连接开发主机和开发板/目标芯片的硬件设备/软件接口,用于下载程序、在线调试(设置断点、单步执行、查看变量寄存器等)。
- J-Link: (由SEGGER公司开发) - 业界标杆之一,支持极广的ARM Cortex系列微控制器,调试速度快,稳定性好。有基础版J-Link EDU/Base和功能更强的J-Link Pro/Ultra等型号。
- ST-LINK/V2, ST-LINK/V3: (意法半导体官方调试器) - 主要用于STM8和STM32系列芯片,通常集成在其评估板上,也有独立调试器。成本较低,性能满足大部分开发需求。
- ULINK: (Keil官方调试器) - 配合Keil MDK使用的USB-JTAG/SWD适配器。
- J-Link OB (On-Board): (芯片内置或板载) - 很多开发板/核心板上会直接集成一个简化的J-Link调试器接口(USB口直接连接PC)。
- DAPLink / CMSIS-DAP: (ARM开源调试器固件) - 基于ARM Cortex-M处理器的开源调试器固件标准,很多开源或低成本开发板(如Arduino Due, 树莓派 Pico)使用此协议。功能比J-Link简单,但成本低。
- OpenOCD (Open On-Chip Debugger): (开源软件调试接口) - 开源软件,配合各种硬件调试探头(如FT2232等接口芯片的板子,或J-Link, ST-LINK等),为主机软件(如GDB, Eclipse)提供调试服务器功能。非常灵活,是开源工具链的重要组成部分。
四、 版本控制系统
管理源代码变更历史,团队协作必备。
- Git: - 当前最主流的分布式版本控制系统。常用平台:
- GitHub: 全球最大的开源代码托管平台。
- GitLab: 提供开源和自托管企业版解决方案。
- Gitee (码云): 国内较大的代码托管平台。
- Bitbucket: Atlassian提供的代码托管平台。
- SVN (Subversion): - 传统的集中式版本控制系统,仍在一些企业中广泛使用。
五、 构建系统
自动化编译和构建过程(调用编译器、链接器,管理依赖等)。
- Make + Makefile: - 经典的构建工具,通过编写Makefile定义构建规则。
- CMake: - 更现代的跨平台构建系统生成器。开发者编写
CMakeLists.txt文件描述项目,CMake生成特定平台/IDE所需的构建脚本(如Makefiles, Ninja files, Visual Studio项目文件等)。 - Ninja: - 一个小巧而快速的构建系统工具,通常由CMake调用生成其构建文件。
六、 硬件辅助调试与分析工具
用于分析硬件行为、通信协议、功耗等。
- 万用表: 基础必备,测量电压、电流、通断、电阻等。
- 逻辑分析仪: 捕获和分析多个数字信号线上的时序逻辑关系(如SPI, I2C, UART, GPIO等)。常用品牌:
- Saleae: 易用性好,软件功能强大(软件收费)。
- Kingst VIS: (金思特) - 国产,性价比较高。
- Sigrok / PulseView: 开源软件,支持多种硬件。
- 示波器: 观察和测量电信号波形(电压随时间的变化),模拟和数字信号均可分析,应用范围极广。品牌如Keysight(是德), Tektronix(泰克), Rigol(普源精电), Siglent(鼎阳科技)等。
- 协议分析仪: 专用于分析和调试特定高速复杂协议(如USB, PCIe, Ethernet等),功能比逻辑分析仪更专精深入。
- 串口调试助手 / 终端: 通过UART/RS232与目标板进行通信,发送接收数据,常用于打印日志、命令行交互。软件如:
- PuTTY: 经典免费工具。
- Tera Term: 开源免费工具。
- SecureCRT: 商业软件,功能强大。
- MobaXterm: 功能丰富的终端工具(免费/付费版)。
- VS Code 串口插件: 在代码编辑器中直接进行串口通信。
- 网络调试助手: 用于调试TCP/UDP等网络通信。如网络调试助手,Wireshark等。
- 在线仿真器: 相比普通的调试器(基于JTAG/SWD),ICE通常功能更强大,能提供非侵入式的指令跟踪、实时跟踪信息等。成本较高,常用于复杂SOC或深度性能优化分析。
七、 设计、建模与仿真工具
- Altium Designer: 强大的专业PCB设计软件。
- KiCad: 优秀的开源PCB设计工具。
- Cadence Allegro / OrCAD: 高端PCB设计套件。
- Multisim / Proteus: 电路仿真软件,Proteus还支持嵌入式软件的协同仿真。
- MATLAB / Simulink: 强大的数学计算、建模和动态系统仿真环境,常用于算法开发、控制系统设计,并可生成嵌入式C代码(Embedded Coder)。
- Wireshark: 网络封包分析工具,用于调试网络协议栈(如LwIP)。
八、 其他实用工具
- 文本/代码编辑器: 如 Notepad++, Sublime Text, VS Code。VS Code + 嵌入式相关插件(C/C++, Cortex-Debug, PlatformIO等)可以作为强大的轻量级IDE。
- 二进制文件工具:
- objcopy / objdump (GNU Binutils): 处理目标文件和二进制文件(格式转换、信息查看等)。
- J-Link Commander / J-Link RTT Viewer / STM32CubeProgrammer: 特定烧录器/调试器自带的命令行或GUI工具,用于擦写Flash、查看内存、使用RTT等。
- SRecord: 处理各种格式的Flash编程文件。
- 静态代码分析工具: 如 PC-lint / MISRA C 检查工具,帮助检查代码规范性和潜在问题。
- 轻量级RTOS: 如 FreeRTOS, RT-Thread, Zephyr OS, µC/OS,虽然不是传统意义上的“工具”,但它们是嵌入式项目的关键基础软件平台。
总结:
一个典型的嵌入式开发流程可能会用到:
- IDE/编辑器 + 工具链 (Keil/IAR/Eclipse+GCC): 写代码、编译、链接。
- 调试器探头 (J-Link/ST-LINK) + IDE内调试器: 下载程序、在线调试。
- 串口终端工具 (PuTTY): 查看串口日志输出。
- 版本控制 (Git): 管理代码。
- 万用表/示波器/逻辑分析仪: 解决硬件问题,分析信号。
- (可选) 构建系统 (Make/CMake): 自动化构建过程。
根据项目的具体需求(芯片架构、复杂度、团队规模、预算等),开发者会选择合适的工具组合。
如何利用现代嵌入式开发工具中的堆栈保护功能
以被广泛使用的IAR Embedded Workbench for Arm嵌入式开发工具为例,使用Project》Options》C/C++ Compiler》Code》Stack protection选项,即可针对被认定为需要保护的函数启用堆栈保护。
2022-03-29 14:50:38
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
龙芯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是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览