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.

internal serious problem !!!

Hello.

I write this code for C2000:

void EEPROM_DelayWriteTime()
{
 int rpt = 2000; // 2000x2,5us = 5ms
 while(rpt--)  // 200nop @ 80MHz = 2,5us
 {
  asm(" RPT #98||NOP");
  GpioDataRegs.GPBSET.bit.GPIO42 = 1;
  asm(" RPT #98||NOP");
  GpioDataRegs.GPBCLEAR.bit.GPIO42= 1;
 }
}

the compiler output

INTERNAL ERROR: C:\ti\ccsv5\tools\compiler\c2000\bin\cg2000.exe experienced a segmentation fault while
                processing function _EEPROM_DelayWriteTime

This is a serious problem.  Please contact Customer
Support with this message and a copy of the input file
and help us to continue to make the tools more robust.

what's the problem ?

 

 

  • I can't reproduce this.   In order to reproduce this, we will need:

    1. The preprocessed file (run the C preprocessor to get a .pp file)
    2. The command-line options
    3. The compiler version (not the CCS version)
  • 1.

    Drivers/driver_EEprom.obj: C:/ti/ccsv5/tools/compiler/c2000/include/string.h
    Drivers/driver_EEprom.obj: C:/ti/ccsv5/tools/compiler/c2000/include/linkage.h

    ../Drivers/driver_EEprom.c:
    ../Drivers/driver_EEprom.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Device.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Adc.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Cla.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Comp.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_CpuTimers.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_DevEmu.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Dma.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_ECan.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_ECap.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_EPwm.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_EQep.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Gpio.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_I2c.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Mcbsp.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_NmiIntrupt.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_PieCtrl.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_PieVect.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Spi.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_Sci.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_SysCtrl.h:
    C:/Documents\ and\ Settings/RADGIL2/Documenti/RADGIL\ 2\ -\ VERSIONE\ CORRENTE/F2806x_headers/include/F2806x_XIntrupt.h:
    ../Drivers/driver_SPIB.h:
    ../Drivers/driver_SPIA.h:
    C:/ti/ccsv5/tools/compiler/c2000/include/string.h:
    C:/ti/ccsv5/tools/compiler/c2000/include/linkage.h:

    2.

    C:\ti\ccsv5\utils\bin\gmake -k all
    'Building file: ../Drivers/driver_EEprom.c'
    'Invoking: C2000 Compiler'
    "C:/ti/ccsv5/tools/compiler/c2000/bin/cl2000" --silicon_version=28 -g -O2 --define=RELEASE --include_path="C:/ti/ccsv5/tools/compiler/c2000/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_common/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_flash/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_headers/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Tasks" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Drivers" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Moduli" --diag_warning=225 --large_memory_model --unified_memory --cla_support=cla0 --float_support=fpu32 --preproc_with_compile --preproc_dependency="Drivers/driver_EEprom.pp" --obj_directory="Drivers"  "../Drivers/driver_EEprom.c"

    INTERNAL ERROR: C:\ti\ccsv5\tools\compiler\c2000\bin\cg2000.exe experienced a segmentation fault while
                    processing function _EEPROM_DelayWriteTime

    This is a serious problem.  Please contact Customer
    Support with this message and a copy of the input file
    and help us to continue to make the tools more robust.


    >> Compilation failure
    gmake: *** [Drivers/driver_EEprom.obj] Error 1
    gmake: Target `all' not remade because of errors.

    **** Build Finished ****

     

    3.

     

    compiler version 6.0.2

  • I'm sorry, that's not the preprocessed file.  You need to remove the --preproc_dependency option and run the command again.  You should get a long .pp file that has your function in it.

  • YOU MEAN THE BACKGROUND YELLOW ?

     

    "C:/ti/ccsv5/tools/compiler/c2000/bin/cl2000" --silicon_version=28 -g -O2 --define=RELEASE --include_path="C:/ti/ccsv5/tools/compiler/c2000/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_common/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_flash/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/F2806x_headers/include" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Tasks" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Drivers" --include_path="C:/Documents and Settings/RADGIL2/Documenti/RADGIL 2 - VERSIONE CORRENTE/Moduli" --diag_warning=225 --large_memory_model --unified_memory --cla_support=cla0 --float_support=fpu32 --preproc_with_compile --preproc_dependency="Drivers/driver_EEprom.pp" --obj_directory="Drivers" "../Drivers/driver_EEprom.c"

     

     

  • Yes, that is the option you need to remove so that the generated .pp file is the preprocessed source code instead of a list of dependencies.

  • I dont' understand:

    if I launch cl2000 with no --preproc_dependency I obtain no file ...

    why ?

  • Mauro,

    Please see this wiki page which describes how to generate a preprocessed file when using CCS: http://processors.wiki.ti.com/index.php/Preprocess_Complex_Source_Code_for_Bug_Submissions

     

  • Thank you for submitting a test case.  I can use it to see the same error message.  I filed SDSCM00043653 in the SDOWP system to have this issue addressed.  Feel free to follow it with the SDOWP link in my signature.

    Thanks and regards,

    -George

  • Mauro,

    I think this problem was fixed with the C2000 6.0.3 release.  Can you verify that the problem has been fixed?

    -Mack