UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 16813

3.2 EDK LibGen - 「ERROR:MDT - system.mss:18 - Cannot find MDD for the driver」というエラー メッセージが表示される

説明

キーワード : MDD, LibGen, custom driver, MSS, XPS, EDK, カスタム, ドライバ

重要度 : 標準

概要 :
ユーザー IP 用のカスタム ドライバを含む 3.1 EDK デザインを実行すると、LibGen で次のようなエラー メッセージが表示されます。

Checking platform configuration ...
ERROR:MDT - system.mss:18 - Can not find MDD for the driver pwm 1.00.a
INFO:MDT - Check the following for possible causes of not finding MDD:
- If DRIVER_VER is specified in MSS, it must follow literal form X.YY.Z
- There is no driver with given name
- Driver exists but not that version
- Driver and version (directory) exist but no MDD is available

ソリューション

1

この問題を解決するには、MDD ファイル (_v2_1_0.mdd) をサポートする Tcl ファイル (_v2_1_0.tcl) を記述する必要があります。

1. EDK 3.1 レベル 1 MDD ファイルに次の文があるかどうかを確認します。

constant CONFIG_INCLUDE = <x>, VALUES = ( NUM_INSTANCES C_BASEADDR DEVICE_ID )
constant CONFIG_FILE = <y>, VALUES = ( DEVICE_ID C_BASEADDR )

2. 上記の文がある場合は、次の Tcl ファイルを記述します。<x> および <y> は、使用するドライバに適したファイル名に変更してください。

proc generate {drv_handle} {
set level [xget_value $drv_handle "PARAMETER" "level"]

if {$level == 1} {
xdefine_include_file $drv_handle "<x>.h" "<drivername>" "NUM_INSTANCES" "C_BASEADDR" "C_HIGHADDR" "DEVICE_ID"
xdefine_config_file $drv_handle "<y>.c" "<drivername>" "DEVICE_ID" "C_BASEADDR"
}
}

2

MDD の構文は、EDK 3.1 から EDK 3.2 で変更されています。

次は、EDK 3.1 と EDK 3.2 での MDD ファイルを 1 行ずつ比較したものです。 < > に囲まれた部分は、使用するドライバの要件に合わせて変更してください。
3.1:
BEGIN driver <drivername>
constant VERSION = 2.0.0 # uses SIF 2.0.0
parameter LEVEL = 0 # default level
END

3.2:
OPTION psf_version = 2.1.0

BEGIN driver <drivername>
PARAM name = level, desc = "Driver Level", type = int, default = 0, range = (0, 1); # Specify all levels
..
END driver
=================================================================

3.1:
BEGIN level <n>
...
END

3.2:
BEGIN BLOCK , dep = (level = <n>)
...
END BLOCK
=================================================================

3.1:
constant DEPENDS = (<x><y> ...)

3.2:
OPTION depends = (<x><y> ...) =================================================================

3.1:
constant COPYFILES = (<x><y> ...)

3.2:
OPTION copyfiles = = (<x><y> ...) =================================================================

3.1:
constant INBYTE = <x>, DEFINED_IN = <y>3.2:
BEGIN INTERFACE stdin
PROPERTY header = <y.h>;
FUNCTION name = inbyte, value = <x>;
END INTERFACE
=================================================================

3.1:
constant OUTBYTE = <x>, DEFINED_IN = <y>3.2:
BEGIN INTERFACE stdin
PROPERTY header = <y.h>;
FUNCTION name = outbyte, value = <x>;
END INTERFACE


INBYTE および OUTBYTE の両方が存在している場合 :

3.2:
BEGIN INTERFACE stdio
PROPERTY header = xuartlite_l.h;
FUNCTION name = inbyte, value =<x>;
FUNCTION name = outbyte, value = <y>;
END INTERFACE =================================================================

3.1:
parameter INT_HANDLER = <x>, INT_PORT = &lti>

3.2:
BEGIN ARRAY int_handler
PROPERTY desc = "Interrupt Handler Information";
PROPERTY size = 1, permit = none;
PARAM name = int_handler, default = <x>, desc = "Name of Interrupt Handler", type = string;
PARAM name = int_port, default = &lti>, desc = "Interrupt pin associated with the interrupt handler", permit = none;
END ARRAY


割り込みハンドラが複数存在する場合は、配列に次のような変更があります。
PROPERTY size = <n>, permit = none;
PROPERTY default = ((<x1>, <i1>), (<x2>,< i2>), ...)
PARAM name = int_handler, desc = "Name of Interrupt Handler", type = string;
PARAM name = int_port, desc = "Interrupt pin associated with the interrupt handler", permit = none; =================================================================
上記の変更はすべて、MDD ファイル (_v2_1_0.mdd) で作成されています。
AR# 16813
日付 04/28/2006
ステータス アーカイブ
種類 一般
このページをブックマークに追加