文档

嵌入式编码器检查

嵌入式编码器检查概述

使用嵌入的编码器®模型顾问检查配置您的代码生成模型。

另请参阅

检查块不建议用于C / c++代码部署生产

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

识别模块不支持的代码生成或不建议用于C 万博1manbetx/ c++代码部署生产。

描述

这张支票部分确定模型结构,不建议生产C / c++代码生成。为万博1manbetx®编码器™和嵌入式编码,这些模型构造的身份出现在表中万博1manbetx仿真软件块支持万博1manbetx(万博1manbetx仿真软件编码器)。如果您使用的是块为代码生成支持笔记,查看信息,按照给定的建万博1manbetx议。

可以使用万博1manbetx模型检查™和嵌入式编码®

结果和建议措施

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

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 分析内容块相关的库。

  • 在所有蒙面子系统分析内容。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

确定生成的查找表块昂贵的超出范围检查代码

检查身份证:mathworks.codegen.LUTRangeCheckCode

识别生成代码的查找表块来防止对断点或索引超出范围的输入值。

描述

这张支票验证以下不生成代码块来防止输入超出范围的有效断点值:

这张支票也验证插值使用Prelookup不生成代码块来防止输入超出范围的有效的索引值。

以下推荐的行动增加执行和罗生成的代码的效率。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动

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

改变的设置对话框,这样超出范围检查代码块不生成。

  • 一维查找表,二维查找表,一天的查找表,Prelookup块,选择复选框移除保护对超出范围的输入生成的代码

  • 插值使用Prelookup块,选择复选框移除保护超出范围指数生成的代码

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

行动的结果

点击修改阻止查找表块生成超出范围检查代码,这使得生成的代码更高效。

另请参阅

检查逻辑块的输出类型

检查身份证:mathworks.codegen.LogicBlockUseNonBooleanOutput

确定不使用逻辑块布尔为输出数据类型。

描述

这张支票验证以下模块的输出数据类型布尔:

  • 比较恒定的

  • 比较为零

  • 检测变化

  • 检测减少

  • 检测下降负

  • 检测下降负的

  • 增加检测

  • 检测非负上升

  • 检测增加积极的

  • 间隔测试

  • 间隔测试动态

  • 逻辑运算符

  • 关系操作符

使用输出数据类型布尔增加了所生成的代码的执行效率。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
逻辑块的输出数据类型不是布尔 在块对话框中,设置输出数据类型布尔

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

行动的结果

点击修改部队使用逻辑块布尔作为输出数据类型。如果一个逻辑块使用uint8为输出类型,点击修改变化的输出类型布尔

检查硬件实现

检查身份证:mathworks.codegen.HWImplementation

确定不一致或未指定硬件实现设置

描述

仿真软件万博1manbetx和万博1manbetx仿真软件编码器软件需要两套目标规范。第一组描述最终的预期生产目标。第二组描述当前选择的目标。如果配置不匹配,代码生成器创建额外的代码来模拟生产目标的行为。不一致或不指定的硬件属性会导致效率低下或不正确的代码生成的目标硬件。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
硬件实现参数没有设置为推荐值。

在配置参数对话框,硬件实现(万博1manbetx模型)窗格中,指定以下参数:

  • 字节次序(ProdEndianess)

  • 带符号整数除法轮(ProdIntDivRoundTo)

在配置参数对话框中,指定以下参数:

  • 测试硬件字节次序(TargetEndianess)

  • 测试硬件签署了整数的除法轮(TargetIntDivRoundTo)

硬件实现生产硬件设置不匹配测试硬件设置。 在配置参数对话框中,可以考虑选择测试硬件是一样的生产硬件(ProdEqTarget)复选框,或修改设置匹配。

另请参阅

运行时环境的配置

识别可疑软件环境规范

检查身份证:mathworks.codegen.SWEnvironmentSpec

识别可疑软件环境设置。

