主要内容

通过使用代码跟踪验证生成的代码

代码跟踪(可追溯性)使用超链接导航一行生成的代码和相应的元素之间的一个模型。找到行代码和相应的元素,还可以右键单击一个元素或元素模型。这种双向导航双向可追溯性。

使用代码跟踪,您可以:

  • 确认生成的代码是你期望。你可以确定哪些模型元素对应于一行代码。你可以跟踪代码从不同元素或没有。

  • 确认生成的代码满足设计要求。你可以要求链接到模型元素和使用代码跟踪验证生成的代码模型元素满足指定的需求。

当你从模型生成代码万博1manbetx®模型,可追溯性信息嵌入到生成的代码,除非显式地指定。追溯信息包括链接生成的源代码和模型之间的追溯。您可以查看生成的代码通过:

生成的代码包括资源支持代码跟踪:万博1manbetx

  • 代码元素超链接(强调当您将您的鼠标停留在代码)来跟踪在生成的代码中变量或类型声明或定义的头文件。

  • 在代码注释标记,识别元素模型生成的代码行。

  • 行号超链接,链接到的模型组件生成的代码行。

可追踪的元素

双向可追溯性是这些Stateflow仿真软件模块和支持万博1manbetx万博1manbetx®元素:

  • 转换

  • 状态转换表

  • MATLAB函数。可追溯性不支持外部代码调用从MATLAB万博1manbetx函数。

  • 真值表块

  • 图形化功能

  • 万博1manbetx仿真软件的功能

可追溯性在一个方向上是支持这些Stateflow元素:万博1manbetx

  • 事件(code-to-model)

    Code-to-model追溯适用于明确的事件,但不隐式事件。点击一个超链接为一个显式的事件在生成的代码中突出了这一项内容Model Explorer窗格。

  • 连接(模型到代码)

    模型到代码的可追溯性工作与至少一个即将离任的过渡连接。Stateflow编辑器中右键单击这样一个结了行代码对应于第一个外向的过渡连接。

有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ug/trace-stateflow-elements-in-generated-code.html" class="a">跟踪Stateflow元素生成的代码

MATLAB函数块,你将直接插入一个仿真软件模型也可追踪的。万博1manbetx有关更多信息,请参见<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ug/using-traceability-in-matlab-function-blocks.html" class="a">在MATLAB函数块使用的可追溯性

生成的代码的可追溯性

代码视图

  1. 打开模型<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ug/matlab:rtwdemo_comments" target="_blank">rtwdemo_comments

  2. 开放的嵌入式编码®应用。建立模型。在C代码选项卡上,单击构建

    默认打开HTML代码生成报告。使用报告,请参阅<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ug/verify-generated-code-by-using-code-tracing.html" class="intrnllnk">代码生成报告

  3. 视图生成的代码在代码中的代码视图视角。

  4. 生成的源文件之间切换通过使用下拉列表顶部的代码视图。

  5. 源代码包含可追溯性信息,如超链接的评论,行号,变量,和运营商。把你的光标或超链接点击评论或行号。模型编辑万博1manbetx器中凸显了在模型中相应的块或块。

    代码视图打开旁边的模型。光标放置在评论和相应的块突出显示。

  6. 突出的一块生成的代码模型,选择块。生成的代码块中突出显示的代码视图。

  7. 打开引用模型生成的代码,打开引用模型和视图生成的代码在代码视图。

