从 MATLAB 代码生成的代码的需求可追溯性
当您从具有指向需求的链接的 MATLAB® 代码生成 C/C++ 代码时,您可以在生成的代码中包含包含有关需求和链接的 MATLAB 代码范围的信息的注释。当您从代码生成报告查看生成的代码时,注释是超链接,您可以使用它来导航到需求和链接的MATLAB代码范围。
注意
要在生成的代码中包含需求注释,您必须具有 MATLAB Coder™ 和 Embedded Coder®。
在生成的代码中包含需求注释
如果您的 MATLAB 代码包含指向需求的链接,您可以在使用 MATLAB Coder 或 codegen
(MATLAB Coder) 函数生成代码时包含需求注释。有关更多信息,请参阅 使用 MATLAB Coder 生成 C 代码 (MATLAB Coder) 和 通过命令行生成 C 代码 (MATLAB Coder)。
使用 MATLAB Coder 添加需求注释
要使用 MATLAB Coder (MATLAB Coder) 在生成的代码中包含需求注释:
打开 MATLAB Coder。在 App 选项卡中的代码生成下,点击 MATLAB Coder。或者,在 MATLAB 命令提示符下输入
coder
(MATLAB Coder)。在为函数生成代码字段中,输入您的 MATLAB 函数的名称,然后点击下一步。有关更多信息,请参阅 打开 MATLAB Coder 并选择源文件 (MATLAB Coder)。
定义函数的输入类型,然后点击下一步。有关更多信息,请参阅 定义输入类型 (MATLAB Coder)。
点击检查问题检查运行时问题。如果没有检测到问题,点击下一步。有关更多信息,请参阅 检查运行时问题 (MATLAB Coder)。
在编译类型菜单中,选择以下选项之一:
源代码
静态库( lib)
动态库( dll)
可执行文件 (.exe)
有关更多信息,请参阅 生成 C 代码 (MATLAB Coder)。
注意
您不能在生成的 MEX 函数中包含需求注释。
要在生成的代码中包含需求注释,点击更多设置。在左侧窗格中,点击代码外观。在注释下,确保选择了包括注释,然后选择需求汇总作为注释。
要生成代码生成报告,请在左侧窗格中点击“调试”。在代码生成报告下,确保选择了始终创建报告。
配置完任何附加配置参数后,点击关闭关闭代码配置参数菜单,然后点击生成生成代码。有关更多信息,请参阅 生成 C 代码 (MATLAB Coder)。
通过编程添加需求注释
假设您想要使用 codegen
(MATLAB Coder) 函数生成代码并包含名为 myAdd
的 MATLAB 函数的需求注释。
function y = myAdd(u,v) %#codegen y = u + v; end
要在生成的代码中包含需求注释:
使用
coder.config
(MATLAB Coder) 并将ecoder
标志设置为true
来创建coder.EmbeddedCodeConfig
(MATLAB Coder) 对象。您可以使用 LIB、DLL 或 EXE 构建类型。cfg = coder.config("lib","ecoder",true);
将
coder.EmbeddedCodeConfig
对象的ReqsInCode (MATLAB Coder)
属性设置为true
。cfg.ReqsInCode = true;
通过修改
coder.EmbeddedCodeConfig
对象的属性来设置任何附加代码配置参数。有关更多信息,请参阅 通过命令行生成 C 代码 (MATLAB Coder)。使用
coder.typeof
(MATLAB Coder) 定义函数输入数据类型和大小。有关更多信息,请参阅 定义输入类型 (MATLAB Coder)。utype = coder.typeof(1); vtype = coder.typeof(1);
使用
codegen
(MATLAB Coder) 生成代码。使用这些标志作为输入参量:-config
指定代码生成期间要使用的代码配置对象-args
指定函数输入类型和大小-launchreport
生成并启动代码生成报告
codegen myAdd -config cfg -args {utype,vtype} -launchreport
查看生成的代码中的注释
您可以通过打开生成的入口点 C 文件来查看需求注释,该文件与 MATLAB 入口点函数同名。每个注释对应一个需求链接。该注释包括:
MATLAB 函数的完整文件路径
代表链接代码范围的 ID
与需求相关的 MATLAB 代码行
需求摘要
如果多个需求链接到相同的代码范围,则注释会在链接代码范围的信息下列出需求摘要作为编号列表。
例如,假设您在从 myAdd
函数生成代码时包含需求注释。生成的 myAdd.c
入口点文件包含与需求链接相对应的注释:
double myAdd(double u, double v) { /* Requirements for MATLAB Code: '<C:\Users\jdoe\MATLAB\myAdd.m>|738609.742.1' * Line 1: * 1. Input u * 2. Input v * 3. Output y */ /* Requirements for MATLAB Code: '<C:\Users\jdoe\MATLAB\myAdd.m>|738609.742.3' * Line 2: * 1. Add u and v */ return u + v; }
从代码生成报告导航到需求
MATLAB Coder 代码生成报告允许您查看生成的 C/C++ 代码并将生成的代码追溯到 MATLAB 源代码。有关更多信息,请参阅 Code Generation Reports (MATLAB Coder)。
当您在 MATLAB Coder 代码生成报告中查看生成的入口点 C 文件时,需求注释是超链接,您可以使用它来导航到需求编辑器中的链接需求和 MATLAB 编辑器中的链接 MATLAB 代码范围。
或者,您可以使用追溯代码按钮在生成的代码和 MATLAB 源代码之间进行跟踪,而无需离开代码生成报告。有关更多信息,请参阅 Interactively Trace Between MATLAB Code and Generated C/C++ Code (Embedded Coder)。
另请参阅
codegen
(MATLAB Coder) | coder.EmbeddedCodeConfig
(MATLAB Coder)