当前位置: 首页 > 行业标准 > 航空航天民航 > 高清可复制 HB 8573-2020 民用飞机机载嵌入式操作系统板级支持软件测试要求

高清可复制 HB 8573-2020 民用飞机机载嵌入式操作系统板级支持软件测试要求

收藏
  • 大小:199.63 KB
  • 语言:中文版
  • 格式:PDF文档
  • 类别:航空航天民航
  • 更新日期:2026-05-12
关键词:机载   复制   民用   软件   飞机
资源简介

ICS 49.020 V 07

HB 8573-2020

民用飞机机载嵌入式操作系统

板级支持软件测试要求

BSP test requirements for airborne embedded

operating system of civil aircraft

2020-09-14 发布 2021-01-01 实施

中华人民共和国工业和信息化部发布

前言

本标准的附录 A 和附录 B 为资料性附录。

本标准按照 GB/T 1.1-2009 给出的规则起草。

本标准由中国航空工业集团有限公司提出。

本标准由中国航空综合技术研究所归口。

本标准起草单位:中国航空工业集团公司西安航空计算技术研究所、中国航空综合技术研究所、中国航空工业集团公司西安飞机设计研究所、中国航空工业集团公司成都飞机设计研究所。

本标准起草人:崔西宁、王婷、王宁(综合所)、黄保垒、周南明、魏学杭、戴小氐,母方欣。

民用飞机机载嵌入式操作系统

板级支持软件测试要求

1 范围

本标准规定了用于机载设备的嵌入式操作系统板级支持软件的测试需求、测试目标、测试类型、测试要点方面的内容。本文所指测试类型,是对 GJB/Z 141-2004 中描述的测试内容在测试板级支持软件时的补充,适用于 GJB 2786A-2009 中定义的软件实现和单元测试、单元集成和测试、 CSCI 合格性测试这三个阶段。

本标准适用于机载设备中嵌入式操作系统板级支持软件的开发和测试过程。本标准一方面可以指导软件测试人员开展板级支持软件的测试,同时也可作为开发板级支持软件的有益参考。对与硬件状态紧密相关的在线编程软件、自检测软件等的开发与测试,可参照本标准执行。

在具体项目的软件测试过程中,对板级支持软件执行的各测试过程,应针对不同的硬件驱动设计,在测试类型选择时参考本标准提出的测试类型,完成各硬件驱动的测试。

2 规范性引用文件

下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。

GB/T 11457-2006 信息技术软件工程术语

GJB 2786A-2009 军用软件开发通用要求

GJB/Z 141-2004 军用软件测试指南

HB/Z 421-2014 民用飞机机载系统和设备软件合格审定保证指南

3 术语和定义

GB/T 11457-2006 界定的术语和定义以及下列术语和定义适用于本标准。

3.1

板级支持包 board support package (BSP)

工作于硬件模块上,驱动硬件芯片完成预定功能,为操作系统提供支持接口的硬件驱动软件的集合,在本标准中,作为规范名称和部分说明时,也称为板级支持软件。

3.2

硬件驱动 hardware driver

为支持操作系统或其他软件运行而开发的对目标机的各类硬件设备的驱动代码。通过该类代码, 可实现对硬件设备的操作,完成其预定的功能。

3.3

自检测 build-in-test (BIT)

自检测实现对硬件模块的功能检测,确认被检测硬件可正常工作。通常情况下, 自检测功能由软件与硬件联合实现。

3.4

模块初始化 module initialization

指目标机上电后执行的对硬件基本环境的初始化,包括对处理器寄存器组的初始化、内存访问空间初始化、系统运行栈、数据段的初始化以及构建 C 语言代码的运行环境过程。在板级支持软件中该部分代码通常采用汇编语言完成。

4 测试需求

板级支持软件的测试需求来源于软件需求规格说明、软件设计说明等文件。此类文件规定板级支持包应具备的软件特征,如功能、性能、安全性等描述信息;通常情况下软件文档定义设备的特殊要求,其通用要求则引用具体的硬件手册或通用定义。

