AR# 39064


12.3 EDK, UART Lite - The same UART Lite code works in 11.5, but not in 12.x


I have a working design from 11.5. It reads in a byte from UART Lite and sends it back, as follows:

Xuint8 c;

while (1)
c = XUartLite_RecvByte (XPAR_UARTLITE_0_BASEADDR);

After I upgrade my design to 12.3, the UART Lite does not work any more. After I enter a data in the terminal, there is nothing send out.

What might be wrong in 12.3?


Starting from 12.x, Libgen sorts out the peripherals in alphabetical order regarding the same driver. In the case of UART Lite driver, MDM peripheral will always be ahead of XPS_UARTLite peripheral. In previous versions, LibGen handles the peripherals in an unsorted order.

In the above code, the Canonical definition XPAR_UARTLITE_0_BASEADDR is defined as the base address of the UART Lite device 0 in xparameters.h file, which is generated by LibGen. If a MDM is used in the design, it will be device 0 now in 12.x. The device 0 used to be defined as the base address of XPS_UARTLite peripheral in previous versions. To solve the issue, find the proper definitions for the XPS_UARTLite device that you are going to access and use them in your code.
AR# 39064
日期 11/19/2010
状态 Active
Type 已知问题
People Also Viewed