嵌入式学习笔记(一)嵌入式操作系统测试

article/2025/10/20 7:51:56

嵌入式操作系统产品在学习的过程中,了解产品特性能够有助于学习产品功能,并且能够从用户角度发掘产品需要满足的重要特征,从而提炼产品特点,并且化作产品亮点,转化为产品未来占领市场、提升竞争力的关键切入点。

通过对嵌入式操作系统测试工作了解,可学习到客户对产品功能要求,对产品的功能、性能标准有概要性意识,在后续工作中有助于理解产品特征。

> 嵌入式操作系统如何测试

操作系统由多个功能相对独立、且离散的模块组成,自身不能独立运行,只有当应用软件调用操作系统时才能构成完整的运行体系,相关模块的相互配合,对应用软件实施有效地控制和管理。同时,操作系统各功能模块的运行时间与应用环境密切相关。不同的操作系统在体系结构、设计思想上都有很大差异。另外,随着 CPU 运算速度的提高,人们对操作系统时间特性的关注己逐渐降低,而更关心操作系统的稳定性、安全性、可扩充性、开放性、成熟度和广泛的第三方支持能力等方面。要想设计出一套能全面反映出操作系统性能的测试用例是非常困难的,因此,尽可能以实际应用为参考背景来设计测试用例,综合评价和考察一个操作系统能否满足使用要求和能否得到持久稳定的技术支持就显更为重要和实际。

嵌入式实时操作系统(RTOS)是嵌入式系统的基础运行平台,是嵌入式系统稳定、可靠工作的基础,其功能和性能的好坏将直接影响嵌入式系统的功能和性能

本文通过对嵌入式实时操作系统进行功能测试、性能测试、比对测试和适应性测试,获得比较准确的定量和定性数据,为用户选择合适的嵌入式实时操作系统提供参考依据

目录
嵌入式操作系统简介
测试项目介绍
测试环境
测试工具
测试方法

嵌入式操作系统简介

嵌入式系统的核心计算系统可以抽象出一个典型的组成模型:硬件层、中间层、软件层和功能层
在这里插入图片描述

1.1 硬件层

硬件层中包含嵌入式微处理器、存储器(如 SDRAM、ROM、 Flash等)、通用设备接口和I/O接口(如A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中,操作系统和应用程序都可以固化在ROM中。

(1)嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU的不同在于嵌入式微处理器大多工作在为特定用户群所专门设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS( Microprocessor without Interlocked Piped Stages,无互锁流水级的微处理器)/Power PC、X86、SH等。

(2)存储器
嵌入式系统需要存储器来存放可执行代码和数据。嵌入式系统的存储器包含Cache、内存和外存。
① Cache:Cache是一种容量小、速度快的存储器阵列,它位于内存和嵌入式微处理器内核之间,存放的是近一段时间微处理器使用多的程序代码和数据。在嵌入式系统中,Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache和混合Cache, Cache的大小依不同处理器而定。
②内存:位于微处理器的内部,用来存放系统和用户的程序及数据。片内存储器容量小、速度快。
③外存:外存用来存放大数据量的程序代码或信息,它的容量大,但读取速度与内存相比慢很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有硬盘、NAND Flash、CF卡、MMC、SD卡等。

(3)通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
目前,嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)、IrDA(红外线接口)等

