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.

EDMA3 PaRams allocation

I'm writing a codec based on UNIVERSAL model and using EDMA3 resource. So I'm working with the following packages: codec engine, RMAN, EDMA3 Settings, EDMA3CHAN. Since I know that my algorithm could use up to 512 PaRams entries for EDMA3, I ask if I have to explicitly allocate those entries in RAM, for example declaring a memTab item in MYALG_MYCOMPANY_alloc(const IALG_Params *algParams, IALG_Fxns **pf, IALG_MemRec memTab[]) function in my codec.

Thank you

Regards

  • Hi Francesco,

    No, you do not need to allocate the PaRam entries themselves, since the PaRam entries are a hardware resource managed by the EDMA3 resource manager. What the codec needs to do is to request the PaRam entries it wants in its IRES interface functions. In the latest versions of Framework Components, you should find a UNIVERSAL-based codec example under <framework_components_install_dir>\examples\ti\sdo\fc\ires\examples\codecs\universal_dma that shows the functions a codec needs to implement in order to request a specific number of PaRam entries. The EDMA3 resource manager will call into these functions to figure out which how many PaRam entries to allocate to the codec and also which ones, when the codec is instantiated.

    Other related wiki pages that may help:

    http://processors.wiki.ti.com/index.php/EDMA3 - description of the EDMA3 controller

    http://processors.wiki.ti.com/index.php/Framework_Components_RMAN_Users_Guide - RMAN user guide which also talks about the IRES interface

    Best regards,

    Vincent

  • In addition to the links that Vincent provides, you may also want to study an example provided in the FC product. 

    In most recent releases (3.23.*) you will find the example here:-

    framework_components_3_23_02_16/examples/archive/<device name>/ex01_universal_dma_copy_dsp.zip

    As the name suggests, this is a UNIVERSAL-based dummy codec that requests DMA resources using it's IRES interface functions and performs some data transfer using ECPY, an efficient DMA library provided by Framework Components.