描述

  • 万博1manbetx支持一些软件环境设置会导致低效的代码生成和nonoptimal结果。

  • 行业标准C,如ISO®和MISRA®,需要独特的标识符在第一个31个字符。

  • Stateflow®图表模型I / O数据类型较弱导致万博1manbetx低效的代码。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
最大标识符长度不符合行业标准的C。 在配置参数对话框,代码生成>符号窗格中,设置最大标识符长度(万博1manbetx仿真软件编码器)参数31日字符。
配置参数对话框的参数代码生成>接口窗格中没有设置为推荐值。

在配置参数对话框,代码生成>接口(万博1manbetx仿真软件编码器)窗格中,明确的以下参数:

  • 万博1manbetx支持:连续时间

  • 万博1manbetx支持:非谓语形式的数字

在配置参数对话框中,清晰万博1manbetx支持非内联S-functions

配置参数对话框的参数代码生成>符号窗格中没有设置为推荐值。 在配置参数对话框,代码生成>符号窗格中,设置生成标量内联参数(万博1manbetx仿真软件编码器)参数文字
在配置参数对话框,代码生成>接口窗格中,万博1manbetx支持:适应信号被选中。这可能导致低效的代码。 如果你不打算支持大小可变的信号,在配置参数对话框万博1manbetx,代码生成>接口窗格中,清晰的万博1manbetx支持:适应信号(万博1manbetx仿真软件编码器)。
模型包含Stateflow图表模型较弱的I / O数据类型规范。万博1manbetx 选择Stateflow图表属性在仿真软件使用强数据类型I / O万博1manbetx(Stateflow)。您可能需要调整后的数据类型在您的模型中选择属性。

限制

Stateflow许可证时需要使用Stateflow图表。

另请参阅

强大的数据输入模型I / O万博1manbetx(Stateflow)

识别可疑代码插装(数据I / O)

检查身份证:mathworks.codegen.CodeInstrumentation

识别可疑代码插装。

描述

  • 工具生成的代码会导致nonoptimal结果。

  • 测试点需要全局内存,不适合生产代码生成。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
接口参数没有设置为推荐值。 在配置参数对话框,代码生成>接口(万博1manbetx仿真软件编码器)窗格中,设置的参数建议值。
块生成断言代码。 在配置参数对话框中,设置模型验证块使(万博1manbetx模型)禁用所有每个块为基础或全球。
块输出信号有一个或多个测试点,如果你有一个嵌入式编码人员许可,忽略测试点信号清除复选框的配置参数对话框。

删除指定块输出信号的测试点。对于每一个信号,在信号属性对话框(万博1manbetx模型),清除测试点复选框。

另外,如果模型是使用一个ERT-based系统目标文件,选择忽略测试点信号复选框在配置参数对话框中忽略测试点在代码生成。

功能和限制

如果你有一个万博1manbetx仿真软件检查许可,从这个检查可以排除块和图表。

另请参阅

检查配置参数MISRA - C: 2012

检查身份证:mathworks.misra.CodeGenSettings

确定配置参数,可能影响MISRA - C: 2012兼容的代码生成。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。

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

结果和建议措施

条件 建议的行动
使用部门定点净斜率计算没有设置为使用部门进行倒数的整数 设置配置参数使用部门定点净斜率计算使用部门进行倒数的整数

设置说明符类型说明符被设置为uchar_T当任何这些参数选择:

  • 包布尔数据为本

  • 使用bitsets存储状态配置

  • 使用bitsets存储布尔数据

设置配置参数设置说明符类型说明符uint_T
模型验证块使被设置为使用本地设置让所有 设置配置参数模型验证块使禁用所有
包装上溢出被设置为没有一个 设置配置参数包装上溢出警告错误
正或南块输出被设置为没有一个 设置配置参数正或南块输出警告错误
带符号整数除法轮没有设置为地板上 设置配置参数带符号整数除法轮地板上
动态内存分配在MATLAB函数块被选中。 明确的配置参数动态内存分配在MATLAB函数块
系统目标文件被设置为一个GRT-based目标。 设置配置参数系统目标文件ERT-based目标。
最大标识符长度 设置配置参数值来实现相关的限制。默认值是31日
系统生成的标识符被设置为经典 设置配置参数系统生成的标识符缩短
代码替换库没有设置为没有一个AUTOSAR 4.0

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

