银和公益诉讼模拟
银和公益诉讼模拟是什么?
使用嵌入式编码器®,您可以运行software-in-the-loop(银)和processor-in-the-loop(公益诉讼)的模拟模型。这些模拟生成源代码的模型或模型的一部分。SIL仿真编译和运行生成的代码在开发计算机上。公益诉讼模拟交叉编译源代码开发计算机上,然后下载一个目标处理器上运行的目标代码或一个等价的指令集仿真器。
银和公益诉讼模拟,您可以:
测试是否等效数值模型和生成的代码。
观察代码覆盖率。
执行代码的执行概要。
为什么使用硅和公益诉讼
通过硅和公益诉讼,可以在早期测试和修复缺陷。例如,您可以在正常模式模型和测试一个系统组件。然后,您可以重用你的测试套件SIL或公益诉讼仿真运行编译生成的代码。检查数值等价,你比较正常和硅或公益诉讼仿真结果。你不需要离开仿真软件金宝app®环境来测试生成的代码在一个单独的基础设施。
这个表描述的情况下您可以使用硅和公益诉讼。
情况 | 使用 |
---|---|
测试数值之间的等效模型和生成的代码通过重用测试向量为正常模式开发的仿真来验证数值(或遗留)代码生成的输出。看到银/公益诉讼经理验证工作流和测试两个等价的模拟(金宝app仿真软件测试) | 银和公益诉讼 |
收集指标生成的代码:
|
银和公益诉讼 |
实现IEC 61508、IEC 62304、ISO 26262,还是- 178认证。看到IEC认证工具包参考工作流概述(IEC认证工具包)和测试输出的集成过程(做资格工具包)。 | 银和公益诉讼 |
没有目标硬件,方便替代公益诉讼。 | 银 |
与目标硬件,例如,一个评估板或指令集仿真器:
正常仿真技术不占硬件强加的限制和要求,如有限的内存资源或有针对性的优化的代码的行为。 关于公益诉讼运行模拟具体目标的信息,明白了示例自定义目标。 |
公益诉讼 |
请注意
银和公益诉讼仿真模式并非设计用于减少模型模拟。如果你想加快您的模型的仿真,使用快速加速模式。有关更多信息,请参见加速度是什么?。
银和公益诉讼模拟如何工作的呢
在硅或公益诉讼仿真、代码生成模型顶部或模型的一部分。银,这段代码被编译和执行在您的开发计算机。公益诉讼,交叉编译代码为目标硬件和目标处理器上运行。
刺激信号通过一个通信信道,仿真软件发送的代码在您的计算机上或目标处金宝app理器的每个取样间隔模拟。
对于高级模型,仿真软件使用刺激信号金宝app从基地或模型的工作区。
如果你有指定的模型来模拟在硅或公益诉讼模式,然后是模型的一部分仍在仿真软件和代码不是为这部分模型的生成。金宝app通常,您配置模型提供的这部分测试向量的软件执行硬件。这部分的模型可以代表其他部分的算法或算法运行的环境。
当你的电脑或目标处理器接收信号模型,处理器执行SIL或公益诉讼算法示例步骤。金宝appSIL或公益诉讼算法返回的输出信号通过通信信道模型计算在这一步。金宝app完成一个样品周期的仿真,仿真软件进行到下一个取样间隔。金宝app这个过程不断重演,模拟的进展。银和公益诉讼模拟不实时运行。在每个样本期间,模型和对象代码的I / O数据金宝app交换。
银和公益诉讼的模拟比较
银或公益诉讼类型的模拟 | 发生了什么在SIL模拟 | 发生了什么在公益诉讼模拟 |
---|---|---|
指定通过:
|
|
|
使用硅或公益诉讼阻止创建子系统。 |
|
|
代码接口SIL和公益诉讼
当您执行生成独立的代码,例如,一个顶级模特或右键单击子系统构建为一个单一的可部署组件。你可以编译和链接独立的代码放入一个独立的可执行或与其他代码集成。独立的代码接口的更多信息,看一下配置C代码生成模型入口点函数。
当你引用的模型层次结构生成代码,软件生成独立的可执行代码的模型和库模块称为顶部模型参考目标为每个引用的模型。当代码执行时,独立的可执行文件调用应用模型参考目标计算参考模型输出。有关更多信息,请参见构建模型参考目标。
将生成的代码与遗留代码,使用独立的代码,因为独立的代码接口文档。
请注意
银和公益诉讼模拟不提供直接支持自定义代码接口。金宝app你可以将这些接口合并到模型作为一个功能,例如,使用遗留代码的工具,金宝apps函数生成器,或者手写代码。然后,您可以验证自定义代码通过使用硅和公益诉讼模拟。
这个表提供了银和公益诉讼模拟生成的接口。
银/公益诉讼模拟 | 代码接口 |
---|---|
顶级模特 | 银/公益诉讼模拟生成独立的代码接口。如果代码存在,模拟调用独立的代码模型。如果代码不存在,模拟生成独立的代码。 |
模型块 | 如果你设置代码接口块参数 如果你设置代码接口块参数 |
银或公益诉讼块 | 代码块使用独立的接口。 |
调度的考虑
项 | 信息 |
---|---|
代数循环 | 有代数循环发生在硅和公益诉讼但不以正常模式模拟仿真:
有关更多信息,请参见: |
在反馈循环导出功能 | 如果你的模型函数调用导出一个子系统,子系统和上下文相关的输入(例如,反馈信号),银/公益诉讼的结果模拟生成的代码和正常模式仿真模型的结果可以是不同的。一种方法使硅/公益诉讼和正常模式模拟产生相同的结果函数调用反馈锁在你的模型。你可以成为上下文无关上下文相关的输入。 嵌入式编码器生成一个预警识别上下文相关的输入导出的函数调用子系统的如果你设置上下文相关的输入配置参数设置为下列之一:
有关更多信息,请参见: |
进口数据和函数定义
进口数据
在硅和公益诉讼的模拟,可以使用信号,参数和数据存储与进口指定存储类数据定义。模拟为进口定义存储相关数据:
信号在根级别的组件(在I / O边界)。
参数的基本工作空间或一个数据字典。对模型中参数的工作区:
顶级模特SIL /公益诉讼和硅/公益诉讼块模拟定义存储。
模型块硅/公益诉讼模拟不定义存储。您必须定义存储和指定初始值与MATLAB相匹配的值。
全球数据存储。
银和公益诉讼模拟不定义其他进口数据的存储。例如,模拟不定义存储进口相关的数据:
内部信号(而不是在I / O边界)
本地数据存储
在这些情况下,通过自定义代码定义存储包括被测试的组件或通过公益诉讼rtw.pil.RtIOStreamApplicationFramework
API。
另请参阅可调参数和硅/公益诉讼。
GetSet
定制的存储类
银和公益诉讼模拟支持金宝appGetSet
自定义存储类。银/公益诉讼测试工具提供了C的定义得到
和集
函数中使用模拟。有关更多信息,请参见通过与存储类GetSet函数访问数据。
自定义类型的存储类其他
使硅和公益诉讼支持自定义存储类金宝app类型被设置为其他
,创建一个自定义的自定义属性类存储类,并将自定义属性类与一个布尔属性,金宝appSupportSILPIL
,设置为真正的
。
classdef CSCOtherAttributes <仿金宝app真软件。CustomStorageClassAttributes properties(PropertyType = 'logical scalar') SupportSILPIL = true; end end
关于自定义属性的更多信息,请参阅通过编写TLC代码进一步定制生成的代码和精确控制数据表示通过编写TLC存储类的代码。
构建银或公益诉讼程序界面,代码生成器调用DataAccess
和ClassAccess
功能相关的定制TLC文件来获得所需的信息。代码生成器在构建构件存储提取的信息建立文件夹。
为一个自定义存储类,不是分组:
代码生成器的电话
DataAccess
请求参数的值定义
,声明
,布局
,内容
,地址
,或集
。代码生成器使用返回的字符串
DataAccess(记录,“定义”、“”、“”)
定义SIL或公益诉讼程序中的变量如果其中一个是正确的:信号或参数有一个
进口
数据范围。模型使用一个模型参考代码接口。
模型使用一个顶级模型代码接口,
EnableDataOwnership
是在
,老板
属性自定义存储类并不是空的,不等于当前模型的名称
代码生成器使用返回的字符串
DataAccess(记录,“声明”,“”,“”)
宣布SIL或公益诉讼程序中的变量如果下面是真的:模型使用一个顶级模型代码接口。
信号或参数使用
出口
存储类。EnableDataOwnership
是从
,或EnableDataOwnership
是在
和老板
属性自定义存储类名称是空的或等于模型。代码包装配置中声明的变量不是
或所包含的头文件模型
。h模型
。h
为一个自定义存储类分组:
代码生成器的电话
DataAccess
与请求
参数的值布局
,地址
,或集
。代码生成器的电话
ClassAccess
与请求
观点的价值groupTypeDeclDefn
。您必须提供分组类型(
结构体
)定义和走读生
分组变量的声明如果其中一个是正确的:信号或参数有一个
进口
数据范围。模型使用一个模型参考代码接口。
模型使用一个顶级模型代码接口,
EnableDataOwnership
是在
,老板
属性自定义存储类并不是空的,不等于当前模型的名称
提供相关的头文件中定义和声明自定义存储类使用
HeaderFile
包括通过属性或自定义代码
文件。定义变量SIL或公益诉讼程序,代码生成器使用返回的字符串模型
。hClassAccess(记录,“groupTypeDeclDefn”)
。静态初始化可以假设一个订单
结构体
元素,不同于生成的订单如果数据范围出口
。当代码生成器的查询ClassAccess(记录,“groupTypeDeclDefn”)
,它暂时覆盖数据初始化自定义存储类的属性值没有一个
。
确定硅或公益诉讼程序可以访问该变量的代码地址,代码生成器使用返回的元素DataAccess(记录,“布局”,“”,“”)
。创建应用程序中的功能,转移输入或输出端口,可调参数,或全球开发计算机之间的数据存储内存值和目标硬件、代码生成器使用的输出:
DataAccess(记录,“地址”,idx雷姆)
如果返回的第一个元素标量
,向量
,row-mat
,或col-mat
。DataAccess(记录,“内容”,idx雷姆)
(或DataAccess(记录,“套”,idx雷姆)
如果返回第一个元素)其他
。
代码生成器的假设row-mat
和col-mat
矩阵,分别存储在存储格式。数组的假设是独立布局模型的其余部分。代码生成器假设如果数组存储自定义实现的存储类的布局不同于其他模型,TLC文件与自定义存储相关文件执行所需的转换。
您可以构建定制的TLC文件关联到一个自定义类型的存储类其他
执行其他功能(除了返回所请求的代码片段)。例如,直接写一个自定义文件或调用MATLAB函数变化的状态基本工作空间。如果你不总是想当执行这些功能DataAccess
或ClassAccess
被称为,使用LibIsAccessingCustomDataForSILPIL(记录)
TLC函数来区分目标代码生成和代码片段的要求建设银或公益诉讼程序。例如:
…% "内容" %如果! LibIsAccessingCustomDataForSILPIL(记录)% matlab functionWithSideEffects () % endif %返回LibDefaultCustomStorageContents(记录、idx雷姆)…
另请参阅其他自定义存储类的限制。
AUTOSAR运行时环境
您可以使用顶级模特模型块硅/公益诉讼和硅/公益诉讼块模拟AUTOSAR软件组件的执行基于模型的测试。AUTOSAR的软件生成的代码链接软件组件与一个基本组件的AUTOSAR运行时环境(RTE)来创建一个测试应用程序。这个应用程序测试AUTOSAR API调用由AUTOSAR软件组件。
对于一个顶级AUTOSAR软件组件,其中包含引用的模型,您可以运行顶级模特模型块(代码接口设置为顶级模特
)SIL或公益诉讼模拟。模拟的软件:
编译之前引用的模型,生成AUTOSAR RTE头文件。
提供了参考模型编译RTE包括路径。
您还可以运行模型块(代码接口设置为模型参考
)SIL或公益诉讼对参考模型模拟在顶级AUTOSAR SWC。在这种情况下,在您运行一个模拟之前,您必须构建父组件生成RTE头文件。如果你不建立父组件,银或公益诉讼仿真失败。