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.

CCSTUDIO-THEIA: F28P65x: Compilation errors when integrating Device Support (Bit-fields) into a SysConfig-based DriverLib project

Part Number: CCSTUDIO-THEIA
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

Hello,

I am working with the F28P65x and C2000Ware 6.00.01.00. I would like to use the Device Support (Bit-fields) headers within a SysConfig-based DriverLib project to perform direct register access for performance-critical tasks.

1. Base Project: I am using the following example as my starting point: C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f28p65x\examples\c28x_dual\led_ex2_blinky_sysconfig_cpu1

2. Steps Taken to Enable Device Support: To enable bit-field structures, I followed these steps referencing the led_ex1_blinky (non-SysConfig) example:

  • Project Properties > General > Variables: Added the following paths:

    • C2000WARE_COMMON_INCLUDE: ${COM_TI_C2000WARE_INSTALL_DIR}/device_support/f28p65x/common/include/

    • C2000WARE_HEADERS_INCLUDE: ${COM_TI_C2000WARE_INSTALL_DIR}/device_support/f28p65x/headers/include/

  • Project Properties > Build > C2000 Compiler > Include Options: Added both ${C2000WARE_COMMON_INCLUDE} and ${C2000WARE_HEADERS_INCLUDE}.

  • File Migration: Copied the following files to my project folder (same level as main.c):

    • f28p65x_headers_nonBIOS_cpu1.cmd

    • f28p65x_globalvariabledefs.c

  • Code Modification (main.c):

    • Added #include "f28p65x_device.h"

    • Added a test line: GpioDataRegs.GPADAT.bit.GPIO1 = 1;

3. Error Encountered: During compilation, I received the following errors related to header conflicts:

Plaintext
"C:\ti\c2000\C2000Ware_6_00_01_00\device_support\f28p65x\headers\include\f28p65x_lin.h", line 238: error #41: expected an identifier
"C:\ti\c2000\C2000Ware_6_00_01_00\device_support\f28p65x\headers\include\f28p65x_lin.h", line 238: error #80: expected a type specifier
"C:\ti\c2000\C2000Ware_6_00_01_00\device_support\f28p65x\headers\include\f28p65x_lin.h", line 238: error #170: a function type is not allowed here
"C:\ti\c2000\C2000Ware_6_00_01_00\device_support\f28p65x\common\include\f28p65x_globalprototypes.h", line 136: error #41: expected an identifier
"C:\ti\c2000\C2000Ware_6_00_01_00\device_support\f28p65x\common\include\f28p65x_globalprototypes.h", line 136: error #91: function returning function is not allowed

It seems like f28p65x_device.h (or its dependencies) is conflicting with the DriverLib/SysConfig environment.

4. Question: Since my application includes performance-sensitive code, I must use direct register access (Bit-fields) alongside DriverLib. What is the recommended way to resolve these header conflicts when mixing Device Support and DriverLib in a SysConfig-enabled project for the F28P65x?

Best regards,