共享代码的位置被设置为汽车

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

万博1manbetx支持:非谓语形式的数字被选中。

明确的配置参数万博1manbetx支持:非谓语形式的数字

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

明确的配置参数万博1manbetx支持:复数(仅ERT-based目标)

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

明确的配置参数万博1manbetx支持:连续时间(仅ERT-based目标)

MAT-file日志被选中。

明确的配置参数MAT-file日志

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

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

万博1manbetx支持非内联S-functions被选中。

明确的配置参数万博1manbetx支持非内联S-functions(仅ERT-based目标)

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

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

选择只有当配置参数代码接口包装被设置为可重用的功能

括号的水平没有设置为最大(与括号指定优先级) 设置配置参数括号水平最大(与括号指定优先级)
代替乘法与签署两位变化的权力被选中。 明确的配置参数代替乘法与签署两位变化的权力
铸造模式没有设置为标准兼容 设置配置参数铸造模式标准兼容
允许对转变签署整数被选中。 明确的配置参数允许对转变签署整数
保存在函数声明静态关键字时清除文件的包装格式被设置为紧凑的CompactWithDataFile 选择配置参数保存在函数声明静态关键字(仅ERT-based目标)。

行动的结果

点击修改所有改变参数值的推荐值。

Subchecks取决于Subchecks表示的结果D在结果表中模型中的顾问窗口。

功能和限制

这张支票不审查参考模型。

另请参阅

检查块不建议用于MISRA - C: 2012

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

确定块不支持或建议MISRA - C: 2012兼容的代码万博1manbetx生成。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。

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

结果和建议措施

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

弃用查找表块被发现在模型或子系统。

弃用查找表块查找Lookup2D

考虑更换弃用查找表块。
s函数生成器在模型中被发现或子系统。 考虑更换s函数生成器阻塞与推荐给生产。
从工作空间在模型中被发现或子系统。 考虑更换从工作空间阻塞与推荐给生产。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 分析内容块相关的库。

  • 在所有蒙面子系统分析内容。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查不支持的块的名字万博1manbetx

检查身份证:mathworks.misra.BlockNames

确定块名称包含/

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。

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

结果和建议措施

条件 建议的行动
块名称包含/在模型中被发现或子系统。 删除/块的名字。

功能和限制

  • 运行库模型。

  • 分析内容块相关的库。

  • 在所有蒙面子系统分析内容。

  • 如果你有一个万博1manbetx仿真软件检查许可证,允许排除块和图表。

另请参阅

检查使用分配的块

检查身份证:mathworks.misra.AssignmentBlocks

识别赋值块没有块参数行动如果没有分配任何输出元素设置为错误警告

描述

这张支票适用于赋值块,在仿真软件块库可用万博1manbetx万博1manbetx>数学操作

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

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

结果和建议措施

条件 建议的行动
该模型可能包含或子系统赋值数组初始化块与不完整,没有阻止参数行动如果没有分配任何输出元素设置为错误警告

块参数设置行动如果没有分配任何输出元素的推荐值:

  • 错误,如果赋值块不是一个迭代器子系统。

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

功能和限制

  • 运行库模型。

  • 分析内容块相关的库。

  • 在所有蒙面子系统分析内容。

  • 如果你有一个万博1manbetx仿真软件检查许可证,允许排除块和图表。

另请参阅

检查开关情况表情没有违约情况

检查身份证:mathworks.misra.SwitchDefault

确定切换实例表达式没有违约的情况。

描述

检查标志模型对象,切换实例表达式没有违约情况。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C, CWE, ISO / IEC TS 17961标准。