在具体的板级支持包设计过程中,各类硬件驱动依据硬件设备自身的通用定义实现其功能,并通过特殊设计满足软件整体的特殊要求。因此在测试过程中,硬件设备的通用定义是测试的重要参考。

5 测试环境与测试工具

板级支持包处于各类软件模块的底层,通常情况下无法通过交互式调试代理进行调试和测试,相对于其他软件模块,能够使用的测试环境与测试工具具有较大限制。

板级支持软件的测试环境和可采用的测试工具如下:

——具备板级支持包运行的目标硬件环境,或其替代环境;

——具备与测试过程相关的必要的测试仪器,如波形发生器、电压/电流源、示波器、万用表等,能够实现信号的输入和对输出信号的测量;

——可对板级支持包调试的仿真器,如 ICE、TRACE32、PROBE 等设备,能够实现对代码的加载和调试;

——其他各类用于支持调试、运行、监视目标运行的专用工具。

6 测试类型

6.1 概述

板级支持包的软件测试除按照 HB/Z 421-2014 第 8 章“软件验证过程”规定的过程活动执行外,还应结合板级支持软件的特殊性,对部分测试类型的执行方法进行修改,并增加新的测试类型。主要包含以下方面。

——代码审查测试;

——功能测试;

——空间访问测试;

——中断保护分析;

——驱动协同分析。

空间访问测试、中断保护分析以及驱动协同分析是软件功能测试的一部分,鉴于板级支持包的特殊性,予以单独的描述和测试。

板级支持包中各类硬件驱动对测试类型的选择可参考附录 A 中的表 A.1。

6.2 代码审查

在多数情况下,目标机无法构造出期望的硬件故障,因而板级支持包的测试过程应特别重视代码审

查过程。

此外,在代码审查测试中,对关键重要的代码片段,均应给出代码是否冗余、功能是否有效的结论。可以采用表格等方法列出。此处具体执行标准可参考 HB/Z 421-2014 中 8.5.5“测试覆盖分析”中给出的指南进行。

6.3 功能测试

应依据软件设计及硬件功能定义,完成板级支持包的功能测试,必要时应借助专用检测工具如示波器、万用表等检测硬件驱动的功能完好性。考虑到板级支持的特殊性, 在测试过程中允许采用软件相互证明形式来证明其功能的正确性,如利用设计的读驱动证明写驱动的正确性,使用写驱动证明读驱动的正确性。但该类测试用例的设计必须明示,且在评审过程中逐项审查。

6.4 空间访问测试

硬件设备的空间访问分析中,除非设计明示或硬件手册指明,板级支持软件所对应的硬件空间应可读写;应支持各类(8/16/32 位)访问方式;访问空间的Cache 属性应符合设计;对硬件易失性(Volatile)地址的访问应具有 volatile 属性支持;对硬件时序的关键区域(如寄存器访问)访问应具备互斥处理。在板级支持软件的测试过程中,应完成对上述空间访问特性的测试和分析。

6.5 中断保护分析

硬件驱动中,应对中断进行保护和处理;通过动态的代码测试或直接的代码审查过程,分析每个软件单元是否能够支持中断的触发,是否对关键操作进行操作的中断保护。此类硬件驱动应给出明确的中断保护分析的结论。

6.6 驱动协同分析

为保证整个板级支持包中的硬件驱动能够协同工作,并且不产生相互干扰,可以增加多个驱动集合的测试。当硬件设备间可能存在共用设备, 如共享 PCI、共用中断等方式时,应开展硬件驱动的驱动协同分析。在该测试过程中,相关硬件驱动应能够同时运行,且可以互不干扰地完成各自的功能。

驱动协同分析还用于具有共用设备或公共资源的硬件驱动间的分析,如多设备共享 DMA 通道,多设备共享同一寄存器等。在此情况下,应对共用设备或公共资源的互斥保护进行专门的分析和检查。

7 测试项

7.1 概述

板级支持包按照驱动的硬件不同,具有不同功能和作用,可以划分为以下驱动类(但并非所有板级支持软件都包含以下所有驱动,可能仅是这个驱动类的子集)。针对模块初始化的特殊作用,单独划分一类:

