首页 > 嵌入式硬件 > 嵌入式开发

1 嵌入式系统概述

嵌入式系统是以计算机技术为基础,以应用为中心,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

嵌入式软件是基于嵌入式系统设计的软件,是计算机软件的一种,同样由程序及文档组成,可细分成系统软件、支撑软件、应用软件三类。嵌入式软件大量应用于家用、工业、商业、通讯和国防领域。我国目前在嵌入式应用软件方面具有优势。在嵌入式系统中,软件的工作量约占全部工作量的80%,其中测试与验证的工作量占软件工作量的70%。

1.1 嵌入式软件特点和测试难点

嵌入式系统开发有其自身的特点。通常,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界线是不清晰的,有时甚至混编在一起。这主要是因为嵌入式系统中软件对硬件的依赖性造成的。由于嵌入式软件对硬件的依赖性,软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。底层程序和应用程序界限的不清晰增加了测试难度。测试时,只有在确认了嵌入式系统平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,对错误的检测定位较为困难。软件的专用性也是嵌入式软件的一个重要特点。由于嵌入式软件设计是以一定的目标硬件平台为基础、面向固定任务进行的,因此,一旦被加载到目标系统上,功能必须完全确定。这个特点决定了嵌入式应用软件的继承性较差,延长了系统的测试时间,增加了测试费用。嵌入式软件的另外一个重要特点就是实时性,这是从软件执行的角度考虑的,也就是说嵌入式软件的执行要满足一定的时间约束。嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,决定了系统资源的分配和消耗。因此,对系统实时性进行测试时,要借助一定的测试工具对应用程序算法复杂度和操作系统任务调度进行分析测试。

1.2 嵌入式软件测试方法

软件测试是软件开发中的一个重要环节,嵌入式软件也不例外。图1给出了嵌入式软件测试的一般流程。根据不同的指标,软件测试方法[1]有不同的划分方法。根据软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试;根据是否需要运行目标代码分为动态测试和静态测试;根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。在软件测试中,每种测试方法都不是孤立的。为了最经济、最有效地达到测试目的,各种测试方法往往互相嵌套。例如,在软件的单元测试阶段,可以用黑盒测试和白盒测试的方法分别进行动态测试。而在系统测试阶段,只能使用黑盒测试方法进行测试。

本文引用地址: http://embed.21ic.com/hardware/development/201806/64368.html


为了更有效地进行嵌入式软件的系统测试,提出了嵌入式软件系统测试中具有交互式错误检测定位功能的仿真系统架构设计方案。使用此仿真系统不仅可以按照第一类测试方法[2]和第二类测试方法[3]辅助进行系统测试,而且还可以利用仿真系统的交互式学习功能,不断积累错误定位经验,实现错误检测定位,为测试人员和开发人员节省大量时间。这是其他测试方法所不具备的。

2 仿真系统结构设计

嵌入式软件的硬件载体大部分为专用计算机设备,并且通常没有外围设备用于测试过程中的监测或观察。而有些嵌入式软件还会存在交互式操作。在被测软件移植到目标机上的实际硬件环境以后,由于与嵌入式系统平台和底层程序融为一体,对系统进行黑盒测试时,错误定位将变得非常困难。因此根据嵌入式软件的特点,提出了一个具有交互式错误检测定位功能的仿真系统结构模型。图2为仿真系统分层结构图。仿真系统在设计上采用分层结构、分层设计、分层实现的方式,每一层的内部实现对其他层透明。


仿真系统由硬件驱动、交互操作模块、驱动模块、桩模块、分析模块和人机界面六个部分组成。下面分别介绍各个模块的功能。

(1)硬件驱动部分负责驱动硬件,向上一层提供底层硬件的操作接口。仿真系统通过硬件驱动为嵌入式软件提供相应的通信接口,用于嵌入式软件和仿真系统之间的数据交换。通信接口根据具体嵌入式软件的接口设计实现,一般为各种通讯协议。各通讯协议模块之间松散耦合,且具备可扩展性,保证硬件接口的改变不会影响上层的功能实现。

(2)交互操作模块负责与嵌入式软件的交互操作。此部分可裁剪,主要根据嵌入式软件是否需要交互操作而定。其主要功能需要根据特定的软件设计实现。

(3)驱动模块负责封装与仿真系统测试数据有关的处理逻辑,向人机界面提供独立于体系结构的操作接口。系统测试阶段除了正常的功能和性能测试,更应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性测试,进一步验证系统性能。而驱动模块则将测试用例中各种测试数据传输给被测嵌入式软件。