检查不标记块没有Polyspace默认情况下,如果他们是有道理的®注释。当您运行检查,块与理由表列出了块没有违约的情况下,有一个理由。

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

结果和建议措施

条件 建议的行动

模型对象有一个没有默认情况下切换实例表达式。

开关情况块,可以考虑选择块参数显示默认情况下显式地指定一个默认情况下。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查疏忽错误港口AUTOSAR接收机接口

检查身份证:mathworks.misra.AutosarReceiverInterface

识别AUTOSAR接收机界面港口,港口没有匹配错误。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。检查标志AUTOSAR港口缺少错误接收器接口端口。

检查没有国旗疏忽错误港口Polyspace注释如果他们是合理的。当您运行检查,块与理由表列出了丢失的错误港口,有一个理由。

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

结果和建议措施

条件 建议的行动

AUTOSAR接收机接口尺寸没有端口匹配错误。

添加丢失的错误港口和映射到相应的AUTOSAR接收机接口尺寸。

功能和限制

您可以:

  • 分析表层模型/根水平。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查总线作为元素名称的对象名称

检查身份证:mathworks.misra.BusElementNames

识别总线作为总线元素名称的对象名称。

描述

使用这张支票增加生成代码的可能性为嵌入式应用程序符合MISRA - C: 2012。检查标志实例模型的地方。万博1manbetx总线对象名称用作仿真软件。万博1manbetx公共汽车元素名称。

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

结果和建议措施

条件 建议的行动
总线对象名称被用作汽车元素名称。 改变标记总线对象名称或公共汽车元素名称,它们是不相同的。

另请参阅

检查安全编码标准的配置参数

检查身份证:mathworks.security.CodeGenSettings

识别可能影响的配置参数符合安全的编码标准。

描述

下面的建议这张支票生成代码的可能性增加,符合CERT C, CWE, ISO / IEC TS 17961安全的编码标准。

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

结果和建议措施

条件 建议的行动
模型验证块使被设置为使用本地设置让所有 在配置参数对话框中,设置模型验证块使禁用所有
系统目标文件被设置为一个GRT-based目标。 在配置参数对话框,代码生成>一般窗格中,设置系统目标文件ERT-based目标。
代码生成>接口参数没有设置为推荐值。

在配置参数对话框,代码生成>接口面板:

  • 代码替换库没有一个AUTOSAR 4.0

  • 清晰的万博1manbetx支持:非谓语形式的数字

  • 清晰的万博1manbetx支持:连续时间(仅ERT-based目标)

在配置参数对话框中:

  • 清晰的万博1manbetx支持非内联S-functions(仅ERT-based目标)

  • 清晰的MAT-file日志

带符号整数除法轮没有设置为地板上 在配置参数对话框,硬件实现窗格中,设置带符号整数除法轮地板上
代替乘法与签署两位变化的权力被选中。 在配置参数对话框,代码生成>代码风格窗格中,清晰的代替乘法与签署两位变化的权力
允许对转变签署整数被选中。 在配置参数对话框,代码生成>代码风格窗格中,清晰的允许对转变签署整数
使用动态内存分配模型初始化被选中。 在配置参数对话框中,清晰使用动态内存分配模型初始化
包装上溢出被设置为没有一个 在配置参数对话框,诊断>数据的有效性窗格中,设置包装上溢出警告错误
正或南块输出被设置为没有一个 在配置参数对话框,诊断>数据的有效性窗格中,设置正或南块输出警告错误
动态内存分配在MATLAB函数块被选中。 在配置参数对话框中,清晰动态内存分配在MATLAB函数块

行动的结果

点击修改所有改变参数值的推荐值。

Subchecks取决于Subchecks表示的结果D在结果表中模型中的顾问窗口。

另请参阅

安全的编码标准

不建议用于安全检查块的编码标准

检查身份证:mathworks.security.Block万博1manbetxSupport

确定符合安全代码块不推荐标准。

描述

