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.

CCS/AM5728: Import failed for project 'FFT_Example_66_LE_ELF' because its compiler definition is not available...

Part Number: AM5728
Other Parts Discussed in Thread: MATHLIB

Tool/software: Code Composer Studio

Hi - I'm trying to import dsplib examples (from dsplib_c66x_3_4_0_0) into CCS V7.

However, if I go to import as a CCS project it fails becuase the compiler definition is not available.

Error: Import failed for project 'FFT_Example_66_LE_ELF' because its compiler definition is not available. The project does not appear to be a CCS Project. Please try importing it using the 'General > Existing Projects into Workspace' wizard.

Then if I try to import it using the 'General > Existing Projects into Workspace' wizard, it also fails telling me to use the CCS project wizard.

According to the dsplib_c66x_3_4_0_0 documentation, "the examples folder contains an FFT CCS V5 project and a ReadMe.txt" so I'm not sure how I can successfully import this example project into CCS V7.

Any assistance would be greatly appreciated.

Thanks,

Dermot

  • Dermot Murphy said:
    However, if I go to import as a CCS project it fails becuase the compiler definition is not available.

    Could you check if the C6000 compiler tools are available in your CCS installation? Go to menu Window->Preferences->Code Composer Studio->Build->Compilers and check if the C6000 compiler is listed under "Discovered Tools". If it is not listed, then it is possible that you did not install support for C66x devices when you installed CCS. Could that be possible?

    If that is the case, you can add support for C66x processors by re-running the CCS installer, choosing your existing CCS installation path and selecting the C66 multi-core product families. This will simply add support for C66 devices into your existing CCS and will allow you to then import the dsplib examples.

    Btw, I just verified that the FFT_Example_66_LE_ELF example imports fine into CCS 7.4.

  • Thanks AartiG,

    I was very suspicious that it may be something like that but I was also thinking that since I selected "Sitara Processors" that CCS might have included compilers for all cores including the DSPs. I even took a look at the Code Composer Studio Add-ons in the App Center but I wasn't sure about selecting "C6000 Compiler (v7)" or "C6000 Compiler (v8)"

    Anyway, I'll try installing the "66AK2x multicore DSP" product family now and I'll let you know how I get on.

    Regards,
    Dermot
  • Hey AartiG,

    The  FFT_Example_66_LE_ELF example imports fine now. The only warnings that I get are shown below - hopefully you can see the embedded image:

    Presumably I need to set these build variables to my DSPLIB and MATHLIB folders.

    I'm not sure where the /packages reference has come from and if I need to correct that?

    I'm also assuming that the version difference in C6000 compilers won't be an issue for me.

    If you can clarify whether or not you saw the /packages reference when you imported the project and if it's something important that I need to address, that would be a great help!

    Thanks again,

    Dermot

  • Adding these two variables got rid of that spurious "/package" warning but hasn't removed the DSPLIB and MATHLIB path warnings for some reason:

    I added them in under the "Variables" tab too but the warnings are still there, even after a CCSv7 restart.

    Am I doing something stupid again?

  • I decided to go ahead and try to build out the project anwyay but got this error that CCS cannot open source file "ti/dsplib/src/DSPF_dp_lud/c66/DSPF_dp_lud.h" even though I can see it under the "Includes" in Project Explorer.  I've verified that it exists with normal permissions using bash also.  It's as though CCS build is just ignoring the includes listed in Project Explorer:

    dmurphy@tibuilder:~/ti$ ll ./dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud/DSPF_dp_lud.h
    -rw-r--r-- 1 dmurphy dmurphy 3604 Aug 27 2014 ./dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud/DSPF_dp_lud.h

    Does "cannot open source file" in CCS indicate that it's unable to find it or is there another way to interpret this message?

    Any suggestions welcome - thanks,

    Dermot

  • Dermot Murphy said:
    Presumably I need to set these build variables to my DSPLIB and MATHLIB folders.

    Yes, doing that would get rid of the warnings. I think you should still be able to build successfully even with those warnings, but would certainly be good to address them by changing the build variables. You can do this from Project Properties->Build->Variables tab, click on "Show system variables", then edit the DSPLIB_INSTALL_DIR and MATHLIB_INSTALL_DIR variables to the directories on your system.

    Dermot Murphy said:
    I'm also assuming that the version difference in C6000 compilers won't be an issue for me.

    Usually it is not an issue, unless there is a huge variance and/or major changes between the compiler versions. And in general we do advise to use the latest compiler tools as long as the project will build and work well with it. Having said that, if you still wish to get rid of that warning, you can install and use the exact same compiler that the original project was created for (v7.4.2). To install and use a specific compiler version, follow the steps described in this page

  • Thanks Aarti,

    Did you see my last post about CCS being unable to open the include source file?

    My project include options are shown below - MATHLIB_INSTALL_DIR and DSPLIB_INSTALL_DIR seem to be getting resolved OK:

    The error in full is:

    >> Compilation failure
    subdir_rules.mk:7: recipe for target 'fft_example.obj' failed
    "../../../../packages/ti/dsplib/src/DSPF_dp_lud/DSPF_dp_lud.h", line 43: fatal error #1965: cannot open source file "ti/dsplib/src/DSPF_dp_lud/c66/DSPF_dp_lud.h"
    1 catastrophic error detected in the compilation of "/home/dmurphy/ti/dsplib_c66x_3_4_0_0/examples/fft_ex/fft_example.c".
    Compilation terminated.

     

    The subdir_rules.mk file would also suggest that the DSPLIB and MATHLIB paths are being evaluated OK:

     

    # Each subdirectory must supply rules for building sources it contributes
    fft_example.obj: /home/dmurphy/ti/dsplib_c66x_3_4_0_0/examples/fft_ex/fft_example.c $(GEN_OPTS) | $(GEN_HDRS)
    @echo 'Building file: "$<"'
    @echo 'Invoking: C6000 Compiler'
    "/home/dmurphy/ti/ti-cgt-c6000_8.2.2/bin/cl6x" -mv6600 --abi=eabi -g --include_path="/home/dmurphy/ti/ti-cgt-c6000_8.2.2/include" --include_path="../../../../packages" --include_path="../../../../" --include_path="/home/dmurphy/ti/mathlib_c66x_3_1_1_0/packages" --include_path="/home/dmurphy/ti/dsplib_c66x_3_4_0_0/" --include_path="../../" --define=ti_targets_elf_C66 --diag_wrap=off --display_error_number --diag_warning=225 --mem_model:data=far --debug_software_pipeline -k --strip_coff_underscore --preproc_with_compile --preproc_dependency="fft_example.d_raw" $(GEN_OPTS__FLAG) "$(shell echo $<)"
    @echo 'Finished building: "$<"'
    @echo ' '

     

     

     

  • I tried adding absolute paths to the /home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages directory but still getting the same error - CCSv7 summary of flags shown below:  

    -mv6600 --abi=eabi -g --include_path="/home/dmurphy/ti/ti-cgt-c6000_8.2.2/include" --include_path="/home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages" --include_path="/home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud/C66" --include_path="../../../../packages" --include_path="../../../../" --include_path="/home/dmurphy/ti/mathlib_c66x_3_1_1_0/packages" --include_path="/home/dmurphy/ti/dsplib_c66x_3_4_0_0/" --include_path="../../" --define=ti_targets_elf_C66 --diag_wrap=off --display_error_number --diag_warning=225 --mem_model:data=far --debug_software_pipeline -k --strip_coff_underscore

    Not sure if it's related to this old issue?

    https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/601124?CCS-F28M36P63C2-Error-1965-Cannot-open-source-file-ti-drivers-UART-h-

    I was a bit worried about the CCS error referencing the problematic include file in quotes but I can confirm the actual reference uses angle brackets:

    "/home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud/DSPF_dp_lud.h", line 43: fatal error #1965: cannot open source file "ti/dsplib/src/DSPF_dp_lud/c66/DSPF_dp_lud.h"

    Actual reference at line 43 of /home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud/DSPF_dp_lud.h:

    #include <ti/dsplib/src/DSPF_dp_lud/c66/DSPF_dp_lud.h>

     

  • Update - If I right-click the project and select Index -> Search for Unresolved Includes, I can see 9 matches, all from within the /home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages/ti/dsplib/src/DSPF_dp_lud directory even though  /home/dmurphy/ti/dsplib_c66x_3_4_0_0/packages/ is definitely set up as an Include search path.  It seems as though the direct include references can use the Include search path but the indirect ones (include statement inside an include file) can't or don't?

  • OK - I think I discovered the root cause:

    The include files in the DSP examples are referencing as "ti/dsplib/src/DSPF_dp_lud_inv/c66/DSPF_dp_lud_inv.h" while the path in the dsplib folder is actually "ti/dsplib/src/DSPF_dp_lud_inv/C66/DSPF_dp_lud_inv.h" (note the upper case C).

    So as a workaround I'm setting up symlinks in the affected directories!  I guess this is an actual bug in the DSPLIB release, however?

    Regards,

    Dermot

  • FYI - there's also a discrepency between:
    #include "..\..\DSPF_SP_fftSPxSP\c66\DSPF_SP_fftSPxSP.h"
    and
    drwxr-xr-x 3 dmurphy dmurphy 4096 Jul 9 17:31 DSPF_sp_fftSPxSP/

    Note upper verus lowercase "SP"

    Using a symlink again as a workaround:

    drwxr-xr-x 3 dmurphy dmurphy 4096 Jul 9 17:31 DSPF_sp_fftSPxSP/

    lrwxrwxrwx 1 dmurphy dmurphy 16 Aug 14 11:36 DSPF_SP_fftSPxSP -> DSPF_sp_fftSPxSP/

     

    Same goes for actual include file names:

    DSPF_SP_fftSPxSP.h

    DSPF_sp_fftSPxSP.h

     

    Chose to fix with symlinks as opposed to editing include files directly!

    -rw-r--r-- 1 dmurphy dmurphy 5175 Aug 27 2014 DSPF_sp_fftSPxSP.h
    lrwxrwxrwx 1 dmurphy dmurphy 18 Aug 14 11:54 DSPF_SP_fftSPxSP.h -> DSPF_sp_fftSPxSP.h

     

    -rw-r--r-- 1 dmurphy dmurphy 5114 Aug 27 2014 DSPF_sp_ifftSPxSP.h
    lrwxrwxrwx 1 dmurphy dmurphy 19 Aug 14 11:57 DSPF_SP_ifftSPxSP.h -> DSPF_sp_ifftSPxSP.h

     

  • Dermot Murphy said:
    The include files in the DSP examples are referencing as "ti/dsplib/src/DSPF_dp_lud_inv/c66/DSPF_dp_lud_inv.h" while the path in the dsplib folder is actually "ti/dsplib/src/DSPF_dp_lud_inv/C66/DSPF_dp_lud_inv.h" (note the upper case C).

    You are correct. There are a few upper/lower case discrepancies between the directory names and how the code is referencing it. I didn't hit the same build issues as I was building on Windows, which is not case sensitive. 

    As you noted, this needs to be addressed in the DSPLIB package. If you don't mind could you create a new post in the Sitara forum for this issue? I could move this thread to the Sitara forum but there is a chance it may get overlooked because, for one, it started as a different issue and evolved along the way, and also it is marked as Answered.

    If you click on the "Ask a related question" button at the top of this thread, it will start a new post with a link to this one. That way the Sitara/Processor SDK team can read the background details in this thread. Make sure to edit the Thread Title to reflect the new issue.

    Thank you for your time and for bringing this to our attention. I'm glad you were able to identify the issue and move forward.

  • Hi Aarti,

    No problem - I'll create a new post in the Sitara forum to ensure it doesn't get overlooked in the next bug-scrub.

    Regards,
    Dermot