文档

- 331 - 178 - c /做检查吗

- 331 - 178 - c /做检查吗

DO-178C/DO-331检查有助于为必须满足安全或关键任务需求的应用程序生成代码的设计和故障排除模型。

的签出万博1manbetx®检查™当您运行DO-178C/DO-331检查时。

这些检查是合格的DO资格套件适用于涉及DO-178标准及相关标准的项目。

另请参阅

检查模型对象名称

检查身份证mathworks.do178.hisl_0032

检查模型对象名称。

描述

此检查验证以下模型对象名称是否符合您自己的建模指南或高完整性建模指南。该检查还验证模型对象是否使用保留名称。

  • 信号

  • 参数

  • 公交车

  • Stateflow®对象

保留的名字:

  • MATLAB®关键字

  • 为C、c++和代码生成保留关键字。有关完整列表,请参见保留关键字(万博1manbetx仿真软件编码器)

  • int8uint8

  • int16uint16

  • int32uint32

  • 每股收益

  • intminintmax

  • 最小正浮点数最大浮点数

  • π

请注意

在某些情况下,Model Advisor会在该检查的多个子检查中报告一个问题。

可以使用万博1manbetx仿真软件检查

输入参数

要指定检查标记的命名标准和模型对象名称,请使用model Advisor Configuration Editor。

  1. 打开模型配置编辑器并导航到检查模型对象名称.在输入参数窗格中,对于每个模型对象,选择以下选项之一:

    • MAAB使用MAAB命名标准。当您选择MAAB,检查使用正则表达式(^。{32岁}$)| ([^ a-zA-Z_0-9]) | (^ \ d )|(^ )|(__)|(^_)|(_$)要验证名称:

      • 使用这些字符:无所不包的无所不包的0 - 9,下划线(_)

      • 不要以数字开头。

      • 不要在字符串的开头或结尾使用下划线。

      • 不要使用多个连续下划线。

      • 使用小于32个字符的字符串。

    • 自定义使用您自己的命名标准。当您选择自定义,你可以输入你自己的禁止的正则表达式<模型对象>的名字.例如,如果您希望允许多个连续下划线,请输入(^。{32岁}$)| ([^ a-zA-Z_0-9]) | (^ \ d )|(^ )|(^_)|(_$)

    • 没有一个如果您不希望检查来验证模型对象名称

  2. 点击应用

  3. 保存配置。当您使用此配置运行检查时,检查将使用您指定的输入参数。

结果及建议的行动

条件 建议的行动
模型对象名称不符合输入参数中指定的命名标准。 更新模型对象名称以符合您自己的指导方针或高完整性指导方针。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查与安全相关的优化设置

检查身份证mathworks.do178.OptionSet

检查模型配置,查看可能影响安全的优化设置。

描述

