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.

Compiler/TMS320F28377S: No update of DP register

Part Number: TMS320F28377S
Other Parts Discussed in Thread: TI-CGT

Tool/software: TI C/C++ Compiler

Hello.

I'm using compiler C2000 CGT v17.9.0.STS with CCSv7.

I have two variables (SpibRegs at address 0xC046 and GpioDataRegs at address 0xC080 => These are really variables and not the peripheral registers.) The following code doesn't work:

GpioDataRegs.GPCCLEAR.bit.GPIO66 = 1;

SpibRegs.SPITXBUF = (0x06 << 8)+0x06;

In the attached screenshot (disassembly) you can see that the DP register is loaded with 0x302 (yellow marker. points to 0xC080 if I'm correct) for accessing GpioDataRegs and then doesn't change when accessing SpibRegs. So the values for SpibRegs are also written to GpioDataRegs.

Do I miss something, or is this a compiler problem?

BR

Christian

  • Christian Fuchs1 said:
    Do I miss something, or is this a compiler problem?

    Unfortunately, it appears to be a compiler problem.  To address this problem, we need a test case that allows us to reproduce it.  We don't need the whole program.  Just the one source file with these problem assignment statements.  Please submit it as described in How to Submit a Compiler Test Case.

    Thanks and regards,

    -George

  • Hi George.

    I've attached the requested pp file.

    ts_src01.pp.txt

    I've found the problem in "FRAM_Fill" function.

    Compilerversion is v17.9.0.STS.

    Here is the compilercall:

    C:\TI\CCSV7\TOOLS\COMPILER\TI-CGT~4.STS\bin\cl2000.exe -i"C:\PROGRA~2\Razorcat\TESSY_4.0\sys\include\tessy\comm" -i"C:/P4WORK~1/IOUNIT~1/HBU/BASIS_~1/tessy\work\00000401\00000402\000025b5\00002958" -i"C:\TI\CCSV7\TOOLS\COMPILER\TI-CGT~4.STS\include"  -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\F2837X~2\include -iC:\ti\ccsv7\tools\compiler\ti-cgt-c2000_17.9.0.STS\include -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\Tasks -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\F2837X~1\include -iC:\ti\BIOS_6~1\packages -iC:\ti\XDA9B5~1\packages -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0 -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\F2837X~1 -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\MetaData -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\VTP\VTP_DE~1 -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\VTP -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\F2837X~1\DRIVER~1 -iC:\P4Workspaces\IOUnitDev\HBU\Basis_Source\Branch0\WizNet -iC:\P4WORK~1\IOUNIT~1\HBU\BASIS_~1\Branch0\Driver -v28 -ml -mt --float_support=fpu32 -g --c99 -Ooff --fp_mode=relaxed --include_path="C:\TI\CCSV7\TOOLS\COMPILER\TI-CGT~4.STS/include" --large_memory_model --preproc_with_comment --preproc_with_compile -DTESSY -DTS_CCS2 -DTS_SLAVE -DTS_HOST_BYTEORDER -DTS_TMS320 -DTS_TMS320C28xx -DTS_HAVE_FLOAT64 -DTS_HAVE_INT64 -DHAS_16BIT_UINT8 -D_DEBUG -DLARGE_MODEL -c "C:/P4WORK~1/IOUNIT~1/HBU/BASIS_~1/tessy\work\00000401\00000402\000025b5\00002958\ts_src01.c" -fr=C:/P4WORK~1/IOUNIT~1/HBU/BASIS_~1/tessy\work\00000401\00000402\000025b5\00002958

    If you need something else, let me know.

    BR

    Christian

  • Thank you for submitting a test case.  I can reproduce the problem.  I filed CODEGEN-3795 in the SDOWP system to have this addressed.  You are welcome to follow it with the SDOWP link below in my signature.

    Thanks and regards,

    -George

  • Hi George.

    Thanks for the Information.

    Do you know how to workaround this problem? And do you know under which conditions this problem will occur? How can I find possible locations in my source code where the problem may exist?

    Thank you

    BR

    Christian

  • Consider using the compiler option --disable_dp_load_opt to work around the problem.