金宝app编码器检查
金宝app编码器检查概述
使用金宝app®编码器™模型顾问检查以配置您的模型以进行代码生成。
另请参阅
运行模型顾问检查(金宝app模型)
金宝app仿真软件检查(金宝app模型)
嵌入式编码器检查(嵌入式编码)
使用基于一个的索引来标识块
检查身份证:mathworks.codegen.cgsl_0101
使用基于一个的索引来标识块。
描述
在生成的代码中,基于零的索引比基于一的索引更有效。
使用基于零的索引可以提高生成代码的执行效率。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
模型或子系统包含为基于一个的索引配置的块。 | 为从零开始的索引配置块。更新支撑块。金宝app |
能力和限制
您可以:
在库模型上运行这个检查。
从此检查中排除块和图表,如果您有金宝app模型检查™许可证。
另请参阅
cgsl_0101:基于零的索引(金宝app模型)。
模型顾问排除概述(金宝app仿真软件检查)
检查解算器以生成代码
检查身份证:mathworks.codegen.SolverCodeGen
检查模型求解器和采样时间配置设置。
描述
不正确的配置设置可能会阻止代码生成器生成代码。不充分指定采样时间可能导致不期望的结果。避免生成可能破坏数据或产生不可预测行为的代码。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
模型级代码生成的求解器类型设置不正确。 | 在“配置参数”对话框中,单击解算器窗格中,设置类型(金宝app模型) |
多任务诊断选项未设置为错误 。 |
在“配置参数”对话框中,单击诊断窗格中,设置
|
提示
您不必修改求解器设置来从子系统生成代码。构建过程会自动更改解算器类型来固定步
当您右键单击子系统并选择C / c++代码>构建这个子系统或C / c++代码>生成功能从子系统上下文菜单中。
另请参阅
检查代码生成不支持的块金宝app
检查身份证:mathworks.codegen.codeGen金宝appSupport
识别代码生成不支持的块。金宝app
描述
该检查部分识别不适合代码生成的模型构造,如在金宝appSimulink块支持金宝app表金宝app仿真软件编码器和嵌入式编码器®。如果您正在使用带有支持说明的块进行代码生成,请查看信息并遵金宝app循给出的建议。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
模型或子系统包含不应该用于代码生成的块。 | 考虑替换结果中列出的块。单击可疑项列表中的一个元素来定位条件。 |
能力和限制
您可以:
在库模型上运行这个检查。
分析库链接块的内容。
分析被屏蔽子系统中的内容。
从此检查中排除块和图表,如果您有金宝app仿真软件检查许可证。
另请参阅
模型顾问排除概述(金宝app仿真软件检查)
检查和更新模型,使用工具链方法构建生成的代码
检查身份证:mathworks.codegen.toolchainInfoUpgradeAdvisor.check
检查模型是否使用工具链设置来构建生成的代码。
描述
检查模型是否使用模板makefile方法或工具链方法来构建生成的代码。
可以使用金宝app仿真软件编码器。
当您打开R2013b之前创建的模型时系统目标文件设置为ert.tlc
,ert_shrlib.tlc
,或grt.tlc
软件自动尝试从使用模板makefile方法升级到使用工具链方法。
如果软件没有升级模型,则此检查确定原因,如果有,则建议您执行升级模型的操作。
要确定您的模型正在使用哪种方法,您还可以查看Configuration Parameters对话框中的Code Generation窗格。工具链方法使用以下参数来构建生成的代码:
模板makefile方法使用以下设置来构建生成的代码:
编译器优化级别
自定义编译器优化标志
生成makefile
模板makefile
结果和建议的行动
条件 | 建议的行动 | 评论 |
---|---|---|
模型被配置为使用工具链方法。 | 没有行动。 | 模型自动升级。 |
模型没有配置为使用工具链方法。 | 模型不能自动升级以使用工具链方法。 | 系统目标文件不符合工具链。集系统目标文件到符合工具链的目标,例如ert.tlc ,ert_shrlib.tlc ,或grt.tlc 。 |
模型没有配置为使用工具链方法。(参数值不是默认值) | 模型可以自动升级以使用工具链方法。点击更新模型。 | 参数设置为默认值,除了编译器优化级别,即优化(更快的运行) 。点击更新模型集编译器优化级别到它的默认值,关闭优化(更快的构建) ,然后升级模型。升级后的模型构建配置设置为更快的构建 。保存模型可以使这些更改永久保存。 |
模型没有配置为使用工具链方法。(参数值不是默认值) | 模型不能自动升级以使用工具链方法。 | 以下一个或多个参数未设置为默认值:
|
行动的结果
点击更新模型升级模型以使用工具链方法来构建生成的代码。
另请参阅
检查和更新嵌入式目标模型以使用ert。TLC系统目标文件
检查身份证:mathworks.codegen.codertarget.check
检查并更新嵌入式目标模型以使用ert。TLC系统目标文件。
描述
检查和更新的模型系统目标文件被设置为除?之外的任何文件ert.tlc
其目标硬件是支持使用的Texas Instruments™C2000™处理器之一金宝appert.tlc
和类似的设置。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
系统目标文件设为ert.tlc- Embedded Coder 。 |
不采取行动 |
系统目标文件被设置为除?之外的任何文件 |
在升级顾问中运行相应的检查:
|
行动的结果
点击运行此检查自动设置以下参数代码生成面板中的模型配置参数:
系统目标文件参数
ert.tlc
。工具链参数以匹配上一个工具链。
构建配置参数以匹配生成配置。
能力和限制
新的工作流使用工具链方法,它依赖于增强的makefile来构建生成的代码。它不提供与设置构建格式参数项目
在前面的配置中。因此,新的工作流不能在CCS 3.3 IDE中自动生成IDE项目。
另请参阅
检查和更新使用的目标在不同版本的MATLAB中发生重大变化的模型
检查身份证:mathworks.codegen.realtime2CoderTargetInfoUpgradeAdvisor.check
使用Simulink目标检查和更新在不同版本的MATLAB金宝app中发生重大变化的模型®。
描述
保存已更新的模型,以便与当前安装的MATLAB一起使用。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
模型使用的目标自最初保存它的MATLAB发布以来发生了重大变化。 | 保存模型 |
模型未使用Simulink目标或使用最新版金宝app本的目标。 | 不采取行动 |
模型自动更新。 | 保存模型 |
外部模式配置无效。 | 在配置参数>接口窗格中,更新外部模式参数设置以匹配主机-目标连接的特征。 |
模型损坏。 |
关闭并重新打开模型。如果问题仍然存在,请重置配置参数>硬件实现>硬件板。 |
行动的结果
点击保存模型更新模型以配合当前安装的MATLAB并保存模型。
另请参阅
检查对可调参数有约束的块
检查身份证:mathworks.codegen.ConstraintsTunableParam
识别具有可调参数约束的块。
描述
查找表块在可调时具有严格的约束。如果违反了查找表块限制,生成的代码将生成不正确的答案。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
查找表块具有可调的参数。 | 在模拟期间调优参数或运行生成的代码时,必须:
|
查阅表(2d)块具有可调的参数。 | 在模拟期间调优参数或运行生成的代码时,必须:
|
查找表(n-D)块具有可调的参数。 | 在模拟期间调优参数或运行生成的代码时,必须保持每个表维度的断点值的递增单调性断点n。 |
能力和限制
如果你有金宝app仿真软件检查许可,您可以从此检查中排除块和图表。
另请参阅
检查模型参考配置是否不匹配
检查身份证:mathworks.codegen.MdlrefConfigMismatch
识别与顶级模型配置参数设置不匹配的引用模型配置参数设置。
描述
代码生成器不能为顶级模型创建代码,这些模型包含具有不同的、不兼容的配置参数设置的引用模型。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
顶层模型和参考模型的模型配置参数设置不一致。 | 修改指定的型号配置设置。 |
另请参阅
模型参考基础(金宝app模型)
设置模型层次结构的配置参数(金宝app模型)
检查采样时间和任务模式
检查身份证:mathworks.codegen.SampleTimesTaskingMode
为您的系统设置采样时间和任务模式。
描述
不正确的任务模式可能导致低效的代码执行或不正确的生成代码。
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
该模型表示一个多速率系统,但没有配置为多任务处理。 | 在“配置参数”对话框中,单击解算器窗格中,设置将每个离散的速率视为一个单独的任务(金宝app模型)按推荐参数配置。 |
该模型配置为多任务处理,但是在目标硬件上不需要多任务处理。 | 在“配置参数”对话框中,单击解算器的复选框将每个离散的速率视为一个单独的任务(金宝app模型)参数,或更改硬件实现窗格。 |
另请参阅
检查用于模型引用的代码生成标识符格式
检查身份证:mathworks.codegen.ModelRefRTWConfigCompliance
检查模型引用层次结构中的引用模型,其中代码生成更改了涉及标识符格式的配置参数设置。
描述
在参考模型中,如果配置参数>代码生成>符号参数中有不包含$ R
令牌(它表示参考模型的名称),代码生成在$ R
令牌转换为标识符格式。
全局变量
全球类型
子系统的方法
恒宏
可以使用金宝app仿真软件编码器。
结果和建议的行动
条件 | 建议的行动 |
---|---|
对生成的代码进行操作的脚本使用代码生成更改的模型名称。 |
更新脚本以使用生成的名称(其中包含附加的 |
代码生成目标的可用检查
代码生成目标检查有助于设计和排除您想要用于生成代码的Simulink模型和子系统的故障。金宝app
代码生成顾问包括以下来自Simulink的检查:金宝app金宝app仿真软件编码器,以及用于每个代码生成目标的嵌入式编码器。代码生成顾问的两个唯一检查包含在列表下面。
检查 | 执行效率 (目标) |
罗效率 (ERT-based目标) |
内存效率 (ERT-based目标) |
安全预防措施 (ERT-based目标) |
可追溯性 (ERT-based目标) |
调试 (目标) |
MISRA C:2012指南 (ERT-based目标) |
Polyspace® (ERT-based目标) |
---|---|---|---|---|---|---|---|---|
根据代码生成目标检查模型配置设置 | 包括 | 包括 | 包括 | 包括 | 包括 | 包括 | 包括(见请注意下图) | 包括 |
检查最佳总线虚拟性(金宝app模型) | 包括 | 包括 | 包括 | N/A | N/A | N/A | N/A | N/A |
在指定的系统中识别有问题的块 | 包括 | 包括 | 包括 | N/A | N/A | N/A | N/A | N/A |
检查硬件实现(嵌入式编码) | 包括如果嵌入式编码器是可用的 | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A | N/A |
识别有问题的软件环境规范(嵌入式编码) | 当可追溯性不是一个更高的优先级和嵌入式编码器是可用的 | 当可追溯性不是一个更高的优先级和嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A | N/A |
识别有问题的代码插装(数据I/O)(嵌入式编码) | 当可追溯性或调试不是更高优先级并且嵌入式编码器可用时包含 | 当可追溯性或调试不是更高优先级并且嵌入式编码器可用时包含 | 当可追溯性或调试不是更高优先级并且嵌入式编码器可用时包含 | N/A | N/A | N/A | N/A | N/A |
识别有问题的子系统设置(嵌入式编码) | N/A | 包括如果嵌入式编码器是可用的 | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A |
识别生成昂贵舍入代码的块(嵌入式编码) | 包括如果嵌入式编码器是可用的 | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A | N/A |
识别有问题的定点操作(嵌入式编码) | 包括如果嵌入式编码器或定点设计器™是可用的 | 包括如果嵌入式编码器或定点设计器可用 | N/A | N/A | N/A | N/A | N/A | N/A |
使用基于一个的索引来标识块 | 包括 | 包括 | N/A | N/A | N/A | N/A | N/A | N/A |
识别生成昂贵的范围外检查代码的查找表块(嵌入式编码) | 包括如果嵌入式编码器是可用的 | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A | N/A |
检查逻辑块的输出类型(嵌入式编码) | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
识别未连接的线路、输入端口和输出端口(金宝app模型) |
N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查数据存储内存块是否存在多任务处理、强类型和阴影问题(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
识别块输出信号与连续采样时间和非浮点数据类型(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查对可调参数有约束的块 | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查数据存储块是否开启读写诊断(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查结构参数与总线信号的使用情况(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查数据存储块采样时间以查找建模错误(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查涉及数据存储访问的潜在排序问题(金宝app模型) | N/A | N/A | N/A | 包括 | N/A | N/A | N/A | N/A |
检查不推荐用于C/ c++生产代码部署的块(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查MISRA C:2012不推荐的块(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查不支持的块名称金宝app(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查分配块的使用情况(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查对有符号整数的位操作(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查递归函数调用(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查浮点值上的相等和不相等操作(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查没有默认大小写的开关大小写表达式(嵌入式编码) | N/A | N/A | N/A | N/A | N/A | N/A | 包括如果嵌入式编码器是可用的 | N/A |
检查配置参数以生成效率低下的饱和代码(嵌入式编码) | 包括如果嵌入式编码器是可用的 | 包括如果嵌入式编码器是可用的 | N/A | 包括如果嵌入式编码器是可用的 | N/A | N/A | N/A | N/A |
请注意
当代码生成顾问根据MISRA C:2012指导方针目标检查您的模型时,该工具不会考虑模型顾问中MISRA C:2012指导方针检查所检查的所有配置参数设置。对于配置参数设置的完整检查:
打开Model Advisor。
导航到按照任务>MISRA建模指南[C]:2012。
运行文件夹中的检查。
有关使用Model Advisor的更多信息,请参见使用模型顾问检查你的模型(金宝app模型)。
另请参阅
使用代码生成顾问为代码生成目标配置模型(嵌入式编码)
运行模型顾问检查(金宝app模型)
金宝app仿真软件检查(金宝app模型)
金宝appSimulink检查(金宝app仿真软件检查)
在指定的系统中识别有问题的块
识别代码生成不支持或不建议部署的块。金宝app
描述
代码生成器只为它支持的块创建代码。金宝app有些块不建议用于生产代码部署。
结果和建议的行动
条件 | 建议的行动 |
---|---|
代码生成器不支持块。金宝app | 从模型中移除指定的块,或者用推荐的块替换该块。 |
不建议将块用于生产代码部署。 | 从模型中移除指定的块,或者用推荐的块替换该块。 |
检查获得值为1的块。 | 取代获得块与信号转换块。 |
能力和限制
您可以:
在库模型上运行这个检查。
从此检查中排除块和图表,如果您有金宝app仿真软件检查许可证。
另请参阅
模型顾问排除概述(金宝app仿真软件检查)
根据代码生成目标检查模型配置设置
根据代码生成目标检查模型的配置参数设置。
描述
根据您的目标,“配置参数”对话框中的每个参数可能具有不同的代码生成建议设置。这个检查可以帮助您确定每个参数的推荐设置,以便您可以根据您的目标实现优化的代码。
结果和建议的行动
条件 | 建议的行动 |
---|---|
参数设置为与指定目标的推荐值不同的值。 | 按推荐值设置参数。 请注意对一个参数值的更改可能会影响其他参数。通过检查可能需要多次迭代。 |
行动的结果
点击修改参数将参数值修改为建议值。
另请参阅
型号配置参数推荐设置摘要(嵌入式编码)
使用代码生成顾问为代码生成目标配置模型(嵌入式编码)