——模块初始化,主要面向系统加电后对模块基本环境的初始化;

——处理器驱动,主要面向对其它驱动提供的基本的处理器支持接口;

——桥芯片驱动,主要面向模块各类内总线交换开关;

——中断控制器驱动,主要面向管理中断的各种通用的中断控制器;

——串口驱动,主要面向用于调试加载的各类通用串口设备;

——网络驱动,主要面向用于调试诊断功能的通用的以太网;

——定时器驱动,主要面向处理器外部的定时器硬件;

——Flash 驱动,主要面向非易失存储设备Flash;

——NVRAM 驱动,主要面向非易失设备 NVRAM;

——总线类驱动,主要面向机载设备中系统间或系统内的共享网络;

——外设类驱动,主要面向除了“网络驱动”、“总线类驱动”以外的,共享的或私有的外部设备。

测试过程应针对不同的硬件特点和用途,针对不同类型的驱动采用不同的测试类型。对各类硬件驱动,也具有不同的测试合格判据和测试要点。其中,性能测试与具体硬件紧密相关,测试标准各不相同,因此本文不对其进行具体要求。

板级支持包的测试过程针对不同的测试对象,为能够准确定位测试问题的所在,应具有一定的测试顺序。一般情况下,按照模块初始化、处理器驱动、桥芯片驱动、中断控制器驱动顺序进行测试, 其他测试无顺序性要求。

7.2 模块初始化测试

7.2.1 测试目标

模块初始化(定义见 3.4)实现系统加电后对模块基本环境的初始化,该部分实现对软件运行环境的基本构建,使 CPU、RAM 设备可用,系统调用栈、全局数据区等可使用,具有重要的作用。

7.2.2 测试类型

模块初始化部分采用代码审查形式进行。

7.2.3 测试要点

模块初始化应完成以下功能的确认:

——冷热启动方式的参数是否正确处理;

——CPU 各类寄存器是否完成初始化,包括浮点处理、特殊目的寄存器、BAT 寄存器;

——是否正确启动 time base 计数器;

——是否完成对递减计数器(如果硬件存在)异常的处理;

——Cache 功能是否处于确定状态;

——全局数据段、代码段、向量段是否正确执行了重定位,BSS 段是否清零;

——在整个软件系统中 RAM 初始化是否只执行一次;

——是否正确初始化 C 运行栈(包括对栈指针和栈大小的初始化),以及调用C 入口函数;

——各种运行方式(例如活存加载或者 ROM 固化等方式)下都应进行以上功能确认。

7.3 处理器驱动测试

7.3.1 测试目标

处理器驱动向其他驱动提供基本的处理器支持接口。

处理器驱动包括 CPU 寄存器获取与设置接口、外设访问接口、一级/二级 Cache 管理代码。

7.3.2 测试类型

对处理器驱动测试,执行的测试类型包括:代码审查、功能测试。其中代码审查为主,功能测试为辅。

代码审查应参考处理器芯片的用户手册进行。在审查过程中应特别注意对特殊寄存器的置位操作和对外设的写出访问操作,应按照用户手册具有必要的同步指令支持。

功能测试中,应完成对驱动提供的接口进行测试;完成对 Cache 功能的测试。

7.3.3 测试要点

由于处理器的特殊性,在对接口的测试仅对其功能进行测试,不需对边界和特殊值进行测试。

应完成对一级 Cache 功能中的Cache 使能/禁止,无效、刷新、回写/写穿功能的测试。对各功能的

实际效果具有明确的判定依据。

处理器驱动测试过程可按照附录 B 中的表 B.1 形式进行检查。

7.4 桥芯片驱动测试

7.4.1 测试目标

桥芯片驱动实现硬件模块各类内总线交换开关的初始化,实现对各硬件设备的物理地址分配及内存控制器等接口单元参数的设置。

通常情况下,桥芯片驱动并不单独形成文件,而是随各类硬件设备的驱动分别初始化(如MPC107)。在某些桥芯片中,具有独立的初始化程序(如 Tsi109),完成相关硬件设备的空间分配。

