一种基于汽车开放系统架构AUTOSAR的测试方法和装置与流程

未命名 07-27 阅读:118 评论:0

一种基于汽车开放系统架构autosar的测试方法和装置
技术领域
1.本技术实施例涉及智能驾驶领域,更具体地,涉及一种基于汽车开放系统架构autosar的测试方法和装置。


背景技术:

2.随着车载操作系统的日益成熟,新需求的日益增长,普通的软件开发方式难以快速满足用户的需求,模型驱动开发(model driven development,mdd)的开发方式通过使用高度抽象的业务模型作为构件,通过将模型转化为代码或其他工件,来驱动部分或全部的自动化开发。结合可视化技术,对车载操作系统的嵌入式软件进行开发,使得用户能够非常便捷地观测嵌入式软件的实时信息,以及调试维测嵌入式软件所出现的问题。
3.而通过该方式所开发的嵌入式软件,其所出现的问题往往是由于用户模型构造错误所导致,在现有技术中,对于嵌入式软件的维测,主要是依赖于人工加入维测代码以及修改用户模型以验证问题是否得到解决,从而导致维测的效率较低,影响整体项目的开发进度。


技术实现要素:

4.本技术实施例提供一种基于汽车开放系统架构autosar的测试方法和装置,能够快速定位模型运行过程中存在异常的节点,可以提高测试效率。
5.第一方面,提供了一种基于汽车开放系统架构autosar的测试方法,该方法可以由嵌入式系统的调试工具执行,或者,也可以由该调试工具中的芯片或处理电路执行,或者,也可以由测试装置执行,或者,也可以由该测试装置的芯片或处理器执行,本技术实施例对此不做限定。
6.该方法可以包括:获取第一模型的配置信息,该第一模型包括多个节点,该第一模型的配置信息包括该多个节点间的连接关系,和该多个节点中的每个节点的配置参数;获取该第一模型在嵌入式系统运行时,该多个节点间的调用信息,该嵌入式系统应用autosar架构;根据该配置信息和该调用信息,确定该多个节点中的异常节点。
7.本技术中,基于多个节点间的连接关系,以及模型在嵌入式系统运行过程中节点间的调用关系,能够快速定位模型运行过程中存在异常的节点,能够提高测试效率。
8.结合第一方面,在第一方面的某些实现方式中,该调用信息可以包括,该第一模型在该嵌入式系统运行时,该多个节点在调用过程中的异常信息;其中,该根据该配置信息和该调用信息,确定该多个节点中的异常节点,可以包括:根据该多个节点间的该连接关系和该异常信息,从该多个节点中确定该异常信息的关联节点;根据该异常信息的关联节点,确定该异常节点。
9.本技术中,通过确定异常信息的关联节点,能够缩小筛查异常节点的范围,能够提高定位异常节点的准确性和效率。
10.结合第一方面,在第一方面的某些实现方式中,该方法还可以包括:根据该异常信
息和第一映射关系,从该异常节点的配置参数中,确定异常配置参数;其中,该第一映射关系可以用于表征异常节点的配置参数与异常信息间的映射关系。
11.嵌入式系统中,在模型运行过程中,可以涉及应用层、基础软件层、操作系统层等多个层之间的调用。本技术中,根据第一映射关系和异常信息,能够快速定位由于节点的参数配置错误而导致的异常,能够提升对模型调试的效率。
12.结合第一方面,在第一方面的某些实现方式中,该方法还包括:获取该关联节点的维测信息,该维测信息用于指示该关联节点是否异常;该根据该异常信息的关联节点,确定该异常节点,可以包括:根据该维测信息,从该关联节点中确定该异常节点。
13.本技术中,通过对异常信息的关联节点进行维测,能够从关联节点中筛除异常节点以外的其他节点,可以避免对于异常节点的误判,能够提高定位异常节点的准确性。
14.结合第一方面,在第一方面的某些实现方式中,该方法还可以包括:根据该关联节点,确定第一维测模型;其中,该获取该关联节点的维测信息,可以包括:根据该第一维测模型,确定该关联节点的该维测信息。
15.本技术中,根据关联节点确定第一维测模型,并由此得到关联节点的维测信息,能够减少在调试过程中的人力工作,可以实现模型调试的自动化,从而提升调试效率,提升用户使用体验。
16.结合第一方面,在第一方面的某些实现方式中,该方法还可以包括:更新该异常节点的配置参数。
17.示例性地,可以根据异常节点,从推荐配置信息数据库中,筛选得到该异常节点对应的推荐配置信息集合,并根据该推荐配置信息结合更新该异常节点的配置参数。
18.示例性地,推荐配置信息集合中,可以包括所推荐的异常节点的配置参数,和/或,所推荐的配置参数的取值范围,和/或,所推荐的与其他节点间的连接关系,等等。
19.本技术中,基于推荐配置信息集合,更新异常节点的配置参数,可以实现模型的自动修正,能够减少在模型调试过程中的人力工作,能够提升用户使用体验。
20.结合第一方面,在第一方面的某些实现方式中,该多个节点可以包括一个或多个软件组件swc,以及一个或多个基础软件bsw,该方法还可以包括:根据该多个节点间的连接关系和该调用信息,从该异常节点中确定第一swc和第一bsw,其中,该一个或多个swc包括该第一swc,该一个或多个bsw包括该第一bsw,该第一bsw可以包括,该第一模型在嵌入式系统运行时,该第一swc所调用的bsw中存在异常的bsw。
21.由于在autosar架构下,rte层能够实现应用层与基础软件层的分离,用户在构建模型时可以无需关注或了解基础软件层的特定知识。
22.本技术中,能够以swc为粒度,从异常节点中确定异常的swc,以及异常的swc所调用的节点中存在异常bsw节点,使得用户能够基于异常swc及其所调用的异常bsw,获知导致异常发生的根本原因,便于用户对模型进行修改、调整。
23.第二方面,提供了一种测试装置,该装置可以包括:获取单元,可以用于,获取第一模型的配置信息,该第一模型包括多个节点,该第一模型的配置信息包括该多个节点间的连接关系,和该多个节点中的每个节点的配置参数;获取该第一模型在嵌入式系统运行时,该多个节点间的调用信息,该嵌入式系统应用汽车开放系统架构autosar;处理单元,用于根据该配置信息和该调用信息,确定该多个节点中的异常节点。
24.结合第二方面,在第二方面的某些实现方式中,该调用信息可以包括该第一模型在该嵌入式系统运行时,该多个节点在调用过程中的异常信息;该处理单元,可以用于:根据该多个节点间的该连接关系和该异常信息,从该多个节点中确定该异常信息的关联节点;根据该异常信息的关联节点,确定该异常节点。
25.结合第二方面,在第二方面的某些实现方式中,该处理单元,还可以用于:根据该异常信息和第一映射关系,从该异常节点的配置参数中,确定异常配置参数;其中,该第一映射关系可以用于表征该异常节点的配置参数与异常信息间的映射关系。
26.结合第二方面,在第二方面的某些实现方式中,该获取单元,还可以用于:获取该关联节点的维测信息,该维测信息用于指示该关联节点是否异常;该处理单元,可以用于:根据该维测信息,从该关联节点中确定该异常节点。
27.结合第二方面,在第二方面的某些实现方式中,该处理单元,还可以用于:根据该关联节点,确定第一维测模型;该处理单元,可以用于:根据该第一维测模型,确定该关联节点的该维测信息。
28.结合第二方面,在第二方面的某些实现方式中,该处理单元,还可以用于:更新该异常节点的配置参数。
29.结合第二方面,在第二方面的某些实现方式中,该多个节点可以包括一个或多个软件组件swc,以及一个或多个基础软件bsw,该处理单元,还可以用于:根据该多个节点间的连接关系和该调用信息,从该异常节点中确定第一swc和第一bsw,其中,该一个或多个swc包括该第一swc,该一个或多个bsw包括该第一bsw,该第一bsw可以包括,该第一模型在嵌入式系统运行时,该第一swc所调用的bsw中存在异常的bsw。
30.第三方面,提供了一种测试装置,该装置包括:存储器,用于存储计算机程序;处理器,用于执行该存储器中存储的计算机程序,以使得该装置执行上述第一方面及其任一可能的实现方式中的方法。
31.第四方面,提供了一种计算机可读存储介质,上述计算机可读介质存储有计算机程序,当上述计算机程序在计算机上运行时,使得计算机执行上述第一方面任一种可能实现方式中的方法。
32.第五方面,提供了一种芯片,该芯片包括电路,用于执行上述第一方面任一种可能实现方式中的方法。
33.第六方面,提供了一种计算机程序产品,上述计算机程序产品包括:计算机程序代码,当上述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面任一种可能实现方式中的方法,或者上述第二方面任一种可能实现方式中的方法。
附图说明
34.图1是本技术实施例提供的一种在嵌入式系统测试模型的流程的示意图;
35.图2是本技术实施例提供的一种调试用户模型的场景的示意图;
36.图3是本技术实施例提供的一种测试方法的流程性示意图;
37.图4是本技术实施例提供的一种用户模型的示意图;
38.图5是本技术实施例提供的一种获取静态信息的方法的示意图;
39.图6是本技术实施例提供的一种获取动态信息的方法的示意图;
40.图7是本技术实施例提供的一种获取维测模型的方法的示意图;
41.图8是本技术实施例提供的一种确定维测模型的场景的示意图;
42.图9是本技术实施例提供的一种确定异常节点的方法的流程示意图;
43.图10是本技术实施例提供的一种实现维测调试代码自动生成的方法的流程示意图;
44.图11是本技术实施例提供的一种自动修复用户模型的方法的示意图;
45.图12是本技术实施例提供的一种维测模型的调试结果的示意图;
46.图13是本技术实施例提供的一种测试装置的示意性框图;
47.图14是本技术实施例提供的另一种测试装置的示意性框图。
具体实施方式
48.下面将结合附图,对本技术实施例中的技术方案进行描述。
49.1.汽车开放系统架构(automotive open system architecture,autosar):为全球汽车制造商、供应商、服务提供商及电子、半导体和软件公司联合建立的一个标准组织定义的开放参考的ecu软件架构。
50.2.运行时环境(runtime environment,rte)层:autosar架构的核心组成部分,是autosar虚拟功能总线的接口的实现,为应用软件之间的通信提供了基本的服务,也便于访问包含操纵系统(operation system,os)的基础软件。
51.在autosar架构中,rte层能够实现应用层与基础软件层的分离,以及这些层之间数据交换的控制。rte层也构成了应用层面向组件、独立于硬件的软件架构的基础,使得开发人员可以在不了解所使用的或计划使用的硬件的特定知识的情况下,开发应用层的软件组件,以及在开发过程中灵活地将现有的软件组件重新定位到电子控制单元。
52.3.虚拟功能总线(virtual function bus,vfb):对autosar提供的通信机制的一种抽象,是软件组件(software component,swc)进行交互的桥梁。通过vfb,可以将swc之间的通讯细节被抽象出来,通过autosar定义的接口对通讯进行描述,可以独立于具体的通讯机制,实现swc与swc或硬件间的交互。
53.4.软件组件:属于autosar架构的应用层,应用层位于rte层的上层。软件组件是封装了部分或者全部车辆电子功能的模块。软件组件包括该电子功能具体的功能实现以及与其对应的描述,各个软件组件通过虚拟功能总线进行交互,从而形成autosar应用软件。应用软件由多个可以相互交互的swc组成,各swc间的交互可以由vfb提供的通讯机制实现。
54.构建swc的过程中,可以定义swc的端口(port)。端口可以用于表征该swc与该swc外部的通信内容、方向。该swc可以通过所定义的端口,与其他swc或者硬件进行通讯或者交互。例如,一个swc的端口#1是供型端口,用于对外提供某种数据或某类操作。又例如,另一个swc的端口#2是需型端口,用于从其他swc获取某种数据或某类操作。又例如,可以将上述端口#1和端口#2连接,使得上述两个swc可以通过该端口#1和端口#2进行通信。
55.swc的功能可以通过运行实体(runnable entity)来体现。swc可以包括一个或多个可运行单元,即运行实体,该运行实体可以实现其所在的软件组件所对外提供的功能。例如,运行实体可以与对应的rte事件绑定,在该绑定的事件发生时,可以触发该运行实体,运行实体可以通过访问端口的数据或操作完成自身的功能,并将数据处理的结果或者操作通
过端口提供给外部。
56.5.基础软件(basic software,bsw)层:位于rte层的下层,用于为软件组件提供服务。基础软件层由一系列bsw组成,比如,提供系统服务、储存器服务或通信服务等面向硬件的基础软件。根据所提供的内容,可以对基础软件层进一步细分。例如,可以将基础软件层进一步分为服务层、ecu抽象层、微控制器抽象和复杂设备驱动程序层。又例如,服务层可以所包括的bsw模块,可以提供操作系统功能、车联网通讯及管理服务、内存服务、诊断服务、ecu状态管理、ecu模式管理、逻辑和时间程序流监控等服务。
57.在autosar架构中,基础软件层,可以包括多个遵循autosar标准的基础软件。基础软件的标准化,有助于在开发应用软件的过程中,无需关注硬件的类型,从而使得软件的开发更加标准化、规范化、安全化、快速化和经济化。
58.6.autosar操作系统(operation system,os):基于autosar标准开发的微型实时操作系统。
59.用户模型:用户通过mdd工具所配置的模型。
60.示例性地,图1是本技术实施例提供的一种在嵌入式系统测试模型的流程的示意图。
61.示例性地,用户可以通过建模工具,可以实现用户模型的构建。用户模型可以包括多个模型节点(或称为节点),也可以用于描述模型节点间的关联关系,该模型节点可以是软件组件、基础软件。一些可能的实现方式中,该建模工具可以与显示装置连接,从而可以实现对模型配置的可视化。一些可能的实现方式中,在将用户模型转化为程序代码之前,可以通过配置工具,将该用户模型转化为autosar所支持的配置信息的格式。
62.示例性地,通过代码生成工具,将用户模型转化为高级语言的程序代码,可以获得不依赖于特定机器或环境的程序代码。通过代码生成工具,可以将用户模型转化为,嵌入式系统调试所需的程序代码。比如,rte程序代码、bsw程序代码等。
63.示例性地,通过代码编译工具,可以实现上述程序代码的编译。
64.示例性地,可以通过嵌入式系统的调试工具,将编译后的程序代码在嵌入式系统中进行调试。
65.由于在autosar架构中,通过rte层实现应用层与基础软件层的分离,而且由bsw层为应用层提供服务。以应用软件的开发人员为例,该用户对于模型的配置,可以只关注包含swc的应用层,也可能会关注应用层与bsw层之间的交互,并对模型所涉及的swc模块及其参数进行配置。但是,该用户可能并不会关注bsw层内部各bsw模块间的调用关系和交互过程,也可能并不了解bsw层内的各bsw模块的配置。虽然该用户在配置该模型的过程中,可能并未对bsw模块的具体参数进行配置。但是,而该用户所配置的模型,在autosar架构的嵌入式系统中运行或者测试的过程中,会涉及到该用户未曾配置的bsw模块等。
66.然而,模型在嵌入式系统中的调试结果往往体现为,该模型的运行过程中bsw层所出现的异常信息。根据该调试结果,难以直接与用户所构建模型建立联系。在调试结果出现错误或者说调试结果不符合用户预期时,对于异常的定位,严重依赖于调试人员对于autosar架构特定知识的了解。一方面,若依赖于全栈工程师解决上述异常,将会显著提升调试人员的准入门槛。另一方面,若依赖于bsw层、bsw层中各bsw模块的开发人员或调试人员解决该异常,不可避免的存在沟通的时间成本,导致调试效率的降低。上述情形导致对用
户模型的调试与修改较为复杂,且耗时较长。而且在实际场景中,可能会需要对用户模型进行多次修改与调试,导致整个工程的开发以及测试进程受到严重影响。
67.示例性地,图2是本技术实施例提供的一种调试用户模型的场景的示意图。
68.示例性地,在模型设计层,可以配置用户模型。例如,可以配置模型中的所涉及的swc模块的参数,该模型所涉及的swc模块,可以称为该模型的swc节点。又例如,可以配置swc节点间的连接关系。又例如,也可以配置swc节点与bsw层之间的交互关系。
69.在autosar架构中,可以通过rte层实现应用层与基础软件层的分离,而且由bsw层为应用层提供服务。对系统的设计可以采用分层设计的方式,应用层与bsw层的设计可以相互独立,swc模块与bsw模块的设计和/或调试可以相互独立。一些可能的场景中,可以对应用层和bsw层进行同步开发,以提升开发效率。
70.示例性地,以应用程序的开发人员为例,该用户可以在模型设计层对用户模型进行配置,而该用户所配置的模型信息,可以包括该用户模型在实际运行过程中所需的配置信息中的部分。例如,可以包含对应用层中的swc模块的配置,以及其与bsw层的交互的配置。又例如,也可以包含该模型对于bsw层的部分参数的配置,而由于应用层与bsw层的设计相互独立,用户可以无需关注对bsw层所配置的参数具体属于哪个bsw模块。
71.一个实施例中,该模型在运行过程中所涉及的bsw模块,比如,模型在运行过程中所调用的底层的bsw模块等,可能并未由该应用程序的开发人员在模型设计层进行配置。该用户模型在实际运行过程中所需的配置信息的另一部分,可以体现在嵌入式系统的配置文件中。
72.示例性地,基于嵌入式系统的配置文件,可以获取该模型在运行过程中所涉及的bsw模块的配置信息。例如,通过该嵌入式系统的配置文件,可以获取模型中,swc节点所直接调用的bsw模块的部分配置参数。又例如,可以获取模型中,swc节点间接调用的bsw模块的配置参数,其中,间接调用的bsw模块可以指,swc节点直接调用的bsw模块,所直接调用的其他bsw模块,或者,通过其他bsw模块所间接调用的bsw模块。swc节点直接调用bsw模块和/或间接调用的bsw模块,可以称为模型所涉及的bsw节点,可以简称为bsw节点。又例如,根据嵌入式系统的配置信息,可以获知bsw节点间的连接关系。
73.示例性地,结合用户在模型设计层对该模型的配置,以及调试该模型的嵌入式系统的配置信息,可以获取该模型在运行过程中的完整的配置信息。模型的配置信息也可以称为静态信息。例如,配置信息中可以包括,该模型所调用的swc节点和bsw节点的配置参数,该模型所涉及的swc节点之间、bsw节点之间,和swc与bsw节点间的连接关系。
74.在代码层,可以将模型转化为调试所需的程序代码,并进行编译。由此,可以将编译后的程序代码在嵌入式系统中运行。也可以称为,将模型在该嵌入式系统中运行。
75.在嵌入式系统中,在运行该模型时,该模型节点间会存在调用关系,该嵌入式系统可以对节点间的调用过程进行记录,得到调用信息。比如,该调用信息可以包括,运行过程中生成的日志(log)信息、故障的追踪(trace)信息、维测信息等。调用信息也可以称为动态信息。例如,在获取用户模型,且未对该用户模型进行修改或调整时,通过将用户模型转化为代码,并将其编译后在嵌入式系统中进行运行,可以得到该模型的动态信息,结合该模型的静态信息以及该动态信息,可以获得该模型的维测模型,对模型进行维测。又例如,维测模型通过检查自身错误,根据维测中的log信息、trace信息等,可以从用户模型的节点中筛
选出存在异常的节点,进一步可以确定该节点的配置参数中存在错误的部分,从而可以实现对模型节点的配置参数进行修正,以实现对于用户模型的修正、优化、更新。又例如,该维测模型可以由图1中涉及的嵌入式系统的调试工具生成。又例如,可以对更新后的模型进行嵌入式调试,并测试该更新后的模型是否依然存在异常。又例如,根据静态信息和动态信息,也可以确定用户模型中存在错误的节点间的连接关系。又例如,可以通过界面提示模型中的异常节点,以及修改、优化的建议等。
76.示例性地,图3是本技术实施例提供的一种测试方法的流程性示意图。该方法300可以由上述嵌入式系统的调工具执行,或者,也可以由该装置的芯片、处理电路等执行,或者,也可以由测试装置,或者测试装置的处理器或芯片等执行。该方法300可以包括以下步骤:
77.s310,获取第一模型的配置信息,该第一模型包括多个节点,该第一模型的配置信息包括多个节点间的连接关系,和该多个节点中的每个节点的配置参数。
78.示例性地,该第一模型,可以指用户所配置的用户模型,也可以指,对该用户模型更新、调整后的模型。
79.示例性地,第一模型的配置信息,可以指该模型在运行过程中所需的完整的配置信息。
80.一个实施例中,在模型设计层,对于该模型的配置,可能仅包括该第一模型的配置信息中的部分。例如,该模型在运行过程中所涉及的bsw层的部分配置信息,在模型设计层配置模型的过程中,可能并未涉及。
81.又一个实施例中,可以根据多个节点间的连接关系,从该嵌入式系统的配置信息中,筛选得到该模型所涉及的bsw节点的配置参数。该该嵌入式系统的配置信息,可以包括该嵌入式系统所包含的bsw模块的配置参数,可以存储于嵌入式系统的配置文件中。
82.示例性地,第一模型在运行过程中所涉及的模块,可以称为该模型的节点。该第一模型所包括的该多个节点,可以包括swc节点和bsw节点。例如,该第一模型的配置信息中,可以包括swc节点中的runnable、port等的配置参数。又例如,该第一模型的配置信息可以包括bsw节点间的连接关系和配置参数等。
83.s320,获取该第一模型在嵌入式系统运行时,该多个节点间的调用信息。该嵌入式系统应用autosar架构。
84.示例性地,该第一模型在嵌入式系统中运行,可以指,在该嵌入式系统中运行由该第一模型所转化的程序代码。
85.一些可能的实现方式中,该运行该第一模型前,可以将该第一模型转化为一个或多个程序代码。例如,可以将该第一模型转化为,嵌入式系统调试所需的rte程序代码、bsw程序代码等,并将上述代码转化为嵌入式系统支持的格式。
86.示例性地,应用autosar架构的嵌入式系统,可以设置有调试模块,比如,bsw的诊断日志和跟踪模块、rte日志模块等。在运行该第一模型时,可以通过嵌入式系统的调试模块,获取该多个节点间的调用信息。
87.s330,根据该配置信息和该调用信息,确定该多个节点中的异常节点。
88.示例性地,在第一模型运行时,该第一模型中的多个节点,通过节点间的调用,可以实现该第一模型的功能。
89.示例性地,遵循autosar架构的嵌入式系统,可以设置有对应的调试模块,可以用于记录模型运行过程中的调用信息。例如,rte层、bsw层和os层对应的调试模块,可以分别用于记录rte层、bsw层和os层内的调用信息。又例如,在模型运行存在异常时,调用信息可以包括多个节点在调用过程中的异常信息。
90.一些可能的实现方式中,根据多个节点间的连接关系和异常信息,从多个节点中确定该异常信息的关联节点,根据该异常信息的关联节点,可以确定异常节点。
91.示例性地,根据节点间的连接关系和异常信息,可以从该模型的多个节点中筛选出底层所有可能发生该错误的模块。
92.一个实施例中,假设第一模型包括多个节点,其中,swc1分别与bsw1和swc2连接,bsw1分别与bsw2和bsw7连接,bsw2与bsw3连接,bsw1位于swc1的下层,bsw2和bsw7位于bsw1的下层,bsw3位于bsw2的下层。在调用信息显示bsw1异常时,根据该异常信息和节点间的调用关系,可以确定该bsw2、bsw7、bsw3可能存在异常。
93.示例性地,可以对异常信息的关联节点进行维测,从异常信息的关联节点中确定异常节点。例如,对于上述bsw2、bsw3、bsw7进行维测,根据维测结果,可以确定bsw2和bsw3为正常节点,调用信息所显示的bsw1异常,是由bsw1调用bsw7的过程存在异常所导致的,从而确定bsw1、bsw7、swc1为异常节点。又例如,该bsw1调用bsw7所出现的异常,可以是模型运行过程中采用了swc1、bsw1和/或bsw7中的某些配置参数,根据异常信息,可以确定异常节点的配置参数。异常节点的配置参数与异常信息间的映射关系,可以称为第一映射关系。
94.示例性地,可以根据异常信息的关联节点,确定对应的维测模型,以对关联节点进行维测。例如,可以将该异常信息的关联节点与嵌入式系统的调试模块相连,以获取关联节点的调试结果。
95.示例性地,该方法还可以包括:更新该异常节点的配置参数。例如,可以获取推荐配置信息的数据库,该数据库中可以包括对于swc模块、bsw模块的配置参数、连接关系等配置信息的推荐值。又例如,可以根据异常节点,从该推荐配置信息的数据库中,确定对应的推荐配置信息集合。比如,该推荐配置信息集合,可以包括对于异常节点的配置参数的推荐值,也可以包括对于异常节点的配置参数的推荐取值范围,也可以包括对于异常节点的连接关系的推荐信息。
96.一个实施例中,该推荐配置信息集合可以是基于autosar规范所构建的。又一个实施例中,该推荐配置信息集合可以是基于工程实践经验所构建的。
97.示例性地,在异常节点中包括swc节点和bsw节点时,可以以swc为粒度,确定第一swc所对应的第一bsw。其中,第一swc可以为异常节点中所包括的任意swc节点,第一bsw可以包括,该第一模型在运行时,该第一swc所调用的bsw中,存在异常的bsw节点。例如,以上述异常节点包括swc1、bsw1和bsw7为例,该swc1可以为该第一swc,对应的第一bsw可以包括bsw1和bsw7。
98.下面结合图4至图11,以在嵌入式系统中对用户模型进行测试为例,说明本技术实施例提供的测试方法。
99.示例性地,图4是本技术实施例提供的一种用户模型的示意图。
100.示例性地,该用户模型中可以包括至少一个swc节点。例如,如图4所示,该用户模型可以包括3个swc类型的节点,swc1、swc2和swc3。又例如,swc1、swc2、swc3可以通过各自
的port、runnable调用bsw模块,也可以调用os中的部分模块。
101.示例性地,该用户模型中可以包括多个bsw节点。例如,如图4所示,该用户模型可以包括7个bsw类型的节点,bsw1、bsw2、bsw3、bsw4、bsw5、bsw6和bsw7。
102.一个实施例中,用户在利用建模工具配置用户模型时,可以实现对swc1、swc2和swc3的参数和三者间的连接关系的配置,也可以配置swc1、swc2和swc3与bsw层之间的交互关系。例如,如图4所示,可以对swc1以及swc1中的port和runnable进行配置。又例如,swc2可以通过port3和port1,实现与swc1的交互。
103.又一个实施例中,用户在利用建模工具配置用户模型时,也可以实现对于bsw层的部分参数的配置,以满足所配置的用户模型的需求。而由于应用层与bsw层的设计相互独立,用户可能并不清楚该模型涉及哪些bsw节点,可能也不清楚所配置的bsw层的参数具体属于bsw1至bsw7中的哪些节点,可能也不清楚模型所涉及的bsw节点间的连接关系。该bsw1至bsw7可以是根据autosar协议,或者其他预设方式所确定的,该用户模型在运行过程中会涉及的bsw模块。
104.又一个实施例中,以大数据通信为例,节点bsw1可以为大数据通信(large data communication,ldcom)模块,节点bsw2可以为基于网络协议的可扩展面向服务中间件(scalable service-oriented middleware over internet protocol,some/ip)模块,节点bsw3可以为协议数据单元(protocol data unit,pdu)模块,节点bsw4可以为适配(socket adapter,soad)模块。例如,swc1可以通过port2实现与bsw1的交互,bsw1在实现其功能的过程中,可以逐级分别调用bsw2、bsw3和bsw4。又例如,可以根据autosar协议或其他规范,确定该节点bsw1、bsw2、bsw3和bsw4之间的连接关系。又例如,可以从嵌入式系统的配置文件中,获取bsw1至bsw4的配置参数以及连接关系。
105.又一个实施例中,该节点bsw5可以为通信(communication,com)模块,该com模块为介于rte层和pdu路由器之间的服务层模块,可以用于在rte层之间传递信号。模型中的节点,可以包括os中的模块,该节点也可以称为os节点。例如,swc1中的runnable1可以与该com模块连接,还可以与os中的事件(event)模块连接。其中,与event模块相连的运行实体,可以表示,该运行实体由event模块所管理的事件相关。比如,runnable1可以由event模块管理的事件event#1触发,进而调用节点bsw5。
106.又一个实施例中,bsw6可以为诊断通信管理(diagnostic communication manager,dcm)模块。
107.又一个实施例中,swc3通过port5可以进行操作系统间应用程序通信(inter os application communication,ioc)。
108.应理解,图4所示模型仅为示例,图4所示的各节点间的连接关系,可以是该模型中的部分节点间的连接关系。例如,swc2中的runnable3可以与节点bsw6连接,swc3中的port6可以与节点bsw5连接等。又例如,该模型还可以涉及更多或更少的swc节点和/或bsw节点。又例如,swc1、swc2和/或swc3,也可以包括更多或更少的port和/或runnable。也就是说,本技术对模型的具体形式不做限定。
109.示例性地,图5是本技术实施例提供的一种获取静态信息的方法的示意图。
110.示例性地,元模型可以是用户模型,也可以是更新后的用户模型。该元模型可以理解为方法300中的第一模型。其中,该元模型中的节点,可以包括swc节点和bsw节点。在一些
可能的实现方式中,也可以包括os节点。
111.示例性地,对于模型中的swc类型的节点,可以基于swc定义文件和元模型确定对于该元模型中的swc节点的配置。例如,swc定义文件可以包括对于swc中的runnable、port等模块的配置信息。又例如,基于元模型可以确定该swc与模型中其他节点间的连接关系,比如,swc1与其他swc间的交互关系,该swc1与bsw层的交互关系。由此,可以获取该模型的静态信息中swc层的部分,可以将存储于swc配置文件中。
112.示例性地,对于元模型中的bsw节点,可以根据元模型和嵌入式系统的配置文件(简称为系统配置文件),获取bsw节点的配置参数。嵌入式系统的配置文件,可以包含该嵌入式系统中的bsw模块的配置参数,也可以包括各bsw模块间的交互关系。也就是说,嵌入式系统的配置文件中所涉及的bsw模块,可以包括元模型所涉及的bsw模块(即bsw节点),也可以包括元模型之外的bsw模块。
113.一个实施例中,由于在autosar架构中,bsw模块可以是标准化的,基于autosar规范所配置的bsw可以称为标准bsw,bsw定义文件可以包括标准bsw的配置参数。
114.又一个实施例中,元模型可以涉及用户自定义的bsw模块,bsw定义文件也可以包括该自定义bsw的配置参数。
115.示例性地,基于嵌入式系统的配置文件,结合元模型,可以确定该元模型的配置信息中涉及的bsw节点的部分。该元模型所涉及的bsw节点的配置信息可以存储于一个或多个文件中。
116.一个实施例中,元模型的配置信息中涉及的bsw节点的部分,可以通过多个文件获取。例如,元模型可以引用、调用嵌入式系统的bsw模块,可以将该元模型所涉及的bsw节点对于标准bsw模块的引用、与标准bsw模块的关联关系等信息,存储于bsw定义文件中(记作ecuc module def),以描述元模型所引用的bsw模块的配置参数,以及这部分bsw模块与其他模块间的连接关系。又例如,用户在定义模型时,可能会涉及到对于bsw层部分参数的配置,可以将此处所涉及的bsw模块的配置参数,存储于bsw配置文件中(记作ecucdecription)。又例如,以com通信为例,bsw配置文件中,可以包括用户对于com通信中的时间值的配置,可以包括用户对于所涉及的信号的配置。
117.示例性地,通过结合多个文件,可以获取元模型的配置信息中涉及的bsw节点的部分。又例如,元模型的配置信息中涉及bsw节点的部分,可以存储于bsw动态文件中。
118.一些可能的实现方式中,该bsw动态文件可以包括在配置工具在配置过程中所动态生成的cd、md等格式的文件。
119.示例性地,在模型涉及到对os的配置时,可以通过os配置文件,获取模型对于os的配置信息。例如,该os配置文件可以用于描述,该元模型对于嵌入式系统的os的配置需求。
120.示例性地,由于rte层可以用于实现软件组件与软件组件、软件组件与基础软件间的通信,可以在rte层进行静态信息的分析与整合的过程。
121.示例性地,图6是本技术实施例提供的一种获取动态信息的方法的示意图。
122.示例性地,在autosar架构下,可以通过嵌入式系统中对应的调试模块,获取rte层、bsw层或os所产生的调用信息。由此,在嵌入式调试的过程中,可以由rte层、os、bsw层所对应的调试模块,输出rte层、os、bsw模块的维测信息。例如,bsw的诊断日志和跟踪(diagnostic log and trace,dlt)模块等维测模块,可以生成调试过程中在bsw层的维测
信息,由此可以获取bsw层所涉及的动态信息;又例如,rte维测模块(比如,dlt模块、vhr模块等)、rte日志模块(比如,vfb等)、rte跟踪模块等模块,可以产生调试过程中rte层的维测信息,由此可以获得rte层所涉及的动态信息;又例如,在调试过程中,os的维测模块、时序工具等模块可以产生os的维测信息,由此可以获得os所涉及的动态信息。
123.应理解,在调试过程中,也可以是获取其他模块所产生的调用信息,以获取该模型的动态信息。
124.示例性地,图7是本技术实施例提供的一种获取维测模型的方法的示意图。
125.示例性地,通过获取静态信息,将静态信息以autosar元模型为基础建立静态模型。
126.一个实施例中,模型中不同类型的对象(比如swc、bsw、port、runnable、os等)可以具有各自所需配置的项目。例如,依据autosar规范,swc节点待配置的项目可以包括port、runnable、触发runnable的事件、其可获取的操作(记作getoperation)等。又例如,进一步地,port所需要配置的项目可以包括标识、名称、类型中的一项或多项,runnable所需配置的项目可以包括标识、名称、类型中的一项或多项。又例如,bsw需要配置的项目可以包括标识、名称、类型(type)等。又例如,静态节点映射表中可以包括模型的多个节点间的连接关系。
127.由此,通过静态信息,可以获知该模型对各节点所需配置的项目的设置,即节点的配置信息。
128.一个实施例中,可以采用类(class)、结构体(structure)等数据类型,将各对象所需要配置的项目组织在一起,也就是说,各节点的配置信息可以通过类、结构体等数据类型组织和呈现。例如,可以在与配置工具相连的显示装置中,显示各对象的配置信息,以便于用户查看、调整。
129.示例性地,将静态信息以节点为粒度,采用类的数据类型分别进行组织,可以构建静态模型。将rte层所涉及的动态信息、bsw层所涉及的动态信息和os所涉及的动态信息,以类的数据类型分别进行组织,可以构建动态模型。
130.应理解,上述对于静态信息的描述只是示例,本技术实施例对此不做限定,比如,swc的配置参数还可以包括swc的类型等,各节点的配置信息也可以通过文本等其他数据类型组织和呈现。
131.示例性地,根据动态信息,可以确定异常或故障的具体内容,也可以确定出现该异常或故障的调用行为。例如,根据该动态信息,可以确定模型在运行时,发生异常的调用行为,比如,如表1所示,根据动态信息,可以确定调用过程中,在标识为task1、名称为task1 name的任务中发生异常,该异常的具体内容为“事件设置错误”。又例如,如表1所示,根据动态信息,可以确定在发送标识为signal、名称为signal1 name的信号时发生异常,该异常的具体内容为“com信号发送失败”。又例如,如表1所示,根据动态信息,可以确定在调用标识为api1、名称为api1 name的应用发生异常,该异常的具体内容为“无返回值”。
132.表1
133.标识异常信息节点异常信息task1task1 name事件设置错误signal1signal1 namecom信号发送失败
api1api name无返回值
134.示例性地,可以根据调用行为与节点间的连接关系,确定发生该异常的节点。例如,软件组件swc1通过端口port1执行可运行实体runnable1的过程中,产生该任务task1,由此该task1可以与swc1、port1、runnable1存在连接关系。又例如,软件组件swc1在通过端口port2执行可运行实体runnable2的过程中,涉及到发送信号signal1,由此,该信号signal1与swc1、port2、runnable2存在连接关系。再例如,软件组件swc2通过端口port3执行可运行实体runnable3的过程中涉及对应用api1的调用,由此api1可以与swc2、port3、runnable3存在映射关系。由此,可以将动态信息与静态信息结合,比如,如图表2所示。又例如,所获取的静态信息和动态信息,可以以不同的格式存储,在结合静态信息和动态信息之前,可以对静态信息和/或动态信息进行解析,和/或进行格式转化。又例如,可以通过显示界面显示该异常节点和异常信息。
135.表2
[0136][0137]
为了便于描述模型在嵌入式系统中的运行过程,可以通过类(class)、结构体等数据类型,将模型在嵌入式系统中运行时所涉及的对象的属性信息组织在一起,以便于用户查看。上述对象可以包括模型节点,也可以包括模型运行过程中的调用行为。
[0138]
示例性地,图8为本技术实施例提供的一种确定维测模型的场景的示意图。
[0139]
如图8所示,基于元模型(记作meta model)、bsw配置文件和bsw定义文件中的静态信息,可以得到静态模型。
[0140]
示例性地,可以采用类的数据类型,将静态信息以节点为粒度重新组织,确定每个节点的属性信息,并由此构建静态模型。例如,swc的属性信息可以包括对于port、runnable、事件(event)等的配置参数。swc的属性信息也可以包括该swc可获取的操作、可获取的接口(记作getinterface)等。又例如,bsw的属性信息,可以包括bsw类型(记作bswtype),也可以包括该bsw的标识。又例如,可以利用类的数据类型,将port的静态信息组织在一起,生成port的属性信息。port的属性信息可以包括标识、端口类型(记作porttype)等。又例如,runnable的属性信息,可以包括标识、可运行实体类型(记作runnabletype)等。又例如,可以通过名称(name)区分各对象,也可以通过标识号码(identity,id)区分各对象。
[0141]
示例性地,在静态模型中,可以包括swc、bsw、runnable和port中至少一个类的实体。其中,swc类的实体、bsw类的实体、runnable类的实体和port类的实体,可以分别指以swc、bsw、runnable、port为粒度,采用类的数据类型分别将相应的swc的属性信息(比如,标识、runnable、port)、bsw的属性信息、runnable的属性信息和port的属性信息所对应的静态信息组织在一起。例如,以图4所示模型为例,通过对静态信息的整理,可以确定swc1、swc2、swc3和bsw1等的属性信息,并构建对应的静态模型。
[0142]
如图8所示,可以采用类的数据类型对动态信息进行组织整理,得到动态模型。
[0143]
示例性地,可以采用类的数据类型,将动态信息以调用行为为粒度进行整理,确定每个调用行为的属性信息,并由此构建动态模型。例如,在rte层的调用行为的属性信息,可以包括标识、该调用行为关联的swc、该调用行为关联的port、该调用行为关联的runnable、该调用行为关联的event和该调用行为关联的task中的一项或多项。又例如,在bsw层的调用行为的属性信息,可以包括标识、该调用行为关联的swc、该调用行为关联的port、该调用行为关联的bsw函数、该调用行为关联的event和该调用行为关联的task中的一项或多项。又例如,在os层的调用行为的属性信息,可以包括标识、该调用行为关联的swc、该调用行为关联的port、该调用行为关联的os函数、该调用行为关联的event和该调用行为关联的task中的一项或多项。
[0144]
一个实施例中,调用行为的属性信息,还可以包括该调用行为所支持的函数。例如,获取异常端口的函数(记作getabnormalport)、获取异常事件的函数(记作getabnormalevent)和获取异常任务的函数(记作getabnormaltask)等函数中的一项后多项。又例如,获取该调用行为的关联swc节点的函数(记作getswcid)。
[0145]
又一个实施例中,如图8所示的动态模型中,可以包括rte日志(记作rtelog)、os日志(记作oslog)、bsw日志(记作bswlog)中一个或多个类的实体。其中,rte日志类、os日志类、bsw日志类,可以分别指,以rte日志、os日志和bsw日志为粒度,采用类的数据类型将相应的rte层的调用行为的属性信息、os层调用行为的属性信息和bsw层调用行为的属性信息,组织在一起。
[0146]
示例性地,调用行为与节点间的映射关系,将动态模型与静态模型融合得到维测模型。
[0147]
示例性地,可以采用类的数据类型,以swc为粒度,对维测模型的维测信息进行整理,以便于用户确认模型的测试过程与结果。例如,维测模型的属性信息中可以包括,异常的严重程度(记作severity)、异常的数量(记作abnormal)、严重的部分(记作seriouspart)等信息。又例如,属性信息中可以包括获取外部端口(记作getouterport)、获取内部端口(记作getinnerport)和获取bsw的操作(记作getbswoperation)等维测模型可支持的操作或函数。
[0148]
应理解,以上关于静态信息、动态信息和维测模型的描述只是示例,本技术实施例对此不做限定。
[0149]
示例性地,图9是本技术实施例提供的一种确定异常节点的方法的流程示意图。
[0150]
示例性地,模型在嵌入式系统中调试过程中,随着模型的运行,可以实时产生新的动态信息。
[0151]
示例性地,获取元模型对应的维测模型之后,随着调试过程的进行,可以对维测模型进行更新。在模型更新过程中,可以根据异常信息的关联节点,得到第一维测模型,并得到对应的维测代码。也可以根据维测结果,确定异常节点,并实现对元模型的修改与更新。例如,根据时刻1的动态信息和静态信息,可以得到该时刻的动态模型和静态模型,并由此确定维测模型#1。又例如,在确定该维测模型#1存在异常时,根据该异常信息,在该维测模型中确定该异常信息的关联节点,进而可以对该关联节点进行维测。又例如,可以通过对该可能存在异常的模块增加dlt接口等,生成对应的第一维测模型。相应地,可以将第一维测模型转化为相应的维测代码。又例如,根据该维测代码,可以得到该关联模块的维测结果,
也可以据此实现对动态信息的更新。又例如,根据上述维测结果,从异常信息的关联节点中确定异常节点,可以确定该异常节点的异常配置参数等。
[0152]
一个实施例中,模型的静态信息可以存储于autosar可扩展标记语言(autosar extensible markup language,arxml)格式的文件中。autosar架构下不同层的配置信息,可以存储于不同的arxml文件中。例如,元模型的配置信息中swc所处的应用层的部分,可以存储于swc arxml文件中,rte层的部分,可以存储于rte arxml文件中,bsw层的部分可以存储于bsw arxml文件中。又例如,在确定异常配置参数后,通过修改对应的arxml文件,可以实现对于模型的配置信息的修改与更新。
[0153]
又一个实施例中,在确定存在异常的节点后,可以激活校验功能,触发对于模型的配置信息的修改,从而实现静态信息的更新。由此,根据该更新后的动态信息和静态信息,可以实现对于维测模型的更新,得到更新后的维测模型,记作维测模型#2。又例如,可以通过该界面工具等显示装置显示更新前的维测模型的异常信息,也可以通过界面显示工具显示该更新后的模型。
[0154]
示例性地,以图4所示模型为例,假设节点bsw1为ldcom模块、节点bsw2为some/ip模块、节点bsw3为pdu模块、节点bsw4为soad模块,节点间的连接关系储存于静态映射表中,动态信息指示swc1调用ldcom的过程出现异常。结合图10和图11简要说明模型的更新过程。
[0155]
示例性地,图10是本技术实施例提供的一种实现维测调试代码自动生成的方法的流程示意图。
[0156]
如图10所示,在确定ldcom模块出现异常时,根据节点间的连接关系,可以确定可能出现异常的节点(bsw2至bsw4,和,bsw7),也就是说,异常信息的关联节点。
[0157]
一个实施例中,基于维测代码工具,可以获得对于上述关联节点的维测代码,进而根据上述关联节点的维测结果,确定异常节点。例如,根据对ldcom模块的维测结果,可以确定swc1调用ldcom的过程所出现异常,由ldcom模块调用some/ip模块出现错误而导致的。又例如,根据some/ip模块的维测结果,可以确定,该ldcom模块调用some/ip模块所出现的异常,由some/ip模块调用pdu模块失败导致。又例如,根据pdu模块的维测结果,可以确定,pdu模块调用soad模块失败,导致some/ip模块调用pdu模块失败。又例如,根据soad模块的维测结果,可以确定,由于soad模块采用了错误的通道,导致pdu模块调用soad模块失败。又例如,该错误的通道可以对应于错误的swc1配置参数。也就是说,由于swc1配置参数的错误,导致该模型在嵌入式系统运行时,出现soad模块运行错误,使得pdu模块调用soad模块、some/ip模块调用pdu模块、ldcom模块调用some/ip模块的整个过程出现异常。
[0158]
示例性地,根据关联节点的维测结果,可以得到更新后的动态信息。
[0159]
示例性地,图11是本技术实施例提供的一种自动修复用户模型的方法的示意图。
[0160]
如图11所示,基于标记追踪工具(比如armxl扫描追踪器),根据维测结果,确定节点的异常配置参数。通过标记追踪,可以获得异常信息与节点的配置参数间的映射关系。例如,可以标记soad模块所采用的错误通道,根据swc1至soad模块的调用链中的调用关系,可以确定模型配置信息中,swc1配置参数、bsw层的配置参数和/或os的配置参数中的异常参数。又例如,可以根据推荐配置信息集合,指示异常节点的配置参数的推荐值。又例如,可以通过配置工具,实现对于bsw arxml、rte arxml等文件中的静态信息的更新。又例如,在建模工具具有检验功能时,可以通过该建模工具校验该更新后的模型。
[0161]
示例性地,图12是本技术实施例提供的一种维测模型的调试结果的示意图。
[0162]
以上述图4所示模型为例,图12示出了以图4所示的swc1为粒度的维测模型。模型涉及的bsw模块可以包括嵌入式系统中可以包括默认或开发追踪(default/development error tracer,det)模块、非易失性随机取存存储管理(non-volatilerandom access memory manager,nvm)模块、dcm模块等。
[0163]
如图12所示,在嵌入式系统调试用户模型的过程中,在某时刻,存在与swc1关联的多个异常信息。例如,swc1中的runnable1关联以下异常信息:1.runnable1调用发送端/接收端(sender/receiver,sr)接口的应用程序(application,api)1的过程中出错,2.runnable1通过ecu间接口调用bsw模块的过程异常,3.runnable1调用os接口出现异常,4.runnable1绑定task周期的过程出错。又例如,swc1中的runnable2关联以下异常信息:1.runnable2调用客户端/服务端(client/server,cs)接口的api1的过程中出错,2.runnable2调用该ecu内的bsw模块出错,3.调用os接口出错,4.绑定task周期的过程出错。又例如,假设swc1中的port2设置为cs客户端接口,与swc2的port3绑定,与runnable2绑定,该port2关联以下异常信息:1.接口类型设置错误,2.绑定接口错误,3.绑定的可实用实体错误。
[0164]
上文中结合图3至图12详细说明了本技术实施例提供的方法。下面将结合图12和图13详细说明本技术实施例提供的装置。装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例。
[0165]
示例性地,图13示出了本技术实施例提供的一种测试装置800(以下简称装置800)的示意性框图,该装置可以包括获取单元810和处理单元820。
[0166]
该装置800可以包括执行图3至图12中任一项方法的单元,并且该装置800中各单元可以用于执行上述图3至图12中任一方法实施例中的相应流程。
[0167]
其中,该装置800用于执行图3中的方法300时,获取单元810可以用于执行方法300中的步骤s310至s320,处理单元820可以用于执行方法300中的步骤s330。
[0168]
具体地,该获取单元810,可以用于,获取第一模型的配置信息,该第一模型包括多个节点,该第一模型的配置信息包括该多个节点间的连接关系,和该多个节点中的每个节点的配置参数;获取该第一模型在嵌入式系统运行时,该多个节点间的调用信息,该嵌入式系统应用autosar架构;该处理单元820,可以用于根据该配置信息和该调用信息,确定该多个节点中的异常节点。
[0169]
可选地,该调用信息可以包括,该第一模型在该嵌入式系统运行时,该多个节点在调用过程中的异常信息;处理单元820,可以用于:根据该多个节点间的该连接关系和该异常信息,从该多个节点中确定该异常信息的关联节点;根据该异常信息的关联节点,确定该异常节点。
[0170]
可选地,处理单元820,还可以用于:根据该异常信息和第一映射关系,从该异常节点的配置参数中,确定异常配置参数。其中,该第一映射关系用于表征异常节点的配置参数与异常信息间的映射关系。
[0171]
可选地,获取单元810,还可以用于:获取该关联节点的维测信息,该维测信息用于指示该关联节点是否异常;处理单元820,可以用于:根据该维测信息,从该关联节点中确定该异常节点。
[0172]
可选地,处理单元820,还可以用于:根据该关联节点,确定第一维测模型;该处理单元820,可以用于,根据该第一维测模型,确定该关联节点的该维测信息。
[0173]
可选地,处理单元820,可以用于,更新该异常节点的配置参数。
[0174]
示例性地,处理单元820,可以用于,根据异常节点,从推荐配置信息数据库中,筛选得到该异常节点的推荐配置信息集合;可以根据该推荐配置信息集合,更新该异常节点的配置参数。
[0175]
示例性地,该多个节点可以包括swc节点和bsw节点,异常节点包括第一软件组件swc。
[0176]
可选地,该多个节点中可以包括至少一个swc和至少一个bsw,处理单元820,还可以用于:根据该多个节点间的连接关系和该调用信息,从该异常节点中确定第一swc和第一bsw,其中,该至少一个swc中包括该第一swc,该至少一个bsw中包括该第一bsw,该第一bsw可以包括,该第一模型在嵌入式系统运行时,该第一swc所调用的bsw中存在异常的bsw。
[0177]
应理解,以上装置中各单元的划分仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。此外,装置中的单元可以以处理器调用软件的形式实现;例如装置包括处理器,处理器与存储器连接,存储器中存储有指令,处理器调用存储器中存储的指令,以实现以上任一种方法或实现该装置各单元的功能,其中处理器例如为通用处理器,例如中央处理单元(central processing unit,cpu)或微处理器,存储器为装置内的存储器或装置外的存储器。或者,装置中的单元可以以硬件电路的形式实现,可以通过对硬件电路的设计实现部分或全部单元的功能,该硬件电路可以理解为一个或多个处理器;例如,在一种实现中,该硬件电路为专用集成电路(application-specific integrated circuit,asic),通过对电路内元件逻辑关系的设计,实现以上部分或全部单元的功能;再如,在另一种实现中,该硬件电路为可以通过可编程逻辑器件(programmable logic device,pld)实现,以现场可编程门阵列(field programmable gate array,fpga)为例,其可以包括大量逻辑门电路,通过配置文件来配置逻辑门电路之间的连接关系,从而实现以上部分或全部单元的功能。以上装置的所有单元可以全部通过处理器调用软件的形式实现,或全部通过硬件电路的形式实现,或部分通过处理器调用软件的形式实现,剩余部分通过硬件电路的形式实现。
[0178]
在具体实现过程中,上述获取单元810可以由至少一个收发器或收发器相关电路实现,处理单元820可以由至少一个处理器或处理器相关电路实现。一示例中,一个或多个处理器,可以根据第一模型的配置信息,和第一模型在运行时多个节点间的调用信息,确定多个节点中的异常节点。一示例中,一个或多个处理器,可以根据多个节点间的连接关系和异常信息,从多个节点中确定异常信息的关联节点。
[0179]
示例性地,在具体实现过程中,上述装置800可以为图2所涉及的嵌入式调试装置,或者,可以为该嵌入式调试装置的芯片、处理器或处理器相关电路。
[0180]
示例性地,在具体实现过程中,该装置800可以为嵌入式系统的测试装置,或者,也可以为设置于该测试装置中的处理器或芯片。
[0181]
示例性地,图14是本技术实施例提供的另一种测试装置1000(以下简称装置1000)的示意性框图。该装置1000可以包括:处理器1010、接口电路1020以及存储器1030。其中,处理器1010、接口电路1020以及存储器1030通过内部连接通路相连,该存储器1030用于存储
指令,该处理器1010用于执行该存储器1030存储的指令,以接口电路1020接收/发送部分参数。可选地,存储器1030既可以和处理器1010通过接口耦合,也可以和处理器1010集成在一起。
[0182]
一些可能的实现方式中,该装置1000可以设置于图2所涉及的嵌入式系统的调试工具中。
[0183]
需要说明的是,上述接口电路1020可以包括但不限于输入/输出接口(input/output interface)一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。例如,可以通过接口电路1020,获取第一模型的配置信息,和/或,第一模型的多个节点间的调用信息。
[0184]
本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述图3至图11中任一项方法及其任一可能的实现方式。
[0185]
本技术实施例还提供一种计算机可读存储介质,该计算机可读介质存储有程序代码或指令,当该计算机程序代码或指令被计算机的处理器执行时,使得计算机执行上述图3至图12中任一项方法及其任一可能的实现方式。
[0186]
本技术实施例还提供一种芯片,包括电路,用于执行上述图3至图12中任一项方法及其任一可能的实现方式。
[0187]
应理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程以及有益效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0188]
本技术实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
[0189]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0190]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0191]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
[0192]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0193]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0194]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0195]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种基于汽车开放系统架构autosar的测试方法,其特征在于,包括:获取第一模型的配置信息,所述第一模型包括多个节点,所述第一模型的配置信息包括所述多个节点间的连接关系,和所述多个节点中的每个节点的配置参数;获取所述第一模型在嵌入式系统运行时,所述多个节点间的调用信息,所述嵌入式系统应用autosar架构;根据所述配置信息和所述调用信息,确定所述多个节点中的异常节点。2.根据权利要求1所述的方法,其特征在于,所述调用信息包括所述第一模型在所述嵌入式系统运行时,所述多个节点在调用过程中的异常信息;其中,所述根据所述配置信息和所述调用信息,确定所述多个节点中的异常节点,包括:根据所述多个节点间的所述连接关系和所述异常信息,从所述多个节点中确定所述异常信息的关联节点;根据所述异常信息的关联节点,确定所述异常节点。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述异常信息和第一映射关系,从所述异常节点的配置参数中,确定异常配置参数;其中,所述第一映射关系用于表征所述配置参数与所述异常信息间的映射关系。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:获取所述关联节点的维测信息,所述维测信息用于指示所述关联节点是否异常;所述根据所述异常信息的关联节点,确定所述异常节点,包括:根据所述维测信息,从所述关联节点中确定所述异常节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:根据所述关联节点,确定第一维测模型;其中,所述获取所述关联节点的维测信息,包括:根据所述第一维测模型,确定所述关联节点的所述维测信息。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:更新所述异常节点的配置参数。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述多个节点包括一个或多个软件组件swc,以及,一个或多个基础软件bsw,所述方法还包括:根据所述多个节点间的连接关系和所述调用信息,从所述异常节点中确定第一swc和第一bsw;其中,所述一个或多个swc包括所述第一swc,所述一个或多个bsw包括第一bsw,所述第一bsw包括,所述第一模型在嵌入式系统运行时,所述第一软件组件swc所调用的bsw中存在异常的bsw。8.一种测试装置,其特征在于,包括:获取单元,用于,获取第一模型的配置信息,所述第一模型包括多个节点,所述第一模型的配置信息包括所述多个节点间的连接关系,和所述多个节点中的每个节点的配置参数;获取所述第一模型在嵌入式系统运行时,所述多个节点间的调用信息,所述嵌入式系
统应用汽车开放系统架构autosar;处理单元,用于根据所述配置信息和所述调用信息,确定所述多个节点中的异常节点。9.根据权利要求8所述的装置,其特征在于,所述调用信息包括所述第一模型在所述嵌入式系统运行时,所述多个节点在调用过程中的异常信息;所述处理单元,用于:根据所述多个节点间的所述连接关系和所述异常信息,从所述多个节点中确定所述异常信息的关联节点;根据所述异常信息的关联节点,确定所述异常节点。10.根据权利要求8所述的装置,其特征在于,所述处理单元,还用于:根据所述异常信息和第一映射关系,从所述异常节点的配置参数中,确定异常配置参数;其中,所述第一映射关系用于表征所述配置参数与所述异常信息间的映射关系。11.根据权利要求9或10所述的装置,其特征在于,所述获取单元,还用于:获取所述关联节点的维测信息,所述维测信息用于指示所述关联节点是否异常;所述处理单元,用于:根据所述维测信息,从所述关联节点中确定所述异常节点。12.根据权利要求11所述的装置,其特征在于,所述处理单元,还用于:根据所述关联节点,确定第一维测模型;所述处理单元,用于:根据所述第一维测模型,确定所述关联节点的所述维测信息。13.根据权利要求8至12中任一项所述的装置,其特征在于,所述处理单元,还用于:更新所述异常节点的配置参数。14.根据权利要求8至13中任一项所述的装置,其特征在于,所述多个节点包括一个或多个软件组件swc,以及,一个或多个基础软件bsw,所述处理单元,还用于:根据所述多个节点间的连接关系和所述调用信息,从所述异常节点中确定第一swc和第一bsw;其中,所述一个或多个swc包括所述第一swc,所述一个或多个bsw包括第一bsw,所述第一bsw包括,所述第一模型在嵌入式系统运行时,所述第一软件组件swc所调用的bsw中存在异常的bsw。15.一种测试装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述存储器中存储的计算机程序,以使得所述装置执行如权利要求1至7中任一项所述的方法。16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机执行时,以使得实现如权利要求1至7中任一项所述的方法。17.一种计算机程序产品,其特征在于,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在计算机上运行时,如权利要求1至7中任一项所述的方法被执行。

技术总结
本申请实施例提供了一种基于汽车开放系统架构AUTOSAR的测试方法和装置,该方法包括:获取第一模型的配置信息,该第一模型包括多个节点,该第一模型的配置信息包括该多个节点间的连接关系,和该多个节点中的每个节点的配置参数;获取该第一模型在嵌入式系统运行时,该多个节点间的调用信息,该嵌入式系统应用AUTOSAR架构;根据该配置信息和该调用信息,确定该多个节点中的异常节点。该方法可以应用于智能驾驶领域,能够快速定位模型运行过程中存在异常的节点,可以提高测试效率。可以提高测试效率。可以提高测试效率。


技术研发人员:李亚健
受保护的技术使用者:华为技术有限公司
技术研发日:2022.11.29
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