翻译自这篇博文

不同物理设备之间的数字转换可以说是随处可见,让其智能又强大。驱动设备的引擎是嵌入式软件,它是快速发展的IoT生态系统中不可或缺的一部分。

本篇博客主要谈嵌入式软件开发工具。解释什么是嵌入式系统以及需要什么工具能够构建出来一个。你将了解到现在IT市场上最受欢迎的、可用的嵌入式系统软件开发工具。

什么是嵌入式软件

桌面软件是为计算机编写的,而嵌入式软件就是针对非计算机硬件并控制其功能。硬件包括各种各样的监控设备、传感器、可穿戴设备以及基于所有的现代电器设备。嵌入式技术与网络、信息科技一起构成了IoT系统,并被广泛用于医疗、制造业、工业自动化以及运输、航空(Aviation)等领域。
桌面程序和嵌入式程序最核心的区别存在于它们的目的不同。通用的计算机被用于多种意图,这就是它们的软件在众多设备上运行并且可以被重置。相反地,嵌入式软件被用于服务某种它能够运行的设备。除此之外,嵌入式解决方案的开发要考虑环境因素如温度或者湿度,这些会影响设备的运行和性能。
嵌入式系统是硬件模块和软件模块的集合。
嵌入式系统的硬件至少要包括以下基础的组件:

  • 电源
  • SoM(System-on-a-Module)/SoC(System-on-a-Chip)——一个具有微处理器、外围设别、内存以及IO口的板子
    嵌入式系统的软件至少要包括以下基础的组件:
  • 操作系统:Windows CE、Yocto Linux、ThreadX、Nucleus RTOS
  • 语言:C、C++、Python、JavaScript等
  • 工具:IDE、SDK、PDK、编译工具链、软硬件调试器(ST-Link、Segger)

操作系统构成如下图所示。
前10的嵌入式软件开发工具

嵌入式软件开发工具种类

下面是不同的嵌入式软件设计开发工具及描述。

编辑器

文本编辑器是你开始创建嵌入式系统的第一个工具,可以用之来写C和C++源码,保存为文本格式。Geany就是一个很好的例子,不仅内存占用少而且轻量级。支持C、Java、PHP、HTML、Python、Perl、Pascal和其他文件类型。
基础功能有:

  • 语法高亮
  • 代码折叠
  • 自动补全
  • 自动关闭XML和HTML标记
  • 代码定位
编译器

源码使用高级语言写的。编译器就是用来将高级语言代码翻译成低级语言代码——机器能理解的。
Keil C51是一个最受欢迎的编译器,用它来创建8051单片机的应用,翻译用C语言写的源码。

汇编器

这个工具的功能是将人们写的代码转换成机器语言,与直接翻译的编译器相比,汇编器先将源码转换成对象码,最后再到机器语言。
GNU Assembler(GAS)被广泛用于Linux操作系统,可以在Macintosh tools package中找到。

调试器

这是一个重要的测试工具。浏览代码查找bugs和errors,并通知他们出现的位置。调试器可以指出问题出现的行数,因此开发者可以迅速地进行定位。IDA Pro是可以运行在主流操作上的调试器,广受开发者的欢迎。

链接器

几乎所有的代码都是分片、分模块写的。链接器就是用于将这些分散的代码片连接起来,来创建一个可运行的程序。GNU Id是其中一个链接器。

模拟器

模拟器是目标系统的替代品,具有相同的功能和组件。该工具用来模拟软件性能,查看代码在实时环境中如何工作的。开发者可以通过有序得改变参数值来达到立理想的代码性能。一旦所有的代码被检查一遍,就可以嵌入到设备上。

IDE工具

谈到嵌入式软件开发工具我们不得不说集成开发环境,上边提及的所有工具都需要来创建嵌入式软件。如果分开使用他们会很不方便,增加了项目构建的复杂度。因此,强烈建议使用集成环境。IDE就是对一系列的来发工具进行打包来为开发者提供开发服务。
下年列出了市场上一些最受欢迎的IDE软件。

  1. PyCharm
    一个名为JetBrains的捷克国家的公司开发的这个IDE软件。毋庸置疑,PyCharm适合做跨平台的开发,因为它支持在三种主流操作系统上JavaScriptCoffeeScriptTypeScriptCythonSQLHTML/CSSAngularJSNode.js模板语言以及其他的编程语言的开发。
    PyCharm提供高产出的嵌入式软件开发:
    @ 智能代码补全
    @ 错误高亮及修复
    @ 自动代码重构
    @ 简单的项目切换
    @ 集成测试
    @ 虚拟机远程开发
    @ 支持网页开发框架,像DjangoFlaskGoogle APP EnginePyramidweb2py
    PyCharm有三种版本供君挑选,社区版、专业版以及教育版,被认为是针对不同编程意图完美的工具。

  2. WebStorm

  3. Qt Creator

  4. MPLAB X

  5. Visual Studio

  6. Eclipse

  7. NetBeans

  8. MATLAB

  9. Arduino
    一款开源的IDE软件,为了Arduino微处理器而生,其丰富的特性和库使得嵌入式开发者更简单。
    主要的优点有:
    @ 带完整组件的开发板
    @ 带实例代码的库
    @ 容易上手
    @ 开源、可扩展的软硬件
    @ 跨平台
    @ 社区活跃

  10. ARM Keil
    ARM Keil开发工具为基于ARM的设备创建嵌入式应用程序提供了完整的环境。这个软件包涵盖了C/C++编译器、模拟模块、调试器、链接器、汇编器以及中间件库。
    除此之外,ARM Keil为基于Cortex、ARM处理器的设备提供了模拟板。
    优点在于:
    @ 容易上手
    @ 接口丰富
    @ 整合第三方库
    @ 项目示例
    @ 技术支持
    @ 适合初学者和专业者

很难说你应该选择哪一款工具来进行嵌入式软件开发,因为它们是在是太多了。应该取决于开发者的技能、喜好以及项目需要。在任何情况下,以上所有工具都能帮助开发者加速嵌入式软件开发。

相关文章: