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.

AM5728: Using dsplib vs dsplib_cn

Part Number: AM5728

Hello,

I am working with the AM5728 SoC and am trying to use the DSP library dsplib for my application. I am referring to the following path for my query:
dsplib_install_dir/packages/ti/dsplib/src/DSP_iir_ss/C66

Under this path - there are two versions of the single sample IIR filtering function - the natural C implementation "DSP_iir_ss_cn" defined in DSP_iir_ss_cn.c and the optimized function "DSP_iir_ss" which uses intrinsics and is defined in DSP_iir_ss.c

When I use the optimized DSP_iir_ss function, it tends to corrupt some parts of the memory , thus affecting the code behavior. But when I replace the function with the DSP_iir_ss_cn function, the code works correctly. 

Questions - 

1. Is the DSP_iir_ss function not suitable for use with the AM5728 SoC? The DSP_iir_ss.c file mentions that it is licensed for use with TMS320 DSPs family. Does it mean it will not work for AM5728?

2. The execution time of both, the DSP_iir_ss  function and the DSP_iir_ss_cn function is similar. So what is the difference between using the c-based function and the optimized intrinsics-based function?

 

Thanks,

Dimple

  • Hello Dimple,

    Okay, found it. Will have to reassign.

    Best,

    -Josue

  • Hi Dimple,

    Our developers who would know more specifics about the C66 DSPLIB library are currently out of office - I should be able to provide an update by 2/16 about some of your questions.

    To answer some of your questions:

    1.  AM5728 has the TMS320C66x DSP core which should be compatible with the DSPLIB packaged in the SDK
    2.  I will need to follow up on this question with our developers but in general optimized code should perform better than the natural C code. Are you determining the execution time based off of cycle counts of each function run on an EVM? 

    Best,

    Asha

  • Hi Asha,

    I am checking the execution time on the scope by using toggling GPIOs before and after the function. 

    Thanks,

    Dimple

  • Hi Dimple,

    Thank you for clarifying that and for bringing up the issue with the DSPLIB function. 

    While you are correct in that the optimized function should perform better, unfortunately our development team will not be supporting any fixes or enhancements for C66x DSPLIB. 

    Based on your findings our current recommendation is to continue using the natural C implementation of this function. This should provide you the same functionality. 

    Best,

    Asha

  • Hi Asha,

    Thanks for your reply. 

    My query is - what could be the reason why the optimized function is causing memory corruption in AM5728? If the dsplib library supports this Soc, there should be no malfunctioning in the code by using this function.

    It would be great if you could clarify this.

    Thanks,

    Dimple

  • Hi Dimple,

    The AM5728 SoC supports dsplib. Unfortunately, I can't comment on why the code is causing memory corruption other than it would be a bug in the library that wasn't discovered until now. 

    Best,

    Asha