1.2 中间层
硬件层与软件层之间为中间层,也称为硬件抽象层( Hardware Abstract Layer,HAL)或板级支持包( Board support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无须关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。

1.3 软件层
软件层由嵌入式操作系统( Embedded Operation System,EOS)、文件系统、图形用户接口( Graphic User Interface,GUI)、网络系统及通用组件模块组成。EOS是嵌入式应用软件的基础和开发平台。以下先介绍前三种。
(1)嵌入式操作系统
不同功能的嵌入式系统的复杂程度有很大不同。简单的嵌入式系统仅仅具有单一的功能,存储器中的程序就是为了这一功能设计的,其系统处理核心也是单一任务处理器。复杂的嵌入式系统不仅功能强大,往往还配有嵌入式操作系统,如功能强大的智能手机等,几乎具有与微型计算机一样的功能。
嵌入式操作系统( Embedded OperaTIon System,EOS)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着 Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化、应用的专用性等方面具有较为突出的特点。
(2)文件系统
嵌入式文件系统比较简单,主要提供文件存储、检索、更新等功能,一般不提供保护、加密等安全机制。它以系统调用和命令方式提供文件的各种操作,主要有设置、修改对文件和目录的存取权限,提供建立、修改、改变和删除目录等服务,提供创建、打开、读写、关闭和撤销文件等服务。
(3)图形用户接口
图形用户接口(GUI)的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用,人们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。

1.4 功能层
功能层也称为应用软件层,应用软件是由基于实时系统开发的应用程序组成,运行在嵌入式操作系统之上,一般情况下与操作系统是分开的。应用软件用来实现对被控制对象的控制功能。功能层是要面对被控对象和用户,为方便用户操作,往往需要提供一个友好的人机界面。

2. 测试项目

2.1 功能性测试
嵌入式实时操作系统的测试,所提供的功能是否能够满足用户使用的要求。对于嵌入式实时操作系统,通常应具备以下功能:
• 进程管理功能;
• 抢占式调度功能;
• 中断管理功能;
• 设备管理功能;
• 文件管理功能;
• 网络管理功能;
• 图形显示功能;
• 裁剪配置功能;
• 调试功能;
• 错误处理功能

2.2 性能测试
性能测试主要是为了获得嵌入式实时操作系统的成熟度、稳定性、可靠性、安全性、开放性和实时性等关键特性指标。
成熟度 一个操作系统从研发成功到能稳定、可靠运行的过程是需要较长时间的,只有经过广泛使用才能逐步走向成熟,成熟度是综合评价操作系统稳定性和可靠性的重要指标。
稳定性 稳定性是反映嵌入式实时操作系统在长时间运行过程中不会出现异常情况,保证应用系统能够稳定、可靠地工作的指标。
可靠性 可靠性是反映嵌入式实时操作系统能够保持正常运行而不受外界影响的能力,通常以系统连续并且可靠运行时间来度量。
安全性 安全性是反映嵌入式实时操作系统能够抵御外部攻击和应用软件自身缺陷的能力。
开放性 开放性是反映嵌入式实时操作系统符合国际和国家标准水平以及能否得到众多第三方(主要包括:驱动程序、开发工具、其它功能软件等)广泛支持的基本条件。
实时性 实时性是反映嵌入式实时操作系统快速响应外部事件的能力。通常包括:系统调用时间、任务切换时间、中断响应和延迟时间、信号量混洗时间、数据包吞吐率等。

1.3 典型应用测试
在领域内选择几种有代表性的系统或设备,在基本不改变应用软件体系结构、功能、性能的条件下进行应用测试,验证嵌入式实时操作系统能否满足实际应用系统对嵌入式实时操作系统的功能和性能要求。

1.4 接口
操作系统的接口是操作系统提供给应用程序使用的 API 函数,通常有两种形式:一种是专用接口,特点是能直接反映该操作系统特色,执行效率高;另外一种是基于 POSIX 标准的接口,便于应用软件移植,执行效率会有些下降,但影响甚微。近几年,由于VxWorks 的大量应用,在一些实时性比较高的领域以成为事实上的标准,为了方便应用程序移植,国内嵌入式操作系统研发单位都增加了兼容 VxWorks 的接口。从原理上讲,这三种接口使用任何一种都可以,而且在性能上影响极小,但从现状出发,考虑应用需求,用基于 VxWorks 接口进行测试更合适些。

3. 测试环境
实时系统通常采用基于宿主机/目标机的开发方式,在宿主机上安装有集成开发环境,用它来完成操作系统的配置、设备驱动程序、应用编程接口(系统调用)以及应用程序的开发、软件下载调试、测试与集成等任务;目标机则可以是实际系统,也可以是模拟环境,是嵌入式实时操作系统和应用软件实际运行的平台。
在这里插入图片描述

测试环境应选择应用领域内普遍采用的硬件环境,并配以必要的测试用例生成环境和测试仪器设备,开发机应采用可以运行与嵌入式实时操作系统配套的集成开发环境的 PC 机、工作站等通用计算机;目标机应选择领域内应用较普遍的单板机、工控机等;外部事件生成环境主要用于模拟产生外部事件,驱动目标机的软件运行,外部事件生成环境可采用满足要求的通用计算机(如配有 8255 并行接口、8251串行接口、以太网接口等);测试仪器可根据测试要求配备,通常可采用多通道逻辑分析仪、数字示波器、或具有专用录取功能的通用 PC 机等。

4 测试工具 (Linux测试工具学习)

Stress:用于给CPU、内存、I/O加压的系统测试工具,使系统在高负载下运行。
Lmbench:Lmbench是一个系统综合性能测试套件,它由Bandwidth基准测试、Latency基准测试、Miscellanious基准测试三类基准测试去衡量操作系统的基本性能。目前,很多Linux操作系统厂商用它来评估自己的产品和与其它Linux产品,进行性能对比分析。
bonnie++:Bonnie++是一个磁盘I/O基准测试套件,主要用于磁盘和文件系统的性能测试。它可以测试文件的创建、读、写和删除等操作,既可以测试小文件,也可以测试大的单个文件。很多硬件和软件厂商用它测试其产品的I/O性能,是一个被广泛应用的工具。
Pingpong:Pingpong是一个Linux线程性能的测试工具,它通过在两个MPI节点之间pingpong消息的进行测试。linux操作系统厂商通常用它来评估系统的线程性能。
Netperf:Netperf是一个网络性能的测量工具,主要针对基于TCP或UDP的传输。根据应用的不同,Netperf可以进行不同模式的网络性能测试。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。

5. 测试方法

5.1 功能测试
功能测试采用静态分析和动态测试相结合的方式,分析所测试的嵌入式实时操作系统所具备的功能是否满足领域应用的需要。分析的内容包括以下几个方面:
源代码是否开放;
支持的设备驱动程序和其它软件是否丰富;
是否有配套的开发工具;
配置、调试方便程度;
错误处理能力;
是否有第三方软件支持;
是否具有持久稳定的技术服务能力

5.2 性能测试
5.2.1 稳定性测试
稳定性可选择压力测试方式。压力测试是一种破坏性的测试,即系统在非正常的、超负荷的条件下的运行情况,用来评估在超越最大负载的情况下系统将如何运行,是系统在正常的情况下对某种负载强度的承受能力的考验。
5.2.2 可靠性测试
可靠性通常采用长时间连续运行相对复杂的测试用例进行测试,以考察操作系统连续工作的能力。
5.2.3 安全性测试
通过模拟外部攻击和内部缺陷进行测试。外部攻击可选择安全操作系统测试的一些用例,内部缺陷模拟则可以人为设计一些有缺陷的程序,考察嵌入式实时操作系统安全防护能力。
5.2.4 实时性测试
实时性是嵌入式实时操作系统最重要的指标之一,也是用户选择嵌入式实时操作系统的主要参考依据。嵌入式实时操作系统的时间性能指标包括各种系统调用时间、上下文切换时间、任务切换时间、任务抢占时间、中断延迟时间、中断响应时间、系统最长封中时间、信号量混洗时间、系统异常恢复时间等,这些时间特性基本上均与应用系统的复杂程度密切相关,而且大多互相关联,非常复杂。从应用角度出发,最关心的时间指标有各种系统调用时间、任务切换时间、中断响应时间等几种。
系统调用时间
测试内容:嵌入式实时操作系统的各种系统调用,得到各种系统调用运行(包括调用成功和调用失败)所花费的时间。
测试方法:测试方法是在调用系统调用之前读出定时器或 CPU 时戳的当前值(设为 t1),在该系统调用结束后再读出定时器或时戳的当前值(t2)。
任务切换时间
测试内容:定义为系统在两个独立的、处于就绪状态并具有不同优先级的任务之间切换所需要的时间。它包括三个部分,即保存当前任务上下文的时间、调度程序选中新任务的时间和恢复新任务上下文的时间。切换所需的时间主要取决于保存任务上下文所用的数据结构以及操作系统采用的调度算法的效率。
测试方法:测试方法是采用两个测试间接地测出任务切换延迟时间。第一个测试称为“交替悬置/恢复任务”时间测试。测得的一个时间周期里包括两次上
下文切换,再加上任务悬置和恢复各一次。第二个测试称为“悬置/恢复任务”时间测试。测得的一个时间周期就不包括上下文切换时间,而只是任务的悬置和恢复时间。用测得的第一个值减去第二个值再减去时间性能测试函数的消耗时间,再除以 2,就得到了任务切换时间。
中断响应时间
测试内容:测试从中断产生到中断处理任务开始执行第一条指令所持续的时间间隔.它通常由四部分组成,即硬件延迟部分(通常可以忽略不计)、系统封中时间、中断预处理时间、以及任务调度时间(仅指单任务、单中断时)。
测试方法:由外部事件模拟器产生等间隔的中断信号,并通过并行接口与目标机相连,由目标机的并行口产生等间隔的中断请求信号。在目标机上运行一个由并行口事件驱动的任务,接到并行口事件后马上向并行接口输出一个信号,然后重新等待并行口事件的产生。用逻辑分析仪监视并行口,可以得到两个信号的时间差,并取其中最长的时间差作为嵌入式实时
操作系统的中断响应时间。

5.3 对比测试
比对测试是在同等试验条件下对几个可选的嵌入式实时操作系统进行功能和性能比较,由于大多数嵌入式实时操作系统的内核是不可更改的,所以对其性能的测试主要在用户层实现。试验的硬件及应用环境必须相同,消除了硬件对系统性能的影响,就可以相对精确和客观地得到被试嵌入式实时操作系统之间的功能和性能差异。
测试内容:比对测试的内容包括功能比对、性能比对和开发配套工具支持比对等。
测试方法:功能和开发配套工具支持比对采用静态分析,性能比对测试采用下图所示的测试环境,完成稳定、可靠性和实时性等几个主要性能指标的测试。
在这里插入图片描述
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
在这里插入图片描述
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
在这里插入图片描述


http://chatgpt.dhexx.cn/article/6MTQCHJO.shtml

相关文章

专业音响常用测试软件,音响师怎么测试音响?离不开这几款音频处理软件!

原标题:音响师怎么测试音响?离不开这几款音频处理软件! 随着计算机技术的快速发展,如今的音响圈大部分设备器材都已经开始迈入数字时代,过去用来作为现场音乐播放的CD机、硬盘机等都被现今以计算机为主体的音频工作站所代替,这样的数字变革不仅带来了音质上的提高,同时也…

linux数字音频播放器,Moode Audio Player数字音频播放系统的体验

Element14 Raspberry Pi 3B Raspberry Pi 3B ARM开发板封装 Volumio OS数字音频播放系统-主页控制主界面 上周末,我们为几台ARM微型计算机推出了Raspberry Pi [Raspberry Pi]和数字音频播放系统Volumio OS. 它可以以较低的成本和简单的安装模式将USB声卡放到消费者手中. 或者将…

如何用计算机装手机系统,教你在手机上安装Windows系统

上图是在手机上运行Windows系统时的实拍效果。回归正题,如何把电脑系统安装在手机上?01 要实现在手机上安装Windows系统,需要用到两个文件: Limbo+Windows精简镜像 其中,Limbo为后续安装的Windows系统提供了一个运行环境,它是一个手机应用软件,而Windows精简镜像则是最终…

《手机音频》参数与选择

一、手机音频:智能手机的音频处理电路主要处理手机的声音信号。它主要负责接收和发射音频信号,是实现手机音频交互的关键电路。智能手机音频处理电路主要包括:音频信号处理芯片(集成ADC/DAC)、音频功率放大器、话筒(麦…

测试音频质量的软件,音频质量PESQ得分评估原理与步骤

在实时音视频领域,我们经常需要评估音频质量。而语音质量评价是一个与语音学、语言学、信号处理、心理学、生理学等学科有密切联系的领域,因此语音质量评价是一个极其复杂的问题。语音质量评价方法从评价主体上可分为两大类:主观评价和客观评价。 主观评价:人评价(一般40人…

ap音频测试仪软件,AP APX-525音频分析仪

AP APX-525音频分析仪 AP APX-525音频分析仪 详细说明 APx525系列结合了获奖的用户介面和AP一贯的品质追求而成。APX是高速、高性能和容易使用,创新设计包括:一按测试、自动顺序执行和连续扫描技术等。只需要7秒便测量14个参数。 主功能: 高性能:THD+N典型-108DB或DB带AG52…

手机音频

手机音频 Hi-Fi Hi-Fi是英语High-Fidelity的缩写,直译为“高保真”,其定义是:与原来的声音高度相似的重放声音。 HI-FI耳机 HIFI耳机也称为高保真耳机。是一种有加过音色渲染的耳机。通过HIFI耳机,能够听到最为接近真实的、经…

音频系统测试软件:Smaart for Mac

今天小编为大家带来的是一款Mac上的老牌音频系统测试软件,Smaart mac破解版可以自定义控制您的软件音频,可用于专业音频设备和声场测试,欢迎喜欢的朋友们下载使用! Smaart mac破解版功能亮点 频谱的测量 用于噪声测量,声音信号可视测量,扩声系统声反馈频率确定,音响系统的…

驾考笔记:科目二考试满分攻略——超详细的点位细节梳理,各种意外情况处理方案整理

前言 还记得去年听台湾大学的李宏毅老师讲他的宝可梦的时候,他谈到他至今没有去考驾照,因为他在等无人驾驶。当时笔者的感受是,我们可真是同道中人,作为无人驾驶的坚定拥护者,并且觉得自己未来还能为该领域的发展做出贡…

图像处理我是这样入门的------我的第一篇csdn博文

接触图像处理已经有五个月了,自认为已经算是入门了吧。以下分享个人的一些经验。 图像处理的库有很多,例如OpenCV、halcon、OpenGL、MATLAB库、IntelIPP等。OpenCV具有开源,免费,跨平台、可移植性强等优点,得到了较为…

计算机笔试:飞机加油飞地球一圈的问题

题目:假设有N架飞机,必须从同1飞机场起飞,不许中途降落,可空中互相加油,每个飞机油箱最多只能飞地球半圈,问至少需要多少飞机才能保证至少1架飞机绕地球1圈。 此题关键一点:地球是圆的。可以往相…

左值、右值

左值、右值 1.基本概念2.左值引用、右值引用3.移动构建: 1.基本概念 (1) 左值:可以取它的地址 右值:不可以取它的地址 int main() {//int& a10;//错误:左值引用不能引用一个常量,左值引用…

C语言之左旋

法一: 挨个旋转,记住最后一个数字,依次向后覆盖(效率较低,但简单暴力) void rotate(int* nums, int numsSize, int k){int i;while(k){int endnums[numsSize-1];for(inumsSize-2;i>0;i--){nums[i1]nums…

F-35飞控系统详解

基于非线性动态逆(NDI)的控制律 1. F-35飞控控制律 F-35采用了由三台冗余机载管理计算机(VMC,Vehicle Management Computers)中运行的非线性动态逆控制架构来提供电传飞行控制。F-35的控制律不仅能增强飞机动力学特性实现增稳,还…

《飞控介绍》

飞控:即为导航飞控系统,也叫自驾仪 物体运动的三个轴(多旋翼) 俯视多旋翼时: 与中心纵向的轴叫做纵轴(x轴) 与中心横向的轴叫做横轴(y轴) 平时多旋翼时: 与…

飞控

现在市面上的飞行控制器(下面简称飞控)分为两种。一种是由商业公司设计生产的,例如DJI的Naze系列飞控,一般都是闭源的,并且经过正规系统的测试,稳定性方面有保障。另外一种就是由爱好者或者公司发起的开源飞…

数据校验(数据完整性)

数据校验 数据第一次写入成功后,会进行数据校验,获得校验和。 数据读取前,对数据进行校验,获得校验和,计算得到的校验和与第一次上传后的校验和进行对比。 两个校验和相同表示数据相同,可以提读取数据 两…

HDFS数据完整性

数据完整性 目标:掌握HDFS数如何宝成数据的完整性的 当DataNode读取block的时候,它会计算checksum如果计算后的checksum,与block创建时(第一次上传是会计算checksum值)值不一样,说明block已经损坏。clien…

密码学篇(数据完整性)

本文部分摘取自:https://blog.csdn.net/xjhhjx/article/details/81603107 序言 密码技术的目的很明确,就是为了解决信息安全问题。 就本人从事行业来说,可以用客户端与服务器端的数据通讯过程举例(考虑客户端与服务器端通讯的双…

MySQL数据库——数据完整性(实体完整性、域完整性、参照完整性)

数据完整性的概念 数据完整性是为了保证插入到数据库中的数据是正确的,防止用户可能的错误输入。 数据完整性分为实体完整性、域完整性、参照完整性。 实体(行)完整性 实体完整性中的实体指的是表中的行,因为一行记录对应一个实体。 实体完整性规定表的一行在表中是唯一的实…