Part Number:TMS320F28335
Tool/software: Code Composer Studio
Off and on I've encountered the problem of conflicting typedefs between the TMS320F28335 headers and SYS/BIOS. The usual approach I've taken to fix the problem is to go to Project > Properties > Build > Advanced Options > Predefined Symbols > Pre-defined NAME and add 'xdc__strict'. In the past this has been enough to resolve the problem. I don't know if this is the correct way to solve the problem but I've seen it suggested on these forums. So far it's the only way I know since I need the structs defined in the TMS320F28335 headers (e.g. the SPI register definitions) as well as SYS/BIOS.
There's a project that I have which compiles perfectly in CCS6 but fails in CCS8 due to the redeclaration error described above. The specific error is below.
#258 invalid redeclaration of type name "Int8" (declared at line 238 of "C:/ti/xdctools_3_32_01_22_core/packages/xdc/std.h") F2806x_Device.h /ht-ff/Device line 165 C/C++ Problem
Upon further inspection of the project configuration, I noticed that the project also has xdc__strict as an entry under Undefined NAME (that's a mistake as far as I know).The compiler then uses both the command line options "--define xdc__strict" and "--undefine xdc_strict", in that order. Under CCS6 this compiles just fine. However, when I remove "--undefine xdc_strict", the "redeclaration of type name" errors return.
Questions:
- Why does having only "--define xdc__strict" fail to compile in CCS6 and CCS8? Isn't this how it should be done?
- Why does having "--define xdc__strict" and "--undefine xdc_strict" compile in CCS6 and not in CCS8?
- Surprisingly, using only "--undefine xdc_strict" compiles in both CCS6 and CCS8, but why?
Software versions:
- XDCtools: 3.32.1.22_core
- SYS/BIOS: 6.46.5.55
- XDAIS: 7.21.1.07
- CCS6: version 6.10.00104
- CCS8: version 8.1.0.00011
Example of a similar problem: