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.

Migrate from DM6437 DSP to DM8148 ARM+DSP

Hi,

I am trying to port all my DSP code (video analytic) to DM8148. Current DSP code (not xDM compatible) involves IMGLIB, VLIB and some self-optimized code using SIMD.

I've read for a while about many possibilities and still kinda confused. 

Which might be the best choice for this task? C6ezrun, or C6ezaccel, or c6xtest in omx, or  simply syslink?

My understanding is C6eztools are higher-level and therefore should be easier. Please help me to verify the following:

1) C6ezrun (esp. C6runApp) can pack everything into embedded DSP executable. But what about these libraries, such as VLIB? Can C6ezrun embed all the libraries?

2) C6ezAccel seems to a good choice for VLIB kernel calls. What about the rest DSP code (non-imglib, non-vlib)? Do I need to modify the rest to run on ARM?

3) C6xtest seems to provide a place to add DSP code near TIMM_OSAL_Memcpy() in omx_vlpb.c since I need to process the frame (ARM->DSP).

I must have some misunderstanding here and really appreciate any input on this issue. Thanks.

  • Based on my experience and understanding, syslink is the best option if you want to fully control DSP resources. The others as you said are high level functions. However, there is no C67x version for IMGLIB , VLIB, while DM8148 has a C674 DSP on it. Hope this can help you somewhat.

  • The IMGLIB and VLIB are fixed point libraries. The C674x DSP is superset to C64x/C64x+/C67x/C67x+ cores. That means it can run the code written for any of the cores as is. Therefore, the IMGLIB and VLIB libraries that are optimized for C64x+ are equally applicable to C674x. The C674x DSP in that sense is floating and fixed point.

    I agree with the recommendation to use SysLINK. It gives you max control on using the DSP resource