代码跟踪(可追溯性)使用超链接在生成的代码行和模型中相应的元素之间导航。要找到代码行及其对应的元素,您还可以右键单击模型中的一个或多个元素。这个双向导航是据span class="emphasis">双向据/em>可追溯性。据/p>
使用代码跟踪,您可以:据/p>
验证生成的代码是否如您所期望的那样。您可以确定与一行代码对应的模型元素。您可以跟踪来自已评审或未评审的不同元素的代码。据/p> 验证生成的代码是否满足了设计要求。您可以将要求链接到模型元素并使用代码跟踪来验证模型元素的生成代码是否满足分配的要求。据/p> 当您从Simulink生成代码时金宝app据sup>®据/sup>模型,可跟踪性信息嵌入到生成的代码中,除非明确指定。可跟踪性信息包括用于在生成的源代码和模型之间进行跟踪的链接。你可以通过以下方式查看生成的代码:据/p>
生成的代码包括支持代码跟踪的资源:金宝app据/p>
代码元素超链接(通过将光标放在代码上的下划线时表示)到将生成的代码中的追踪变量或类型进行跟踪到标题文件中的声明或定义。据/p> 代码注释中的标记,用于标识生成代码行的模型中的元素。据/p> 行号超链接链接到生成代码行的模型组件。据/p> Simulink块和这些statflow支持双向跟踪金宝app金宝app据sup>®据/sup>元素:据/p>
状态据/p> 过渡据/p> 状态转换表据/p> MATLAB功能。从MATLAB函数调用的外部代码不支持跟金宝app踪性。据/p> 真值表块据/p> 图形功能据/p> 金宝appSimulink函数据/p> 这些状态流元素支持一个方向上的可追溯性:金宝app据/p>
事件(code-to-model)据/p> 代码到模型的可跟踪性适用于显式事件,但不适用于隐式事件。在生成的代码中单击显式事件的超链接将突出显示该项据strong class="guilabel">内容据/strong>窗格中的。据/p> 结(模型 - 代码)据/p> 模型到代码的可追溯性适用于至少有一个输出转换的节点。在statflow Editor中右键单击这样的连接,会突出显示与该连接的第一个传出转换对应的代码行。据/p> 有关更多信息,请参阅据一种href="//www.tatmou.com/help/ecoder/ug/trace-stateflow-elements-in-generated-code.html" class="a">跟踪生成代码中的状态流元素据/一种>.据/p>
MATLAB函数据/span>您将直接插入Simulink模型的块也是可追溯的。金宝app有关更多信息,请参阅据一种href="//www.tatmou.com/help/ecoder/ug/using-traceability-in-matlab-function-blocks.html" class="a">在MATLAB功能块中使用可追溯性据/一种>.据/p>
打开模型据一种href="matlab:rtwdemo_comments" target="_blank"> 打开嵌入式编码器据sup>®据/sup>应用程序。构建模型。在这一点据strong class="guimenuitem">C代码据/strong>选项卡,单击据strong class="guilabel">构建据/strong>.据/p> 默认情况下将打开HTML代码生成报告。要使用该报告,请参阅据一种href="//www.tatmou.com/help/ecoder/ug/verify-generated-code-by-using-code-tracing.html" class="intrnllnk">代码生成报告据/一种>.据/p> 在code透视图的code视图中查看生成的代码。据/p> 使用代码视图顶部的下拉列表在生成的源文件之间切换。据/p> 源代码包含可追溯性信息,例如超链接注释,行号,变量和运算符。将光标放在上面或单击评论或行号超链接。Simu金宝applink编辑器突出显示模型中的相应块或块。据/p>
要突出显示模型中某个块生成的代码,请选择该块。代码块生成的代码在code视图中突出显示。据/p> 要打开所生成的引用模型代码,请打开引用的模型,并在代码视图中查看生成的代码。据/p> 打开模型据一种href="matlab:rtwdemo_comments" target="_blank"> 打开嵌入式编码器应用程序。在这一点据strong class="guimenuitem">C代码据/strong>选项卡,单击据strong class="guimenuitem">设置据/strong>要打开“配置参数”对话框。选择据一种href="//www.tatmou.com/help/rtw/ref/create-code-generation-report.html" class="a">创建代码生成报告据/strong>如果尚未选中。默认情况下,据一种href="//www.tatmou.com/help/rtw/ref/open-report-automatically.html" class="a">自动打开报告据/strong>那据一种href="//www.tatmou.com/help/ecoder/ref/code-to-model.html" class="a">代码到模型据/strong>,据一种href="//www.tatmou.com/help/ecoder/ref/model-to-code.html" class="a">模型 - 代码据/strong>被选中。据/p> 如果您的模型包含引用的模型,并且您希望为引用的模型代码生成报告启用可追溯性,请重复每个引用的模型的上一步。据/p> 构建模型。在这一点据strong class="guimenuitem">C代码据/strong>选项卡,单击据strong class="guilabel">构建据/strong>.构建过程在MATLAB web浏览器中打开代码生成报告。据/p> 在左侧导航窗格中,选择源代码文件。右窗格中的源代码和行号包含模型中块的超链接。据/p> 单击评论或行号超链接。Simu金宝applink编辑器显示并突出显示模型中的相应块或块。据/p>
要突出显示模型中某个块生成的代码,右键单击该块并选择据strong class="guimenuitem">C / c++代码据/strong>>据strong class="guimenuitem">导航到C / C ++代码据/strong>.然后在HTML代码生成报告中突出显示块的生成代码。要突出显示您选择的多个块的生成代码,请保持据strong class="guilabel">转变据/strong>键,选择多个块,然后右键单击任何一个块以选择据strong class="guimenuitem">C / c++代码据/strong>>据strong class="guimenuitem">导航到C / C ++代码据/strong>.然后在HTML代码生成报告中突出显示为块生成的代码。据/p> 如果您的模型中有一个引用的模型,在左侧导航窗格中,在据strong class="guilabel">参考模型据/strong>,单击引用模型的链接。引用模型的代码生成报告现在显示在MATLAB Web浏览器中。据/p> 在左侧导航窗格中,您可以单击据strong class="guibutton">回来据/strong>按钮返回上一个代码生成报告。据/p> 在生成的代码的相应行上方的评论中出现可追溯性标记。标签的格式是据code class="literal">据据em class="replaceable">
可追踪的元素据/h3>
生成代码中的可追溯性据/h3>
代码视图据/h4>
rtwdemo_comments据/code>.据/p>
代码生成报告据/h4>
rtwdemo_comments据/code>.据/p>
可追溯性标记据/h3>
系统据/code>
block_name.据/code>
.据/p>
是下列情况之一:据/p>
系统据/code>
文本据code class="literal">根据/code>
由Simulink引擎分配的唯一系统编号金宝app据/p>
是源块的名称。据/p>block_name.据/code>
代码生成器在生成的头文件的注释部分中记录模型的标签据code class="literal">模型据/code>
.h据/code>.例如,此注释显示在模型的标题文件中,据code class="literal">喷火据/code>,具有子系统据code class="literal">外据/code>和嵌套子系统据code class="literal">内据/code>:据/p>
/ *以下是此模型的系统层次结构。* *:foo * :foo /外部* :foo /外/内部* /据/pre>
此代码显示了生成的代码行上方的标记评论。源模型的根级别的增益块生成此代码:据/p>
/ *增益:'/ undeadgain1'* / rtb_undeadgain1_h = dead_gain_u.in1 * dead_gain_p.undeadgain1_gain;据/pre>
此代码显示了生成的代码行上方的标记评论。子系统内的增益块低于源模型的根级别的一个级别生成此代码:据/p>
/*增益:'/增益' */ dead_gain_B。temp0 * = (dead_gain_P.s1_Gain_Gain);据/pre>
生成的代码提供生成的代码和Simulink块,stateflow元素或MATLAB功能块之间的运营商之间的可跟踪性。金宝app据/p>
要通过使用运算符可追溯性验证生成的代码,请在生成的代码中单击操作员超链接以突出显示模型中的源块。据/p>
支持这些运营商。金宝app据/p>
操作员类型据/th> | 运营商据/th> |
---|---|
算术据/td> | +据/code>那据code class="literal remove_text_wrapping">-据/code>那据code class="literal">*据/code>那据code class="literal">/据/code>那据code class="literal">%据/code> |
+ =据/code>那据code class="literal remove_text_wrapping">- =据/code>那据code class="literal">* =据/code>那据code class="literal">/ =据/code>那据code class="literal">% =据/code> |
|
++据/code>那据code class="literal remove_text_wrapping">-据/code>(前缀和后缀)据/td>
| |
逻辑据/td> | !!据/code>那据code class="literal">&&据/code>那据code class="literal">||据/code> |
关系据/td> | ==.据/code>那据code class="literal">!=据/code>那据code class="literal">据据/code>那据code class="literal">>据/code>那据code class="literal"><=据/code>那据code class="literal">> =据/code> |
位据/td> | 〜据/code>那据code class="literal">|据/code>那据code class="literal">^据/code>那据code class="literal">&据/code>那据code class="literal">>>据/code>那据code class="literal"><<据/code> |
& =据/code>那据code class="literal">^ =据/code>那据code class="literal">| =据/code>那据code class="literal">< < =据/code>那据code class="literal">>> =据/code> |
|
有条件的据/td> | ?:据/code> |
不支持这些运营商。金宝app据/p>
操作员类型据/th> | 操作员示例据/th> |
---|---|
赋值运算符据/td> | =据/code> |
和指针运营商的成员据/td> | 数组下标:据code class="literal">a [b]据/code> |
和指针解密的地址:据code class="literal">和据/code>那据code class="literal">*一个据/code> | |
成员:据code class="literal">A.B.据/code>那据code class="literal">a - b >据/code> | |
其他运营商据/td> | 函数调用中的括号:据code class="literal">foo (a, b)据/code> |
逗号:据code class="literal">一种据/code>那据code class="literal">B.据/code> | |
范围决议:据code class="literal">b::据/code> | |
演员:据code class="literal">类型(a)据/code> | |
新的据/code>那据code class="literal">新[]据/code> |
|
删除据/code>那据code class="literal">删除[]据/code> |
这些限制适用于由Embedded Coder软件生成的报告:据/p>
在以下条件下,如果块名称包含以下内容,则对块禁用模型到代码的可跟踪性:据/p>
单引号(据code class="literal">'据/code>).据/p>
星号(据code class="literal">*据/code>)导致与模型中的其他名称相对于其他名称的名称伪装歧义。如果在块名称或块名称的末尾,则发生此名称 - 泛滥歧义,则星号前面或遵循斜杠(据code class="literal">/据/code>).据/p>
性格据code class="literal">y据/code>(据code class="literal">炭(255)据/code>).据/p>
如果块名称包含换行符(据code class="literal">\ n据/code>),块路径超链接的生成的代码注释将换行符与可读性的空间替换为换行符。据/p>
你不能跟踪表示这些子系统类型的块到生成的代码:据/p>
虚拟子系统据/p>
戴面具的子系统据/p>
由于优化而删除代码的非虚拟子系统据/p>
如果您不能在子系统级别跟踪子系统,那么您可以跟踪子系统中的单个块。据/p>
如果在与用于生成代码的平台不同的平台上打开模型,则无法使用模型到代码和代码到模型可追溯性。据/p>
内联可追溯不适用于生成的文件据code class="literal">shared_utils据/code>文件夹中。据/p>