7.4.2 测试类型

对无独立文件的桥芯片驱动,其测试随同其他硬件驱动完成,不单独进行测试。对有独立文件的桥芯片驱动,采用代码审查测试进行,并引用其他部件的驱动测试用例,完成其功能的最终确认。

7.4.3 测试要点

桥芯片驱动完成存储地址的分配, 关注分配的空间大小是否合理,空间是否有重叠,主要包括SRAM、NVRAM、FLASH、PCI/PCIE、RapidIO、内部功能配置状态寄存器空间等。可采用空间分配图的形式,将桥芯片的驱动功能绘制成直观的图表以保证所有空间的划分不产生重叠;对于地址分配有明确规定的桥芯片,还要符合其规定。

对于内存控制器等接口单元参数的设置,检查设置的参数是否和器件参数匹配。

7.5 中断控制器驱动测试

7.5.1 测试目标

不同的操作系统中断控制器驱动的组织形式有所差异,但基本功能相同,驱动实现对中断控制器设备的初始化、中断响应和处理、单一中断的使能/禁止等功能。

中断控制器驱动通常为独立的文件。不包含各类硬件设备的中断处理服务程序。

7.5.2 测试类型

中断控制器驱动的测试类型包括代码审查和功能测试。

代码审查应按照设计要求,对所有中断的中断号、触发方式、优先级进行检查, 是否满足设计要求。结合中断源的硬件特征,检查各路中断的触发方式是否与硬件设计相匹配。

功能测试按照设计要求,对使用中的各路中断进行测试,完成对不同触发方式的中断请求的测试,对中断使能/禁止功能测试以及其他的功能测试。

7.5.3 测试要点

中断控制器驱动测试的测试要点包括:

——结合器件手册,审查代码是否正确初始化中断控制器,包括:是否屏蔽所有外部中断、是否将阻塞的中断全部清除、是否按照需求正确地设置了各中断源触发方式等;

——测试的中断源应包含所有将使用到的中断,当多个中断源功能相同时(如定时器中断),可以选取其中一个代替所有;

——要注意 IrqLine 和中断向量号的关系,确保使能/禁止某路中断时参数的正确使用;

——在测试中应通过实际或模拟的测试过程,对中断嵌套功能进行测试。

中断控制器驱动测试过程可按照附录 B 中的表 B.2 形式进行检查。

7.6 串口驱动测试

7.6.1 测试目标

串口驱动实现对串口设备的初始化,字符形式的输入/输出、串口中断响应、 IO 控制命令处理等功能。串口驱动实现对系统标准输入/输出功能的支持。

7.6.2 测试类型

串口驱动的测试类型包括代码审查、功能测试、中断保护分析。

串口驱动实现对操作系统标准输入/输出的支持,是操作系统显示信息和接受用户指令的基本手段。串口驱动测试重点实现对各类输入/输出控制命令的测试。

7.6.3 测试要点

串口驱动测试的要点如下:

——应能够正确初始化各路串口,包括波特率的设置、 FIFO 设置、工作模式设置、挂接中断等工作;

——应对涉及到的多路串口均进行输入/输出能力测试;

——应对串口各种 IO 控制命令进行测试;

——应对串口的查询工作模式和中断工作模式均进行测试;

——对串口驱动的输入、输出功能以及控制命令的响应,应具有中断保护操作;

——应能够正确获取串口设备数目、中断状态以及中断向量号。

串口驱动测试过程可按照附录 B 中的表 B.3 形式进行检查。

7.7 网络驱动测试

7.7.1 测试目标

网络驱动实现对网络硬件的初始化,包含 MAC 和 PHY 设备的初始化,实现对以太网通信的支持。网络驱动包括网络设备初始化、启动、停止、发送数据、查询发送/接收、中断服务程序、 IO 控制命令处理程序等。

7.7.2 测试类型

网络驱动的测试类型包括代码审查、功能测试等。

