AR# 39064

12.3 EDK、UART Lite - 同じ UART Lite コードが 11.5 では機能するのに 12.x では機能しない

説明

11.5 の作業中のデザインがあります。UART Lite から 1 バイトで読み出しされ、次のように返されます。

Xuint8 c;

while (1)
{
c = XUartLite_RecvByte (XPAR_UARTLITE_0_BASEADDR);
XUartLite_SendByte(XPAR_UARTLITE_0_BASEADDR, c);
}


このデザインを 12.3 にアップグレードした後、UART Lite が機能しなくなります。ターミナルでデータを入力した後、何も出力されません。
12.3 では何か問題があるのでしょうか。

ソリューション

12.x から LibGen で同じドライバに関するペリフェラルがアルファベット順に並べ替えられます。UART Llite ドライバの場合、MDM ペリフェラルは常に XPS_UARTLite ペリフェラルの前に配置されます。以前のバージョンでは LibGen でペリフェラルが並び替えのない状態で処理されていました。

上記のコードでは、定義 XPAR_UARTLITE_0_BASEADDR が LibGen で生成された xparameters.h ファイルに含まれる UART Lite デバイス 0 のベース アドレスとして定義されています。MDM がデザインで使用される場合は、12.x でデバイス 0 となります。デバイス 0 は以前のバージョンで XPS_UARTLite ペリフェラルのベース アドレスとして定義されていました。この問題を解決するには、コードで使用しアクセスする XPS_UARTLite デバイスに合った定義を使用してください。
AR# 39064
日付 11/19/2010
ステータス アクティブ
種類 既知の問題
ツール
IP