(4)桩模块为嵌入式软件提供各种必要的输入数据。嵌入式软件的正常运行需要必要的外界输入数据,以完成系统的正常运行和交互。无论这些输入数据通过什么方式提供,桩模块都应该为嵌入式软件模拟各种输入数据。对于系统测试来说,输入数据也应该包括正常数据和非法数据两种。

(5)分析模块包括测试结果、预期结果和故障模型三部分。测试结果为执行测试用例以后被测软件执行的结果;预期结果为测试开始之前,测试人员针对不同测试用例输入的预期结果;故障模型中包括对各种故障的定位。故障模型在一个测试结束后,积累的错误定位模型可以通过外部接口导出,既可以用作其他测试系统的故障模型,也可以导出Word或Excel文件,用于开发人员进行分析总结。

分析模块在得到测试结果以后,首先与预期结果比较。如果相同,则测试通过;否则在故障模型中搜索相应的故障,并定位故障。如果故障模型中没有相应的错误定位,分析模块直接将未通过测试的测试结果和测试用例反馈给测试人员,由测试人员进行定位。当错误定位以后,测试人员根据测试实例修改故障模型,增加错误判断事件。通过不断循环,故障模型部分的各种故障定位逐渐增加,仿真系统在不断学习过程中实现错误定位。

(6)人机界面用于各种数据、结果的输入和显示,以及交互操作的人工输入界面。

3 铁路微机联锁系统测试

被测铁路微机联锁2乘2取2系统运行在CPU(486DX)上,属于典型的嵌入式软件。逻辑图如图3所示。


被测嵌入式软件运行在图3中A系和B系的CPU中,通过以太网接收人工下达的联锁命令,经过处理后通过DP协议网络传输给输出模块,控制现场设备。A、B系中只能以一个系为主系,主从系的切换可以通过手动切换实现,也可以自动切换。

3.1 测试实施

测试实施之前,首先编制测试用例,并针对每个测试用例给出预期结果和可能产生的错误以及相应错误的故障定位。把这些数据输入仿真系统的分析模型中,为即将进行的测试工作做准备。

在测试实施过程中,首先利用此仿真系统按照第一类测试方法进行测试,验证铁路联锁2乘2取2系统被测软件是'工作的',也就是软件的功能是按照预先的设计执行的。然后按照第二类测试方法进行测试,验证软件是不工作的。

使用仿真系统设计并实施了很多在实际软硬件环境中不可能实现的测试用例。举例说明如下:

(1)非法数据的输入。正常运行的系统,操作人员不可能发送错误的联锁命令给被测软件,输入模块也不可能产生测试需要的各种非法输入数据。使用仿真系统的驱动模块和桩模块,可以很轻松地发送任何组合形式的非法数据,以测试铁路联锁2乘2取2系统被测软件的安全性。结合分析模块的使用,具体实施过程为:
通过人机界面输入超长非法测试数据6,244,244,80,0,17,1,0,80,0,255,255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0给被测软件,预期结果为无测试结果数据返回,即嵌入式软件将非法数据过滤掉,不进行任何操作。仿真系统通过人机界面提示测试通过,实际情况也确实是微机联锁系统未进行任何操作,便将超长的非法数据过滤了。通过人机界面输入固定码的非法测试数据170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,预期结果为无测试数据返回,即嵌入式软件将非法数据过滤,不进行任何操作。仿真系统通过人机界面提示测试通过,而实际情况是微机联锁单元出现了死机现象。针对这种情况,修改预期结果内容为“无测试数据返回且与被测应用软件正常通讯”,而在故障模型中增加了“与被测应用软件无任何通讯”项,以修正仿真系统的错误定位为微机联锁单元死机。同理也要修改前面超长非法测试数据的预期结果和故障模型的内容。如此反复,仿真系统的分析模型也在不断完善中。

(2)通信容量测试。铁路联锁2乘2取2系统被测软件中的基本功能包括系统通信最大I/O模块总数为100。在正常测试过程中,一般无法为测试搭建如此大规模的硬件测试环境,即使可以搭建,也会因为性价比较低而不实施此项测试。使用仿真系统,可以通过桩模块和驱动模块轻松实现100个I/O模块的通信量,同时可以省去购置I/O硬件模块的费用。

(3)铁路联锁系统软件需要满足IEC61508标准[4]中SIL4的要求。通过仿真软件驱动模块重复发送联锁命令,可以很容易地测试铁路联锁2乘2取2系统中的软件是否满足SIL4的要求,而这些测试如果单纯用人工输入进行测试是不可能实现的。交互操作模块则可以在测试过程中完成软件与人必需的交互操作功能。

