【软考中级-嵌入式笔记】第二章 嵌入式系统软件

1.嵌入式系统软件

1.1 嵌入式软件概述

嵌入式软件是指应用在嵌入式计算机系统中的各种软件

其特点有:

        规模较小

        开发难度大,开发人员对硬件和软件都要了解,且开发环境和运行环境不同;

        实时性、可靠性要求比较高;

        要求固化存储,如程序写入flash。

注:固化不是说程序永远不变,而是暂时不变。

1.2 嵌入式软件分类

类型

功能

示例

说明

系统软件

控制、管理系统资源

嵌入式操作系统、设备驱动程序、中间件等

可能在选择题出现,判断软件类型

应用软件

定义了嵌入式设备的主要功能和用途,并负责与用户交互。

手机软件、路由器软件、交换机软件、飞控软件等

支撑软件

辅助软件开发的工具

系统分析设计工具、仿真开发工具、交叉编译器、测试工具等。

1.3 嵌入式软件的体系结构

1.3.1无操作系统阶段

无操作系统的嵌入式软件有两种实现方式: 循环轮转 和 前后台系统

循环轮转:将系统功能分解为若干不同的任务,将他们放在一个无限循环中按照顺序执行。优点是简单、直观、开销较小(系统只有一条执行流程和一个地址空间)、可预测(程序固定,函数调用关系明确);缺点是过于简单,所有的代码顺序执行,无法执行异常事件,缺少并行处理能力;

前后台系统:在循环轮转方式中增加了中断处理功能前台程序(事件处理级)是中断服务程序,负责处理异步事务;后台程序(任务级)是一个无限循环,负责资源分配、管理和系统调度;系统运行时,后台程序会检测每个任务是否具备运行条件,对实时性要求高的操作通常由中断完成;前后台系统任务所有的任务具有相同的优先级,任务的执行是通过先进先出队列排队;实时性较差;

1.3.2有操作系统阶段

嵌入式设备上开始运行操作系统,应用开始在操作系统基础上编写。提高了系统可靠性;提高了系统的开发效率,降低了开发成本,缩短了开发周期;有利于系统的扩展和移植;

1.4 设备驱动层(★★★)

大多数嵌入式硬件都需要某种类型软件的初始化和管理。这部分工作由设备驱动层来完成,它负责与硬件设备打交道,对硬件进行管理和控制,为上层软件提供所需的驱动支持。

设备驱动层也叫板级支持包BSP(Board Support Package)包含嵌入式系统中所有与硬件相关的代码,把嵌入式操作系统与具体的硬件平台隔离开来;即把硬件相关的代码都封装起来,向上提供一个虚拟的硬件平台,操作系统就运行在这个虚拟的硬件平台上,操作系统使用一组定义好的编程接口来和BSP进行交互,并通过BSP来访问真正的硬件;

BSP一般包括 BootLoader 和 设备驱动程序

Bootloader (引导加载程序)是嵌入式系统上电后运行的第一段软件代码。Bootloader的实现高度依赖于具体的硬件平台,主要的功能是:

  1. 片级初始化:主要完成微处理器的初始化;把微处理器从上电默认状态设置为系统要求的状态;纯硬件的初始化过程;
  2. 板级初始化:设置各种硬件寄存器来完成微处理器以外的其他硬件设备的初始化;设备某些软件的数据结构和参数;同时有软件和硬件的初始化过程;
  3. 加载内核:将操作系统和应用程序的映像从Flash存储器赋值到系统内存中;跳转到系统内核的第一条指令处执行;

设备驱动程序:嵌入式系统中不一定都有操作系统,但是设备驱动程序是必不可少的设备驱动程序,是一组库函数,用来硬件进行初始化和管理,并向上层软件提供良好的访问接口

主要可以实现对硬件的:启动、关闭、停用、启用、读操作、写操作;还有一些特定的功能,一般通过函数的形式来实现。这些函数一般有两种组织结构:

  1. 分层结构:把设备驱动程序中的所有函数分为两类:硬件接口(直接操作和控制硬件设备)和上层接口(给上层软件提供调用接口);
  2. 混合结构:上层接口和硬件接口的函数混在一起、相互调用,没有明确的层次关系。

1.5 嵌入式中间件

中间件在操作系统内核、设备驱动程序和应用软件之外的所有系统软件

把原本应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在它上面的那些应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台;根据功能分为不同的类型:消息中间件、对象中间件、远程过程调用、数据库访问中间件、安全中间件等;

优点:可以有效的实现软件的可重用,降低应用软件的复杂性,提高系统的开发效率,缩短开发周期,节约开发成本和维护费用,保证了系统的高伸缩性、易升级性

缺点:会带来额外的开销

1.6 运行流程

基于多任务操作系统的嵌入式系统的软件流程可以分为五个阶段

2 嵌入式操作系统概述

主要出现在选择题中

嵌入式操作系统的基本概念(★★)

