嵌入式系统软件

283 阅读5分钟

Embedded Systems Software

嵌入式系统软件的定义

嵌入式系统软件是一套特殊的编程工具,用于嵌入式设备,使机器能够顺利地执行。该软件管理着众多的物理设备和系统。嵌入式系统软件的主要概念是在不牺牲其实用性或性能的情况下管理一组硬件组件的运作。

什么是嵌入式系统软件?

嵌入式系统是由芯片上的微控制器或微处理器模块,以及额外的外部设备组成的,在一个更大的机械设备系统内执行特定的功能或管理特定的应用。内存、处理器和振荡器构成了嵌入式系统。

固件和应用程序是嵌入式系统中利用的两种形式的软件。固件是写在嵌入式系统内的非易失性存储中的软件,不能被改变或删除。许多嵌入式系统的固件保存在电可擦除的可编程只读存储器(EEPROM)中。固件通常用于启动或重新启动一个设备。

顶级嵌入式系统软件

嵌入式系统代码通常是在PIC和Freescale等著名芯片供应商以及ARM等框架设计者的IDE中编写的。下面将讨论通常用于嵌入式系统方法的众多形式的嵌入式软件。

1.Qt Creator

Qt Creator是一套完整的库、API和工具,用于使用Qt交互式环境以C++、JavaScript和QML开发嵌入式软件。Qt Creator支持许多命令行选项。

2.LABVIEW

实验室虚拟仪器工程工作台是LABVIEW的缩写。使用这个软件也可以看到输出。采集的数据、工业自动化和仪器仪表是LabVIEW能做的基本功能。

这个软件主要是用于可视化编程语言的使用。

以下是LabVIEW的一些优势。

- 库
- 连接到设备
- 用于并行编程的用户社区

3.Arduino

Arduino是一个开源的IDE,可以帮助开发Arduino微控制器的程序。Sketches,其扩展名为.ino,是你在Arduino软件上编写的代码。它包括几个功能和库,通过提供方便的访问,使嵌入式程序员的生活更容易。
以下是主要的好处:
- 建议建造的板子,包括所有必要的组件
- 代码例子在库中可以找到。
- 开源和可扩展的硬件和软件
- 支持Windows、Mac OS和Linux跨平台
- 可以进入一个大的社区
- 简单易懂,易于应用

4.ARM的Keil

ARM的Keil开发工具提供了一个完整的平台,用于为广泛的基于ARM的设备创建嵌入式应用。顶级的C/C++编译器、仿真器、调试器、链接器、汇编器和中间件库都包含在软件包中,所以它们都很容易使用。

5.MATLAB

MATLAB是一个软件包,包括工具和技术计算的编程语言。各个领域的程序员都使用MATLAB来创建界面设计、执行算法,以及处理数据图、方程、矢量和图表。

架构嵌入式系统软件

嵌入式软件有一个单一的目的,是专门为其将运行的硬件设计的。微控制器装载有嵌入式软件或程序,随后处理所有操作。一个嵌入式系统是由硬件和软件模块组成的。嵌入式系统代码通常是在PIC和Freescale等主要芯片供应商以及ARM等架构设计师的IDE中编写的。

而软件架构则是由决定计算机元素的架构(来自系统架构的元素)的组件组成的。下面的插图说明了这一点。

1

一个具有众多层次的软件被称为嵌入式软件架构。在嵌入式软件中,最主要的层是。

1.应用层
2.中间件层
3.固件层

  • 应用层通常用高级语言编写,如Java、C++和C#,包括一个复杂的用户界面。为了响应用户动作或事件,应用层与中间件API联系。
  • 中间件层主要用C++和C语言构建,不支持复杂的用户界面。设备的状态机由中间件软件维护。它还负责处理来自高层和低层的请求。为了使用中间件的服务,应用程序必须调用中间件所暴露的一组API函数。反过来,中间件可以通过IPC协议向应用层提供数据。
  • 固件层主要是在任何时候都要写。该软件负责与芯片组进行通信,无论是配置寄存器还是从寄存器中提取。网关可以调用一组由固件暴露的API。以便能够完成特定的任务。

嵌入式系统软件安全与保障

设计和提供一个安全的嵌入式软件系统是一个微妙的平衡行为,需要专业知识和技能组合来完成一个计算资源有限的系统中的竞争标准。当然,不仅是对一个完整的操作安全的软件系统,而且对其部件,可用性和性能也是至关重要的。例如,监测传达自动门状况的硬件传感器的程序,必须按照规定的顺序进行每项检查(可靠性)。
嵌入式系统有时缺乏运行防病毒程序等程序所需的计算能力,以保护它们免受计算机黑客攻击。考虑到一个实际有用的系统必须始终拥有可靠运行所需的功率、CPU周期、内存和其他资源。我们在这里重点讨论的是嵌入式系统软件,尽管我们希望系统能使用硬件能力,包括安全启动、可信平台模块(TPM)、ARM信任区和异常级别以及x86环。无形的资源,以及这些 "软技能",即规划、生产和实施此类系统的工作场所文化,对于在嵌入式系统中成功实施功能安全和网络安全至关重要。

结论

因此,我们已经看到了与嵌入式系统软件有关的工具。我们也看到了开发平台中包含的架构思想,以帮助实施优秀的软件设计实践。