i got the problem with UART, while debugging my program using adsp21479 HP-USB emulator. when i am selecting UARTDLL the UART0THB and UART0RBR are also overwriting even though i am selecting the UARTDLAB to zero... how to resolve this problem..
Setting the UARTDLAB to ZERO enable access to UART0THR, UART0RBR, and UART0IER registers . Setting it to 1 enables access to UART0DLL and UART0DLH registers.
Correct method of writing to the Divisor Latch Registers is :
*pUART0LCR |= UARTDLAB;
*pUART0DLL = 0xdc;
*pUART0DLH = 0x02;
*pUART0LCR ^= UARTDLAB;
Once the UARTDLAB is set to ZERO, any updates to the UART0THR , UART0RBR will also be reflected on the UART0DLL register if you look through the VDSP++ UART control register window. But the original values of the Divisor Latch registers will not get modified.
If you want to read the value of the UART0DLL register , you have to again set the UARTDLAB bit :
dummy = *pUART0DLL;
Retrieving data ...