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.

Building EZ-SDK MessageQApp DSP example on windows using CCSV5.1

Other Parts Discussed in Thread: CCSTUDIO, SYSBIOS

Hi,

I am trying to build the C674x DSP portion of MessageQ example on windows with CCSV5.1. The reason I am doing this is because I want to use CCSV5.1 debugger in my future development that resembles MessageQ. I have the EZ-SDK  installed on Linux as /ti-ezsdk_dm816x-evm_5_03_01_15 and I could build the messageQ example with Linux makefiles both for HLOS and RTOS. Running "./messageqapp_debug 1 DSP ./messageq_ti81xx_dsp.xe674" gives me correct results.

So now I moved everything related to C674x DSP messageQ to windows environment into a CCSV5.1 project. These include (1) MessageQApp.c (2) MessageQ_ti81xx_dsp.cfg (3) MessageApp_common.cfg.xs (4) SyslinkSamples_common.cfg.xs. I also installed syslink_2_00_05_85 into my CCS directory and added its location in XDC path as follows:

xdcpath="C:/CCStudio_v5.1.1.00028/ipc_1_23_05_40/packages;C:/CCStudio_v5.1.1.00028/bios_6_32_05_54/packages;C:/CCStudio_v5.1.1.00028/syslink_2_00_05_85/packages;C:/Documents and Settings/ZhaoLi/myRepository/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p ION_E_DSP2 -r debug -c "C:/CCStudio_v5.1.1.00028/ccsv5/tools/compiler/c6000"

The following error message comes up when I try to compile the MessageQApp.c. I think the error is due to that it could not find the syslink components for some reason.

**** Build of configuration Debug for project DSP_MSGQ_Reply ****

C:\CCStudio_v5.1.1.00028\ccsv5\utils\bin\gmake -k all

'Building file: ../MessageQ_ti81xx_dsp.cfg'

'Invoking: XDCtools'

"C:/CCStudio_v5.1.1.00028/xdctools_3_22_04_46/xs" --xdcpath="C:/CCStudio_v5.1.1.00028/ipc_1_23_05_40/packages;C:/CCStudio_v5.1.1.00028/bios_6_32_05_54/packages;C:/CCStudio_v5.1.1.00028/syslink_2_00_05_85/packages;C:/Documents and Settings/ZhaoLi/myRepository/packages;" xdc.tools.configuro -o configPkg -t ti.targets.elf.C674 -p ION_E_DSP2 -r debug -c "C:/CCStudio_v5.1.1.00028/ccsv5/tools/compiler/c6000" "../MessageQ_ti81xx_dsp.cfg"

making package.mak (because of package.bld) ...

generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...

configuring MessageQ_ti81xx_dsp.xe674 from package/cfg/MessageQ_ti81xx_dsp_pe674.cfg ...

js: "C:/tmp_C6A8168/DSP_MSGQ_Reply/SysLinkSamples_common.cfg.xs", line 54: xdc.services.global.XDCException: xdc.PACKAGE_NOT_FOUND: C:\CCStudio_v5.1.1.00028\syslink_2_00_05_85\packages\ti\syslink\ipc\rtos\package.xdc found along the package path, but no schema file was found. Ensure that the package 'ti.syslink.ipc.rtos' is completely built.

"C:/tmp_C6A8168/DSP_MSGQ_Reply/MessageApp_common.cfg.xs", line 62

"C:/tmp_C6A8168/DSP_MSGQ_Reply/MessageQ_ti81xx_dsp.cfg", line 69

"./package/cfg/MessageQ_ti81xx_dsp_pe674.cfg", line 197

"./package/cfg/MessageQ_ti81xx_dsp_pe674.cfg", line 276

"./package/cfg/MessageQ_ti81xx_dsp_pe674.cfg", line 184

gmake.exe: *** [package/cfg/MessageQ_ti81xx_dsp_pe674.xdl] Error 1

js: "C:/CCStudio_v5.1.1.00028/xdctools_3_22_04_46/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.

gmake: *** [configPkg/compiler.opt] Error 1