被测软件第一次测试结束后,开发人员根据仿真系统的错误定位集中修改软件中的BUG,然后提交进行第一次回归测试。经过在第一次测试中人机交互的不断完善,仿真系统的分析模型趋于成熟,在回归测试过程中能很快定位错误,为测试及开发人员节省了大量时间,缩短了软件开发周期。

3.2 测试结果

通过使用仿真系统对铁路联锁2乘2取2系统被测软件实施测试,共发现涉及软件故障安全原则的致命问题和严重问题10个,涉及软件漏洞安全的致命问题和严重问题5个,涉及功能未实现的致命问题和严重问题6个,涉及可靠性的致命问题1个,一般和提示问题30个。

针对嵌入式软件的特点提出的具备交互式错误检测定位功能的仿真系统架构模型,实现了在系统测试过程中检测定位软件错误,解决了嵌入式软件系统测试过程中,由于被测程序与嵌入式系统平台和底层程序融合在一起,错误不容易定位的问题。通过在铁路微机联锁测系统试项目中的应用,发现了很多关键性问题,并且为测试人员和开发人员节省了大量时间,加快了测试进度,在回归测试阶段表现尤为明显。事实表明,此仿真系统架构模型不仅可以应用于嵌入式软件的系统测试,也可以应用于非嵌入式软件的黑盒测试。在以后的研究中,将应用人工智能学科的学习理论,实现仿真系统分析模块的自动学习功能,以实现在测试过程中自动定位软件错误,而无需人工干预。

换一批

延伸阅读

[行业资讯] AISINS将对Mentor Graphics的Volcano AUTOSAR设计解决方案进行标准化处理

AISINS将对Mentor Graphics的Volcano AUTOSAR设计解决方案进行标准化处理

Mentor Graphics公司近日宣布,Aisin SeikiCo., Ltd.及其合并子公司(以下简称“AISIN”)将以MentorGraphics Volcano VSx 设计工具为标准,以支持基于 AU......

关键字:电子控制单元 (ECU) 设计 Volcano AUTOSAR设计 Mentor Graphics 嵌入式软件

[新鲜事] Linux之父怒喷谷歌安全工程师为哪般?

Linux之父怒喷谷歌安全工程师为哪般?

上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。......

关键字:Linux 谷歌 安全工程师

[新鲜事] 库克笑了,特朗普表示不会对中国组装的iPhone加征关税

库克笑了,特朗普表示不会对中国组装的iPhone加征关税

6月19日消息,据VentureBeat报道,随着美国计划对中国产品加征500亿美元关税,中美之间的贸易紧张局势继续升级,苹果担心中国将为其产品设置监管和出货障碍。苹果首席执行官蒂姆·库克(Tim Cook)正在与两国政......

关键字:特朗普 库克 iPhone

[新鲜事] 康宁“大猩猩玻璃新对手!三星开发出可弯曲“摔不碎”屏幕

康宁“大猩猩玻璃新对手!三星开发出可弯曲“摔不碎”屏幕

北京时间7月26日晚间消息,三星今日宣布,近期研发出一种“不破碎”的柔性显示面板,预计很快用于智能手机和其他消费电子产品中。对于传统的智能手机屏幕,其上面通常被玻璃覆盖,因此容易开裂或破碎。而三......

关键字:三星 康宁 显示屏

[新鲜事] 这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

这家被指抄袭谷歌的红芯浏览器承认基于开源架构,仍称“有创新”

深陷“造假”风波的国产浏览器品牌红芯,再度发声。8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行......

关键字:浏览器 谷歌 红芯浏览器

[真心话] 电子工程师请远离浮躁

电子工程师请远离浮躁

什么样的人是浮躁的人?浮躁的人容易问:我到底该学什么;---踏踏实实的学点基本的吧?单片机不知道是什么就想去学ARM?c语言不会想搞LINUX?别老是好高骛远。......

关键字:电子工程师

[新鲜事] 谷歌上亿大奖空置11年无人领取!难道真的没人眼馋吗?

谷歌上亿大奖空置11年无人领取!难道真的没人眼馋吗?

Google在11年前为了激励民间航天业的发展,曾设立探月大奖赛,只要满足一定条件就可以领取高达3000万美元(约合人民币1.9亿)奖金,但是直到11年后大奖还是名花无主。......

关键字:谷歌 民间航天业
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14