This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

66AK2G12: Configuring DSP access to the peripherals

Part Number: 66AK2G12

I'm getting started with the 66AK2G coming over from TM4C.

I have Linux running on the ARM processor and have also successfully written a user space application that accesses various peripherals like UART, SPI, and GPIO.

For now, I just want to get a basic application running on the C66x DSP core that prints text out a UART and/or the printf console. Eventually, I want to establish communication between the Linux application and the application running on the DSP core using one of the IPC mechanisms.

I imported into Code Composer on my Windows laptop an example DSP program named UART_BasicExample_evmK2G_c66xExampleProject that comes with the K2G RTOS Processor SDK. I simplified it a little so that it is just printing out some text once per second. Also print some text out the console using the System_print function and I had to tinker with the memory configuration to ensure it matched the reserved memory region found in the Linux device tree. I built this application and FTP-ed it over to the K2G ARM processor running Linux.

Using the mpmcl load command on the ARM side, the DSP application successfully runs. However, nothing is printed out any of the UARTs. According to this website:

software-dl.ti.com/.../Foundational_Components_IPC.html

should I be able to see the output of the System_printf statements here? /sys/kernel/debug/remoteproc/remoteproc0/trace0

I don't see the trace0 file in the remoteproc0 folder.

In the DSP application, if I use the System_printf function, does the output of this function automagically get transferred over to the ARM processor somehow?

Despite having read through the documentation found here:

software-dl.ti.com/.../Board_EVM_Abstration.html

I'm not sure how to get access to the peripherals from within the DSP application.

On the ARM side running Linux, I would like to use 2 of the UARTs, some SPIs, and a McASP. On the DSP side running TI-RTOS, I would like to use a UART and a McASP. What explains how to configure the 66AK2G to achieve this?

Thanks in advance for any help.

  • My problem turned out to be the script that I wrote to automate the mpmcl commands to load and run the DSP application was not properly running the mpmcl run dsp0 command. So the program was loaded but not running. Now that it runs, I see data coming out the UART when using the UART_init/UART_open/UART_write functions.

    The K2G Technical Reference Manual has a Table 2-1 which shows the view of memory for both the ARM and DSP processors. The ARM and DSP have mostly the same view of the peripherals so I suppose either one can access any one peripheral at any time. It appears that it is up to the application developer to ensure there are no conflicts between the peripherals used by the applications running on the DSP or ARM processors.