gmake: Target `all' not remade because of errors.

**** Build Finished ****

 

Basically it cannot perform the following lines in SysLinkSamples_common.cfg.xs:

var Syslink = xdc.useModule ('ti.syslink.ipc.rtos.Syslink');

xdc.loadPackage ('ti.syslink.ipc.rtos');

xdc.loadPackage ('ti.syslink.utils.rtos.bios6');

If I comment out these lines in  SysLinkSamples_common.cfg.xs and the if statements following that, then I could compile the MessageQApp.c OK. But when running it on my target board, the it complains that ProcMgr_getSymbolAddress failed to get symbol address! Please see attached file for details.

Can some experts please help with this issue?

Thanks a lot,

Zhao

  • Hi,

    I have two additional questions on the SYSLINK and slaveloader.

    (1) Is the slaveloader.c capable of loading COFF format DSP images? I know currently the default format is ELF.

    (2) Is it possible to build a syslink.a library file to be shared by both Linux and DSP programs that need to use SYSLINK and IPC to do messaging like MessageQ example? If yes, can you please give instructions on how to do that?

    Thanks,

    Zhao

  • Hi,

    I have yet another question relating to using CCSV5.1 to debug a DSP code that communicating messages between a piece of Linux code on ARM. The DSP core is in reset before I apply a GEL file to lift it out of reset. But this GEL file will ruin the Linux OS on ARM core. How do I avoid this  and be able to debug the DSP code in CCSV5.1?

    Thanks,

    Zhao

  • Zhao,

    I am attaching a better MessageQ example for you: ex02_messageq.zip. It is based on a makefile build but it should be much easier to make into a CCS project than the sample you have been using.

    Zhao Li said:
    (1) Is the slaveloader.c capable of loading COFF format DSP images? I know currently the default format is ELF.

    Yes, the slaveloader is capable of loading COFF executables but we only support this on OMAP3 and OMAPL. You must use ELF on DM816x.

    Zhao Li said:
    (2) Is it possible to build a syslink.a library file to be shared by both Linux and DSP.

    No, the syslink.a library is for use only on the host side. On the DSP side, you must use the ti.sdo.ipc package which contributes its own libraries.

    Zhao Li said:
    I have yet another question relating to using CCSV5.1 to debug a DSP code.

    When using SysLink, the typical approach to debugging on the DSP side is to let the HOST load and run the DSP before attaching CCS to the DSP. Once the DSP is running (i.e. out of reset), you can attach CCS to the DSP but make sure you do *not* have any GEL files configured for the DSP (check your debug configuration). You do not want to have any GEL functions executed when you attach to the DSP.

    ~Ramsey

    ex02_messageq.zip
  • Hi Ramsey,

    Thanks a lot for your replies. I encountered linking problem while building an ELF format DSP application with CCSV5.1 for loading by slaveloader on C6A816x ARM. Please see error message attached.

    Those unresolved functions were not a problem when building a COFF format DSP image. So I think the problem may be in the format of those libraries. I have to use ELF format since C6A816x only supports this format in the slaveloader. Please let me know where to find those ELF format libraries or how to build them from source code (i have sources of DSP_xxx_xxx functions for C64plus DSP. I pulled DSP_blk_move and DSP_fft_16x32 sources into my project directory, but only DSP_blk_move gets recognized and linked, DSP_fft_16x32 does not).

     

    'Building target: DSP_MSGQ_Reply.out'

    'Invoking: C6000 Linker'

    "C:/CCStudio_v5.1.1.00028/ccsv5/tools/compiler/c6000/bin/cl6x" -mv6740 -g --display_error_number --diag_warning=225 --abi=eabi -z -m"DSP_MSGQ_Reply.map" --warn_sections -i"C:/CCStudio_v5.1.1.00028/ccsv5/tools/compiler/c6000/lib" -i"C:/CCStudio_v5.1.1.00028/ccsv5/tools/compiler/c6000/include" --reread_libs --rom_model -o "DSP_MSGQ_Reply.out" -l"./configPkg/linker.cmd" "./Evdo/pn_fir_evdo.obj" "./Evdo/evdo_find_pilot_chip.obj" "./Evdo/evdo_Find_pilot_sample.obj" "./Evdo/callevdofir.obj" "./Evdo/callevdoPilot.obj" "./Evdo/EvdoMain.obj" "./Gsm/vec_sum_compl.obj" "./Gsm/invert_q.obj" "./Gsm/gsmfir.obj" "./Gsm/gsm_ts.obj" "./Gsm/gsm_ets.obj" "./Gsm/gsm_Rate_Convert.obj" "./Gsm/fft_w16x16.obj" "./Gsm/demod_sch.obj" "./Gsm/demod_bcch.obj" "./Gsm/dc_offset.obj" "./Gsm/callgsmsch.obj" "./Gsm/callgsmfir.obj" "./Gsm/callgsmfcch.obj" "./Gsm/callgsmBCCH.obj" "./Gsm/agc_soft.obj" "./Gsm/ViterbiSCH.obj" "./Gsm/GsmMain.obj" "./Gsm/FreqErrorCorrect.obj" "./Gsm/FreqError.obj" "./Gsm/Findmax_sch.obj" "./Gsm/Findmax_fcch.obj" "./Gsm/Findmax_bcch.obj" "./Gsm/EstimateChannel_bcch.obj" "./Gsm/Deinterl_BCCH.obj" "./Gsm/Decode_BCCH.obj" "./Gsm/DecodeSCH.obj" "./Gsm/Correlation.obj" "./Gsm/CRC_bcch.obj" "./Is2000/vec_mul_c_i.obj" "./Is2000/vec_mul_c.obj" "./Is2000/pn_fir_sample.obj" "./Is2000/pn_fir.obj" "./Is2000/is2000fir.obj" "./Is2000/is2000_walsh.obj" "./Is2000/is2000_sync.obj" "./Is2000/is2000_find_pilot_chip.obj" "./Is2000/is2000_agc_soft.obj" "./Is2000/is2000_Rate_Convert.obj" "./Is2000/is2000_Find_pilot_sample.obj" "./Is2000/callIS2000pilot.obj" "./Is2000/callIS2000fir.obj" "./Is2000/callIS2000demod.obj" "./Is2000/Is2000main.obj" "./Is2000/IS2000_next_frame.obj" "./Is2000/IS2000_DecodeSync.obj" "./Is2000/Correlation_c.obj" "./LTE/my_fft.obj" "./LTE/lte_vitconst.obj" "./LTE/lte_utils.obj" "./LTE/lte_sync.obj" "./LTE/lte_ssync.obj" "./LTE/lte_sss.obj" "./LTE/lte_psync.obj" "./LTE/lte_pss.obj" "./LTE/lte_myfft_twf512.obj" "./LTE/lte_myfft_twf2048.obj" "./LTE/lte_myfft_twf128.obj" "./LTE/lte_msrmts.obj" "./LTE/lte_lte.obj" "./LTE/lte_ifow.obj" "./LTE/lte_focomp.obj" "./LTE/lte_fls.obj" "./LTE/lte_eqlz.obj" "./LTE/lte_crc16.obj" "./LTE/lte_const.obj" "./LTE/lte_chnfilt.obj" "./LTE/lte_ccdec.obj" "./LTE/lte_bitrev512.obj" "./LTE/lte_bitrev2048.obj" "./LTE/lte_bitrev128.obj" "./LTE/lte_bchproc.obj" "./MessageQApp.obj" "./DspAppMsg.obj" "./UMTS/vec_sum_sq.obj" "./UMTS/umts_psc_sample.obj" "./UMTS/umts_psc.obj" "./UMTS/umts_agc_soft.obj" "./UMTS/umts_Rate_Convert.obj" "./UMTS/move_chip.obj" "./UMTS/callUMTSssc.obj" "./UMTS/callUMTSpsc.obj" "./UMTS/callUMTSpilot.obj" "./UMTS/callUMTSfir.obj" "./UMTS/add_psc_sample.obj" "./UMTS/add_psc_chip.obj" "./UMTS/UMTSmain.obj" "./UMTS/UMTSfir.obj" "./UMTS/Make_Scr_Code.obj" "./UMTS/Find_psc_sample.obj" "./UMTS/Find_psc_chip.obj" "./UMTS/Find_SSC.obj" "./UMTS/Find_Pilot.obj" "./autocorr/quartersine.obj" "./autocorr/correlation_conj.obj" "./autocorr/conj_multiply.obj" "./autocorr/callautocorr.obj" "./autocorr/autocorr_abs.obj" "./autocorr/autocorrMain.obj" "./fft/window_hann_32k.obj" "./fft/window_hamming_32k.obj" "./fft/window_black_32k.obj" "./fft/window_black.obj" "./fft/window_bartlett_32k.obj" "./fft/short2int.obj" "./fft/get_peaks.obj" "./fft/fft_window.obj" "./fft/fft_w16x32.obj" "./fft/fft_process.obj" "./fft/fft_find_peaks.obj" "./fft/callfft_peak.obj" "./fft/callfft_16buf.obj" "./fft/FftMain.obj" "./lib/DSP_blk_move/DSP_blk_move.obj" "./lib/DSP_fft16x32/DSP_fft16x32_sa.obj" "./lib/DSP_fft16x32/DSP_fft16x32.obj" -l"C:\CCStudio_v5.1.1.00028\ccsv5\tools\compiler\c6000\lib\rts64plus_elf.lib" -l"C:\CCStudio_v5.1.1.00028\bios_6_32_05_54\packages\ti\sysbios\lib\whole_program_debug\ti.sysbios.ae674" -l"C:\CCStudio_v3.2\c64plus\dsplib_v210\dsplib64plus.lib" -l"libc.a"

    <Linking>

    warning #10247-D: creating output section ".plt" without a SECTIONS

    specification

    undefined first referenced

    symbol in file

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

    CLK_gethtime ./fft/fft_process.obj

    DSP_fft16x32 ./autocorr/callautocorr.obj

    DSP_fir_cplx ./Evdo/evdo_find_pilot_chip.obj

    DSP_fir_gen ./Gsm/gsmfir.obj

    DSP_ifft16x32 ./autocorr/callautocorr.obj

    MEM_alloc ./LTE/lte_msrmts.obj

    MEM_free ./LTE/lte_msrmts.obj

    System_printf ./autocorr/autocorrMain.obj

    error #10234-D: unresolved symbols remain

    warning #10063-D: entry-point symbol other than "_c_int00" specified:

    "ti_sysbios_family_c64p_Hwi0"

    error #10010: errors encountered during linking; "DSP_MSGQ_Reply.out" not

    built

    >> Compilation failure

    gmake: *** [DSP_MSGQ_Reply.out] Error 1

    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

  • Resolved these undefined symbols by linking with eabi libraries.

    Thanks,

    Zhao