Hi,I'm trying to insert Uart in this example. I added the libraries and initialized the UART with: platform_uart_init(); platform_uart_set_baudrate(115200); (void) platform_write_configure(PLATFORM_WRITE_UART );But, every time I try to print something in Uart the program freeze.How can I add this functionality in this code?thanks,Marcus
Hi Marcus,
Are you running the example on the C6670 EVM?
If yes, please try running C6670 EVM platform test, which can be found at:
<CCS_INSTALL>\pdk_C6670_1_0_0_17\packages\ti\platform\evmc6670l\platform_test
This platform test project, includes code which tests the UART connection on the C6670 EVM. For more details on how to run the test, please refer to the README file included in the project folder.
Once you have this UART platform test working on the EVM, you can go ahead and port the UART part of this test project to the FFTC_Multicore_Example.
Thanks,
Karthik
-------------------------------------------------------------------------------------------------------------------------------
If you need more help, please reply back. If this answers the question, please click Verify Answer , below.
Hi Karthik,I'm trying this, but the "FFTC example project" freeze after the UART print, when I port the code to this example project.I'm trying to print something in the UART, but after this print the evm stops and I don't know why.Have you any idea?thanks,
Please, can you send me your modified FFTC example project or the modified source files (compared to the original FFTC example)? I can look at your modifications and will let you know, if I see any issues.
Hi Karthik,
I sent the modified FFT example projetc with Uart test.
thanks,
Marcus
It would be very helpful, if you describe in detail your application use-case scenario for integrating UART with the FFTC example.
After reviewing the modified multicore.c file, the following are my comments and suggestions:
1) In main(), you create two run-time tasks with the same task parameters. One task is for the UART and the other task is for the FFTC example. If you just want to check if UART works along with FFTC example, then do not create a separate task for UART, just perform UART initialization and send characters to the serial console in the main function itself, before performing the BIOS start.
2) If you want to design a generic UART BIOS driver, the UART task should block on a SW semaphore (which shares UART HW resource between tasks on the same core) or a HW semaphore (which shares UART HW resource between tasks on different cores).
For any questions related to DSP BIOS, please post on the BIOS forum. For more details about DSP BIOS, please refer to the BIOS users guide at:
<CCS_INSTALL>\bios_6_32_05_54\docs\Bios_User_Guide.pdf
I hope this helps.
I put in main() the UART initialization, but I had the same problem.
The program doesn't work after the serial print. I put this in the main function:
platform_uart_init();
platform_uart_set_baudrate(115200);
platform_write("Serial test \n");
Have you any idea about this problem?
Apart from the 3 lines of UART initialization code mentioned above, also include the rest of code available from platform test, which is used for writing and reading data from UART. This will solve your issue.
To provide better support, please let me know your use case scenario for integrating the UART with FFTC example project.
Karthik.
Karthik,
I am seeing the same kind of problem on my C6678/EVM board. I am trying to debug the Hello World PCIE example program, but it never returns when I try to step over a write to the uart. Apparently it is looping forever. When I hit pause, the stack shows
CSL_chipReadTSCL() at csl_chipAux.h:421 0x80000014 platform_delaycycles(unsigned int)() at platform.c:719 0x80000E14 UartWriteData(unsigned char)() at evmc66x_uart.c:226 0x800087FC platform_uart_write(unsigned char)() at platform.c:640 0x80000CE0 write_uart(char *)() at pcieboot_helloworld.c:116 0x80008E8C main() at pcieboot_helloworld.c:165 0x80008FA8 _c_int00() 0x8000CCC8 (the entry point was reached)
(I added about 12 lines to the write_magic_number() function, so the line numbers won't exactly match the original file. None of the functions in that stack were modified by me, however)
When I run this same code, outside of the debugger, using the boot_loader example, then it writes to the UART correctly.
Can a program that writes to the UART be debugged?
Sorry, wrong forum. I'll repost on my forum.