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.

Linux/AM5728: AM5728 EVM Mode lunch DSP .out file

Part Number: AM5728

Tool/software: Linux

Hi.

Please tell me.

I try to DPS launch at linux os on AM5728 EVM BOARD.

I referred to below web sites.

<software-dl.ti.com/.../Foundational_Components_IPC.html>

<https://training.ti.com/am572x-build-run-ipc-examples>

I was able to start server_dsp1.xe66 demo.

But  i can't understand how to launch custom .out file that builded by ccs.

I tried it like the following, is it right?

1, change the file name  ******.out ->******.xe66.

2, linked the dra7-dsp1-fw.xe66.

3,run app_host

Do I need modify app_hot?

thank you.

  • Hi, Takai,

    For your questions, 1 - yes. 2 - yes.

    3- In TI PSDK release, there are different IPC examples. For each example, there are prebuild dsp/ipu binaries, and linux ARM host executable (app_host). To run examples, users need to do (2) to link to the dsp/ipu images under each example, and run app_host of that example. Correct command will be "/usr/bin/ipc/examples/exXX_yyyyyy/app_host DSP1 (or DSP2, IPU1, etc) to specify which core it communicates to. If this .out file is your custom code, you should have a Linux ARM application communicating to it. This Linux ARM application will be the one you run.

    You can also take a look at the IPC Quick Start Guide in IPC User Guide if you haven't. It describes how to run TI IPC example images.
    If this post answers your questions, please click "Resolved". For new issues, please submit new threads.

    Rex
  • Hi, Rex.

    Tank you for replay.

    There are 2 new questions after read your answer.

    1.I understood it necessary for modify  app_host.

    But ,I am Linux beginner.

    Do you have any reference manual for modify app_host ?

    my ****.out file is stand alone application.

    Message between linux host and DPS is not necessary.

    2. Is it necessary to modify the DSP code for IPC launch?

    thanks.

  • Hi, Takai,

    If your application doesn't require communicating with ARM/Linux, then you don't need any application on the ARM/Linux side. You just need to include the resource table in your DSP application and have remoteproc to download it to DSP during kernel boot up.
    The resource table info is in processors.wiki.ti.com/.../IPC_Resource_customTable

    You don't need any of the IPC stuffs. The IPC examples don't apply to you. You just develop your DSP code as usual, include resource table, and follow the instruction on how remoteproc downloading the file to DSP. You should be good.

    Rex
  • Hi Rex

    please tell me.

    what is the remoteproc?

    How do I use remoteproc?

    I read below web site.

    <http://processors.wiki.ti.com/index.php?oldid=234223&title=PRU-ICSS_Remoteproc_and_RPMsg&keyMat>

    step1 

    If I do, should I do as follows?

    //DSP1//

    echo 'a.out' > /sys/class/remoteproc/remoteproc1/firmware

    //DSP2//

    echo 'b.out' > /sys/class/remoteproc/remoteproc2/firmware 

    //DSP1 ans DSP2 start//
    echo 'start' > /sys/class/remoteproc/remoteproc1/state 
    echo 'start' > /sys/class/remoteproc/remoteproc2/state 

    Takai

     

  • Hi, Taikai,

    When I said IPC is not needed in your DSP application, I meant the IPC mechanism is not needed. You don't need to make those IPC API calls to set it up. Though IPC mechanism is not needed, but the way how DSP gets downloaded are the same and described in IPC User Guide. Please refer to Chapter 3.7.3 IPC for AM57xx. Take a look at the section "Running the bundled IPC examples" to see how a DSP binary gets reloaded to the DSP.

    The RPMSG for PRU_ICSS is a variant specifically for PRU. You can find remoteproc framework in kernel documentation, www.kernel.org/.../remoteproc.txt.

    TI has the driver in the kernel. I described the role it plays during kernel boot up in the following thread
    e2e.ti.com/.../2830882

    If this post answers your questions, please click "Resolved".

    For other issues, please submit new ones.

    Rex
  • Hi, Rex.

    Thank you for replay.

    I had miss understood.

    As you advised, I added the rsc_table_vayu_dsp.c & rsc_types.h on CCS files.

     But can't be able to build. The following output was output from the ccs console

    -----------------------------------------------------------------------------------------------------------

    <Linking>
    warning #10247-D: creating output section "L2SRAM" without a SECTIONS specification
    warning #10247-D: creating output section "BOARD_IO_DELAY_DATA" without a SECTIONS specification
    warning #10247-D: creating output section "BOARD_IO_DELAY_CODE" without a SECTIONS specification
    "configPkg/linker.cmd", line 235: warning #10096-D: specified address lies outside memory map
    error #10264: DEFAULT memory range overlaps existing memory range L2SRAM
    error #10264: DEFAULT memory range overlaps existing memory range OCMC_RAM1
    error #10264: DEFAULT memory range overlaps existing memory range OCMC_RAM2
    error #10264: DEFAULT memory range overlaps existing memory range OCMC_RAM3
    error #10264: DEFAULT memory range overlaps existing memory range EXT_RAM

    undefined first referenced
    symbol in file
    --------- ----------------
    ti_trace_SysMin_Module_State_0_outbuf__A ./rsc_table_vayu_dsp.obj

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "MCASP_AudioEQ_evmAM572x_c66ExampleProject.out" not built

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------

    I did the following method, but is there something missing?

    I try the PDK sample(MCASP AudioEQ Demo)

    1.add rsc_table_vayu_dsp.c & rsc_types.h

    2.change the AudioEQ_demo.cfg

     Add to the end of the file.

    /* Override the default resource table with my own */
    var Resource = xdc.useModule('ti.ipc.remoteproc.Resource');
    Resource.customTable = true;

    thnak you.

  • Hi, Takai,

    I believe you need to use makefile to build instead of building in CCS. That's different subject from this thread. Please submit a new one for it if you still have questions. If you understand how .out file be launched on DSP core, please click "Resolved". Let's close this one and work on new thread after it is created.

    Rex
  • Hi ,Rex,

    Thank you for kindness.
    I want to close this question.

    Takai