代码生成报告

  1. 打开模型<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ug/matlab:rtwdemo_comments" target="_blank">rtwdemo_comments

  2. 开放的嵌入式编码应用。C代码选项卡上,单击设置打开配置参数对话框。选择<一个href="//www.tianjin-qmedu.com/es/help/rtw/ref/createcodegenerationreport.html" class="a">创建代码生成报告如果尚未选中。默认情况下,<一个href="//www.tianjin-qmedu.com/es/help/rtw/ref/openreportautomatically.html" class="a">自动打开报告,<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ref/codetomodel.html" class="a">Code-to-model,<一个href="//www.tianjin-qmedu.com/es/help/ecoder/ref/modeltocode.html" class="a">模型到代码的被选中。

  3. 如果你的模型包含引用模型和您想启用跟踪参考模型的代码生成报告,重复前面的步骤为每个引用的模型。

  4. 构建的模型。在C代码选项卡上,单击构建。构建过程打开web浏览器在MATLAB代码生成报告。

  5. 在左侧导航窗格中,选择一个源代码文件。源代码和行号在右窗格中包含超链接的块模型。

  6. 点击发表评论或行号超链接。模型编辑万博1manbetx器显示和突出模型中相应的块或块。

    代码生成报告窗口包含模型。c文件是开放的。鼠标光标放在一个评论,其中包含超链接到相应的块模型。

  7. 突出的一块生成的代码模型,右键单击并选择C / c++代码>导航到C / c++代码。然后生成的代码块中突出显示的HTML代码生成报告。强调生成的代码对于您选择的多个块,保存转变键,选择多个块,然后右键单击任何一个块选择C / c++代码>导航到C / c++代码。生成的代码块然后突出显示在HTML代码生成报告。

  8. 如果你有一个参考模型在你的模型中,在左侧导航窗格中,参考模型点击链接,参考模型。参考模型的代码生成报告现在显示在MATLAB web浏览器。

  9. 在左侧导航窗格中,您可以单击回来按钮回到之前的代码生成报告。

可追溯性标记

可追溯性标记出现在评论上面对应的行生成的代码。标签的格式<系统> /block_name

  • 系统是下列之一:

    • 文本

    • 一个独特的系统仿真软件引擎分配的数量万博1manbetx

  • block_name是块的名称来源。

代码生成器文档模型在评论部分的标签生成的头文件模型。h。例如,这个评论出现在头文件为一个模型,喷火,一个子系统和一个嵌套的子系统内心的:

/ *这里的系统层次结构模型。* * <根>:foo * < S1 >: foo /外* < S2 >: foo /外/内* /

上面这段代码展示了一个标记注释生成的代码行。获得块在根级别的源模型生成此代码:

/ *获取:“< Root > / UnDeadGain1”* / rtb_UnDeadGain1_h = dead_gain_U。In1 * dead_gain_P.UnDeadGain1_Gain;

上面这段代码展示了一个标记注释生成的代码行。获得块在一个子系统级别低于根级别的源模型生成此代码:

/ *获取:“< S1 > /增益”* / dead_gain_B。temp0 * = (dead_gain_P.s1_Gain_Gain);

运营商可追溯性

生成的代码提供了运营商之间的可溯性生成的代码和模型块,Stateflow元素,或MATLAB函数块。万博1manbetx

验证生成的代码通过使用运营商的可追溯性,在生成的代码中,单击一个算子超链接强调源块模型。

支持这些操作符。万博1manbetx

符类型 运营商
算术 +,- - - - - -,*,/,%
+ =,- =,* =,/ =,% =
+ +,- - -(前缀和后缀)
逻辑 !,& &,| |
关系 = =,! =,<,>,< =,> =
~,|,^,&,> >,< <
& =,^ =,| =,< < =,> > =
有条件的 吗?

不支持这些操作符。万博1manbetx

符类型 操作符的例子
赋值运算符 =
的成员和指针运算符 数组下标:一个[b]
地址和指针:,*一个
成员:a.b,a - >
其他运营商 括号在函数调用:foo (a, b)
逗号:一个,b
范围解析:b::
演员:类型(一)
,新[]
删除,删除[]

可追溯性的限制

这些限制适用于嵌入式编码器软件生成的报告:

  • 在下列条件下,模型到代码的可追溯性是禁用的一块,如果块名称包含:

    • 一个单引号()。

    • 星号(*),导致一个名称改编歧义在模型中相对于其他的名字。这个名称改编模棱两可如果发生在一个街区的名字或最后一块名称,星号之前或遵循一个斜杠(/)。

    • 这个角色y(char (255))。

  • 如果一个街区的名字包含换行符(\ n),生成的代码注释块路径链接替换换行符为可读性与空间。

  • 你不能跟踪块代表这些类型的子系统生成的代码:

    • 虚拟子系统

    • 戴面具的子系统

    • Nonvirtual子系统中已删除的代码优化

    如果你不能跟踪子系统,子系统级别,您可以跟踪单个块内的子系统。

  • 如果你打开一个模型在平台不同平台上用于生成代码,您不能使用模型到代码和code-to-model可跟踪性。

  • 内联的可追溯性是不能用于文件生成的shared_utils文件夹中。

相关的话题