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: Attempting to build CSL EDMA Ping Pong example for EDMA

Part Number: AM5728


Tool/software:

I have been trying the build the CSL EDMA Ping Pong example that is provided with the PDK for the AM57, I'm hoping to deploy it to the on board DSP cores to test it. I followed the FAQ post for the C66 DSP eval board, FAQ Link, and made it most of the way, but I'm having a linker error that I'm unsure how to overcome.

Is there any guidance on how to fix my linker error? 

It looks like the issue has to do with one of the libraries that should have been built by step 3 of the pre-requisites in the FAQ that I linked above, so I am attempting the rebuild again, but would appreciate any other troubleshooting advice.

  • Hello Quinn,

    What SDK version are you using?

    The problem may be arising from following the FAQ that builds this for a different device all together, so the edma APIs might not be the same.

    -Josue

  • Hello Josue, 

    I am using Processor SDK 09.03.00.00 which has PDK version 1.0.21 for the AM57.

    I made the assumption that because the CSL example still exists in the PDK I downloaded for the AM57, it should still work. I did find an implementations for the missing function, at ...\pdk_am57xx_1_0_21\packages\ti\csl\src\ip\edma\V0\csl_edma3ChannelOpen.c but that one doesn't seem to work out of the box either.

  • Quin,

    Have you tried building processor_sdk_rtos_am57xx_09_03_00_00/pdk_am57xx_1_0_21/packages/ti/csl/example/edma/edma_test/dma_ping_pong_test.c?

    I believe you can make this from processor_sdk_rtos_am57xx_09_03_00_00/pdk_am57xx_1_0_21/packages/ti/build,

    Type the following for help:

    processor_sdk_rtos_am57xx_09_03_00_00/pdk_am57xx_1_0_21/packages/ti/build$ make -s help



    Note:  If this answer solves your question please mark post as "Answered"

    -Josue

  • Hi Josue,

    This did work, running "gmake BOARD=evmAM572x all -j4" I see the binary under "processor_sdk_rtos_am57xx_09_03_00_00\pdk_am57xx_1_0_21\packages\ti\binary\csl_edma_test_app\bin\idkAM572x\csl_edma_test_app_c66x_release.xe66".

    Would you be able to give me a method to upload this to the DSP core?

  • Quin,

    There are several methods that are described within the documentation, depends as to what you have available and what OS you plan on running on your system, boot mode, etc.

    See the following: https://software-dl.ti.com/processor-sdk-rtos/esd/AM57X/09_03_00_00/exports/docs/rtos/index_overview.html#processor-sdk-rtos-getting-started-guide

    -Josue

  • Hi Josue,

    I've spent quite a bit of time trying to find what I need from this document. All of the examples seem to use CCS to build/debug executables into the dsp cores. I attempted to create a CCS project for an existing exe to debug using my JTAG debugger, but while I can load simple 'Hello, World!' programs using it, attempting to use it for this .xe66 file is not working for me. Please let me know if I'm missing something obvious here.

    The other thing I've found is that on the AM57, there is a folder '/lib/firmware' that contains a .xe66 file for each of the 2 dsp cores. If I attempted to replace one of these programs with the edma example, would you be able to point me towards how I can snoop on the program running? Either with the JTAG debugger or something else?

    As for system configuration, I am currently just using the DSP cores as baremetal, and the a15 core is running Linux with u-boot as the bootloader. I'm currently booting off of the SD card slot.

  • Hello Quinn,

    I will try to answer the following questions raised by Vincenzo:

    Could you please tell me the following:

    1. Does replacing the xe66 files in the /lib/firmware folder change the program that is currently being run by the DSP cores?
    2. Based on the answer I got, does that mean I can connect with the JTAG debugger and then take the DSP out of reset and watch the program run? Is there any way I could get it to trigger a debug mode?
    3. Is there another way to upload the xe66 file into the DSP core using CCS or otherwise?

            


    1. Yes, when one is running Linux as the HLOS, one would replace the C66 core binary that is set to be loaded by the Linux IPC infrastructure.
      This is explained in the link shared above:

       
      So the customer has to replace the soft link to the binary they wish to use.
      Then, the following documentation follows up with instructions on reloading the DSP with the updated executable and running the example on the DSP.

      I believe this is how you would see the DSP trace output: 


      Which core belongs to which remoteproc* is also mentioned in this link:





    2.  &   3. 
      The procedure to load binaries like xe66 binaries is explained int other link above:

      See the following video for creating a target configuration and setting up the DSP core using the multicore GEL files:


      Then one would proceed to load the binary directly:


      Best,

      Josue


  • If you have follow up queries please submit a new question or related question.

    The original question for this thread was answered here I believe.

    -Josue