由于网络驱动功能复杂,通常情况下采用 COTS 代码,在此基础上依据具体硬件实现对其参数进行调整和修改,因而对网络驱动的代码审查,可以只对修改的代码进行测试。

网络驱动工作于底层,其接口直接面向操作系统,其功能测试应按照设计要求,结合操作系统进行。

7.7.3 测试要点

网络驱动功能测试应完成以下方面的测试:

——通过 PING 命令,测试网络驱动的基本功能,获取其 IP 与 MAC 信息是否符合设计;

——依据目标模块状态寄存器信息或其连接目标的状态灯指示,完成对网络速度的测定:

——对网络连接断开后的重新连接能力进行测试;

——分别连接多种速率的目标设备,测试其自适应功能;

——通过对应用和操作系统的调试过程,实现对网络查询接收/发送驱动的测试;

——在中断接收方式下,通过 PING 命令测试接收中断的功能是否正常;对于异常情况,测试驱动是否能捕获并上报异常;

——利用大包数据和小包数据,完成对网络驱动的数据帧长的测试;

——通过网络测试工具,进行强度测试,测试在大批量数据包到达的情况下,网络驱动是否产生缓冲区溢出或丢包现象,并在网络流量恢复正常后,驱动正常工作。

网络驱动测试过程可按照附录 B 中的表 B.4 形式进行检查。

7.8 定时器驱动测试

7.8.1 测试目标

定时器驱动实现对处理器外部的定时器硬件的维护和管理,包含系统定时器与辅助定时器两种,分别实现对定时器的中断连接、中断使能、禁止、定时频率获取、定时频率设置等功能。

由于操作系统经常使用定时器作为其系统时钟,可能影响测试的执行,此时可以通过间接类型加以验证其功能。

7.8.2 测试类型

定时器驱动的测试类型包括代码审查、功能测试。

7.8.3 测试要点

定时器驱动功能测试应完成以下方面的测试:

——按照设计要求对定时器的定时频率界限进行测试;

——对定时器的中断使能/禁止功能进行测试:

——对定时器的计时准确性进行测试:

——按照设计要求对定时器的定时精度进行测试;

——应能够在定时器中断处理程序中正确调用操作系统提供的时钟中断处理函数。

定时器驱动测试过程可按照附录 B 中的表 B.5 形式进行检查。

7.9 Flash 驱动测试

7.9.1 测试目标

Flash 驱动实现对非易失设备 Flash 的编程功能、扇区擦除功能,在必要情况下,可能包含对 Flash设备 ID 信息的获取等功能。

7.9.2 测试类型

Flash 驱动的测试类型包括代码审查、功能测试、空间访问测试、中断保护分析等。

7.9.3 测试要点

在 Flash 驱动测试过程中,应明确需要保护的应用数据,并在测试结束后予以恢复。

Flash 驱动功能测试应完成以下方面的测试:

——按照设计要求对 Flash 扇区擦除功能进行测试:擦除大小应与定义扇区大小相符;

——对 Flash 编程位宽进行测试:对 8/16/32/64 位对齐要求是否进行了处理;

——对 Flash 编程安全性进行测试,是否对编程区域之外的数据进行了更改;

——对 Flash 驱动进行扇区遍历,对所有可操作扇区均应测试;

——对 Flash 编程进行地址回绕测试,确认 Flash 区域中没有地址回绕现象;

——对 Flash 各类接口的原子操作是否增加中断保护、任务保护或信号量保护等。

Flash 驱动测试过程可按照附录 B 中的表 B.6 形式进行检查。

7.10 NVRAM 驱动测试

7.10.1 测试目标

NVRAM 驱动实现对非易失设备 NVRAM 的读写功能。

7.10.2 测试类型

NVRAM 驱动的测试包括功能测试、空间访问测试。

7.10.3 测试要点

在 NVRAM 驱动测试过程中,应明确需要保护的应用数据,并在测试结束后予以恢复。

NVRAM 驱动功能测试应完成以下方面的测试:

——按照设计要求对 NVRAM 读写位宽进行测试;

——对 NVRAM 的非易失功能进行测试,必要时进行多次测试,以保证其健壮性;