下面的建议这张支票生成代码的可能性增加,符合CERT C, CWE, ISO / IEC TS 17961安全的编码标准。

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

结果和建议措施

条件 建议的行动
查找表块使用三次样条内插或外推方法在模型中被发现或子系统。 考虑其他的内插和外推方法查找表块。
弃用查找表块被发现在模型或子系统。 考虑更换弃用查找表块。
s函数生成器在模型中被发现或子系统。 考虑更换s函数生成器阻塞与推荐给生产。
从工作空间在模型中被发现或子系统 考虑更换从工作空间阻塞与推荐给生产。

功能和限制

您可以:

  • 运行这个检查你的图书馆模式。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

识别可疑子系统设置

检查身份证:mathworks.codegen.QuestionableSubsysSetting

识别可疑子系统块设置。

描述

子系统实现为void-void函数生成的代码块使用全局内存存储子系统的I / O。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
子系统模块有子系统参数>函数包装选项设置为那种一次性的功能 设置子系统参数>函数包装参数汽车
子系统模块有子系统参数>函数包装选项设置为可重用的功能 设置子系统参数>函数包装参数汽车

功能和限制

如果你有一个万博1manbetx仿真软件检查许可,从这个检查可以排除块和图表。

另请参阅

确定产生昂贵的定点和饱和度的代码块

检查身份证:mathworks.codegen.BlockSpecificQuestionableFxptOperations

确定定点操作会导致nonoptimal结果。

描述

某些设置可能会导致昂贵的定点和饱和度代码块。

结果和建议措施

条件 建议的行动
产生昂贵的饱和代码块。 检查您的应用程序是否需要设置功能块参数>信号的属性>浸透在整数溢出。否则,清楚浸透在整数溢出参数的最有效的实现在生成的代码块。
产品块相乘信号不匹配的斜率调整因素。净的斜率计算使用乘法跟着变化,这对于一些目标硬件是低效的。

设置优化>使用部门定点净斜率计算参数,或使用部门进行倒数的整数如果净斜率可以用一小部分和分裂近似比乘法和更高效的转变在目标硬件。

请注意

这种优化发生只有当某些简单性和准确性条件得到满足。有关更多信息,请参见处理净斜率计算(定点设计师)。

产品块配置一个分裂操作第一输入和乘法操作第二输入。 反向输入首先发生相乘操作和业务操作发生第二次。
产品块配置多个部门操作。 将所有分母项相乘,然后做一个部门使用层叠产品块。
产品块配置做很多乘法或除法操作。 操作分解成几块,每个块执行一个乘法或一个部门的操作。
生成保护代码冗余的部门操作的一部分。 验证您的模型不能导致分裂异常操作,然后删除冗余保护代码通过设置优化>删除代码,防止部门算术异常(万博1manbetx仿真软件编码器)参数配置参数对话框。
数据类型的输入范围总和块超过输出的数据类型范围,这可能会导致溢出或饱和。

改变输出和蓄电池数据类型范围等于或超过所有的输入范围。

例如,如果该模型有两个输入

  • int8(-128年至127年)

  • uint8(0 - 255)

输出的数据类型范围和蓄电池必须等于或超过-128年到255年。一个int16(-32768年至32767年)数据类型符合这个条件。

一个总和块有一个输入和一个斜率调整因素,不等于斜率输出的调整因素。 改变数据类型的输入,输出,和蓄电池有相同的斜率调整因素。
净的总和块的输入偏差不等于输出的偏差。 改变输出比例的偏见,使净零偏差调整。
的输入和输出极大极小块有不同的数据类型。 改变输入或输出的数据类型。
的输入极大极小块有不同坡比输出调整因素。 改变输入或输出的扩展。
的初始条件离散时间积分器块是用来初始化状态和输出。 设置功能块参数>初始条件设置参数状态(最有效)
参数溢出的发生比较为零块。这个块使用输入数据类型来表示0。输入数据类型不能完全代表零,所以输入值与最接近的可表示的值为零。 选择一个输入数据类型可以表示为零。
以下参数发生溢出比较恒定的块。这个块使用输入数据类型来表示它恒定值参数。的恒定值参数的范围之外,输入数据类型可以表示。输入信号与最近的可表示的价值恒定值参数。 选择一个输入数据类型可以表示恒定值参数或改变恒定值参数输入的数据类型相匹配。

