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.

RTSC template from EZSDK for XGCONF?

I'm in the process of learning how to program Codec Engine and iUniversal, but one thing that I still have not figured out is how XGCONF gets the information about the EVM to generate a template for a .cfg file.  I'm using the c6a816x EVM and at present I have two disparate tools sets, one in Linux for the ARM and a second using CCS4.2.3 in Windows for the DSP.  At the moment, one doesn't know anything of the other.  This is obviously unworkable.  For example, in processing an image, I would like to use ACPY3 to transfer rows and columns  from main memory to L1 memory.  What from EZSDK may be imported to CCS to indicate the board's, and in particular the C674's, memory map, producing a template for the .cfg file?

Lee Holeva

 

  • Lee,
    I am not sure if I understood your question correctly, but I'll describe from where CCS gets the memory map that's then used by the linker to link an application. If that's not what you are asking about, please let me know.

    When you build for DSP in CCS, you specify a platform in Build Properties->CCS Build->RTSC. The platform defines the memory map based on the RTSC target you are using. Since you are building for DSP, the internal memory for C674 is combined with the board memory and the whole memory map is passed to the linker. All that happens automatically based on the selected RTSC target and the platform. You have a chance to impact that process in different ways, and if that's what you are trying to do, please let me know the details, so I can tell you where to make changes.

    For this particular case, the information about the memory is contained in internal XDCtools files. You are not supposed to change these files, but if you want to check what's in them, see the following two files in the XDCtools installation:
    - packages/ti/catalog/c6000/ITI8168.xdc (internal memory)
    - packages/ti/platforms/evmDM8168/Platform.xdc (external memory)

    Depending on which platform you are using, you might be getting the memory map from these files or some other similar files.

    There is a longer description of memory management in XDCtools here: http://rtsc.eclipse.org/docs-tip/Memory_Management

  • Lee,

    If you are using the EZSDK setup for C6a816x, please look at the C6Accel tool included in the SDK that shows you how an ARM+DSP application can be created using a Codec engine and iUniversal. You can add your custom algorithm to C6Accel DSP algortihm and rebuild the package to call it over the ARM.

    Regards,

    Rahul

  • I found the two files under XDCTOOLS, included with CCS4.2.3, but I'm using a makefile project generated by Gencodecpkg and under Build Properties there is no menu CCS Build-->RTSC.  I asked the question as to how CCS would know what the memory segments would be as I noticed the lack of a .cfg file that would define them.

    Lee Holeva

     

  • Precisely where is the iUniversal example that you speak of?  I looked in C6Accel and I found examples showing how to use the c6accel API, but not iUniversal.  I have been looking at the examples given in Codec Engine, particularly the universal copy.

     

    Lee Holeva

     

  • Hi Lee,

    Lee Holeva said:
    I have been looking at the examples given in Codec Engine, particularly the universal copy.

    Can you also have a look at $EZSDK/codec-engine_xx_xx_xx_xx/examples/ti/sdo/ce/examples? There should be an example application for universal copy. Please follow the documentation from Codec Engine to build and run this particular example.

    --Sid

  • Lee,

    The source code for the iUniversal DSP algorithm can be found under $(C6ACCEL_INSTALL_DIR)/dsp/alg/src/C6Accel.c. The ARM side APIs for C6Accel are defined under $(C6ACCEL_INSTALL_DIR)/soc/c6accelw/c6accelw.c. The ARM side APIs build on top of CE iUniversal APIs by performing ARM side cache management and setting the parameters for the APIs. Documentation to add functions to C6Accel algorithm can be found here.

    http://processors.wiki.ti.com/index.php/C6Accel_Advanced_Users_Guide#Adding_a_new_kernel.2Flibrary_to_C6Accel

    Regards,

    Rahul