——对 NVRAM 的读写空间边界进行测试;

——对 NVRAM 进行地址回绕测试,确认 NVRAM 区域中没有地址回绕现象。

NVRAM 驱动测试过程可按照附录 B 中的表 B.7 形式进行检查。

7.11 总线类驱动测试

7.11.1 测试目标

总线类驱动是一类驱动,这类驱动中每种驱动都实现了对某类总线设备的操作功能。这些功能包括总线初始化、总线状态切换、协议栈建立、数据接收/发送、中断请求服务处理、总线设备的空间分配等。每类总线驱动的功能可能包含了上述功能划分中的全部或部分。

归属于总线类的资源包括 PCI 总线、航空电子全双工交换式以太网总线、FC 总线、1394 总线、 ARINC659 总线等。

7.11.2 测试类型

对总线类驱动的测试类型包括功能测试、空间访问测试、中断保护分析、驱动协同分析等。

7.11.3 测试要点

总线类驱动功能测试应完成以下方面的测试:

——通过代码审查,确保总线的地址转换寄存器窗口无冲突,包括窗口无重叠且满足一致性(例如8640 处理器上的 RapidIO 接口占用的 LAW 与 ATMU 中的外向窗口一致,否则会产生不可预知的错误);

——按照设计,测试是否能正确遍历到总线上的所有设备(例如各级 PCI 总线上的所有 PCI 设备);

——按照设计要求对总线设备的空间访问测试;

——对总线的数据收发功能进行测试;

——对总线设备的资源竞争性进行功能分析;

——对总线设备的状态转换进行测试;

——对总线设备的中断服务请求进行测试;

——对总线设备的收发性能(根据具体设备需求包括但不限于带宽、丢包率、时延等)进行测试。

7.12 外设类驱动测试

7.12.1 测试目标

外设类驱动指在基本的处理器运行平台上,提供各类特殊能力的设备,如电子盘存储设备、USB设备、显卡设备等。这些设备为机载设备提供了更加强大的、丰富的应用空间。同时其功能也不相同。概括来说,外设类设备可以分为设备初始化、打开、关闭、数据读取、数据发送、数据控制等功能子模块。

归属于外设类的设备包括键盘、鼠标、轨迹球、开关量、传感设备、电子盘、显卡以及其他特殊设

备等。

7.12.2 测试类型

由于外设种类的多样性,对此类设备的测试不能给出统一的标准。在可能的情况下, 应实现对外设类驱动的功能测试和中断保护分析,当测试条件不满足时辅以代码审查形式。

7.12.3 测试要点

外设类驱动功能测试应完成以下方面的测试:

——按照设计要求对外设的可用空间执行访问测试;

——依据通信协议对外设进行数据收发功能测试;

——对通信协议的可靠性进行分析;

——对设备的竞争情况进行资源分析和测试;

——对外设的控制命令和参数进行接口测试。

附录 A

(资料性附录)

板级支持包测试类型选择指南

本标准支持的板级支持包测试类型选择可参考表 A.1 规划测试内容和方法。

表 A.1 板级支持包测试类型选择表

附录 B

(资料性附录)

板级支持包测试要点表

本标准支持的处理器驱动测试要点如表 B.1 所示。

表 B.1 处理器驱动测试要点

本标准支持的中断控制器驱动测试要点如表 B.2 所示。

表 B.2 中断控制器驱动测试要点

本标准支持的串口驱动测试要点如表 B.3 所示。

表 B.3 串口驱动测试要点

本标准支持的网络驱动测试要点如表 B.4 所示。

表 B.4 网络驱动测试要点

本标准支持的定时器驱动测试要点如表 B.5 所示。

表 B.5 定时器驱动测试要点

本标准支持的 Flash 驱动测试要点如表 B.6 所示。

表 B.6 Flash 驱动测试要点

本标准支持的 NVRAM 驱动测试要点如表 B.7 所示。

表 B.7 NVRAM 驱动测试要点

下载地址
高清可复制 HB 8573-2020 民用飞机机载嵌入式操作系统板级支持软件测试要求 标准封面