Main Content

本页采用了机器翻译。点击此处可查看英文原文。

MATLAB 代码生成的代码的需求可追溯性

当您从具有指向需求的链接的 MATLAB® 代码生成 C/C++ 代码时,您可以在生成的代码中包含包含有关需求和链接的 MATLAB 代码范围的信息的注释。当您从代码生成报告查看生成的代码时,注释是超链接,您可以使用它来导航到需求和链接的MATLAB代码范围。

注意

要在生成的代码中包含需求注释,您必须具有 MATLAB Coder™ 和 Embedded Coder®

在生成的代码中包含需求注释

如果您的 MATLAB 代码包含指向需求的链接,您可以在使用 MATLAB Codercodegen (MATLAB Coder) 函数生成代码时包含需求注释。有关更多信息,请参阅 使用 MATLAB Coder 生成 C 代码 (MATLAB Coder)通过命令行生成 C 代码 (MATLAB Coder)

使用 MATLAB Coder 添加需求注释

要使用 MATLAB Coder (MATLAB Coder) 在生成的代码中包含需求注释:

  1. 打开 MATLAB Coder。在 App 选项卡中的代码生成下,点击 MATLAB Coder。或者,在 MATLAB 命令提示符下输入 coder (MATLAB Coder)

  2. 为函数生成代码字段中,输入您的 MATLAB 函数的名称,然后点击下一步。有关更多信息,请参阅 打开 MATLAB Coder 并选择源文件 (MATLAB Coder)

  3. 定义函数的输入类型,然后点击下一步。有关更多信息,请参阅 定义输入类型 (MATLAB Coder)

  4. 点击检查问题检查运行时问题。如果没有检测到问题,点击下一步。有关更多信息,请参阅 检查运行时问题 (MATLAB Coder)

  5. 编译类型菜单中,选择以下选项之一:

    • 源代码

    • 静态库( lib)

    • 动态库( dll)

    • 可执行文件 (.exe)

    有关更多信息,请参阅 生成 C 代码 (MATLAB Coder)

    注意

    您不能在生成的 MEX 函数中包含需求注释。

  6. 要在生成的代码中包含需求注释,点击更多设置。在左侧窗格中,点击代码外观。在注释下,确保选择了包括注释,然后选择需求汇总作为注释

    MATLAB Coder app with the option to include requirement comments selected.

  7. 要生成代码生成报告,请在左侧窗格中点击“调试”。在代码生成报告下,确保选择了始终创建报告

  8. 配置完任何附加配置参数后,点击关闭关闭代码配置参数菜单,然后点击生成生成代码。有关更多信息,请参阅 生成 C 代码 (MATLAB Coder)

通过编程添加需求注释

假设您想要使用 codegen (MATLAB Coder) 函数生成代码并包含名为 myAdd 的 MATLAB 函数的需求注释。

function y = myAdd(u,v) %#codegen
y = u + v;
end
假设该函数与这些需求有联系:

Requirements for the myAdd function, including requirements for the inputs, outputs, and function behavior.

要在生成的代码中包含需求注释:

  1. 使用 coder.config (MATLAB Coder) 并将 ecoder 标志设置为 true 来创建 coder.EmbeddedCodeConfig (MATLAB Coder) 对象。您可以使用 LIB、DLL 或 EXE 构建类型。

    cfg = coder.config("lib","ecoder",true);

  2. coder.EmbeddedCodeConfig 对象的 ReqsInCode (MATLAB Coder)属性设置为 true

    cfg.ReqsInCode = true;

  3. 通过修改 coder.EmbeddedCodeConfig 对象的属性来设置任何附加代码配置参数。有关更多信息,请参阅 通过命令行生成 C 代码 (MATLAB Coder)

  4. 使用 coder.typeof (MATLAB Coder) 定义函数输入数据类型和大小。有关更多信息,请参阅 定义输入类型 (MATLAB Coder)

    utype = coder.typeof(1);
    vtype = coder.typeof(1);

  5. 使用 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 代码范围。

myAdd.c in the code generation report, which includes 2 requirement comments and 4 linked requirement summaries.

或者,您可以使用追溯代码按钮在生成的代码和 MATLAB 源代码之间进行跟踪,而无需离开代码生成报告。有关更多信息,请参阅 Interactively Trace Between MATLAB Code and Generated C/C++ Code (Embedded Coder)

另请参阅

(MATLAB Coder) | (MATLAB Coder)

相关主题