考虑应用程序的目标(例如效率、可跟踪性和安全性)如何映射到模型配置集中的代码生成选项。的参数解算器,数据导入/导出,诊断,代码生成“配置参数”对话框中的窗格指定仿真模型的行为和为模型生成的代码。
在生成代码之前,或者作为代码生成过程的一部分,您可以使用代码生成顾问来检查模型。当您选择在生成代码之前检查模型时,您指定了代码生成顾问检查的模型、子系统或引用模型。当您选择将评审模型作为代码生成过程的一部分时,代码生成顾问将评审整个系统。代码生成顾问使用中显示的信息型号配置参数的推荐设置摘要(嵌入式编码器),以确定参数值,以满足您的目标。当多个目标之间发生冲突时,优先级较高的目标优先。
设置代码生成目标,然后运行代码生成顾问提供关于如何满足模型的代码生成目标的信息。代码生成顾问不会更改生成的代码。您可以使用Code Generation Advisor对模型进行建议的更改。只有在修改模型并重新生成代码后,才会更改生成的代码。当您使用代码生成顾问来设置代码生成目标并检查您的模型时,生成的代码包括标识您指定的目标的注释、代码生成顾问在模型上运行的检查,以及运行检查的结果。
如果一个模型使用配置引用(金宝appSimulink),您可以运行代码生成顾问来检查您的配置参数设置。但是,代码生成顾问不能修改配置参数设置。
根据您的模型所代表的应用程序的类型,您可能有特定的高级代码生成目标。例如,安全性和可跟踪性可能比内存的有效使用更重要。如果你有特定的目标,你可以快速配置你的模型来满足这些目标,通过选择和优先级从这些代码生成目标:
执行效率(所有目标)——配置代码生成设置以实现快速执行时间。
ROM效率(基于ert的目标)——配置代码生成设置以减少ROM的使用。
RAM效率(基于ert的目标)——配置代码生成设置以减少RAM的使用。
可跟踪性(基于ert的目标)——配置代码生成设置,以提供模型元素和代码之间的映射。
安全预防(基于ert的目标)——配置代码生成设置,以增加代码的清晰性、确定性、健壮性和可验证性。
调试(所有目标)——配置代码生成设置以调试代码生成生成过程。
MISRA C:2012指南(基于ert的目标)-配置代码生成设置以增加对MISRA C:2012指南的遵从性。
Polyspace(基于ert的目标)-配置代码生成设置,为Polyspace准备代码®分析。
如果您选择MISRA C:2012准则代码生成目标,代码生成顾问:
检查模型配置设置是否符合MISRA C:2012配置设置建议。
检查MISRA C:2012兼容代码生成不支持或不推荐的块。金宝app
这个例子展示了如何使用代码生成顾问来检查和配置您的模型,以满足代码生成目标:
在菜单栏上,选择代码>C / c++代码>代码生成的顾问.
在System Selector窗口中,选择要检查的模型或子系统,然后单击好吧.
在代码生成顾问中目标代码生成窗格中,从下拉列表中选择代码生成目标(基于grt的目标)。当您选择目标时,在左侧窗格中,Code Generation Advisor会更新它将在您的模型上运行的检查列表。如果您的模型配置了基于ert的目标,则可以使用更多目标。
点击选择运行检查运行代码生成顾问的左窗格中列出的检查。
在“代码生成顾问”窗口中,查看以下结果根据代码生成目标检查模型配置设置通过从左侧窗格中选择它。该检查的结果显示在右侧窗格中。
根据代码生成目标检查模型配置设置针对以下问题触发警告:
参数被设置为指定代码生成目标的推荐值之外的值。
所选的代码生成目标与模型中设置的目标不同。
点击修改参数设置:
参数设置为为指定的代码生成目标推荐的值。
模型中的代码生成目标与代码生成顾问中指定的目标一致。
在Code Generation Advisor窗口中,通过从左侧窗格中选择其余检查的结果来检查它们。检查的结果显示在右窗格中。
检查检查结果后,您可以选择修复警告和故障,如修正模型检查警告或失败(金宝app模型)。
当您指定一个效率或安全预防目标时,代码生成顾问包括额外的检查。当您对这些附加检查之一进行更改时,以前的检查结果可能会失效,需要重新运行。
这个例子展示了如何在“配置参数”对话框中检查和配置代码生成目标:
打开“配置参数”对话框,选择代码生成.
选择或确认选择系统目标文件。
使用选择目标下拉列表(基于grt的目标)或单击设定目标按钮(ERT-based目标)。点击设定目标打开设置目标-代码生成顾问对话框对话框。
点击检查模型运行模型检查。将打开“代码生成顾问”对话框。代码生成顾问使用代码生成目标来确定要运行哪个模型检查。
在左侧窗格中,Code Generation Advisor列出了在模型上运行的检查和结果。单击每个警告以查看您可以对模型进行的更改以通过检查的建议。
确定要对模型进行哪些更改。在Code Generation Advisor的右侧窗格中,按照为每次检查列出的说明修改模型。