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.

Video_copy example fails... DSPLink: GPP and DSP side version mismatch

Other Parts Discussed in Thread: TMS320DM6446

I have received code from a contractor to program a Davinci board (TMS320DM6446 DVEVM v2.0). I've followed the instructions on  SPRUE66F for setting up the development environment. I seem to get all issues worked out with paths. I am able to compile their code, (They modified the contents of the video_copy exercise to have it do more than copy), but when I upload it to the board, I experience problems. 

After following the SPRUE66F guide to setup the development environment I build the video_copy example. I copy to the device and it says "App->Application Started".

After a few moments I get another printout that says:

"Version mismatch between GPP and DSP-side GPP-side version [1.61.07] DSP-side version [1.61.03]"

Then some errors:

OP - Processor_create_d> Loading and starting DSP server 'video_copy.x64P'

FAILED, status-[0x800008030]

OP - Processor_delete_d> Closing remote transport FAILED,

status=0x8000080000

OP - Processor_delete_d> Stopping DSP FAILED, status=0x8000080000 CE - rserverOpen: can't start 'video_copy.x64P'; Processor_create failed

CEapp->ERROR: can't open engine video_copy

Exited video_thread_fxn processing loop

...

I'm wondering if these errors are familiar and if you know what the problem is? It looks like I need to update the dsplink inside of /home//dvsdk_2_00_00_22. I've tried to download the 1.61.07 version of dsplink and put it at /home//dvsdk_2_00_00_22/dsplink_1_61_07, but I am not sure how to build it. Or if this is even the right place (From the error, it looks like I want to change the DSP version). I'm still getting familiar with the system and haven't figured out where the GPP code is vs the DSP code.

 Do you have any instructions or links that may help to build the new dsplink? Is this even the reason why it fails? Is there a way to debug this issue? Did the contractors possibly not tell me that they updated dsplink?

Thanks

  • Hi Bryan,

    It appears that you have rebuilt the GPP side of the video_copy example after installing your updated DSPLink 1.61.07, but not rebuilt the DSP side (which is reported to still be 1.61.03) server video_copy.x64P.

    The error from Processor_create() of 0x80008030 is #defined to the code DSP_EVERSION, which is consistent with the "Version mismatch..." printout, so that is the issue you're experiencing.

    I'm not familiar with the DVSDKs, especially one as old as 2.00.00.22, but I can see that you're trying to run a Codec Engine (CE) example.  Somewhere under your DVSDK installation is your CE installation, and in there are the example apps and servers.  The CE build subsystem needs to be pointed to the updated DSPLink installation and then you need to rebuild both the Linux "video_copy" app and the "video_copy.x64P" server, and copy both of those to the directory from which you want to run (the video_copy.x64P server needs to be in the same directory as the Linux app "video_copy".)

    Please try to find the instructions within the DVSDK installation for rebuilding the CE examples.  This will involve pointing the CE build to your new DSPLink installation.  You must also rebuild the new DSPLink installation, and that installation should have instructions for rebuilding it (or perhaps CE has such instruction too).  If you need further help with that then please respond saying so, although my help will be with respect to the CE/DSPLink portion of the build process since I'm unfamiliar with the DVSDK..

    Regards,

    - Rob

     

  • Thanks Rob,

    This confirms what I thought was happening. The device that I'm loading this onto had the contractors compiled code. When I recompiled and uploaded my version of the video_copy it was compiled with dsplink 1.61.03 because that's what comes standard with the sdk. Now I know that I need to get dsplink 1.61.07 compiled so that my half of the code works with their half that is already loaded on the device.

    With regards to compiling DSPLink I am still unsure how to do this.

    What I've already done is:

    • I downloaded the 1.61.07 version from http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/link/link_1_60/index.html . 
    • I started trying to build it with http://processors.wiki.ti.com/index.php/Building_DSPLink but found that the 1.61.07 download was missing $(DSPLINK)/config/bin folder and therefore also the dsplinkcfg.pl perl script. 
    • I tried to copy the new version of dsplink over the installed version because on the download page it mentioned that it was a bug fix patch release over 1.61.03 and I didn't see any other instructions for building it. Doing this enabled me to finish the rest of the building dsplink instructions (perl dsplinkcfg.pl --platform=DAVINCI --nodsp=1 --dspcfg_0=DM6446GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc) , but when I got done it put all of the files in the OMAPL1XXGEM_0 folder. Which seems to contradict what I gave it on the command line.
    • I've went back and started editing the makefiles by hand, but feel like I'm going down a rabbit hole

    Do you have any tips?

    This is a very basic thing, but I'm unsure of what code is on GPP/DSP side. Is the server the DSP side and app the GPP side? What part of the code is running on DSP side, and what part is on GPP side? 

    Once I get DSPLink compiled I think that I should be able to complete the rest of the process. I have been able to successfully compile the code engine example  video_copy and server video_copy.x64P (I was just linking with 1.61.03 instead of 1.61.07) .

    Thanks

  • Bryan Bagnall said:
    • I tried to copy the new version of dsplink over the installed version because on the download page it mentioned that it was a bug fix patch release over 1.61.03 and I didn't see any other instructions for building it. Doing this enabled me to finish the rest of the building dsplink instructions (perl dsplinkcfg.pl --platform=DAVINCI --nodsp=1 --dspcfg_0=DM6446GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc) , but when I got done it put all of the files in the OMAPL1XXGEM_0 folder. Which seems to contradict what I gave it on the command line.
    • I've went back and started editing the makefiles by hand, but feel like I'm going down a rabbit hole

    DSPLink's configuration step (perl dsplinkcfg.pl ...) doesn't create any folder with the target name, I would suspect that that folder is a byproduct of the dvsdk.  The configuration step will produce some files in the dsplink/config/BUILD folder (CFG_system.c & CURRENTCFG.MK).  So the build step in the dvsdk that is producing that folder knows nothing about your dsplinkcfg.pl settings.

    Bryan Bagnall said:

    This is a very basic thing, but I'm unsure of what code is on GPP/DSP side. Is the server the DSP side and app the GPP side? What part of the code is running on DSP side, and what part is on GPP side? 

    In Codec Engine terminology, the "server" runs on the DSP and the app runs on the GPP.  The GPP app makes calls into, for example, VIDENC1_process() and Codec Engine causes the corresponding server-side VIDENC1_process() funciton to execute on the DSP, and pass results back to the GPP.

    Regards,

    - Rob

     

  • I wanted to update the thread to post my solution.

    I was able to compile DSP Link by downloading fresh copies of dsplink 1.61.03 and 1.61.07. I unzipped both of them. Then because 1.61.07 was a patch to 1.61.03 I copied the 1.61.07 on top of the fresh 1.61.03. I had to move the dsplink folder into a folder named packages for the rest of the process to work.

    Then:

    set DSPLINK="/home/user/dsplink_1_61_07/packages/dsplink"

    cd ${DSPLINK}/config/bin

    Call the configuration script;

    perl dsplinkcfg.pl --platform=DAVINCI --nodsp=1 --dspcfg_0=DM6446GEMSHMEM --dspos_0=DSPBIOS5XX --gppos=MVL5G --comps=ponslrmc

    Edited $DSPLINK/make/DspBios/c64xxp_5.xx_linux.mk as the printout from the configuration tells you

    Finally, since I didn't have a supported GNU Make version, I used the gmake provided in xdctools.

    /home/alf/dvsdk_2_00_00_22/xdctools_3_10_05_61/gmake -s 

    Everything looks like it compiled. Thanks everyone.