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 version 15.12.2 gives error for some testcases



Hello,

I am migrating from ccs v 6.4.6 to ccs v 15.12.2 for C2000 testcases. The testcases of a particular module give the following error with 15.12.2 while compiling

"C:\Users\a0131955\AppData\Local\Temp\026765", ERROR!   at line 1734: [E0004] Cannot redefine existing opcode 'EALLOW' with .define
               .define "__eallow()",EALLOW

"C:\Users\a0131955\AppData\Local\Temp\026765", ERROR!   at line 1824: [E0004] Cannot redefine existing opcode 'EDIS' with .define
               .define "__edis()",EDIS

"C:\Users\a0131955\AppData\Local\Temp\046085", ERROR!   at line 1734: [E0004] Cannot redefine existing opcode 'EALLOW' with .define
               .define "__eallow()",EALLOW

"C:\Users\a0131955\AppData\Local\Temp\046085", ERROR!   at line 1824: [E0004] Cannot redefine existing opcode 'EDIS' with .define
               .define "__edis()",EDIS

2 Assembly Errors, No Assembly Warnings

Errors in Source - Assembler Aborted
2 Assembly Errors, No Assembly Warnings

Errors in Source - Assembler Aborted

>> Compilation failure

>> Compilation failure

I do not understand the reason for this error since I have not defined EALLOW anywhere else. If I remove this piece of code, the testcase gives error of EALLOW not defined. Kindly help me resolve this error.

  • I presume this occurs when you build a C source file.  I am unable to reproduce this error.  Please preprocess the source file with this problem and attach it to your next forum post.  Also show all the build options exactly as the compiler sees them.

    Thanks and regards,

    -George

  • No, this is happening for asm source files only. I am unable to generate the preprocess file for asm files.

    The build options are as follows:

    -v28 -ml -mt --float_support=fpu32 --vcu_support=vcu2 --include_path="C:/ti/ccsv6/tools/compiler/c2000_15.12.2.LTS/include" --include_path="Y:/driverlib" --include_path="Y:/testcases/avv_library" --include_path="Y:/testcases/avv_library/header" --include_path="Y:/testcases/VCU/edsp_22" -g --define=CPU1 --diag_warning=225 --diag_wrap=off --display_error_number

  • in CGT 6.x.y the code base for C2000 devices had #define EALLOW __asm(" EALLOW");
    however, now in CGT 15.x.y some have tried simply changing that to
    #define EALLOW __eallow();
    since __eallow() intrinsic is now supported in CGT 15.x.y
    however, there is a problem because EALLOW is also defined in the device header file (i.e. DSP2803x_Device.h)

    I have gotten around this by doing

    #if __TI_COMPILER_VERSION__ < 15009000
    #define eallow __asm(" EALLOW")
    #define edis __asm(" EDIS")
    #else
    #define eallow __eallow()
    #define edis __edis()
    #endif

    and changing the code to call eallow; and edis; instead

  • Thank you for the additional information.  That allowed me to create a test case which fails the same way.  I filed CODEGEN-1329 in the SDOWP system to have this addressed.  I recommend that the diagnostic for this situation be changed from an error to a warning.  That may not be what is finally implemented.  But filing the SDOWP entry makes sure this gets discussed and addressed.  You are welcome to follow this issue with the SDOWP link below in my signature.

    Thanks and regards,

    -George

  • Hi Fulano,

    Thanks for pointing this out. This is exactly what we are doing. However, we won't be able to use the suggested workaround since we have hundreds of testcases.


    George,

    Thanks for filing this.