AnsweredAssumed Answered

Redirecting STDIO to UART in BF506F

Question asked by Sifferman on Oct 4, 2011
Latest reply on Nov 8, 2011 by Sifferman



I'm using Visual DSP++ Release 5.0 Update 10, and the ADSP-BF506F EZ-Kit Lite rev 1.0.  I'm trying to get the example program working for redirecting the STDIO to the UART.  This example program (named "char_echo") was originally created for the BF527, but I'm porting it to the BF506F.  I've connected the EZ-Kit Lite to a serial port on my PC, and am running Hyperterminal at 57600 baud.


I have read the post at providing a workaround for a bug in the STDIO service, and have implemented the workaround by including the replacement adi_stdio_uart.c file into my build.


I've also changed the STDIO_UART_PHYSICAL_DEV_ID value at the top of file char_echo.c from 2U to 0U, so as to specify UART0 in the BF506F.


I've set the baud rate to 57600 using


uint16_t  nBaudRate = 57600;


adi_stdio_ControlDevice (hSTDIOUART,                            /* Device Handle     */
                         ADI_STDIO_COMMAND_SET_UART_BAUD_RATE,  /* Command Type      */
                         &nBaudRate                             /* Command Value     */


When I run the program, the following output appears on the console in Visual DSP++:


STDIO Test - Stdio Character Echo

Opening UART Device for STDIO ...

Redirecting streams to UART, see the next message on UART terminal


but nothing at all appears in Hyperterminal.  I would expect to see the output of this printf statement:


nDDSSResult = printf("\n\nType any charecter and it will be shown on the terminal\n\n");


(Note that I added the "nDDSSResult =" to the left side of this statement so as to capture the printf return code.)


If I set a breakpoint for the statement after this printf, the break eventually occurs after about a 20 second delay.  The return code from the printf statement is 59, which is the correct number of characters in its argument string, indicating that the printf function believed that the string was successfully printed.


I have confirmed that the connection between UART0 and Hyperterminal is functioning properly, because I can separately run the UARTecho example (provided for the BF506F) which works flawlessly.


At this point I'm at a standstill, having run out of ideas about what I might have overlooked.


Can someone help me out here?