嵌入式操作系统的分类(★★★)

常见的嵌入式操作系统(★★)

2.1嵌入式操作系统基本概念(★★)

2.1.1 功能

与通用操作系统类似,也可以从两个方面描述嵌入式操作系统的功能。

通用功能

嵌入式操作系统(embedded Operationg System,EOS):工作在嵌入式环境中的操作系统

可以从两个方面描述嵌入式操作系统的功能

  1. 从软件开发的角度,可以把嵌入式操作系统看作一种扩展机或虚拟机;将底层的硬件细节分装起来,为运行在它上面的软件提供了一个抽象的编程接口,即操作系统对外提供的系统调用函数;
  2. 从系统管理角度,可以把EOS看成系统资源的管理者,负责管理系统当中的各种软硬件资源。

特有功能

嵌入式操作系统一般具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有:

  • 非通用型操作系统;
  • 在性能和实用性方面可能有严格的限制;
  • 能源、成本和可靠性通常是影响设计的重要因素;
  • 占用资源少,适合在有限存储空间运行;
  • 可裁剪、可配置。

2.1.2 内核

不同的嵌入式操作系统,包含的组件各不相同,但所有的操作系统都会有一个内核。

内核是指操作系统中的一个组件,包含了操作系统的主要功能,即操作系统的各种特性及其相互之间的依赖关系

内核的主要功能:

任务管理:对系统中运行的软件进行描述和管理,并完成处理器资源分配和调度;

存储管理:提高内存的利用率,方便用户使用,提供足够的存储空间;

I/O设备管理:方便设备的使用,提高CPU和IO设备的利用率;

文件管理: 解决文件资源存储、共享、保密和保护等问题;

NOTE:不同嵌入式系统的内核设计各不相同,不一定都包含上述的四个功能;取决于系统的设计和需求;

2.2 嵌入式操作系统的分类

2.2.1 按系统类型分类

商用系统:商业化的嵌入式OS;功能强大、性能稳定、应用范围相对较广、辅助软件工具齐全;价格较贵;如 VxWorks、Windows CE;

专用系统:专业厂家为本公司的产品特别定制的嵌入式OS;

开源系统:开放源代码的嵌入式操作系统;免费、开源、性能优良、资源丰富、技术支持性强;如uC/OS,linux等。

2.2.2 按响应时间分类

硬实时系统:系统对响应时间有严格要求,若响应时间不能满足,会引起系统的崩溃或致命错误;

软实时系统:系统对响应时间有要求,若响应时间不能满足,会带来额外的可接受的代价;

非实时系统:响应时间没有严格要求,如分时操作系统,基于公平性原则,各进程分享处理器,获得大致相同的运行时间。

2.2.3 按软件结构分类

结构

说明

示例

特点

单体结构

中间件和设备驱动程序都集成在内核中,系统只有一个可执行文件,包含多个功能组件,功能模块之间可以相互调用。

Linux

uc/OS

优点:性能好,系统各模块可相互调用,通信开销比较小

缺点:体积庞大、集成度太高,修改和调试困难

分层结构

操作系统划分为若干个层次,各个层次之间单向调用,上层调用下层接口;只有一个可执行文件,包含设备驱动程序和中间件;

MS-DOS

优点:开发维护简单,模块可单独替换;

缺点:每个层次都要提供接口,带来额外开销;

微内核结构

(客户/服务结构)

内核中的大部分功能剥离出去,只保留核心的功能单元

VxWorks

QNX

OS-9

C Executive

CMX-RTX

优点:内核非常小,易于扩展、调试方便;功能组件可以动态添加;安全性高;可执行性好;

缺点:通过微内核通信比系统调用更耗时,实时性稍差;客户单元和服务单元内存空间地址独立,切换时有额外开销。

2.3 常见嵌入式操作系统

系统

特点

VxWorks

实时操作系统,基于微内核结构,嵌入式领域应用最广泛、市场占用率最高的商业系统;

嵌入式linux

高性能、可裁剪的内容;完善的网络通信和文件管理机制;优秀的开发工具;免费、开源;广泛的硬件支持;软件资源丰富。

Windows CE

基于优先级的多任务操作系统,用在个人数字助理和智能电话等个人手持终端;

uC/OS-II

免费、开源、结构小巧、基于可抢占优先级调度的实时操作系统;面向中小型嵌入式系统。

QNX

实时的,可扩充的操作系统,内核极小,运行速度极快

PalmOS

32的嵌入式操作系统,应用在PDA和手机等手持移动终端上

pSOS

高性能、高可靠性的实时操作系统,实现从简单的单个独立设备到复杂的、网络化的多处理器系统。

OS-9

提供了很好的安全性和容错性,灵活性和可升级性非常突出,应用在高科技产品中。

LynxOS

分布式、嵌入式、可规模扩展的实时操作系统

天脉操作系统

根据机载领域需求和特点而研制的嵌入式实时操作系统。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值