使用嵌入式编码器®模型顾问检查以配置代码生成模型。
检查ID:mathworks.codegen.PCG金宝appSupport
识别代码生成不支持或C/ c++产品代码金宝app部署不推荐的代码块。
此检查部分标识不推荐用于C / C ++生产代码生成的模型构造。为了金宝app®编码器™和嵌入式编码器,这些模型构造标识标识出现在表格中金宝app仿真软件块支持金宝app.
在某些情况下,这个检查标记代码生成所支持的块。金宝app对于这些块,您应该查看支持说明中提供的脚注信息,并遵循Model Advisor提供的建议操作。金宝app
在此检查的建议之后提高了符合CERT C,CWE和ISO / IEC TS 17961标准的生成代码的可能性。
可提供嵌入式编码器和金宝appSimulink Check™.
条件 | 推荐办法 |
---|---|
模型或子系统包含不应用于生产代码部署的块。 | 考虑替换结果中列出的块。单击问题项列表中的一个元素以定位条件。 |
模型或子系统包含支持的块,但不建议生产代码生成。金宝app | 检查支持说明并坚持Mo金宝appdel Advisor提供的建议操作。 |
你可以:
在库模型上运行此检查。
分析库链接块的内容。
分析屏蔽子系统中的内容。
如果您有一个,则排除块和图表金宝app仿真软件检查许可证。
编辑时间检查支持此检查。金宝app
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.codegen.efficeTunableParameXpr.
检查模型配置是否可以提高代码效率的优化设置。
此检查标识建议用于C / C ++生产代码生成的模型配置参数。对于嵌入式编码器,这些模型配置参数提高了代码效率。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
优化抑制了代码生成,以防范您选择的可调参数表达式的整数溢出。选择饱和码消除。 | 如果您有Embedded Coder并且正在使用基于ert的系统目标文件,请选择Configuration Parameter从可调参数表达式中删除饱和超出范围值的代码或者设置参数EfficientTunableParamExpr 来在 . |
优化抑制了处理浮点对整数转换结果的代码生成南 价值观。选择转换代码消除。 |
如果您有Embedded Coder并且正在使用基于ert的系统目标文件,请选择Configuration Parameter删除从浮点到整数转换的代码,饱和映射NaN到零或者设置参数EfficientMapNaN2IntZero 来在 . |
点击修改设置配置模型优化设置会影响代码生成的效率。没有安全问题:
的从可调参数表达式中删除饱和超出范围值的代码参数如果您的模拟包含可调节表达式的参数的整个值范围,并且Simulink不会产生饱和警告。金宝app
的删除从浮点到整数转换的代码,饱和映射NaN到零参数如果您的模型仿真不包含NaN输入值。
在图书馆模型上没有运行。
不允许块或图表排除。
检查ID:mathworks.codegen.lutrancecheckcode.
识别查找表块,生成代码以防止用于断开断点或索引值的超出范围输入。
此检查验证以下块不会生成代码以防止掉落在有效断点值范围之外的输入:
此检查还验证了这一点插值使用Prelookup块不会生成防止输入超出有效索引值范围的代码。
遵循建议的操作增加生成代码的执行和ROM效率。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
查找表块会生成超出范围的检查代码。 |
更改块对话框的设置,以便不会生成超出范围的检查代码。
|
你可以:
在库模型上运行此检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
点击调整防止查找表块生成超出范围的检查代码,这使得生成的代码更高效。
编辑时间检查支持此检查。金宝app
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.codegen.logicblockusenonbooleanoutput.
识别不使用的逻辑块布尔
对于输出数据类型。
此检查验证以下块的输出数据类型是布尔
:
比较恒定的
比较零
检测变革
检测减少
检测堕落消极
检测下降负的
检测增加
检测不上升
检测上升阳性
间隔测试
间隔测试动态
逻辑运营商
关系运营商
使用输出数据类型布尔
提高生成代码的执行效率。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
逻辑块的输出数据类型不是布尔 . |
在块对话框中,设置输出数据类型来布尔 . |
你可以:
在库模型上运行此检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
模型顾问排除概述(金宝appSimulink检查)
点击调整强制使用逻辑块布尔
作为输出数据类型。如果逻辑块使用uint8.
对于输出类型,单击调整将输出类型更改为布尔
.
检查ID:mathworks.codegen.HWImplementation
识别不一致或未指定的硬件实现设置
simu金宝applink和金宝appSimulink编码器软件需要两组目标规范。第一组描述了最终预期的生产目标。第二组描述当前所选的目标。如果配置不匹配,则代码生成器会创建额外的代码以模拟生产目标的行为。硬件属性的不一致或下限可能导致目标硬件的效率或不正确的代码生成。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
硬件实现参数未设置为推荐值。 | 在“配置参数”对话框的“硬件实现”窗格中,指定以下参数:
在“配置参数”对话框中,指定以下参数:
|
硬件实现生产硬件设置不匹配测试硬件设置。 | 在“配置参数”对话框中,考虑选择测试硬件与生产硬件相同(Prodeqtarget. )复选框,或修改设置以匹配。 |
检查ID:mathworks.codegen.swenvironmentspec.
识别有问题的软件环境设置。
金宝app对某些软件环境的支持可能会导致效率低下代码生成和非优化结果。
C的行业标准,如ISO®和MISRA®,要求标识符在前31个字符内是唯一的。
Stateflow®具有弱Simulink I / O金宝app数据类型的图表导致效率低下。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
最大标识符长度不符合C的行业标准。 | 在“配置参数”对话框中,在代码生成>标识符窗格,设置最大标识符长度参数到31 字符。 |
在“配置参数”对话框中,参数上代码生成>接口窗格未设置为推荐值。 | 在“配置参数”对话框中,在代码生成>接口窗格中,清除以下参数:
在“配置参数”对话框中,清除金宝app支持非内联的S函数. |
在“配置参数”对话框中,参数上代码生成>身份标识窗格未设置为推荐值。 | 在“配置参数”对话框中,在代码生成>身份标识窗格,设置生成标量内向参数为参数到文字 . |
在“配置参数”对话框中,在代码生成>接口窗格,金宝app支持:可变尺寸信号被选中。这可能导致效率低下。 | 如果您不打算支持可变大小的信号,请在“配置参数”金宝app对话框中代码生成>接口窗格中,清晰的金宝app支持:可变尺寸信号. |
该模型包含具有弱Simulink I / O数据类型规范的状态溢图。金宝app | 选择状态流程图属性在Simulink I/O中使用强数据类型金宝app(Stateflow).选择属性后,您可能需要在模型中调整数据类型。 |
使用statflow图表时需要statflow许可证。
使用Simulink输入和输出键入的强大数据金宝app(Stateflow)
检查ID:mathworks.codegen.codeInstrumentation.
确定可疑的代码仪器。
生成的代码的仪器可能导致非优化结果。
测试点需要全局内存,并且不适合生产代码生成。
可提供嵌入式编码器。
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.codegen.UseRowMajorAlgorithm
识别产生低效算法的块。
此检查标识基于模型的数组布局基于模型的数组布局在生成的代码中生成低效算法的块。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
配置参数数组布局被设定为专栏专业 对于列主要代码生成。 |
禁用配置参数使用优化的行主阵列布局算法. |
配置参数数组布局被设定为划艇 用于行主代码生成。 |
选择配置参数使用优化的行主阵列布局算法. |
分析隐藏子系统中的内容。
检查ID:Mathworks.misra.Codegensettings.
确定可以影响MISRA C:2012兼容代码生成的配置参数。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
数学和数据类型 | |
配置参数用除法进行定点网斜率计算没有设置为在 或使用划分仅为整数的互互替换 . |
放用除法进行定点网斜率计算来在 或使用划分仅为整数的互互替换 . |
配置参数Inf或NaN块输出被设定为 配置参数Inf或NaN块输出被设定为 |
什么时候金宝app支持非谓语形式的数字是:
|
配置参数模型验证块启用被设定为使用本地设置 或启用所有 . |
放模型验证块启用来禁用所有 . |
配置参数无向事件广播被设定为没有任何 或警告 . |
放无向事件广播来错误 . |
配置参数包装上溢出被设定为没有任何 |
设置配置参数包装上溢出来警告 或错误 . |
硬件实现 | |
配置参数生产硬件签署整数级轮被设定为未定义的 |
放生产硬件签署整数级轮来零 或地面 . |
配置参数对有符号整数右移称为算术移位被选中。 | 清除对有符号整数右移称为算术移位. |
仿真目标 | |
配置参数MATLAB函数的编译时间递归限制被设置为以外的值0 . |
放MATLAB函数的编译时间递归限制来0 . |
配置参数MATLAB函数中的动态内存分配被选中。 | 清除MATLAB函数中的动态内存分配. |
配置参数启用MATLAB函数的运行时间递归被选中。 | 清除启用MATLAB函数的运行时间递归. |
代码生成 | |
配置参数位域声明符类型说明符被设定为
|
放位域声明符类型说明符来uint_T . |
配置参数铸造模式没有设置为标准兼容 . |
放铸造模式来标准兼容 . |
配置参数代码替换库没有设置为没有任何 或Autosar 4.0. . |
放代码替换库来 |
配置参数外部模式被选中。 | 清除外部模式. |
配置参数生成共享常数被选中。 | 清除生成共享常数. |
配置参数包括评论被清除了。 |
选择包括评论. |
配置参数MAT-file日志被选中。 | 清除MAT-file日志 |
对于基于ert的目标系统,配置参数MATLAB用户评论被清除了。 | 选择MATLAB用户评论. |
配置参数的值最大标识符长度没有提供。 | 将值设置为依赖于实现的限制。默认为31 . |
配置参数括号级别没有设置为最大(使用括号指定优先级) . |
放括号水平来最大(使用括号指定优先级) . |
对于基于ert的目标系统,配置参数在函数声明中保留static关键字当时被清除文件包装格式被设定为 |
选择在函数声明中保留static关键字. |
配置参数用带符号的按位移位替换2的幂乘法被选中。 | 清除用带符号的按位移位替换2的幂乘法. |
配置参数共享代码的位置被设定为汽车 . |
放共享代码的位置来 |
对于基于ert的目标系统,配置参数金宝app支持连续时间被选中 | 清除金宝app支持连续时间. |
对于基于ert的目标系统,配置参数金宝app支持非内联的S函数被选中 | 清除金宝app支持非内联的S函数. |
配置参数系统生成的标识符被设定为经典 . |
放系统生成的标识符来缩短 . |
配置参数系统目标文件设置为基于grt的目标。 | 放系统目标文件到基于ERET的目标。 |
配置参数使用动态内存分配进行模型初始化被选中时代码接口包装被设定为可重复使用的功能 . |
清除使用动态内存分配进行模型初始化. 笔记 选择只有当代码接口包装被设定为 |
点击修改所有内容将参数值修改为推荐值。
笔记
当你点击修改所有内容对于具有基于grt目标的模型,Model Advisor不会更新系统目标文件基于ert的系统的配置参数。
参数子检查取决于参数的结果D在结果表中。结果是D-Warning, 这当前值结果表格中的列先决条件约束不符合subchecks。更改参数后,重新运行检查。
笔记
某些子检查特定于基于ERE的系统的配置参数。单击时不会更新这些参数修改所有内容除非您将模型更改为基于ert的系统。
此检查不会查看引用的模型。
检查ID:mathworks.misra.Blk金宝appSupport
识别MISRA C:2012兼容代码生成不支持或不推荐的块金宝app。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。
可提供嵌入式编码器和金宝app仿真软件检查.
你可以:
在库模型上运行此检查。
分析库链接块的内容。
分析隐藏子系统中的内容。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
编辑时间检查。编辑时间检查支持此检查。金宝app
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.misra.blocknames.
识别包含/
.
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
包含块名称/ 在模型或子系统中找到。 |
消除/ 从块名称。 |
在图书馆模型上运行。
分析库链接块的内容。
分析隐藏子系统中的内容。
如果你有一个金宝app仿真软件检查许可证,允许块和图表排除。
编辑时间检查。编辑时间检查支持此检查。金宝app
Misra C:2012,第3.1条
检查ID:mathworks.misra.AssignmentBlocks
识别赋值没有块参数的块如果没有分配任何输出元素,则执行设置错误或警告.
此检查适用于赋值可以在下面的Simulink块库中找到金宝app金宝app>数学运作.
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型或子系统可能包含赋值具有不完整数组初始化的块,没有阻止参数如果没有分配任何输出元素,则执行设置错误或警告. | 设置块参数如果没有分配任何输出元素,则执行到其中一个推荐值:
|
在图书馆模型上运行。
分析库链接块的内容。
分析隐藏子系统中的内容。
如果你有一个金宝app仿真软件检查许可证,允许块和图表排除。
编辑时间检查。编辑时间检查支持此检查。金宝app但是,不支持以下检查条件,因为编辑时间检查无法确定是否是金宝app赋值块位于迭代器子系统中。
设置块参数如果没有分配任何输出元素,则执行到其中一个推荐值:
错误, 如果赋值块不在迭代器子系统中。
警告, 如果赋值块位于迭代器子系统中。
MISRA C:2012,第9.1条
ISO / IEC TS 17961:2013,Uninitref
CERT C,EXP33-C
CWE,CWE-908
检查ID:mathworks.misra.switchdefault.
识别没有默认情况的切换盒表达式。
检查标志模型具有切换壳表达式的对象,而无需默认情况。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性,以及符合CERT C、CWE、ISO/IEC TS 17961标准的代码。
如果块是用Polyspace对齐的,则检查不会标记没有默认情况的块®注解。当您运行支票时,块与理由表列出了没有默认情况下的块块。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型对象有一个没有默认用例的开关用例表达式。 |
为了开关情况块,考虑选择块参数显示默认情况要明确指定默认情况。 |
你可以:
在库模型上运行此检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
编辑时间检查。编辑时间检查支持此检查。金宝app
MISRA C:2012年,规则16.4
ISO / IEC TS 17961:2013,SWTCHDFLT
CERT C,MSC01-C
CWE,CWE-478
注释代码并隐藏已知或可接受的结果(Polyspace Bug Finder)
检查ID:mathworks.misra.AutosarReceiverInterface
识别没有匹配错误端口的AUTOSAR接收接口导入。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。检查标志AutoSAR接收器接口Inports缺少错误端口。下表标识了当缺少相应的错误端口时由检查标记的接收器接口端口的AutoSAR数据访问模式类型。
AutoSAR数据访问模式类型 | 标记用支票吗? |
---|---|
Impliciteceive. |
是的 |
expliciteceive. |
是的 |
排队xplicitreceive. |
不 |
errorstatus. |
不 |
体育 |
不 |
iSupdated. |
不 |
endtoendread. |
是的 |
ExplicitReceiveByVal |
不 |
除此以外 |
不 |
当使用Polyspace注释确定错误端口时,检查不会标记错误端口的缺失。当您运行支票时,块与理由表列出了缺少的错误端口,具有致意。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
AutoSAR接收器接口Inport没有匹配错误端口。 |
添加缺少错误端口并映射到相应的Autosar Receiver接口Inport。 |
当数据访问模式是时,Autosar接收器接口端口没有匹配的错误端口Impliciteceive. ,expliciteceive. ,或endtoendread. . |
添加缺少错误端口并映射到相应的Autosar Receiver接口Inport。 |
你可以:
分析顶层/根级模型。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012,指令4.7
模型顾问排除概述(金宝appSimulink检查)
注释代码并隐藏已知或可接受的结果(Polyspace Bug Finder)
配置AUTOSAR元素和属性(AutoSAR块集)
AutoSAR组件配置(AutoSAR块集)
检查ID:MathWorks.misra.busementnames.
识别用作总线元素名称的总线对象名称。
使用此检查增加了为符合MISRA C:2012的嵌入式应用程序生成代码的可能性。检查标志了Simulink的实例。金宝app总线对象名用作Simulink。金宝app公共汽车元素名称。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
总线对象名称被用作总线元素名称。 | 更改标记的总线对象名称或总线元素名称,以便它们不相同。 |
MISRA C:2012,规则5.6
MISRA AC AGC,规则5.3
检查ID:mathworks.security.codegensettings.
确定可能影响符合安全编码标准的配置参数。
按照此检查的建议,可增加生成符合CERT C、CWE、ISO/IEC TS 17961安全编码标准的代码的可能性。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
诊断 | |
配置参数Inf或NaN块输出被设定为 配置参数Inf或NaN块输出被设定为 |
什么时候金宝app支持非谓语形式的数字是:
|
配置参数模型验证块启用被设定为使用本地设置 或启用所有 . |
放模型验证块启用来禁用所有 . |
配置参数无向事件广播被设定为没有任何 或警告 . |
放无向事件广播来错误 . |
配置参数包装上溢出被设定为没有任何 . |
放包装上溢出来警告 或错误 . |
硬件实现 | |
配置参数生产硬件签署整数级轮被设定为未定义的 . |
放生产硬件签署整数级轮来零 或地面 . |
配置参数对有符号整数右移称为算术移位被选中。 | 清除对有符号整数右移称为算术移位. |
仿真目标 | |
配置参数MATLAB函数的编译时间递归限制被设置为以外的值0 . |
放MATLAB函数的编译时间递归限制来0 . |
配置参数MATLAB函数中的动态内存分配被选中。 | 清除MATLAB函数中的动态内存分配. |
配置参数启用MATLAB函数的运行时间递归被选中。 | 清除启用MATLAB函数的运行时间递归. |
代码生成 | |
配置参数代码替换库没有设置为没有任何 或Autosar 4.0. . |
放代码替换库来没有任何 或Autosar 4.0. . |
配置参数外部模式被选中。 | 清除外部模式. |
配置参数包括评论被清除了。 |
选择包括评论. |
配置参数MAT-file日志被选中。 | 清除MAT-file日志. |
对于基于ert的目标系统,配置参数MATLAB用户评论被清除了。 | 选择MATLAB用户评论. |
配置参数用带符号的按位移位替换2的幂乘法被选中。 | 清除用带符号的按位移位替换2的幂乘法. |
对于基于ert的目标系统,配置参数金宝app支持连续时间被选中 | 清除金宝app支持连续时间. |
对于基于ert的目标系统,配置参数金宝app支持非内联的S函数被选中 | 清除金宝app支持非内联的S函数. |
配置参数系统目标文件设置为基于grt的目标。 | 放系统目标文件到基于ERET的目标。 |
配置参数使用动态内存分配进行模型初始化被选中。 | 清除使用动态内存分配进行模型初始化. 笔记 选择只有当代码接口包装被设定为 |
点击修改所有内容将参数值修改为推荐值。
笔记
当你点击修改所有内容对于具有基于grt目标的模型,Model Advisor不会更新系统目标文件基于ert的系统的配置参数。
参数子检查取决于参数的结果D在结果表中。结果是D-Warning, 这当前值结果表格中的列先决条件约束不符合subchecks。更改参数后,重新运行检查。
笔记
某些子检查特定于基于ERE的系统的配置参数。单击时不会更新这些参数修改所有内容除非您将模型更改为基于ert的系统。
检查ID:mathworks.security.block金宝appsupport.blocksupport.
识别不建议符合安全编码标准的块。
按照此检查的建议,可增加生成符合CERT C、CWE、ISO/IEC TS 17961安全编码标准的代码的可能性。
可提供嵌入式编码器和金宝app仿真软件检查.
你可以:
在库模型上运行此检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
编辑时间检查。编辑时间检查支持此检查。金宝app
检查ID:mathworks.codegen.QuestionableSubsysSetting
确定可疑的子系统块设置。
子系统块在生成的代码中实现为void-void函数,使用全局内存存储子系统I / O。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
子系统块有子系统参数>函数包装选项设置为那种一次性的功能 . |
设定子系统参数>函数包装参数到汽车 . |
子系统块有子系统参数>函数包装选项设置为可重复使用的功能 . |
设定子系统参数>函数包装参数到汽车 . |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
检查ID:mathworks.codegen.rowmajorcodegen金宝appsupport.
检查行主要代码生成不支持的块。金宝app
此检查标识行主要代码生成不支持的块。金宝app
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
模型接口与行主要数组布局中的外部数据。 | 设置配置参数数组布局来划艇 . |
分析隐藏子系统中的内容。
检查ID:mathworks.codegen.rowmajorunsetsfunction.
使用未命令数组布局识别TLC S函数。
这个检查识别具有SSArrayLayout
设置ss_unset.
.默认情况下,每个S函数都有SSArrayLayout
物业设为ss_unset.
.此设置禁用行主要代码生成的S函数。当配置参数时数组布局被设定为划艇
,嵌入式编码器报告错误。您可以通过更改误差来关闭错误行主代码生成的外部函数兼容性来警告
或没有任何
.
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
配置参数数组布局被设定为专栏专业 对于列主要代码生成。 |
设定SSArrayLayout 财产专栏专业 . |
配置参数数组布局被设定为划艇 用于行主代码生成。 |
设定SSArrayLayout 财产划艇 . |
分析所有屏蔽子系统中的内容。
检查ID:mathworks.codegen.BlockSpecificQuestionableFxptOperations
确定可能导致非优化结果的固定点操作。
某些块设置可能导致昂贵的定点和饱和代码。
状况 | 推荐办法 |
---|---|
块生成昂贵的饱和代码。 | 检查应用程序是否需要设置功能块参数>信号属性>在整数溢出上饱和.否则,清楚在整数溢出上饱和参数,以获得生成代码中块的最有效实现。 |
产品块是将信号乘以不匹配的斜率调整因子。NET斜率计算使用乘法,后跟偏移,这对于某些目标硬件效率低下。 | 设定优化>用除法进行定点网斜率计算参数到 笔记 仅在满足某些简单性和准确度条件时才会发生这种优化。有关更多信息,请参阅处理净斜率计算(定点设计师). |
产品块被配置为第一个输入的除法操作和第二个输入的乘法操作。 | 反转输入,使乘运算首先发生,除运算其次发生。 |
产品块配置为执行多个划分操作。 | 将所有分母术语乘以一起,然后使用级联进行单个划分产品块。 |
产品块配置为执行许多乘法或划分操作。 | 将运算分割到几个块上,每个块执行一次乘法或除法运算。 |
作为除法操作的一部分产生的保护代码是多余的。 | 验证您的模型不能在划分操作中导致异常,然后通过设置删除冗余保护代码优化>删除保护违反分裂算术例外的代码参数在“配置参数”对话框中。 |
数据类型的输入范围总和块超出输出的数据类型范围,可能导致溢出或饱和。 | 更改输出和累加器数据类型,以便范围等于或超过所有输入范围。 例如,如果模型有两个输入
输出和累加器的数据类型范围必须等于或超过-128至255. a |
一个总和块具有具有斜率调整因子的输入,其不等于输出的斜率调整因子。 | 更改数据类型,使输入、输出和累加器具有相同的斜率调整因子。 |
的净和总和块输入偏置不等于输出的偏置。 | 更改输出缩放的偏置,使净偏置调整为零。 |
输入和输出的输入和输出极大极小块具有不同的数据类型。 | 更改输入或输出的数据类型。 |
输入的输入极大极小块具有与输出不同的斜率调整因子。 | 更改输入或输出的缩放。 |
初始条件离散时间积分器块用于初始化状态和输出。 | 设定功能块参数>初始条件设置参数到状态(最有效) . |
事件的参数溢出比较零块。这个块使用输入数据类型表示0。输入数据类型不能准确地表示0,因此将输入值与最接近的可表示值0进行比较。 | 选择可以表示零的输入数据类型。 |
以下发生参数溢出比较常数块。此块使用输入数据类型表示其恒定价值范围。的恒定价值参数超出输入数据类型可以表示的范围。将输入信号与最接近的可增值值进行比较恒定价值范围。 | 选择可以表示的输入数据类型恒定价值参数或更改恒定价值匹配输入数据类型的参数。 |
需要固定点设计器™许可证来生成定点代码。
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
识别生成昂贵的固定点和饱和码的块(定点设计师)
模型顾问排除概述(金宝appSimulink检查)
检查ID:Mathworks.misra.modelfuncleinterface.
识别输入数据指针中缺少的const限定符。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。check标志没有const限定符的输入数据指针。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
没有为输入数据指针定义const限定符。 | 考虑将Const限定符添加到输入数据指针。 |
MISRA C:2012,规则8.13
检查ID:mathworks.codegen.questionableYxptoperations.
确定可能导致非优化结果的固定点操作。
较低的效率代码可以由生成繁琐的乘法和分割操作,昂贵的转换代码,查找表块中的低效率以及昂贵的比较代码来引起较高的障碍。
状况 | 推荐办法 |
---|---|
整数除法生成的代码较大。 | 在“配置参数”对话框中,在硬件实现窗格,设置生产硬件签署整数级轮参数到推荐值。 |
查找表向量的输入值均匀间隔。 | 如果无法运内的断点数据,请调整数据以具有2个间距的功率。看fixt_look1_func_approx. . |
查找表向量的输入值在量化时不会均匀间隔,但它非常接近均匀间隔。 | 如果无法运内的断点数据,请调整数据以具有2个间距的功率。看fixpt_evenspace_cleanup . |
查找表向量的输入值均匀间隔,但间距不是2的功率。 | 如果无法运内的断点数据,请调整数据以具有2个间距的功率。看fixt_look1_func_approx. . |
对于prelookup或n-d查找表块,索引搜索方法是均匀的间隔点 .断点数据没有2间距的功率。 |
如果无法运内的断点数据,请调整数据以具有2个间距的功率。否则,在“块参数”对话框中,指定不同的索引搜索方法避免计算密集型划分操作。 |
N-D查找表断点数据不会均匀间隔索引搜索方法不是均匀的间隔点 . |
如果断点数据是不可调优的,将数据调整为偶数,2的幂,然后设置索引搜索方法来均匀的间隔点 . |
n-D查询表断点数据是均匀间隔的索引搜索方法是均匀的间隔点 .但间距不是2的力量。 |
如果无法运内的断点数据,请调整数据以具有2个间距的功率。看fixt_look1_func_approx. . |
N-D查找表断点数据均匀间隔,但间距不是电源为2.此外,索引搜索方法不是均匀的间隔点 . |
放索引搜索方法来均匀的间隔点 .此外,如果数据是不可运内的,请考虑偶数,2个间距的功率。 |
N-D查找表断点数据均匀间隔,间距是2.但是索引搜索方法不是均匀的间隔点 . |
放索引搜索方法来均匀的间隔点 . |
块在生成的代码中需要多字操作。 | 将输入的单词长度调整为操作,以便它们不超过处理器的最大字大小。有关更多信息,请参阅生成代码中的定点多字操作(定点设计师). |
块需要繁琐的乘法。 | 限制乘法操作:
|
产品块是将信号乘以不匹配的斜率调整因子。 | 改变输出的比例,使其斜率调整因子为输入斜率调整因子的乘积。 |
阻止具有非零偏置的乘法信号。 | 插入A.数据类型转换包含乘法运算的块前后的块。 |
输入关系运营商块具有不同的数据类型。 | |
输入关系运营商块具有不同的斜坡调整因子。 | 更改输入的缩放。 |
输出关系运营商块是恒定的。这可能会导致死代码,而死代码将被金宝appSimulink编码器. | 查看您的模型设计并删除关系运营商阻止或用常数替换它。 |
需要固定点设计器许可证来生成定点代码。
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
确定有问题的定点操作(定点设计师)
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.codegen.expensivenesAturationRoundingcodeCode
检查生成昂贵的舍入代码的块。
生成的舍入代码效率低下整数舍入模式参数设置。
可提供嵌入式编码器。
条件 | 推荐办法 |
---|---|
生成的代码效率低下。 | 设定功能块参数>整数舍入模式参数到推荐值。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
识别生成昂贵的圆形代码的块(定点设计师)
模型顾问排除概述(金宝appSimulink检查)
检查ID:mathworks.misra.compliantcgirconstructions.
识别包含对有符号整金宝app数的位操作的Simulink块。
遵循此检查的建议,将增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性,以及符合CERT C和CWE标准的代码。
可提供嵌入式编码器和金宝app仿真软件检查.
当模型中使用statflow时,此检查需要statflow许可证。
条件 | 推荐办法 |
---|---|
该模型具有在符号整数上包含位操作的块。 | 考虑使用无符号整数进行位操作。 |
你可以:
检查假设为整个模型生成代码。当子系统构建或导出函数生成代码时,检查可以将产品不正确。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012,规则10.1
CERT C,INT13-C
CWE,CWE-682
检查ID:MathWorks.misra.Recursion惯例
识别状态流图中的递归函数调用。
按照此检查的建议,将增加为嵌入式应用程序生成MISRA C:2012兼容代码的可能性。检查标志图表具有递归函数调用。
可提供嵌入式编码器和金宝app仿真软件检查.
此检查需要州流许可证。
条件 | 推荐办法 |
---|---|
图表具有递归函数调用。 |
删除递归函数调用。 |
Misra C:2012,DIR 17.2
避免在图表中不需要的递归(Stateflow)
检查ID:MathWorks.misra.CompareFloateQuality.
确定浮点值的平等和不等式操作。
检查标志源导致浮点值的平等或不等式操作。
遵循此检查的建议,将增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性,以及符合CERT C和CWE标准的代码。
如果使用PolySpace注释,则该检查在浮点值上具有平等或不等式操作的标记块。当您运行支票时,块与理由表列出了具有良好理由的平等或不等式操作的块。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型对象对浮点值具有平等或不等式操作。 |
考虑使用非浮点值进行平等或不等式操作。 |
你可以:
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012, Dir 1.1
证书C,FLP00-C
CWE,CWE-697
注释代码并隐藏已知或可接受的结果(Polyspace Bug Finder)
检查ID:mathworks.misra.integerwordLength.
识别不符合硬件实现设置的整数字长
检查标志整数,其字长度超过通过硬件实现设置允许的位数。
遵循此检查的建议,将增加为嵌入式应用程序生成符合MISRA C:2012的代码的可能性,以及符合CERT C和CWE标准的代码。
可提供嵌入式编码器和金宝app仿真软件检查.
条件 | 推荐办法 |
---|---|
模型对象包含不符合硬件实现设置的整数字长度。 |
更新整数,使其长度不超过允许的位数。您可以在“配置参数”对话框中查看允许的位数硬件实现>设备详细信息窗格。 |
你可以:
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
MISRA C:2012,规则10.1
CERT C,INT13-C
CWE,CWE-682
模型顾问排除概述(金宝appSimulink检查)
检查ID: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 _
条件 | 推荐办法 |
---|---|
块名称代码透视窗格不符合指南。 |
更新块名称以符合指南。 |
在图书馆模型上运行。
分析图书馆链接块的内容。
分析隐藏子系统中的内容。
允许排除区块和图表。