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.

Getting Started with ARM+DSP on TI816x

Other Parts Discussed in Thread: SYSBIOSHi Folks,

I have been trying to get my head wrapped around how to approach developing a system in which we are using both the ARM and the DSP in the 816x. So far, it is not really going that well.

In the system we are building, the ARM needs to boot Linux, then boot our DSP application. The DSP app will run for as long as the system is running, and will need to communicate bidirectionally with code running on the ARM. It does not fit into any of the higher level software infrastructures (like Codec engine or C6Accel/C6Run).

It appears that the sys/link framework is the right place to be starting, but honestly, I am having a very difficult time determining where to start. I am also concerned that it is changing quickly enough that code that I write today will not work on the next release without significant rework.

Assuming the following:

  • I have the DDR2 EVM
  • I have the ti-ezsdk_dm816x-evm_5_01_00_77
  • I have a CCS license
  • I have an XDS560v2 emulator
  • I have no real experience with TI tools or ways of doing things (no DSP/BIOS or DSP/LINK experience, no CCS experience)
  • I have plenty of experience with Linux and DSP programming in general

How do I go about starting to develop an application for the DSP that I can launch from an ARM based program that will not interfere with the other sys/link clients (e.g. the video and graphics subsystems)?

Do I do this in the ezsdk environment?

Do I do it in CCS?

How do I debug the DSP code?

If in ezsdk, do I need to put my code within the syslink directory?

If not, what do I need to copy out of the syslink directory to create a build environment for my application?

If there is an existing document within the Wiki or the ezsdk that details all of this, please let me know and I will work through it. I have been searching, but so far I have not found it. The syslink install guide may very well include all of this information, but I am having a hard time seeing the forest for the trees. It seems like this document is really written more for experts who are also TI internal folks (for example, many of the links are to documents that are TI internal, and are not accessible by customers -- on another note, the TI folks really should check for this stuff before sending out releases; it is completely unclear if access to these files is required or not).

If no such document exists, can someone please post a short "step-by-step" list of how to create a project to build a simple DSP application that can be launched by a corresponding linux app, ideally that is as self-contained as possible.

Thanks in advance!

BR,

B.J.

  • BJ,

    I wholehearedly agree with and support your entire post strongly. I can't believe we're the only ones that as you say:

    • I have the DDR2 EVM
    • I have the ti-ezsdk_dm816x-evm_5_01_00_77
    • I have a CCS license
    • I have an XDS560v2 emulator
    • I have no real experience with TI tools or ways of doing things (no DSP/BIOS or DSP/LINK experience, no CCS experience)
    • I have plenty of experience with Linux and DSP programming in general

    I crossed out the DSP bit as I don't have experience of that. I have a bit of experience of DSP/BIOS/LINK.

    I wish there was some CCS example project for the TI816x that would simply demonstrate an ARM side application communicating with a DSP application, perhaps showing each of the MessageQ, SysNotify etc stuff that seems to be in the Syslink folder of the EZSDK and printing out the results of the DSP-ARM communication as it happens.

    It took me a while to work out if I should be digging around the Syslink, IPC, Sysbios, OSAL or Xdais folders in the first place and I'm still not sure if I should be using the Syslink or Sysbios examples.... :-S

    I personally am starting off with this example: http://processors.wiki.ti.com/images/2/27/CCSv4Tutorial-HelloWorld.pdf and seeing if I can get it running on the ARM and then seeing if it works on the DSP too. Who knows. It's going to take a lot of faffing working out which of the sample CCS projects are for DSP only and which are for ARM only and then I have to work out at which point to load the DSP program in order to debug it.

    I feel like a detective piecing together all the evidence bit by bit and slowly a picture emerges of how to actually create and debug a DSP application.

    Ideally I just want a tutorial to show me how to do a basic example and then I can build on that myself but there doesn't seem to be one.

    Ralph

     

  • I haven't had a chance to do this using the c6a816x yet, but on the DaVinci DM6446, dsplink has samples that demonstrate an ARM app communicating with a DSP app and vice versa.  I'm pretty sure the same thing exists for the Integra but I've not tried it yet.

    Regards,

    Brian