功能和限制

  • 定点设计师™许可证需要生成定点代码。

  • 如果你有一个万博1manbetx仿真软件检查许可,从这个检查可以排除块和图表。

另请参阅

检查缺失的常量限定符在模型的功能

检查身份证:mathworks.misra.ModelFunctionInterface

确定失踪在输入数据指针常量限定符。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。检查标志输入数据指针,没有常量限定符。

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

结果和建议措施

条件 建议的行动
没有定义一个常量限定符的输入数据指针。 考虑添加一个输入数据指针常量限定符。

另请参阅

识别可疑定点操作

检查身份证:mathworks.codegen.QuestionableFxptOperations

确定定点操作会导致nonoptimal结果。

描述

低效的代码可以从块结果生成笨重的乘法和除法操作,昂贵的转换代码,在查找表块低效率,比较昂贵的代码。

结果和建议措施

条件 建议的行动
大整数除法生成代码。 在配置参数对话框,硬件实现窗格中,设置带符号整数除法轮(万博1manbetx模型)参数的推荐值。
查找表的向量输入值不是均匀间隔的。 如果nontunable断点数据,调整数据,甚至,2的幂间距。看到fixpt_look1_func_approx
查找表的向量输入值不是均匀间隔的量化,但它是非常接近是等间距的。 如果nontunable断点数据,调整数据,甚至,2的幂间距。看到fixpt_evenspace_cleanup
查找表输入值的向量是均匀间隔的,但间距不是2的幂。 如果nontunable断点数据,调整数据,甚至,2的幂间距。看到fixpt_look1_func_approx
Prelookup或一天的查找表块,索引搜索方法等间距的点。断点数据没有2的幂的间距。 如果nontunable断点数据,调整数据,甚至,2的幂间距。否则,在块参数对话框中,指定一个不同的索引搜索方法为了避免计算密集型部门操作。
一天的查找表和断点数据不均匀分布索引搜索方法不是等间距的点 如果nontunable断点数据,调整数据,甚至,2的幂间距,然后设置索引搜索方法等间距的点
一天的查找表和断点数据均匀分布索引搜索方法等间距的点。但间隔不是2的幂。 如果nontunable断点数据,调整数据,甚至,2的幂间距。看到fixpt_look1_func_approx
一天查找表断点数据是均匀间隔的,但间距不是2的幂。同时,索引搜索方法不是等间距的点 索引搜索方法等间距的点。同样,如果数据nontunable,考虑一个甚至2间距的力量。
一天的查找表断点数据是均匀间隔的,和间距是2的幂。但是,索引搜索方法不是等间距的点 索引搜索方法等间距的点
在生成的代码块需要多字操作。 调整输入的单词长度操作使他们最大的字大小不超过你的处理器。有关更多信息,请参见定点多字操作生成的代码(定点设计师)。
块需要繁琐的乘法。

限制乘法操作:

  • 所以产品的整数大小不大于目标整数大小。

  • 推荐的尺寸。

产品块相乘信号不匹配的斜率调整因素。 改变输出的扩展,其斜率调整因素输入斜率调整因素的产物。
块用信号与非零的偏见。 插入一个数据类型转换块前后块包含乘法操作。
的输入关系操作符块有不同的数据类型。
  • 改变数据类型和比例不变的输入匹配的其他投入。

  • 插入数据类型转换块前关系操作符块都输入转换为一种常见的数据类型。

的输入关系操作符块有不同斜率调整因素。 变化的比例输入。
的输出关系操作符块是恒定的。这可能导致死代码将被消除万博1manbetx仿真软件编码器 回顾你的模型设计和删除关系操作符块或用常数代替它。

