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.

TMS320F280039: VCRC with SysConfig shows some clashes in headers

Part Number: TMS320F280039
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Note: I'm running CCS 12.7 and C2000Ware 5.02, but the following is still true with CCS 12.5 / C2000Ware 5.01

Importing an empty project from C2000Ware, and simply adding from SysConfig a VCRC instance, generates a #define clash in two files from C2000Ware:

"C:\ti\c2000\C2000Ware_5_02_00_00\libraries\dsp\VCU\c28\include\vcu2\vcu2_types.h", line 78: warning #48-D: incompatible redefinition of macro "TRUE" (declared at line 131 of "C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f28003x\driverlib\inc/hw_types.h")
"C:\ti\c2000\C2000Ware_5_02_00_00\libraries\dsp\VCU\c28\include\vcu2\vcu2_types.h", line 79: warning #48-D: incompatible redefinition of macro "FALSE" (declared at line 134 of "C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f28003x\driverlib\inc/hw_types.h")

As both files are in C2000Ware distribution is quite inappropriate editing them.
Having chosen to copy everything in the workspace, I would have expected at least to work already on local copies from the library: wouldn't that be a better choice?

However, the VCRC example in "C:\ti\c2000\C2000Ware_5_02_00_00\libraries\dsp\VCU\c28\examples\crc\" is workable (and complete), still it doesn't make use of SysConfig.
The last one seems the cause of many headaches, as the errors that you can see in the attached screenshot - SysConfig generated source forces any address for
CRC checking to be declared as `extern void * name;` then the used name can't be a function address, a reasonable variable address, etc.


  • Hi Luca,

    Thank you for your feedback, regarding the warnings, it seemed that this TRUE/FALSE definition was newly added to the driverlib in C2000Ware 5.02 which is a redefintion of the older vcrc code. I'll escalate this matter to the driverlib team. Since both defintions are the same which doesn't violate ODR, you can safely ignore this warning for now.

    I agree that there is deficiencies in our sysconfig VCRC modules, notibly that it asks for a "Message Buffer Variable" and wants a generic pointer. Nonethless you can circumvent that by typecasting your buffer as a generic void pointer and pass in the pointer name as the message buffer variable. Such as :

    float gMsgBuffer[256];
    void* gMsgPtr = &gMsgBuffer;

    If you'd also like to see some of VCRC syscfg examples in C2000Ware 5.02, albeit for a different device, please take a look at C2000Ware_5_02_00_00\driverlib\f28p55x\examples\dsp folder. Please let me know if you have other questions.

    Best,

    Sen Wang