此检查验证模型优化配置参数是否为为与安全相关的应用程序生成代码而优化设置。尽管对于大多数实时系统来说,高度优化的代码是需要的,但是一些优化可能会产生影响安全性的副作用。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
选择减块优化。这种优化可以从生成的代码中删除块,导致没有相关代码的需求和对可追溯性需求的违反。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 在“配置参数”对话框中,不勾选块减少(万博1manbetxSimulink)或设置参数BlockReduction
清除逻辑信号作为布尔数据的实现。对于与安全相关的代码,建议使用强数据类型。(参见DO-331, MB.6.3.1节。e -高级要求符合标准DO-331, MB.6.3.2节。e -低层需求符合标准和MISRA C:2012,规则10.1。) 2 .在“配置参数”对话框中,选择将逻辑信号实现为布尔数据(vs. double)(万博1manbetxSimulink)或设置参数BooleanDataType
该模型包含依赖于运行时间或绝对时间的块,并配置为最小化分配给计时器的内存量。这样的配置限制了发生计时器溢出之前应用程序可以执行的天数。许多航空航天产品都是连续通电的s manbetx 845,计时器的使用寿命不应受到限制。(参见DO-331, MB.6.3.1节。g -算法是准确的而且DO-331, MB.6.3.2节。g -算法是准确的.) 2 .在“配置参数”对话框中设置应用程序寿命(天)(万博1manbetxSimulink)上数学和数据类型或在“配置参数”对话框中设置寿命
选择抑制为设置为零的根级导入和输出端口生成初始化代码的优化。对于与安全相关的代码,应该显式初始化所有变量。(参见DO-331, MB.6.3.3节。b .软件架构一致。) 如果你有嵌入式编码器®license和正在使用一个基于ert的系统目标文件,清除配置参数删除根级I/O零初始化(万博1manbetxSimulink Coder)或设置参数ZeroExternalMemoryAtStartup.或者,集成外部手写代码,显式地将所有I/O变量初始化为零。
选择抑制内部工作结构(如设置为零的块状态和块输出)的初始化代码生成的优化。对于与安全相关的代码,应该显式初始化每个变量。(参见DO-331, MB.6.3.3节。b .软件架构一致。) 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”删除内部数据零初始化(万博1manbetxSimulink Coder)或设置参数ZeroInternalMemoryAtStartup.或者,集成外部手写代码,显式地将每个状态变量初始化为零。
禁止生成由包装范围外值的浮点到整数转换产生的代码的优化被清除。必须避免安全相关代码的溢出。当此优化被关闭且您的模型包含禁用溢位饱和参数时,代码生成器将包装这些块的超出范围的值。这可能会导致不可访问和不可测试的代码。(参见DO-331, MB.6.3.1节。g -算法是准确的而且DO-331, MB.6.3.2节。g -算法是准确的.) 如果你有万博1manbetx仿真软件编码器™license,选择“配置参数”从包装超出范围值的浮点到整数转换中删除代码(万博1manbetxSimulink Coder)或设置参数EfficientFloat2IntCast
选择抑制生成防止定点数据除零的代码的优化。您必须避免在与安全相关的代码中出现按零除的异常。(参见DO-331, MB.6.3.1节。g -算法是准确的,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”删除防止除法运算异常的代码(万博1manbetxSimulink Coder)或设置参数NoFixptDivByZeroProtection
选择使用指定的信号和参数的最小和最大值来优化生成的代码的优化。这可能会导致没有可跟踪代码的需求。(参见DO-331 MB.6.3.4节。e -源代码可追踪到底层需求。) 如果您有嵌入式Coder许可证,并且正在使用基于ert的系统目标文件,请清除“配置参数”使用指定的最小值和最大值进行优化(万博1manbetx仿真软件编码器)。

行动的结果

点击修改设置配置可能影响安全的模型优化设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查安全相关的求解器设置的任务和采样时间

检查身份证mathworks.do178.hisl_0042

检查模型配置中的求解器设置,这些设置适用于周期性采样时间约束,并可能影响安全性。

描述

此检查验证模型配置参数的设置是否最优,以确保模型在与安全相关的应用程序的特定优先级周期采样时间集上运行。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
配制参数自动处理数据传输的速率转换被选中。 清晰的自动处理数据传输的速率转换“配置参数”对话框或“设置参数”AutoInsertRateTranBlk来了。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查求解器的安全相关诊断设置

检查身份证mathworks.do178.SolverDiagnosticsSet

检查适用于求解器并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与求解器相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
将检测代数循环自动断裂的诊断设置为没有一个警告.代数循环的打破会影响块执行顺序的可预测性。对于与安全相关的应用程序,模型开发人员需要知道这种中断何时发生。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 代数循环(万博1manbetxSimulink)上诊断>解算器或在“配置参数”对话框中设置AlgebraicLoopMsg错误.考虑明确地打破这种循环单位延迟块,以便执行顺序是可预测的。至少要验证循环自动中断的结果是否可以接受。
代数回路自动断裂的诊断模型块、原子子系统和启用的子系统设置为没有一个警告.代数循环的打破会影响块执行顺序的可预测性。对于与安全相关的应用程序,模型开发人员需要知道这种中断何时发生。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 最小化代数循环(万博1manbetxSimulink)上诊断>解算器或在“配置参数”对话框中设置ArtificialAlgebraicLoopMsg错误.考虑明确地打破这种循环单位延迟块,以便执行顺序是可预测的。至少要验证循环自动中断的结果是否可以接受。
在块执行顺序中检测潜在冲突的诊断设置为没有一个警告.对于与安全相关的应用程序,块执行顺序必须是可预测的。模型开发人员需要知道什么时候存在冲突的块优先级。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 阻塞优先级违反(万博1manbetxSimulink)上诊断>解算器或在“配置参数”对话框中设置BlockPriorityViolationMsg错误
用于检测模型是否包含未显式指定继承采样时间的s函数的诊断设置为没有一个警告.这些设置可能导致不可预测的行为。模型开发人员需要知道模型中何时存在这样的s函数,以便对其进行修改以产生可预测的行为。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 未指定的样本时间继承性(万博1manbetxSimulink)在“配置参数”对话框或设置参数UnknownTsInhSupMsg错误
用于检测Simulink软件是否自动修改求解器、步长或仿真停止时间的诊断设置为万博1manbetx没有一个警告.这样的更改会影响生成代码的操作。对于与安全相关的应用程序,最好检测此类更改,以便模型开发人员可以显式地将参数设置为已知值。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 自动求解参数选择(万博1manbetxSimulink)上诊断>解算器或在“配置参数”对话框中设置SolverPrmCheckMsg错误
将用于检测名称是否用于模型中的多个状态的诊断设置为没有一个.模型中的状态名应该是唯一的。对于与安全相关的应用程序,最好检测名称冲突,以便模型开发人员能够修复它们。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 州名冲突(万博1manbetxSimulink)上诊断>解算器或在“配置参数”对话框中设置StateNameClashWarn警告

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查取样时间的安全相关诊断设置

检查身份证mathworks.do178.SampleTimeDiagnosticsSet

检查模型配置,以确定适用于采样时间并可能影响安全性的诊断设置。

描述

此检查验证与采样时间相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
用于检测源块时的诊断正弦波块,继承设置的样本时间(指定为-1)没有一个警告.对源块使用继承的样本时间可能会导致源块及其连接块的不可预测的执行速率。对于与安全相关的应用程序,源块应该有明确的采样时间,以防止不正确的执行顺序。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 源块指定-1采样时间(万博1manbetxSimulink)上诊断>样品时间或在“配置参数”对话框中设置InheritedTslnSrcMsg错误
用于检测在多任务模式下运行的两个块之间的无效速率转换的诊断设置为没有一个警告.这种速率转换不应该用于嵌入式实时代码。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 多任务速率转换(万博1manbetxSimulink)上诊断>样品时间或在“配置参数”对话框中设置MultiTaskRateTransMsg错误
用于检测可能导致数据损坏或不确定行为的子系统的诊断设置为没有一个警告.此诊断检测有条件执行的多速率子系统(启用的、触发的或函数调用子系统)是否在多任务模式下运行。在允许抢占的实时环境中,这样的子系统会破坏数据并表现出不可预测的行为。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 多任务有条件执行的子系统(万博1manbetxSimulink)上诊断>样品时间或在“配置参数”对话框中设置MultiTaskCondExecSysMsg错误
检测样品时间一致性的诊断方法信号规范块和连接的目标块设置为没有一个警告.过度指定的采样时间可能导致不可预测的执行速率。(参见DO-331, MB.6.3.3节。e -软件架构符合标准。) 强制信号规范块指定的采样时间(万博1manbetxSimulink)上诊断>样品时间或在“配置参数”对话框中设置SigSpecEnsureSampleTimeMsg错误

行动的结果

点击修改设置配置适用于采样时间并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与信号数据相关的安全诊断设置

检查身份证mathworks.do178.DataValiditySignalsDiagnosticsSet

检查适用于信号数据并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与信号数据相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
指定Simulink软件如何解析与。相关的信号的诊断万博1manbetx万博1manbetx仿真软件。信号对象设置为显性和隐性显式和警告隐式.对于与安全相关的应用程序,应该要求模型开发人员显式地定义信号分辨率。(参见DO-331, MB.6.3.3节。b -软件架构一致。)

信号的分辨率(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalResolutionControl明确的只.通过要求用户定义必须解析到的每个信号和块设置,这提供了可预测的操作万博1manbetx仿真软件。信号工作区中的对象。

或禁用的使用万博1manbetx仿真软件。信号对象,将配置参数设置为没有一个

产品将在矩阵乘法模式中对奇异矩阵的一个输入求逆时检测奇异矩阵的块诊断设置为没有一个警告.在执行生成的代码时,除以奇异矩阵可能会导致数值异常。这在与安全相关的系统中是不可接受的。(参见DO-331, MB.6.3.1节。g -算法很精确,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 除以奇异矩阵(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置CheckMatrixSingularityMsg错误
将检测Simulink软件在数据类型传播过程中何时不能推断信号的数据类型的万博1manbetx诊断设置为没有一个警告.对于与安全相关的应用程序,模型开发人员必须验证信号的数据类型。(参见DO-331, MB.6.3.1节。e -高级要求符合标准和DO-331, MB.6.3.2节。e -低层次需求符合标准。) 未指定的数据类型(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置UnderSpecifiedDataTypeMsg错误
检测信号的值是否过大而无法由信号数据类型表示的诊断设置为没有一个警告.未检测到的数值溢出可能导致意外的应用程序行为。(参见DO-331, MB.6.3.1节。g -算法很精确,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 包装溢出(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置IntegerOverflowMsg错误
检测信号的值是否过大而无法由信号数据类型表示,从而导致饱和的诊断设置为没有一个警告.未检测到的数值溢出可能导致意外的应用程序行为。(参见DO-331, MB.6.3.1节。g -算法很精确,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 溢位饱和(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置IntegerSaturationMsg错误
检测块输出信号值为的诊断在当前时间步长设置为没有一个警告.当这种类型的块输出信号条件发生时,会导致数值异常,而数值异常在与安全相关的应用程序中是不可接受的。(参见DO-331, MB.6.3.1节。g -算法很精确,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) Inf或NaN块输出(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalInfNanChecking错误
用于检测以。开头的Simulink对象名称的诊断万博1manbetxrt设置为没有一个警告.此诊断可防止与生成的信号名称发生冲突rt前缀。(参见DO-331, MB.6.3.1节。e -高级要求符合标准和DO-331, MB.6.3.2节。e -低层次需求符合标准。) 标识符前缀“rt”(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置RTPrefix错误
检测模拟范围检查的诊断设置为没有一个警告.该诊断在模拟过程中检测信号何时超过其指定的范围。万博1manbetxSimulink将块输出的信号值与指定的范围和块数据类型进行比较。(参见DO-331, MB.6.3.1节。g -算法很精确,DO-331, MB.6.3.2节。g -算法是准确的,MISRA C:2012, Dir 4.1.) 仿真范围检查(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置SignalRangeChecking错误

行动的结果

点击修改设置配置适用于信号数据并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查安全相关的诊断设置参数

检查身份证mathworks.do178.DataValidityParamDiagnosticsSet

检查模型配置,以确定适用于可能影响安全性的参数的诊断设置。

描述

此检查验证与参数相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
将检测何时发生参数向下转换的诊断设置为没有一个警告.向下转换到较低的信号范围可能导致参数的数值溢出,从而导致意外行为。 检测沮丧(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterDowncastMsg错误
将检测何时发生参数下溢的诊断设置为没有一个警告.当参数的数据类型没有足够的分辨率时,参数值为0,而不是指定的值。这可能导致生成的代码操作不正确。 检测下溢(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterUnderflowMsg错误
将检测何时发生参数溢出的诊断设置为没有一个警告.数值溢出会导致意外的应用程序行为,应该在与安全相关的应用程序中进行检测和修复。 检测溢出(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterOverflowMsg错误
将检测参数何时失去精度的诊断设置为没有一个警告.未检测到此类错误可能导致在生成的代码中将参数设置为不正确的值。 检测精度损失(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterPrecisionLossMsg错误
将检测带有可调变量的表达式何时简化为其数值等效的诊断设置为没有一个警告.这可能导致可调参数在生成的代码中不可调。 检测可调性的损失(万博1manbetxSimulink)上诊断>数据的有效性或在“配置参数”对话框中设置ParameterTunabilityLossMsg错误

行动的结果

点击修改设置配置应用于参数并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查用于调试的数据的安全相关诊断设置

检查身份证mathworks.do178.DataValidityDebugDiagnosticsSet

检查模型配置,查看适用于用于调试的数据并可能影响安全性的诊断设置。

描述

此检查验证与调试相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
启用模型验证块的诊断设置为使用本地设置让所有.应该禁用这些块,因为它们是断言块,仅用于验证。模型开发人员不应该在嵌入式代码中使用断言。 2 .在“配置参数”对话框中设置模型验证块启用(万博1manbetxSimulink)或设置参数AssertControl禁用所有

行动的结果

点击修改设置配置适用于用于调试的数据并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查数据存储内存的安全相关诊断设置

检查身份证mathworks.do178.DataStoreMemoryDiagnosticsSet

检查模型配置,以了解应用于数据存储内存并可能影响安全性的诊断设置。

描述

此检查验证与数据存储内存相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最佳设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测模型是否试图从未在当前时间步中存储数据的数据存储中读取数据的诊断值被设置为启用所有错误.在写入数据之前读取数据可能会导致使用陈旧的数据或未初始化的数据。 先读后写检测(万博1manbetxSimulink)在“配置参数”对话框中进行设置ReadBeforeWriteMsg启用所有错误
在先前以当前时间步骤从数据存储中读取数据之后,检测模型是否试图在数据存储中存储数据的诊断值被设置为启用所有错误.在读取数据后写入数据可能导致使用过时或不正确的数据。 检测读后写(万博1manbetxSimulink)在“配置参数”对话框中进行设置WriteAfterReadMsg启用所有错误
检测模型是否在当前时间步中连续两次尝试在数据存储中存储数据的诊断值被设置为启用所有错误.在一个时间步中写入两次数据会导致不可预测的数据。 检测写后写(万博1manbetxSimulink)在“配置参数”对话框中进行设置WriteAfterWriteMsg启用所有错误
一种诊断方法,用于检测一个任务何时从数据存储内存块,另一个任务将数据写入该块没有一个警告.在多任务模式下,不同任务之间的数据读写可能导致数据损坏或不可预测。 多任务数据存储(万博1manbetxSimulink)在“配置参数”对话框中进行设置MultiTaskDSMMsg错误

行动的结果

点击修改设置配置应用于数据存储内存并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与类型转换相关的安全诊断设置

检查身份证mathworks.do178.TypeConversionDiagnosticsSet

检查模型配置,查看适用于类型转换并可能影响安全性的诊断设置。

描述

此检查验证与类型转换相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测到的诊断数据类型转换当类型转换设置为时,将阻塞没有一个.Simu万博1manbetxlink软件可能会删除不必要的数据类型转换块生成的代码,这可能导致没有相应代码的需求。需要对这些块的删除进行标识,以便模型开发人员可以显式地删除不必要的块。 设置不必要的类型转换(万博1manbetxSimulink)配置参数UnnecessaryDatatypeConvMsg参数警告
在块输入处检测向量到矩阵或矩阵到向量转换的诊断设置为没有一个警告.当Simulink万博1manbetx软件自动在向量和矩阵维度之间转换时,可能会发生意外操作或不可预知的行为。 设置向量/矩阵块输入转换(万博1manbetxSimulink)配置参数VectorMatrixConversionMsg参数错误
检测32位整数值何时转换为浮点值的诊断设置为没有一个.这种类型的转换可能会由于截断大整数值的最低有效位而导致精度损失。 设置32位整数到单精度浮点数转换(万博1manbetxSimulink)配置参数Int32ToFloatConvMsg参数警告

行动的结果

点击修改设置配置适用于类型转换并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的诊断设置以检查信号连通性

检查身份证mathworks.do178.ConnectivitySignalsDiagnosticsSet

检查模型配置,查看适用于信号连通性并可能影响安全性的诊断设置。

描述

此检查验证与信号连接相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
将检测具有相同源信号但不同标签的虚拟信号的诊断设置为没有一个警告.这种诊断只适用于虚拟信号,对生成的代码没有影响。然而,信号标签不匹配会导致模型评审过程中的混乱。 信号标签不匹配(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置SignalLabelMismatchMsg错误
检测模型何时包含带有未连接输入信号的块的诊断设置为没有一个警告.必须检测到这一点,因为没有为未连接的块输入生成代码。 未连接的块输入端口(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedInputMsg错误
检测模型何时包含带有未连接输出信号的块的诊断设置为没有一个警告.必须检测到这一点,因为未连接的块输出信号可能导致死代码。 未连接的块输出端口(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedOutputMsg错误
检测未连接信号线和未匹配信号线的诊断转到Blocks被设置为没有一个警告.必须检测到此错误,因为没有为未连接的行生成代码。 未连接的线(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置UnconnectedLineMsg错误

行动的结果

点击修改设置配置适用于信号连通性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与总线连接相关的安全诊断设置

检查身份证mathworks.do178.ConnectivityBussesDiagnosticsSet

检查适用于总线连接并可能影响安全性的诊断设置的模型配置。

描述

此检查验证与总线连接相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测a是否存在的诊断模型块的根外港块连接到总线,但没有指定要设置的总线对象没有一个警告.为了使总线信号跨越模型边界,必须将该信号定义为总线对象,以便与使用模型作为参考模型的更高级别模型兼容。 未指定的总线对象位于根输出端口块(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置RootOutportRequireBusObject错误
检测总线元素名称是否与相应总线对象指定的名称匹配的诊断设置为没有一个警告.这种诊断可以防止在具有总线能力的块中使用不兼容的总线,从而导致输出名称不一致。 元素名称不匹配(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置BusObjectLabelMismatch错误
当某些块将信号视为mux/向量,而其他块将信号视为总线时,该诊断将被设置为没有一个警告.当Simulink万博1manbetx软件自动将muxed信号转换为总线时,可能会发生意外操作或不可预知的行为。

总线信号作为矢量处理(万博1manbetxSimulink)上诊断>连接窗格中的“配置参数”对话框中的错误,或参数StrictBusMsgErrorOnBusTreatedAsVector

行动的结果

点击修改设置配置适用于总线连接并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查应用于函数调用连通性的与安全相关的诊断设置

检查身份证mathworks.do178.FcnCallDiagnosticsSet

检查模型配置,查看适用于函数调用连通性并可能影响安全性的诊断设置。

描述

此检查验证与函数调用连通性相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测函数调用子系统的错误使用的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 无效的函数调用连接(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置InvalidFcnCallConnMsg错误
指定Simulink软件在执行子系统时必须直接或间接计算函数调用子系统的输入的诊断设万博1manbetx置为使用本地设置禁用所有.此诊断检测生成代码中函数调用子系统和子系统输入之间不可预测的数据耦合。 上下文相关的输入(万博1manbetxSimulink)上诊断>连接或在“配置参数”对话框中设置FcnCallInpInsideContextMsg错误

行动的结果

点击修改设置配置适用于函数调用连通性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全性相关的诊断设置以获得兼容性

检查身份证mathworks.do178.CompatibilityDiagnosticsSet

检查模型配置,查看影响兼容性和可能影响安全性的诊断设置。

描述

此检查验证与兼容性相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测块何时没有升级到使用当前版本的功能的诊断设置为没有一个警告.为早期版本编写的s函数可能与当前版本不兼容,生成的代码可能操作不正确。 需要升级s功能(万博1manbetxSimulink)上诊断>兼容性或在“配置参数”对话框中设置SFcnCompatibilityMsg错误

行动的结果

点击修改设置配置影响兼容性并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与模型初始化相关的安全诊断设置

检查身份证mathworks.do178.InitDiagnosticsSet

在模型配置中,检查影响模型初始化和可能影响安全性的诊断设置。

描述

此检查验证用于初始化的模型诊断配置参数是否最佳设置,以生成与安全相关的应用程序的代码。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

在“配置参数”对话框中,可以看到未指定的初始化检测(万博1manbetxSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。万博1manbetx的检查未定义的子系统初始输出(万博1manbetxSimulink)诊断清除。此诊断指定如果模型包含有条件执行的子系统,则Simulink是否显示万博1manbetx警告,其中具有指定初始条件的块驱动一个外港块,初始条件未定义。有条件执行的子系统可能具有未初始化的输出。如果没有检测到,这种情况会产生不确定性的行为。

做以下任何一件事:

在“配置参数”对话框中,可以看到未指定的初始化检测(万博1manbetxSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。万博1manbetx此诊断检测与早期版本之间潜在的初始输出差异。有条件执行的子系统可能具有未初始化的输出。如果没有检测到,这种情况会产生不确定性的行为。

做以下任何一件事:

在“配置参数”对话框中,可以看到未指定的初始化检测(万博1manbetxSimulink)的诊断设置为经典,确保与以前版本的Simulink兼容。万博1manbetx的检查执行上下文的运行时输出(万博1manbetxSimulink)诊断清除。此诊断检测与早期版本的潜在输出差异。有条件执行的子系统可以有一个未初始化的输出,并将其输入到具有可调参数的块中。如果未检测到,此条件会导致下游块的行为不确定。

做以下任何一件事:

行动的结果

若要配置影响模型初始化并可能影响安全性的诊断设置,请单击修改设置

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与模型引用相关的安全诊断设置

检查身份证mathworks.do178.MdlrefDiagnosticsSet

检查模型配置,查看适用于模型引用并可能影响安全性的诊断设置。

描述

此检查验证与模型引用相关的模型诊断配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
对象的模型版本之间不匹配的诊断模型块,引用模型的当前版本设置为错误警告.检测发生在加载和更新操作期间。当您从软件配置管理系统获得引用模型的最新版本,而不是在以前的模拟中使用的旧版本时,如果该诊断设置为错误时,模拟终止。如果诊断设置为警告时,系统将发出警告消息。要解决这个问题,用户必须重新保存被模拟的模型,这可能不是想要的操作。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 模型块版本不匹配(万博1manbetxSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceVersionMismatchMessage没有一个
在模型加载和更新期间检测端口和参数不匹配的诊断设置为没有一个警告.如果未检测到,这种不匹配可能导致不正确的模拟结果,因为父模型和引用模型具有不同的接口。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 端口和参数不匹配(万博1manbetxSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceIOMismatchMessage错误
检测到当前模型根级别的无效内部连接的诊断轮廓尺寸而且外港Blocks被设置为没有一个警告.当检测到这种情况时,Simulink软件可能会自动在模型中插入隐藏块来修复万博1manbetx这种情况。隐藏的块可能导致生成的代码没有可跟踪的需求。将诊断设置为错误强制模型开发人员手动修复引用的模型。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 无效的根导入/输出端口块连接(万博1manbetxSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceIOMessage错误
检测是否到工作空间范围块记录引用模型中的数据没有一个警告.不支持数据日志记录万博1manbetx到工作空间而且范围引用模型中的块。(参见DO-331, MB.6.3.1节。d -高级要求是可验证的和DO-331, MB.6.3.2节。d -低层次需求是可验证的。) 不支万博1manbetx持的数据日志记录(万博1manbetxSimulink)上诊断>模型参考或在“配置参数”对话框中设置ModelReferenceDataLoggingMessage错误
要记录数据,请删除块并记录引用的模型信号。有关更多信息,请参见测井参考模型信号(万博1manbetx模型)。

行动的结果

点击修改设置配置适用于模型引用并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的模型引用设置

检查身份证mathworks.do178.MdlrefOptSet

检查模型配置,查看可能影响安全性的模型引用设置。

描述

此检查验证用于模型引用的模型配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
被引用的模型被配置为每当您更新、模拟或为模型生成代码时,或者当Simulink软件检测到已知依赖项中的更改时,都会重新构建它的目标。万博1manbetx这些配置设置可能导致不必要的代码再生,导致只更改文件的日期,并在使用模型引用时减慢构建过程。(参见DO-331, MB.6.3.1节。b -高级要求准确一致,符合DO-331, MB.6.3.2节。b -底层需求是准确和一致的。) 重建(万博1manbetxSimulink)上模型参考或在“配置参数”对话框中设置UpdateModelReferenceTargets从来没有如果检测到任何更改
将检测目标是否需要重新构建的诊断设置为没有一个警告如果目标需要重建.对于与安全相关的应用程序,错误应该提醒模型开发人员父模型和引用模型不一致。此诊断参数仅在以下情况下可用重建设置为从来没有.(参见DO-331, MB.6.3.1节。b -高级要求准确一致,符合DO-331, MB.6.3.2节。b -底层需求是准确和一致的。) 绝不重建诊断(万博1manbetxSimulink)上模型参考或在“配置参数”对话框中设置CheckModelReferenceTargetMessage错误
关闭了按值传递标量根输入的功能。该功能应该关闭,因为标量值可能在时间步中发生变化,并导致不可预测的数据。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 为Real-Time Workshop按值传递固定大小的标量根输入(万博1manbetxSimulink)上模型参考或在“配置参数”对话框中设置ModelReferencePassRootInputsByReference
该模型被配置为最小化代数循环的出现。的推荐设置与此配置不兼容单输出/更新功能用于嵌入式系统代码。(参见DO-331, MB.6.3.3节。b -软件架构一致。) 2 .在“配置参数”对话框中设置最小化代数循环的出现(万博1manbetxSimulink)或设置参数ModelReferenceMinAlgLoopOccurrences

行动的结果

点击修改设置配置可能影响安全的模型引用设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查与安全相关的代码生成设置

检查身份证mathworks.do178.CodeSet

检查可能影响安全性的代码生成设置的模型配置。

描述

此检查验证代码生成的模型配置参数是否为与安全相关的应用程序进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
清除在生成的代码中包含注释的选项。注释在代码和模型之间提供了良好的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 选择包括评论(万博1manbetxSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置GenerateComments
清除包含描述块代码的注释的选项。注释在代码和模型之间提供了良好的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 选择万博1manbetxSimulink块注释(万博1manbetxSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置万博1manbetxSimulinkBlockComments
清除了包含描述从模型中删除的块的代码的注释的选项。注释在代码和模型之间提供了良好的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 选择显示删除的块(万博1manbetxSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置ShowEliminatedStatement
中的模型参数结构声明中作为注释包含参数变量和源块的名称的选项模型_prm.h清除。注释在代码和模型之间提供了良好的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 选择SimulinkGlobal存储类的详细注万博1manbetx释(万博1manbetxSimulink Coder)上的代码生成>评论或在“配置参数”对话框中设置ForceParamTrailComments
清除将分配给Simulink块的需求描述作为注释的选项。万博1manbetx注释在代码和模型之间提供了良好的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 选择块注释中的需求(万博1manbetxSimulink Coder)上的代码生成>自定义注释或在“配置参数”对话框中设置ReqsInCode
选择生成非有限数据和操作的选项。万博1manbetx对非有限数的支持不适用于实时嵌入式系统。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的万博1manbetx支持:非有限数字(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置万博1manbetxSupportNonFinite
选择为绝对时间和运行时间生成和维护整数计数器的选项。万博1manbetx对绝对时间的支持不适用于与实时安全相关的系统。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的万博1manbetx支持:绝对时间(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置万博1manbetxSupportAbsoluteTime
选择为使用连续时间的块生成代码的选项。万博1manbetx对连续时间的支持不适用于与实时安全相关的系统。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的万博1manbetx支持:连续时间(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置万博1manbetxSupportContinuousTime
选择为非内联s函数生成代码的选项。这个选项需要非有限数字的支持,这对于实时安万博1manbetx全相关的系统是不合适的。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的万博1manbetx支持:非内联s函数(万博1manbetxSimulink Coder)在“配置参数”对话框中进行设置万博1manbetxSupportNonInlinedSFcns
选择生成与pre-R2012a GRT目标的主程序模块兼容的模型函数调用的选项。此选项不适用于与实时安全相关的系统。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的经典的呼叫呼叫接口(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置GRTInterface
的选项来生成模型_update功能被清除。对输出和更新函数的单一调用简化了与实时操作系统(RTOS)的接口,并简化了对生成代码的验证。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 选择单输出/更新功能(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置CombineOutputUpdateFcns
的选项来生成模型_terminate函数已选中。该功能释放动态内存,不适用于实时安全相关系统。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的终止函数(万博1manbetxSimulink Coder)上的代码生成或在“配置参数”对话框中设置IncludeMdlTerminateFcn
清除记录或监视错误状态的选项。如果不选择此选项,则万博1manbetx仿真软件编码器产品生成测试可能无法访问的额外代码。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 选择删除实时模型数据结构中的错误状态字段(万博1manbetxSimulink Coder)上的代码生成>接口或在“配置参数”对话框中设置SuppressErrorStatus
选择mat文件日志记录。该选项为将测试点记录到mat文件添加了额外的代码,嵌入式目标不支持这一点。万博1manbetx只在测试工具中使用此选项。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容;DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容。) 清晰的MAT-file日志(万博1manbetxSimulink Coder)在“配置参数”对话框中进行设置MatFileLogging
指定圆括号使用的样式的选项被设置为最小(依赖于C/ c++操作符优先级)标称(优化可读性).对于与安全相关的应用程序,用圆括号显式指定优先级。(参见DO-331, MB.6.3.1.c节——高级需求与目标计算机兼容,DO-331, MB.6.3.2.c节——低级需求与目标计算机兼容,MISRA C:2012,规则12.1。) 设置参数ParenthesesLevel最大值(用括号指定优先级)
清除指定是否保留操作数顺序的选项。这个选项增加了生成代码的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 设置参数PreserveExpressionOrder
中指定是否保留空主条件表达式的选项如果“Statements”被清除。这个选项增加了生成代码的可跟踪性。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 设置参数PreserveIfCondition
为生成name mangling字符串指定的最小字符数小于4。您可以使用此选项将参数和信号名称在代码生成过程中随模型更改而更改的可能性降至最低。使用此选项有助于最小化文件版本之间的代码差异,减少执行代码审查的工作量。(参见DO-331, MB.6.3.4节。e -源代码可追踪到底层需求。) 最小轧包长度(万博1manbetxSimulink Coder)上的代码生成>符号“配置参数”对话框中的MangleLength到4或更大的值。

行动的结果

点击修改设置配置可能影响安全性的模型代码生成设置。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查“环路展开阈值”的安全相关优化设置

检查身份证mathworks.do178.hisl_0051

检查模型配置中适用于循环展开阈值并可能影响安全的优化设置。

描述

此检查验证模型优化配置参数与a所对应的最小信号或参数宽度为为与安全相关的应用程序生成代码而设置的最优循环。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

优化设置以指定最小信号或参数宽度循环值设置为小于2

2 .在“配置参数”对话框中设置环路展开阈值或者设置参数RollThreshold大于等于或大于2

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查与安全相关的诊断设置以进行保存

检查身份证mathworks.do178.SavingDiagnosticsSet

检查适用于保存模型文件的诊断设置的模型配置

描述

此检查验证模型配置参数是否为保存与安全相关的应用程序的模型而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
在保存模型之前检测模型是否包含禁用的库链接的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 框图包含禁用的库链接(万博1manbetxSimulink)在“配置参数”对话框或设置参数SaveWithDisabledLinkMsg错误
在保存模型之前,检测模型是否包含使用掩码之外的参数的库链接的诊断设置为没有一个警告.如果未检测到此条件,则可能生成不正确的代码。 框图包含参数化的库链接(万博1manbetxSimulink)在“配置参数”对话框或设置参数SaveWithParameterizedLinkMsg错误

行动的结果

点击修改设置配置应用于保存模型文件的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查合并块的安全相关诊断设置

检查身份证mathworks.do178.hisl_0303

检查应用于合并块的诊断设置的模型配置

描述

此检查验证模型配置参数是否为与安全相关的应用程序的Merge块设置为最优。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测模型是否包含Merge块,且多个驱动块同时执行step的诊断设置为没有一个警告和在“配置参数”对话框中未指定的初始化检测(万博1manbetxSimulink)的诊断设置为经典

2 .在“配置参数”对话框中设置检测多个驱动块在同一时间执行步骤(万博1manbetxSimulink)或设置参数MergeDetectMultiDrivingBlocksExec错误

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查状态流的安全相关诊断设置

检查身份证mathworks.do178.hisl_0311

检查状态流的安全相关诊断设置

描述

此检查验证模型配置参数是否为与安全相关的应用程序的Stateflow设置为最优。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
检测图表配置是否在模拟过程中导致不必要的回溯的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置意想不到的回溯(万博1manbetxSimulink)或设置参数SFUnexpectedBacktrackingDiag错误

检测图表配置是否具有连接到图表输入端口的块,这些块在初始化期间不初始化其输出的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置图表初始化时输入数据访问无效(万博1manbetxSimulink)或设置参数SFInvalidInputDataAccessInChartInitDiag错误

检测图表是否具有无条件默认转换到状态或连接的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置没有无条件的默认转换(万博1manbetxSimulink)或设置参数SFNoUnconditionalDefaultTransitionDiag错误

检测图表是否包含在父状态或结之外循环的转换的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置母体外的过渡(万博1manbetxSimulink)或设置参数SFTransitionOutsideNaturalParentDiag错误

检测是否在有效执行路径上构造图表的诊断设置为没有一个警告

2 .在“配置参数”对话框中设置执行路径不可达(万博1manbetxSimulink)或设置参数SFUnreachableExecutionPathDiag错误

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

  • DO-331, MB.6.3.1节。b“高水平的需求是准确和一致的”
    DO-331, MB.6.3.1节。e“高水平要求符合标准”
    DO-331, MB.6.3.1节。g“算法是准确的”
    DO-331, MB.6.3.2节。b“底层需求是准确和一致的”
    DO-331, MB.6.3.2节。d“低层次需求是可验证的”
    DO-331, MB.6.3.2节。e“低水平要求符合标准”
    DO-331, MB.6.3.2节。g“算法是准确的”

  • hisl_0311:配置参数>诊断>状态流(万博1manbetx模型)

  • 型号配置参数:状态流诊断(万博1manbetx模型)

检查没有链接到需求的模型元素

检查身份证mathworks.do178.RequirementInfo

检查Simulink模型元素万博1manbetx是否链接到需求文档。

描述

此检查验证模型对象是否链接到包含可追溯性工程需求的文档。

可以使用万博1manbetx仿真软件检查

这张支票需要万博1manbetx仿真软件需求™许可证。

结果及建议的行动

条件 建议的行动
块不链接到需求文档。 链接到需求文档。看到

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

  • 允许排除块和图表。

  • 不允许排除状态流元素。

提示

从您想要检查的顶级模型或子系统运行此检查。

另请参阅

检查状态流图的状态机类型

检查身份证mathworks.do178.hisf_0001

确定状态流图是全是Mealy图还是全是Moore图。

描述

将所有状态流图的状态机类型与在输入参数中指定的类型进行比较。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

输入参数

Mealy或Moore

检查图表是否使用相同的状态机类型,并且都是Mealy或Moore图表。

粉状的

检查所有图表是否都是Mealy图表。

摩尔

检查是否所有图表都是摩尔图表。

结果及建议的行动

条件 建议的行动

输入参数设置为粉或更多模型中的图表使用以下任意一种:

  • 经典状态机类型。

  • 多种状态机类型。

对于每个图表,在“图表属性”对话框中指定状态机类型要么粉状的摩尔.对模型中的所有图表使用相同的状态机类型。
输入参数设置为粉状的模型中的图表使用其他状态机类型。 对于每个图表,在“图表属性”对话框中指定状态机类型粉状的
输入参数设置为摩尔模型中的图表使用其他状态机类型。 对于每个图表,在“图表属性”对话框中指定状态机类型摩尔

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

  • DO-331, MB.6.3.1节。b -高级别需求是准确和一致的

  • DO-331, MB.6.3.1节。e -符合标准的高级需求

  • DO-331, MB.6.3.2节。b -底层需求是准确和一致的

  • DO-331, MB.6.3.2节。e -符合标准的底层需求

  • DO-331, MB.6.3.3节。b -软件架构一致

  • DO-331, MB.6.3.3节。e -软件架构符合标准

  • hisf_0001: Mealy和Moore语义(万博1manbetx模型)

  • Mealy和Moore机器概述(Stateflow)

  • 表属性(万博1manbetx模型)

  • 架构图(万博1manbetx模型)

查看状态流图,了解状态和转换的顺序

检查身份证mathworks.do178.hisf_0002

确定具有的状态流图用户指定的状态/转换执行顺序清除。

描述

确定具有的状态流图用户指定的状态/转换执行顺序已清除,因此不使用并行状态和转换的显式排序。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图有用户指定的状态/转换执行顺序清除。

对于指定的图表,在“图表属性”对话框中选择用户指定的状态/转换执行顺序

要显示转换测试顺序,请选择显示>图表>过渡执行令

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

行动的结果

点击修改选择用户指定的状态/转换执行顺序查看指定的图表。

另请参阅

  • DO-331, MB.6.3.3节。b“软件架构是一致的”
    DO-331, MB.6.3.3节。e“软件架构符合标准”

检查状态流调试选项

检查身份证mathworks.do178.hisf_0011

检查Stateflow调试设置。

描述

验证以下调试设置。

  • 包装溢出

  • 仿真范围检查

  • 检测周期

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

下列任何一项:

  • 包装溢出没有设置为错误

  • 仿真范围检查没有设置为错误

  • 检测周期清除。

在“配置参数”对话框中设置:

在模型窗口中,选择:

  • 模拟>调试>MATLAB和状态流错误检查选项>检测周期

能力与限制

  • 不能在库模型上运行。

  • 不分析库链接块的内容。

  • 允许排除块和图表。

行动的结果

点击修改选择指定的调试选项。

另请参阅

  • DO-331, MB.6.3.1节。b -高级别需求是准确和一致的

  • DO-331, MB.6.3.1节。e -符合标准的高级需求

  • DO-331, MB.6.3.2节。b -底层需求是准确和一致的

  • DO-331, MB.6.3.2节。e -符合标准的底层需求

  • hisf_0011:状态流调试设置(万博1manbetx模型)

  • 表属性(万博1manbetx模型)

  • 架构图(万博1manbetx模型)

检查状态流图,查找跨越平行状态边界的转换路径

检查身份证mathworks.do178.hisf_0013

在状态流图中确定跨越并行状态边界的转换路径。

描述

在状态流图中确定跨越并行状态边界的转换路径。使用这样的转换路径会创建包含转换执行的图,这很难理解。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
状态流图具有跨越平行状态边界的转换路径。 修改状态流图,使转换不会跨越平行的状态边界。更多信息请参见,定义状态间转换的设计注意事项(Stateflow)。

能力与限制

  • 不能在库模型上运行。

  • 不分析库链接块的内容。

  • 允许排除块和图表。

  • 分析所有被屏蔽子系统中的内容。

另请参阅

检查状态流图以获得强数据类型

检查身份证mathworks.do178.hisf_0015

在Stateflow对象中标识具有不同数据类型的表达式中的变量和参数。

描述

为了方便强数据类型,该检查在Stateflow状态和转换中标识具有不同数据类型的表达式中的变量和参数。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
Stateflow对象在具有不同数据类型的表达式中具有变量和参数。

显式地将表达式中的变量和参数转换为相同的数据类型。更多信息请参见,

能力与限制

  • 不能在库模型上运行。

  • 不分析库链接块的内容。

  • 允许排除块和图表。

  • 分析所有被屏蔽子系统中的内容。

  • 不分析状态流对象中表达式中的字面量类型。显式地将字面量类型转换为预期的数据类型。

  • 不标记带有true和false关键字的表达式。有关更多信息,请参见为代码生成保留关键字(嵌入式编码)。

另请参阅

检查查找表块的使用情况

检查身份证mathworks.do178.LUTRangeCheckCode

检查查找表块是否不生成超出范围的检查代码。

描述

此检查验证以下块是否生成了代码,以防止落入有效断点值范围之外的输入:

这个检查也验证了这一点使用预查找的插值块生成代码以防止落入有效索引值范围之外的输入。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

查找表块不会生成超出范围的检查代码。

更改块对话框上的设置,以便生成超出范围的检查代码。

  • 一维查找表二维查找表n-D查找表,Prelookup方块,清除复选框在生成的代码中删除对超出范围输入的保护

  • 使用预查找的插值块,清除复选框删除对生成代码中超出范围索引的保护

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

行动的结果

点击修改验证查找表块是否设置为生成超出范围的检查代码。

另请参阅

检查MATLAB代码分析器消息

检查身份证mathworks.do178.himl_0004

检查MATLAB函数% # codegen指令、MATLAB代码分析器消息和验证消息id。

描述

验证% # codegen指令、MATLAB代码分析器消息和对齐消息id:

  • MATLAB函数块中的MATLAB代码

  • 在状态流图中定义的MATLAB函数

  • 叫做MATLAB函数

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

对于MATLAB函数块中的MATLAB代码,请选择以下任何一种:

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

对于在状态流图中定义的MATLAB函数,可以使用以下任一方法:

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

对于所谓的MATLAB函数:

  • 代码没有% # codegen指令。

  • 代码行不需要用% #好吧发表评论。

  • 代码行用% #好吧不要指定消息id。

  • 插入% # codegen指令。

  • 实现MATLAB代码分析器的建议。

  • 证明没有遵循MATLAB代码分析器的建议% #好吧发表评论。

  • 用消息id指定合理的代码行。例如,% #好< NOPRT >

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查MATLAB代码中的全局变量

检查身份证mathworks.do178.himl_0005

在MATLAB代码中检查全局变量。

描述

验证全局变量没有在下列任何一个中使用:

  • MATLAB函数块中的MATLAB代码

  • 在状态流图中定义的MATLAB函数

  • 叫做MATLAB函数

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

全局变量用于以下一个或多个:

  • MATLAB函数块中的MATLAB代码

  • 在状态流图中定义的MATLAB函数

  • 叫做MATLAB函数

用信号线、函数参数或持久数据替换全局变量。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查不一致的向量索引方法

检查身份证mathworks.do178.hisl_0021

识别索引方法不一致的块。

描述

使用不一致的块索引方法会导致建模错误。您应该为所有块使用一致的向量索引方法。此检查标识索引方法不一致的块。索引方法是基于零、基于一或用户指定的。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

模型或子系统包含索引方法不一致的块。索引方法是基于零、基于一或用户指定的。

修改模型以使用单一的一致索引方法。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查带有继承属性的MATLAB函数接口

检查身份证mathworks.do178.himl_0002

识别具有继承复杂性或数据类型属性的输入、输出或参数的MATLAB函数。

描述

该检查标识具有继承复杂性或数据类型属性的MATLAB函数。结果表提供了未通过检查的MATLAB函数的链接,以及触发警告的条件。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
MATLAB函数具有继承的接口。

显式定义输入、输出和结果中确定的MATLAB函数的参数的复杂度和数据类型属性。

如果适用,使用MATLAB函数块编辑器(万博1manbetxSimulink),在端口和数据管理器(万博1manbetx模型):

  • 改变复杂性继承了

  • 改变类型继承:和Simulink一样万博1manbetx到显式类型。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查MATLAB函数指标

检查身份证mathworks.do178.himl_0003

显示MATLAB函数的复杂度和代码度量。报告指标违规情况。

描述

这个检查为MATLAB函数提供了复杂度和代码度量。检查还报告了违反计量标准的情况。结果表提供了违反复杂度输入参数的MATLAB函数的链接。

可以使用万博1manbetx仿真软件检查

输入参数

每个函数的最大有效代码行数

为每个函数提供最大的有效代码行数。有效行不包括空行、注释行或带有函数的行结束关键字。

评论的最小密度

提供最少的注释密度。密度是注释行与代码总行数的比率。

每个函数的最大圈复杂度

为每个函数提供最大的圈复杂度。圈复杂度是通过源代码的线性无关路径的数量。

结果及建议的行动

条件 建议的行动
MATLAB函数违反了输入参数的复杂性。

对于MATLAB函数:

  • 如果有效代码行数过高,则进一步划分MATLAB函数。

  • 如果注释密度过低,则添加注释行。

  • 如果每个函数的圈复杂度过高,则进一步划分MATLAB函数。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查不推荐用于C/ c++生产代码部署的块

检查身份证mathworks.do178.PCG万博1manbetxSupport

确定代码生成不支持或不推荐用于C/ c+万博1manbetx+生产代码部署的块。

描述

该检查部分地标识不推荐用于C/ c++生产代码生成的模型构造万博1manbetxSimulink块支持万博1manbetx(万博1manbetxSimulink Coder)表万博1manbetx仿真软件编码器和嵌入式编码器。如果您正在使用带有支持说明的块进行代码生成,请查看信息并遵万博1manbetx循给出的建议。

可以使用万博1manbetx仿真软件检查和嵌入式编码器®

结果及建议的行动

条件 建议的行动
模型或子系统包含不应用于生产代码部署的块。 考虑替换结果中列出的块。单击可疑项列表中的一个元素以定位条件。

能力与限制

  • 在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查激活“生成预处理器条件”的变量块

检查身份证mathworks.do178.VariantBlock

检查变量块参数,以确定可能导致代码无法跟踪到需求的设置。

描述

此检查验证代码生成的变量块参数是否设置为跟踪需求。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
在模型中的一个或多个变量块中选择生成预处理器条件的选项。 为了简化代码到需求的跟踪,考虑清除在变量块中生成预处理器条件的选项。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

查看状态流图,查找唯一定义的数据对象

检查身份证mathworks.do178.hisl_0061

识别包含非唯一定义的数据对象的状态流图。

描述

此检查在模型中搜索状态流图中没有唯一定义的本地数据。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图包含在两个或多个作用域中定义的数据对象标识符。

对于识别的图表,请执行以下其中一项操作:

  • 在每个范围内创建唯一的数据对象标识符。

  • 在图表的父级创建一个惟一的数据对象标识符。

能力与限制

  • 在库模型上运行。

  • 不分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 不允许排除块或图表。

另请参阅

检查Math Operations块的使用情况

检查身份证mathworks.do178.MathOperationsBlocksUsage

确定用法数学操作可能影响安全的障碍物。

描述

该检查检查以下块的使用情况:

  • 腹肌

  • 获得

  • 数学函数

    • 自然对数

    • 普通(以10为基数)对数

    • 分割后余数

    • 互惠

  • 赋值

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

模型或子系统包含绝对值正在操作以下之一的块:

  • 布尔或无符号输入数据类型。这种情况会导致通过模型的模拟路径不可达,并可能导致代码不可达

  • 的带符号整数值整数溢出时饱和复选框未选中。对于有符号数据类型,最负值的绝对值是有问题的,因为它不能用数据类型表示。这种情况会导致生成的代码溢出。

如果被识别绝对值块正在对布尔或无符号数据类型进行操作,请执行以下操作之一:

  • 的输入绝对值块转换为有符号输入类型。

  • 删除绝对值从模型块。

如果被识别绝对值块正在对有符号数据类型进行操作>信号属性对话框,选择整数溢出时饱和

模型或子系统包含获得a值为1的块或单位矩阵。 如果你正在使用获得块作为缓冲区,考虑将其替换为信号转换块。
模型或子系统包含数学函数-自然对数(日志)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。万博1manbetx

当使用数学函数日志函数,保护块的输入不小于或等于零。否则,输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统包含数学函数-普通(基数为10)(以10为底的对数)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。万博1manbetx

当使用数学函数log10函数,保护块的输入不小于或等于零。否则,输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统包含数学函数-分割后的剩余(rem)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。万博1manbetx

当使用数学函数快速眼动函数,保护块的第二个输入不等于零。否则输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统包含数学函数——互惠(倒数)块,可能导致非有限输出信号。实时嵌入式系统不支持非有限信号。万博1manbetx

当使用数学函数互惠函数,保护块的输入不等于零。否则输出会产生一个并在生成的代码中导致运行时错误。

模型或子系统可能包含赋值数组初始化不完整且没有块参数的块操作,如果没有分配任何输出元素设置为错误警告

设置块参数操作,如果没有分配任何输出元素到推荐值之一:

  • 错误,如果赋值块不在Iterator子系统中。

  • 警告,如果赋值块在迭代器子系统中。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查信号路由块的使用情况

检查身份证mathworks.do178.SignalRoutingBlockUsage

确定用法信号路由可能影响安全的障碍物。

描述

此检查标识模型或子系统开关可能在包含浮点变量或常数的表达式中生成带有不等操作(~=)的代码的块。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个开关块,该块可能在表达式中生成带有不等式操作(~=)的代码,其中表达式的至少一侧包含浮点变量或常数。的开关块可能会在生成的代码中导致浮点不等式比较。

对于已识别的块,执行以下操作之一:

  • 对于控件输入块,更改数据类型参数设置。

  • 改变开关传递第一个输入的标准参数设置。这可能会改变算法。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查逻辑和位操作块的使用情况

检查身份证mathworks.do178.LogicBlockUsage

确定用法逻辑运算符而且位运算可能影响安全的障碍物。

描述

此检查检查以下用法:

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个块,计算在不同数据类型上操作的关系运算符。这种情况会在生成的代码中导致不可预知的结果。 对于标识的块,使用公共数据类型作为输入。你可以用数据类型转换块来更改输入数据类型。
模型或子系统包含一个块,计算一个没有布尔输出的关系运算符。这种情况会在生成的代码中导致不可预知的结果。 对于指定的块,在>信号属性窗格中,设置输出数据类型布尔
该模型或子系统包含一个块,计算一个使用==或~=运算符比较浮点信号的关系运算符。由于浮点精度问题,在浮点信号上使用这些操作符是不可靠和不可预测的。这些操作符可能在生成的代码中导致不可预知的结果。

对于已识别的块,执行以下操作之一:

  • 更改信号数据类型。

  • 重做模型以消除在浮点信号上使用==或~=运算符。

模型或子系统包含一个逻辑运算符块的输入或输出不是布尔值的输入或输出。该块可能在生成的代码中导致浮点相等或不相等比较。
  • 修改逻辑运算符块,以便所有输入和输出都是布尔值。在>信号属性窗格,请考虑选择要求所有输入具有相同的数据类型和设置输出数据类型布尔

  • 在“配置参数”对话框中,请考虑选择将逻辑信号实现为布尔数据(vs. double)

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

检查端口和子系统块的使用情况

检查身份证mathworks.do178.PortsSubsystemsUsage

确定用法港口而且子系统可能影响安全的障碍物。

描述

这个检查检查这些块的使用情况:

  • 对迭代器

  • 而迭代器

  • 如果

  • 开关情况

支票没有标记开关情况不使用整数数据类型或枚举值作为输入的块。遵守hisil_0011: Switch Case块和Action子系统块的使用(万博1manbetxSimulink) - C,使用整数数据类型或枚举值作为输入开关情况块。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
模型或子系统包含一个对迭代器具有变量迭代的块。这种情况可能导致不可预测的执行时间或生成的代码中出现无限循环。

对于被识别的人对迭代器block,执行以下任一操作:

  • 设置迭代极限源参数内部

  • 如果迭代极限源参数必须为外部,使用常数探针,或宽度块作为源。

  • 接下来清除SetI(迭代变量)对外复选框。

  • 考虑选择显示迭代变量复选框,并在模拟过程中观察迭代值。

模型或子系统包含一个而迭代器有无限迭代的块。这种情况会导致生成的代码出现无限循环。

对于被识别的人而迭代器块:

  • 设置最大迭代次数(-1表示无限)参数设置为正整数值。

  • 考虑选择显示迭代数端口复选框,并在模拟过程中观察迭代值。

模型或子系统包含如果块中使用If表达式或Elseif表达式,可能在生成的代码中导致浮点相等或不相等比较。 中的表达式如果块,以避免在生成的代码中进行浮点相等或不相等比较。
模型或子系统包含如果块使用没有Else条件的Elseif表达式。 如果块的参数对话框,选择显示其他条件.将结果的Else输出端口连接到If动作子系统块。
模型或子系统包含如果块的输出端口没有连接到If动作子系统块。 的输出端口如果阻塞连接到If动作子系统块。
模型或子系统包含开关情况块,没有默认情况。 开关情况块的参数对话框,选择显示默认情况.将得到的默认输出端口连接到开关案例动作子系统块。
模型或子系统包含一个开关情况块的输出端口没有连接到开关案例动作子系统块。 的输出端口开关情况块连接到开关案例动作子系统块。

模型或子系统中包含以下与时间相关的块之一对迭代器而迭代器子系统:

  • 离散滤波器

  • 离散FIR滤波器

  • 离散状态空间

  • 离散转移Fcn

  • 离散Zero-Pole

  • 一级转移Fcn

  • 转移Fcn领先或滞后

  • 转移Fnc实零

  • 离散微分

  • 离散转移Fcn(带初始输出)

  • 离散转移Fcn(带初始状态)

  • 离散零极(带初始输出)

  • 离散零极(带初始状态)

在模型或子系统中,考虑删除与时间相关的块。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。

另请参阅

显示型号版本信息

检查身份证mathworks.do178.MdlChecksum

在报告中显示模型版本信息。

描述

此检查显示当前模型的以下信息:

  • 版本号

  • 作者

  • 日期

  • 模型校验和

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
无法检索模型版本和校验和信息。 此摘要供您参考。无需执行该操作。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查缺少属性的根导入

检查身份证mathworks.iec61508.RootLevelInports

识别根模型轮廓尺寸缺少或继承样本时间、数据类型或端口维度的块。

描述

使用根模型轮廓尺寸没有定义采样时间、数据类型或端口尺寸的块可能导致不期望的模拟结果。万博1manbetxSimulink从下游块反向传播维度、样本时间和数据类型,除非您显式地指定这些值。你可以指定轮廓尺寸带有块参数的块属性或显式解析到连接信号线的Simulink信号对象。万博1manbetx在运行检查时,结果表提供了指向未通过的import块和信号对象的链接,以及触发警告的条件。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

缺少端口尺寸-模型包含继承端口维度的导入块。

对于列出的导入块和Simulink信号对象,请指定端口尺寸。万博1manbetx

缺少信号数据类型-模型包含继承数据类型的导入块。

对于列出的导入块和Simulink信号对象,指定数据类型。万博1manbetx

缺少端口采样时间-模型包含继承采样时间的导入块。

对于列出的导入块和Simulink信号对象,指定采样时间。万博1manbetx具有总线类型的根导入的采样时间必须与总线对象的叶元素指定的采样时间匹配。

Simulink信号对象的隐式解析万博1manbetx- Model包含隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象的导入块信号名称。万博1manbetx

对于列出的Simulink信号万博1manbetx对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象万博1manbetx

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

提示

以下配置通过检查:

  • 配置参数> Solver >周期采样时间约束设置为确保采样时间无关

  • 对于导出函数模型,继承样本时间没有标记。

另请参阅

检查缺少范围定义的根导入

检查身份证mathworks.iec61508.InportRange

识别根级别导入丢失或错误的最小或最大范围值的块。

描述

检查识别根级导入块缺少或错误的最小或最大范围值。可以使用块参数或显式解析到连接信号线的Simulink信号对象指定导入块的最小值和最大值。万博1manbetx结果表提供了指向未通过检查的import块和信号对象的链接,以及触发警告的条件。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

失踪的范围-模型包含有缺少范围参数(最小和/或最大)的数值数据类型的导入块。

对于列出的import块和Simulink信号对象,指定标量最小和万博1manbetx最大参数。

缺少总线对象的范围-定义import块的总线对象有缺少范围的叶元素。

对于列出的叶元素,要指定模型接口范围,请提供标量最小和最大参数。

指定的范围将被忽略-总线数据类型不支持Inports或Simulink信号对象的最小或最大值。万博1manbetx万博1manbetx这些值在范围检查时被忽略。

要启用范围检查,请在定义数据类型的总线对象的叶元素上指定最小和最大信号值。

未指定数据类型-模型包含具有继承数据类型的导入块或Simulink信号对象。万博1manbetx

指定一种支持的数据类型:万博1manbetx

Simulink信号对象的隐式解析万博1manbetx- Model包含隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象的导入块信号名称。万博1manbetx

对于列出的Simulink信号万博1manbetx对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象万博1manbetx

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

另请参阅

检查缺少范围定义的根输出

检查身份证mathworks.iec61508.OutportRange

识别缺少或错误的最小或最大范围值的根级输出端口块。

描述

该检查可以识别缺少或错误的最小或最大范围值的根级输出端口块。可以使用块参数或显式解析到连接信号线的Simulink信号对象指定输出端口块的最小值和最大值。万博1manbetx结果表提供了指向未通过检查的Outport块的链接,以及触发警告的条件。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

失踪的范围-模型包含有缺少范围参数(最小和/或最大)的数值数据类型的输出端口块。

对于列出的输出端口块和Simulink信号对象,指定标量最小和最大参万博1manbetx数。

缺少总线对象的范围-定义输出端口块的总线对象具有缺少范围的叶元素。

对于列出的叶元素,要指定模型接口范围,请提供标量最小和最大参数。

在输出端口指定的范围将被忽略总线数据类型不支持Outports或Simulink信号对象的最小或最大值。万博1manbetx万博1manbetx这些值在范围检查时被忽略。

要启用范围检查,请在定义数据类型的总线对象的叶元素上指定最小和最大信号值。

未指定总线数据类型-模型包含带有继承总线数据类型的输出端口块或Simulink信号对象万博1manbetx。

对于输出端口块和Simulink信号对象,指定一种支持万博1manbetx的数据类型:万博1manbetx

Simulink信号对象的隐式解析万博1manbetx-模型包含输出端口块信号名称,这些信号名称隐式解析为基础工作区、模型工作区或Simulink数据字典中的Simulink信号对象。万博1manbetx

对于列出的Simulink信号万博1manbetx对象,在属性对话框中选择信号属性信号名称必须解析为Simulink信号对象万博1manbetx

能力与限制

  • 不能在库模型上运行。

  • 允许排除块和图表。

另请参阅

检查状态流结构的使用情况

检查身份证mathworks.iec61508.StateflowProperUsage

确定可能影响安全性的状态流结构的使用。

描述

此检查标识了Stateflow软件被以可能影响应用程序安全的方式使用的实例,包括:

  • 使用强数据类型

  • 端口名称不匹配

  • 数据对象和事件的范围

  • 状态操作语句的格式化

  • 状态和转换的顺序

  • 遥不可及的代码

  • 不确定的执行时间

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

状态流图没有配置为在Simulink模型和状态流图之间的边界上进行强数据类型。万博1manbetx看到hisf_0009:强数据类型(Simulink和状态流边界)万博1manbetx

在“图表属性”对话框中,选择在Simulink I/O中使用强数据类型万博1manbetx查看状态流图。当您选中此复选框时,状态流图接受Simulink模型支持的任何数据类型的输入信号,只要输入信号的类型与相应的状态流输入数据对象的类型相匹配。万博1manbetx万博1manbetx
信号的名称与其对应的状态流端口的名称不同。看到hisf_0016:状态流端口名称
  • 检查端口是否连接,如果不连接,请修复连接。

  • 更改信号或状态流端口的名称,使其名称匹配。

本地数据不是在Stateflow层次结构的图表级别或更低级别定义的。看到hisf_0017:状态流数据对象作用域

在图表级别或更低级别定义本地数据。

在以下情况下,状态操作缺少新行:

  • 一个条目),),或退出前女友)语句

  • 赋值语句末尾的分号(;)

添加缺失的新行。

状态流图有用户指定的状态/转换执行顺序清除。看到hisf_0002:用户指定的状态/转换执行顺序

对于指定的图表,在“图表属性”对话框中选择用户指定的状态/转换执行顺序

下列任何一项:

  • 包装溢出没有设置为错误

  • 仿真范围检查没有设置为错误

  • 检测周期清除。

看到hisf_0011:状态流调试设置

在“配置参数”对话框中设置:

  • 诊断>数据的有效性>包装溢出错误

  • 诊断>数据的有效性>仿真范围检查错误

在模型窗口中,选择:

  • 模拟>调试>MATLAB和状态流错误检查选项>检测周期

状态流图包含在两个或多个作用域中定义的数据对象标识符。看到hisl_0061:唯一标识符

对于识别的图表,请执行以下其中一项操作:

  • 在每个范围内创建唯一的数据对象标识符。

  • 在图表的父级创建一个惟一的数据对象标识符。

能力与限制

  • 不能在库模型上运行。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 允许排除块和图表。排除将不适用于库链接图表。

另请参阅

请参阅Stateflow文档中的以下主题:

检查模拟时间的安全相关求解器设置

检查身份证mathworks.iec61508.hisl_0040

检查模型配置中适用于模拟时间并可能影响安全的求解器设置。

描述

此检查验证与模拟时间相关的模型求解器配置参数是否为为与安全相关的应用程序生成代码而优化设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

用于指定模拟或生成代码的开始时间的求解器设置被设置为0.0

2 .在“配置参数”对话框中设置开始时间(万博1manbetxSimulink)或设置参数开始时间0.0

用于指定模拟或生成代码的停止时间的求解器设置被设置为大于的值的负值或正值应用程序寿命(天)(万博1manbetx模型)。默认情况下,应用程序寿命(天)(万博1manbetx模型)汽车.如果不更改此设置,则为的任何正值停止时间(万博1manbetxSimulink)有效。

在“配置参数”对话框中,设置停止时间(万博1manbetxSimulink)或设置参数StopTime的正数值,小于的值应用程序寿命(天)(万博1manbetx模型)。

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查与安全相关的求解器设置以获得求解器选项

检查身份证mathworks.iec61508.hisl_0041

检查适用于求解器并可能影响安全性的模型配置中的求解器设置。

描述

此检查验证与求解器相关的模型求解器配置参数是否为为与安全相关的应用程序生成代码而进行了最优设置。

可以使用万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动

指定要模拟模型的求解器类型的求解器设置已设置为变步

2 .在“配置参数”对话框中设置类型(万博1manbetxSimulink)或设置参数SolverType固定步

用于指定在模拟或代码生成期间计算模型状态的求解器的求解器设置设置为离散(无连续状态)

2 .在“配置参数”对话框中设置解算器(万博1manbetx模型)离散(无连续状态)或者设置参数解算器FixedStepDiscrete

行动的结果

点击修改设置配置适用于求解器并可能影响安全性的模型诊断设置。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 分析没有工作区和对话框的屏蔽子系统中的内容。

另请参阅

检查Stateflow数据的移位操作的使用情况

检查身份证mathworks.do178.hisf_0064

确定可能影响安全的状态流数据的移位操作的使用。

描述

此检查检查移位操作数值大于输入或输出类型的位宽或移位操作数值为负值的移位操作。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动

右移操作大于输入类型的位宽。

显式修改位移位操作的值,使其小于shift操作数。

左移操作大于输出类型的位宽。

显式修改位移位操作的值,使其小于shift操作数。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 不支持将移位大小定万博1manbetx义为Simulink信号或变量的移位操作。万博1manbetx

  • 不支持由运行时决定万博1manbetx的移位大小组成的移位操作。

另请参阅

检查状态流图中的赋值操作

检查身份证mathworks.do178.hisf_0065

在状态流对象中标识赋值操作。

描述

此检查标识Stateflow对象中的赋值操作,这些操作将整数和定点计算转换为比输入数据类型更广泛的数据类型。

这种检查只识别带有算术运算的赋值。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
Stateflow对象由赋值操作组成,这些操作将整数和定点计算转换为比输入数据类型更广泛的数据类型。 在Stateflow对象中显式地将赋值操作符(=)替换为:=操作符。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

另请参阅

检查状态流图中的一元运算符

检查身份证mathworks.do178.hisf_0211

在状态流图中标识一元运算符。

描述

此检查标识状态流图中无符号数据类型上的一元减运算符。

可以使用万博1manbetx仿真软件检查

此检查需要Stateflow许可证。

结果及建议的行动

条件 建议的行动
状态流图由无符号数据类型上的一元减运算符组成。 显式修改无符号数据类型上的一元运算符。有关更多信息,请参见一元操作(Stateflow)。

能力与限制

  • 不能在库模型上运行。

  • 不允许排除块或图表。

  • 不标记带有位运算符和算术运算符的表达式。例如,——(u1、u2)没有标记。

另请参阅

检查MISRA C:2012不推荐的块

检查身份证mathworks.misra.Blk万博1manbetxSupport

识别MISRA C:2012兼容代码生成不支持或不推荐的块万博1manbetx。

描述

遵循此检查的建议可以增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性。

可与嵌入式编码器和万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
查找表块使用三次样条插值或外推方法在模型或子系统中找到。 考虑查找表块的其他插值和外推方法。

已弃用的查找表块在模型或子系统中找到。

已弃用的查找表块为查找而且Lookup2D

考虑替换已弃用的查找表块。
s函数生成器在模型或子系统中找到块。 考虑更换s函数生成器推荐用于生产的块。
从工作空间在模型或子系统中找到块。 考虑更换从工作空间推荐用于生产的块。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 分析库链接块的内容。

  • 分析所有被屏蔽子系统中的内容。

  • 如果您有。则排除此检查中的块和图表万博1manbetx仿真软件检查许可证。

另请参阅

检查MISRA C:2012的配置参数

检查身份证mathworks.misra.CodeGenSettings

识别可能影响MISRA C:2012兼容代码生成的配置参数。

描述

遵循此检查的建议可以增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性。

可与嵌入式编码器和万博1manbetx仿真软件检查

结果及建议的行动

条件 建议的行动
定点净斜率计算采用除法没有设置为只对整数的倒数使用除法 设置配置参数定点净斜率计算采用除法只对整数的倒数使用除法

位字段声明器类型说明符设置为uchar_T当选择任何这些参数时:

  • 将布尔数据打包到位字段中

  • 使用bitset存储状态配置

  • 使用bitset存储布尔数据

设置配置参数位字段声明器类型说明符uint_T
模型验证块启用设置为使用本地设置让所有 设置配置参数模型验证块启用禁用所有
包装溢出设置为没有一个 设置配置参数包装溢出警告错误
Inf或NaN块输出设置为没有一个 设置配置参数Inf或NaN块输出警告错误
有符号整数除法舍入到没有设置为地板上 设置配置参数有符号整数除法舍入到地板上
MATLAB函数块中的动态内存分配被选中。 明确配置参数MATLAB函数块中的动态内存分配
系统目标文件设置为基于grt的目标。 设置配置参数系统目标文件到基于ert的目标。
最大标识符长度 将配置参数值设置为与实现相关的限制。默认为31
系统生成的标识符设置为经典 设置配置参数系统生成的标识符缩短
代码替换库没有设置为没有一个AUTOSAR 4.0

设置配置参数代码替换库没有一个AUTOSAR 4.0

共享代码放置设置为汽车

设置配置参数共享代码放置共享位置

万博1manbetx支持:非有限数字被选中。

明确配置参数万博1manbetx支持:非有限数字

万博1manbetx支持:复数被选中。

明确配置参数万博1manbetx支持:复数(仅针对基于ert的目标)

万博1manbetx支持:连续时间被选中。

明确配置参数万博1manbetx支持:连续时间(仅针对基于ert的目标)

MAT-file日志被选中。

明确配置参数MAT-file日志

生成共享常量被选中。 明确配置参数生成共享常量
标准数学库并不表示正确的C编程语言。

设置配置参数标准数学库C89 /人私下偷偷收藏盒式(ANSI)C99 (ISO)取决于工具链

万博1manbetx支持非内联s函数被选中。

明确配置参数万博1manbetx支持非内联s函数(仅针对基于ert的目标)

对模型初始化使用动态内存分配选中时代码接口封装设置为可重用的功能

明确配置参数对模型初始化使用动态内存分配

仅当配置参数时选择代码接口封装设置为可重用的功能

括号的水平没有设置为最大值(用括号指定优先级) 设置配置参数括号水平最大值(用括号指定优先级)
用带符号的位移替换2的幂的乘法被选中。 明确配置参数用带符号的位移替换2的幂的乘法
铸造模式没有设置为标准兼容 设置配置参数铸造模式标准兼容
允许有符号整数的右移位被选中。 明确配置参数允许有符号整数的右移位
在函数声明中保留静态关键字清除时文件打包格式设置为紧凑的CompactWithDataFile 选择配置参数在函数声明中保留静态关键字(仅针对基于ert的目标)。

行动的结果

点击修改所有将参数值修改为推荐值。

子检查依赖于子检查的结果D在Model Advisor窗口的结果表中。

能力与限制

此检查不检查引用的模型。

另请参阅

这个话题有帮助吗?