主要内容

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

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

自 R2022b 起

当您从具有指向需求的链接的 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 命令提示符下,输入 matlabcoder

  2. 在“创建 MATLAB Coder 工程”对话框中,输入工程名称和文件夹。点击确定

  3. MATLAB Coder 窗格中,在输入部分,点击添加入口函数。在入口函数窗格中,输入您的 MATLAB 函数的名称。

  4. 通过从自动定义输入类型下拉菜单中选择一个选项,定义函数的输入类型。然后,点击运行。有关详细信息,请参阅定义输入类型 (MATLAB Coder)

  5. MATLAB Coder 选项卡中,点击编译类型并将其设置为以下选项之一:

    • 源代码

    • 静态库(.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)

主题