从 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 命令提示符下,输入
matlabcoder
。在“创建 MATLAB Coder 工程”对话框中,输入工程名称和文件夹。点击确定。
在 MATLAB Coder 窗格中,在输入部分,点击添加入口函数。在入口函数窗格中,输入您的 MATLAB 函数的名称。
通过从自动定义输入类型下拉菜单中选择一个选项,定义函数的输入类型。然后,点击运行。有关详细信息,请参阅定义输入类型 (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)