跟踪Stateflow生成代码中的元素
验证为状态流生成的代码®元素,你可以通过使用这些类型的导航来跟踪模型中的Stateflow元素到生成的代码:
代码到模型:通过单击注释中的超链接或超链接行号,将生成的代码追溯到模型,这将突出显示Simulink Editor中相应的模型元素。金宝app
模型到代码:通过右键单击模型元素并导航到生成的代码,在Simulink编辑器中跟踪模型元素到生金宝app成代码中的相应行。
这些示例演示了如何跟踪不同的statflow元素。
内联追溯Stateflow元素
内联可追溯性指的是生成代码中可用的行级可追溯性。您可以单击超链接的行号,以同时跟踪单个或多个Stateflow元素。
打开模型
old_sf_car
.将模型配置为ERT目标。
在代码生成>报告窗格中,选择这些模型配置参数:
创建代码生成报告(金宝app仿真软件编码器)
自动打开报告(金宝app仿真软件编码器)
Code-to-model(金宝app仿真软件编码器)
模型到代码的(金宝app仿真软件编码器)
选择代码生成>评论>状态流对象注释(金宝app仿真软件编码器)配置参数。此参数启用Stateflow元素的可跟踪性注释。
去代码生成>接口窗格。在软件环境部分中,选择连续时间.点击应用.在生成代码之前,您必须执行此步骤,因为此模型包含一个具有连续采样时间的块。
在C代码选项卡上,单击构建.
代码生成过程完成后,将出现代码生成报告。
在报告中,在左侧导航窗格中,单击
old_sf_car.c
超链接。要查看内联追溯性超链接,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。
单击行号上的超链接
190
.相应的元素被突出显示。
状态和转换的双向可跟踪性
打开模型
old_sf_car
.完成步骤2到步骤5状态流元素的内联跟踪.
新闻Ctrl + B的源代码和头文件
old_sf_car
模型,该模型包含shift_logic
图表。代码生成过程完成后,将出现代码生成报告。在报告中,单击
old_sf_car.c
超链接。
查看结果
要查看可追溯性注释,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。
单击
< S5 >: 2
这个可追溯性注释中的超链接:/*在` gear_state `中:`< S5 >: 2‘* /
相应的状态在图表中突出显示。
单击
< S5 >: 12
这个可追溯性注释中的超链接:/*转换:'< S5 >: 12‘* /
相应的转换在图表中突出显示。要从图表中的元素中删除高亮显示,请按Esc关键。
您还可以将模型中的元素跟踪到生成的代码行。在图表中,右键单击元素
gear_state
并选择C / c++代码>导航到C/ c++代码.中突出显示了该状态的代码
old_sf_car.c
.在图表中,右键单击带有条件的转换
[速度]
并选择C / c++代码>导航到C/ c++代码.中突出显示了该转换的代码
old_sf_car.c
.请注意
要获得模型中可跟踪的Stateflow元素的列表,请单击可跟踪性报告代码生成报告中的超链接。
状态转换表的双向可跟踪性
这个例子展示了如何在状态转换表中的元素和生成的C/ c++和HDL代码之间进行双向导航,以实现可跟踪性。
打开模型
sf_cdplayer_STT
.这个模型已经为可追溯性进行了配置。新闻Ctrl + B的源代码和头文件
sf_cdplayer_STT
模型。代码生成过程完成后,将出现代码生成报告。单击
sf_cdplayer_STT.c
报告中的超链接。要查看可追溯性注释,请滚动代码。显示的行号可能与代码生成报告中显示的行号不同。
单击
< S2 >: 58岁
这个可追溯性注释中的超链接:/*内部的'ON': '< S2 >: 58岁‘* /
对应状态
“上”
在状态转换表中高亮显示。可以从状态转换表跟踪状态或转换到生成的代码。右键单击状态
备用
并选择C / c++代码>导航到C/ c++代码.该州的入境代码
备用
在生成的代码中突出显示。
真值表块的双向可追溯性
打开模型
sf_climate_control
.完成步骤2到步骤5状态流元素的内联跟踪.
要建立模型,请按Ctrl + B.
在代码生成报告中,单击
sf_climate_control.c
超链接。要查看可追溯性注释,请滚动代码。这些行号可能与代码中显示的数字不同。
单击
< S1 >: 47秒
这个可追溯性注释中的超链接:/*操作'3':'< S1 >: 47秒‘* /
在“真值表编辑器”中,操作表的第3行突出显示。
您还可以将表中的条件、决策或操作跟踪到生成的代码行。例如,右键单击列中的一个单元格
D2
并选择C / c++代码>导航到C/ c++代码.用于该决定的代码显示在
sf_climate_control.c
.提示
选择C / c++代码>导航到C/ c++代码对于条件、决策或操作,右键单击与该真值表元素对应的行或列中的单元格。
图形函数的双向跟踪
完成步骤2到步骤5状态流元素的内联跟踪.
在“配置参数”对话框中,进入解算器窗格。在解算器的选择部分中,选择
固定步
在类型字段。点击应用.在生成代码之前,您必须执行此步骤,因为该模型不能使用变步长求解器。要建立模型,请按Ctrl + B.
在代码生成报告中,单击
sf_clutch_enabled_subsystems.c
超链接。要查看可追溯性注释,请滚动代码。这些行号可能与代码生成报告中显示的行号不同。
单击
< S1 >: 3
这个可追溯性注释中的超链接:/*图形函数'getSlipTorque': '< S1 >: 3‘* /
在图表中,图形函数
getSlipTorque
高亮显示。您可以将图表中的图形函数跟踪到生成的代码行。例如,右键单击图形函数
detectSlip
并选择C / c++代码>导航到C/ c++代码.中突出显示了该图形函数的代码
sf_clutch_enabled_subsystems.c
.
事件的代码到模型的可跟踪性
打开模型
sf_security
.完成步骤2到步骤5状态流元素的内联跟踪.
要建立模型,请按Ctrl + B.
在代码生成报告中,单击
sf_security.c
超链接。要查看此可追溯性注释,请滚动代码。这些数字可能与出现在代码生成报告中的数字不同。
单击
< S3 >: 56
这个可追溯性注释中的超链接:/*事件:'< S3 >: 56‘* /
在内容窗格中的事件
声音
高亮显示。
连接的模型到代码可追溯性
打开模型
sf_abs
.完成步骤2到步骤5状态流元素的内联跟踪.
在“配置参数”对话框中,进入解算器窗格。在解算器的选择部分中,选择
固定步
在类型字段。点击应用.在生成代码之前,您必须执行此步骤,因为该模型不能使用变步长求解器。要建立模型,请按Ctrl + B.
在代码生成报告中,打开
AbsoluteValue
图表。右键单击左侧连接点并选择C / c++代码>导航到C/ c++代码.
中突出显示了该结的第一个出站转换的代码
sf_abs.c
.
可追溯性注释的格式Stateflow元素
可跟踪性注释的格式取决于Stateflow元素类型。
状态
语法
/*' ': '< elementHyperlink >‘* /
例子
/*在` gear_state `中:`< S5 >: 2‘* /
此评论指的是在
国家的行为gear_state
,上面有超链接< S5 >: 2
.
过渡
语法
/*转换:'< elementHyperlink >‘* /
例子
/*转换:'< S5 >: 12‘* /
此注释引用了一个具有超链接的转换< S5 >: 12
.
MATLAB函数
语法
/* MATLAB函数'': '< elementHyperlink >‘* /
在一个MATLAB的内联代码®函数中,链接到函数各行的注释具有如下语法:
/ *”< elementHyperlink >‘* /
例子
/* MATLAB函数test_function: '< S50 >: 99‘* /
/ *”< S50 >: 99:20‘* /
第一个注释是指MATLAB函数命名test_function
,上面有超链接< S50 >: 99
.
第二个注释引用了图表中MATLAB函数的第20行。
真值表块
语法
/*真值表函数'': '< elementHyperlink >‘* /
在Truth Table块的内联代码中,条件、决策和操作的注释具有以下语法:
/*条件'#': '< elementHyperlink >' */ /* Decision 'D ': '< elementHyperlink >' */ /*动作' ': '< elementHyperlink >‘* /
< Num >
是出现在“真值表编辑器”中的行号或列号。
例子
/* true表函数'truth_table_default': '< S10 >: 100‘* /
/*条件'#1':'< S10 >: 100:8*/ /*决定'D1': '< S10 >: 100:16' / /*操作'1':'< S10 >: 100:31‘* /
第一个注释引用了一个名为truth_table_default
,上面有超链接< S10 >: 100
.
其他三个注释引用了Truth Table块的元素。Truth Table块中的每个条件、决策和操作都有一个惟一的超链接。
真值表函数
有关语法和示例,请参见真值表块.
图形函数
语法
/*图形函数'': '< elementHyperlink >‘* /
例子
/*图形函数'hello': '< S1 >: 123‘* /
此注释引用的图形函数名为你好
,上面有超链接< S1 >: 123
.
金宝app函数
语法
/* 金宝appSimulink函数'': '< elementHyperlink >‘* /
例子
/* 金宝appSimulink函数'simfcn': '< S4 >: 10‘* /
这个评论指的是一个Simulink金宝app®函数命名simfcn
,上面有超链接< S4 >: 10
.
事件
语法
/*事件:'< elementHyperlink >‘* /
例子
/*事件:'< S3 >: 33‘* /
此注释引用一个事件,该事件具有超链接< S3 >: 33
.
相关的话题
- 使用代码跟踪验证生成的代码
- 在生成的代码金宝app中跟踪Simulink模型元素
- 跟踪数据、事件和消息(Stateflow)