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.

  • Resolved

TMS320C6678: FFTLIB Linker Command File

Intellectual 575 points

Replies: 4

Views: 276

Part Number: TMS320C6678

Hi there,

I am trying to get one of these unit tests running from fftlib_3_1_0_0. The examples is in ti/fftlib/src/fft_omp_dp_1d_r2c_d.c. After setting up the project in the usual way for RTSC and adding the required libraries to be linked, I get the following warnings:

"configPkg/linker.cmd", line 131: warning #10068-D: no matching section
warning #10247-D: creating output section ".tdata" without a SECTIONS specification
warning #10247-D: creating output section ".tbss" without a SECTIONS specification
warning #10247-D: creating output section ".mem_ddr" without a SECTIONS specification
warning #10247-D: creating output section ".mem_l2" without a SECTIONS specification
warning #10247-D: creating output section ".mem_msm" without a SECTIONS specification
Finished building target: "fft_example.out"

Because of these warnings and because in the code there are spots where it says "#pragma DATA_SECTION(x_i, ".mem_ddr");", I amended the omp_config.cfg as:

program.sectMap[".mem_ddr"]     = new Program.SectionSpec(); // FFT specific stuff
program.sectMap[".mem_l2"]      = new Program.SectionSpec(); // FFT specific stuff
program.sectMap[".mem_msm"]     = new Program.SectionSpec(); // FFT specific stuff
program.sectMap[".mem_l2"].loadSegment      = "L2SRAM";  // FFT specific stuff
program.sectMap[".mem_ddr"].loadSegment     = "DDR3";    // FFT specific stuff
program.sectMap[".mem_msm"].loadSegment     = "MSMCSRAM";// FFT specific stuff

When I try to run theprogram on the DSP, it will yield the error for some cores:

[C66xx_1] lib_emt_init() return error! (1)

which after checking the returned value corresponds to: LIB_EMT_ERROR_RMANINIT   (-3)  /**< Failure. RMAN initialization.    */ 

The map file has some lines where it says UNINITIALIZED like

.mem_l2    0    00800000    00016000     UNINITIALIZED
                  00800000    00016000     main.obj (.mem_l2)

I do not exactly know what is wrong here. Do you maybe have some omp-config file for these unit tests? Also, what is the difference between defining these sections in a linker command file and in the omp-config file?

Thank you very much for your help.

  • Examples in the FFTLIB are meant to be built using make not using CCS. The CCS projects are legacy based on MCSDK software which we don`t currently support.

    Majority of the examples in the FFTLIB are pre-built so if you go to the folder C:\ti\fftlib_c66x_2_0_0_2\packages\ti\fftlib\src\fft_dp_1d_r2c\k1\fft_dp_1d_r2c_k1_66_LE_ELF\Release

    and open the map file, you will see where the code and data sections are meant to be loaded.     I have attached the map file for pre-built version here:fft_dp_1d_r2c_k1_66_LE_ELF.map

    Also, here is the linker command file (configPkg/linker.cmd) from the pre-built binary for your reference: (rename to .cmd)

    7802.linker.txt

    Hope this helps.

    Regards,

    Rahul

    --------------------------------------------------------------------------------------------------------------------------------------
    Please click the
    This resolved my issue button on this post if the responses on this E2E thread answers your question.
    --------------------------------------------------------------------------------------------------------------------------------------

     

  • In reply to Rahul Prabhu:

    Hi Rahul,

    Thank you for your quick answer and the attached files. This example does not use OMP as far as I can see. Do you maybe have the same two files for an FFT routine which uses OMP? That would be very helpful.

    Thanks a lot.

  • In reply to Idris Kempf:

    Idris,

    I don`t have any addtional linker command files other than the ones that I have shard and pointed to in the FFTLIB.

    Regards,
    Rahul

    --------------------------------------------------------------------------------------------------------------------------------------
    Please click the
    This resolved my issue button on this post if the responses on this E2E thread answers your question.
    --------------------------------------------------------------------------------------------------------------------------------------

     

  • In reply to Rahul Prabhu:

    Hi Rahul,

    I modified one provided by some libarch example. Works with this. Pasted below if someone else needs it.

    Best wishes,

    Idris

    SECTIONS
    {
    
        .fclocalfar :
        {
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/edmamgr/lib/debug/edmamgr.ae66"      (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/ecpy/lib/debug/ecpy.ae66"         (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/ires/edma3chan/lib/debug/edma3Chan.ae66"    (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/edma3/lib/debug/edma3.ae66"	    (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/rman/lib/debug/rman.ae66"	        (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/ires/nullresource/lib/debug/nullres.ae66"	    (.fardata)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/global/lib/debug/fcsettings.ae66"   (.fardata)
            "/home/idris/ti/edma3_lld_2_12_05_30C/packages/ti/sdo/edma3/rm/lib/c6678-evm/66/debug/edma3_lld_rm.ae66" (.fardata)
    
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/edmamgr/lib/debug/edmamgr.ae66"      (.far)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/ires/edma3chan/lib/debug/edma3Chan.ae66"    (.far)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/edma3/lib/debug/edma3.ae66"	    (.far)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/rman/lib/debug/rman.ae66"	        (.far)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/ires/nullresource/lib/debug/nullres.ae66"	    (.far)
            "/home/idris/ti/framework_components_3_40_02_07/packages/ti/sdo/fc/global/lib/debug/fcsettings.ae66"   (.far)
            "/home/idris/ti/edma3_lld_2_12_05_30C/packages/ti/sdo/edma3/rm/lib/c6678-evm/66/debug/edma3_lld_rm.ae66" (.far)
        } > L2SRAM // DDR3 FAILS
    
    	.fclocalfar: load >> L2SRAM
    
    }

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.