MDD 关键字 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文

MDD 文件中使用的关键字如下所述:

Begin

BEGIN 关键字表示以下任一对象开始:库、驱动程序、块、类别或接口。

END

END 关键字表示定义块结束。

PSF_VERSION

指定库的 PSF 版本。

DRC

指定 DRC 函数名称。这是全局 DRC 函数,由 Vitis IDE 配置工具或命令行工具来调用。当您输入所有参数,并且 MLD 或 MDD 写程序可验证使用给定参数可以生成有效的库或驱动程序时,就会调用一次该 DRC 函数。

option

指定紧接在关键字 option 之后的名称是一个工具选项。以下五个

选项受支持:COPYFILES、DEPENDS、SUPPORTED_PERIPHERALS 和

DRIVER_STATE。

SUPPORTED_OS_TYPES

指定受支持的操作系统类型列表。如不指定,则假定驱动程序为独立驱动程序。

COPYFILES

指定要为驱动程序复制的文件列表。如果指定的值为 ALL,那么该工具会复制所有驱动程序文件。

DEPENDS

指定目录列表,驱动程序依赖其中的目录来执行编译。

SUPPORTED_PERIPHERALS

指定驱动程序支持的外设列表。该选项的值可以指定为列表或者正则表达式。以下示例指示驱动程序支持 opb_jtag_uart 的所有版本和 opb_uartlte_v1_00_b 版本:

option supported_peripherals = (xps_uartlite_v1_0, xps_uart16550)

可使用正则表达式来指定外设和版本。正则表达式 (RE) 构造如下所述。

单字符 RE

  • 与自身匹配的任意字符,不得使用特殊字符(待定义)。
  • 反斜杠(后接任意特殊字符)即表示与文字字符本身相匹配。即,对特殊字符进行转义。
  • 特殊字符包括:+ * ? 。[ ] ^ $
  • 句点与除换行外的任意字符相匹配。例如,.umpty 与 Humpty 和 Dumpty 均匹配。
  • 一组以括号 ([]) 括起的字符表示一个单字符 RE,与该组合中的任意字符相匹配。例如,[akm] 与 a、k 或 m 匹配。可使用短划线来表示字符范围。例如,[a-z] 与任意小写字母相匹配。
但如果字符集的第一个字符为插入符号 (^),则表示 RE 与除该字符集内的字符之外的任意字符相匹配。它与空字符串不匹配。例如,[^akm] 与除 a、k 或 m 外的任意字符相匹配。如果插入符号并非字符集的首个字符,则会丢失其特殊意义。

多字符 RE

  • 单字符 RE 后接星号 (*) 表示与此 RE 出现 0(零)次或多次相匹配。因此,[a-z]* 与无小写字母或多个小写字符相匹配。
  • 单字符 RE 后接星号 (+) 表示与此 RE 出现 1 次或多次相匹配。因此,[a-z]+ 与 1 个小写字母或多个小写字符相匹配。
  • 问号 (?) 表示可选元素。在字符串中,前置 RE 可能不出现或者只能出现一次。例如,xy?z 匹配 xyz 或 xz。
  • RE 并置表示 RE 与字符串的对应并置相匹配。例如,[A-Z][a-z]* 与任意大写词相匹配。

以下示例与任意版本的 xps_uartlite、xps_uart16550 和 mdm 相匹配。

option supported_peripherals = (xps_uartlite_v[0-9]+_[1-9][0-9]_[a-z]
xps_uart16550 mdm);

DRIVER_STATE

指定驱动程序的状态。以下是可分配给 DRIVER_STATE 的值列表:

ACTIVE
表示这是处于活动状态的驱动程序。默认情况下,DRIVER_STATE 的值为 ACTIVE。
DEPRECATED
表示此驱动程序已不推荐使用,按计划将被移除。
OBSOLETE
该驱动程序已弃用,任何工具都无法识别。工具在已弃用的驱动程序上输出错误,应改为使用新的驱动程序。

REQUIRES_INTERFACE

指定必须由系统内的其他库或驱动程序提供的接口。

HELP

指定 help 文件,此文件用于描述库或驱动程序。

DEP

指定处理实体前需要满足的条件。例如,要进入 BLOCK,应满足 DEP 条件。支持如下格式:operand1 OP operand2。

BLOCK

指定满足 DEP 条件时,要进入的块。不支持嵌套块。

INTERFACE

指定由该库或驱动程序实现的接口,并描述该库或驱动程序所使用的接口函数和头文件。

BEGIN INTERFACE <interface name>
option DEP=<list of dependencies>;
PROPERTY HEADER=<name of header file where the function is declared>
;
FUNCTION NAME=<name of interface function>, VALUE=<function name
of library/driver implementation> ;
END INTERFACE

HEADER

指定头文件,此文件中包含的接口函数将予以定义。

FUNCTION

指定由接口实现的函数。这是名称/值对,其中名称即接口函数名称,值则是库或驱动程序实现的函数的名称。

PARAM

通常,对于大部分语句,MLD/MDD 文件都采用 name = value 格式。每个此类 NAME, VALUE 对之前都需要 PARAM 关键字。将值分配给参数的格式为 param name = <name>, default= value。PARAM 关键字用于指定在 MSS 文件中可以覆盖该参数。

DTGPARAM

DTGPARAM 关键字专用于特定于设备树的参数,这些参数均可配置。如果驱动程序需要在 Tool DTG 生成的 DTS 文件中转储任意参数,则会定义这些 DTGPARAM。

PROPERTY

指定使用 BEGIN 语句定义的实体的各种属性。

NAME

指定定义该驱动程序的实体的名称(例如,PARAM 或 PROPERTY)。搭配选项还可用于指定驱动程序的名称。

VERSION

指定驱动程序的版本。

DESC

描述定义该驱动程序的实体(例如:PARAM 或 PROPERTY)。

TYPE

指定定义该驱动程序的实体的类型(例如:PARAM)。支持以下类型:

  • bool:布尔值(true 或 false)

    int:整数

    string:引号 " " 中的字符串值。

    enum:该参数可取的值的列表。

    library:指定构建库或驱动程序所需的其他库。

    peripheral_instance:指定构建库或驱动程序所需的其他硬件驱动程序。可使用正则表达式来指定外设实例。请参阅 MLD 关键字 中的 SUPPORTED_PERIPHERALS 以获取有关正则表达式的更多详细信息。

DEFAULT

指定定义该库的实体的默认值。

GUI_PERMIT

指定用于修改值的权限。存在以下权限:

NONE
完全不允许修改值。
ADVANCED_USER
所有人都能修改值。默认情况下,Vitis IDE 不显示该值。该选项仅在 Vitis IDE 中作为高级选项显示。
ALL_USERS
所有人都能修改值。默认情况下,Vitis IDE 显示该值。这是适用于所有值的默认值。如果 GUI_PERMIT = NONE,那么该类别始终处于活动状态。