功能和限制

  • 定点设计师许可证需要生成定点代码。

  • 如果你有一个万博1manbetx仿真软件检查许可,从这个检查可以排除块和图表。

另请参阅

确定生成贵舍入的代码块

检查身份证:mathworks.codegen.ExpensiveSaturationRoundingCode

检查产生昂贵的舍入的代码块。

描述

舍入代码生成是低效的整数舍入模式参数设置。

使用嵌入的编码器。

结果和建议措施

条件 建议的行动
生成的代码是低效的。 设置功能块参数>整数舍入模式参数的推荐值。

功能和限制

如果你有一个万博1manbetx仿真软件检查许可,从这个检查可以排除块和图表。

另请参阅

检查按位操作整数签署

检查身份证:mathworks.misra.CompliantCGIRConstructions

确定模型块包含逐位万博1manbetx操作整数签署。检查没有国旗MATLAB函数或Stateflow块使用签署逐位运算符的操作数。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

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

这张支票需要Stateflow许可证。

结果和建议措施

条件 建议的行动
包含逐位操作的模型块签署整数。 考虑使用无符号整数的位操作。

功能和限制

您可以:

  • 检查假设为整个模型生成代码。当代码是由一个子系统构建或导出功能,检查产品不正确的结果。

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查递归函数调用

检查身份证:mathworks.misra.RecursionCompliance

确定递归函数调用在Stateflow图表。

描述

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码。检查标志图递归函数调用。

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

结果和建议措施

条件 建议的行动

图有一个递归函数调用。

消除递归函数调用。

另请参阅

检查平等和不平等操作浮点值

检查身份证:mathworks.misra.CompareFloatEquality

识别平等和不平等操作浮点值。

描述

检查标志来源导致平等或不平等操作浮点值。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

检查不标记块与平等或不平等操作浮点值Polyspace注释如果他们是合理的。当您运行检查,块与理由表列出了块与平等或不平等的操作有一个理由。

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

结果和建议措施

条件 建议的行动

模型对象有一个平等或不平等的操作在一个浮点值。

考虑使用non-floating-point值平等或不平等的操作。

功能和限制

您可以:

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查整字长

检查身份证:mathworks.misra.IntegerWordLengths

确定整数单词长度不符合硬件实现设置

描述

检查标志整数的单词长度超过允许通过硬件实现的比特数设置。

下面这张支票的建议增加的可能性产生MISRA - C: 2012年为嵌入式应用程序兼容的代码,以及代码符合CERT C和CWE的标准。

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

结果和建议措施

条件 建议的行动

模型对象包含整数单词长度不符合硬件实现设置。

更新整数,所以它的长度不超过允许的比特数。您可以查看配置参数对话框中允许的比特数,在硬件实现>设备详细信息窗格。

功能和限制

您可以:

  • 排除块和图表从这个检查如果你有一个万博1manbetx仿真软件检查许可证。

另请参阅

检查块的名字

检查身份证:mathworks.codegen.BlockNames

检查是否块的名字代码的角度窗格包含无效字符。

描述

这个编辑时间检查评估的块的名字代码的角度窗格。检查报告中存在非法字符块的名字,除了:

  • 块被忽略或不建议用于代码生成

  • 虚拟子系统

检查确认所有块的名称符合这些指南:

形式:

的名字:

  • 不开始号码吗

  • 不包括空间的开头一个街区的名字吗

  • 不使用双字节字符

  • 允许回车

允许的字符:

的名字:

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

0 1 2 3 4 5 6 7 8 9 _

结果和建议措施

条件 建议的行动

块名称的代码的角度面板不符合指南。

更新块名称符合指南。

功能和限制

  • 运行库模型。

  • 分析library-linked内容块。

  • 在所有蒙面子系统分析内容。

  • 允许排除块和图表。

另请参阅

这个主题有帮助吗?