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.

TMS320F280049: Adding SysConfig support to existing projects

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

I'm trying to add SysConfig support to existing projects, but I'm unsuccessful. It seems all clear in the "C2000 SysConfig" application note, under the same named chapter, but the result is incomplete.

Let's start with CCS 12.7. I tried a simple task:

  • import an empty bitfield project from the Resource Explorer - This one has no SysConfig, then I try to add it
  • create a new file, say "bit.syscfg"
  • open it - Being it an empty file, I'm requested to select the Software Product, and the device type, that's fine.
  • save the file
  • build the project, the device data isn't saved: build fails
  • re-open "bit.syscfg", get an error, saying the device still isn't configured - message "Missing argument: --board or --device must be specified"
  • Repeating the configuration gives no better result.

I tried then the stand-alone SysConfig. This worked a bit better (just partially):

  • create, update, and save the same "bit.syscfg" file said above. All is fine this time, even CCS can re-open the file now
  • build the project. This fails with call to SysConfig, ending as
    subdir_rules.mk:9: recipe for target 'build-1407907871' failed

    Invalid argument '--product': No product with name "C2000WARE" and version "5.02.00.00" found

    gmake: *** [build-1407907871] Error 1

    gmake: Target 'all' not remade because of errors.

Looks like the options for SysConfig on the command line are missing a lot of necessary parameters, having the setting to

-o "syscfg" -s "${COM_TI_C2000WARE_SYSCONFIG_MANIFEST}"

While a working project has many more parameters, like

-o "syscfg" -s "${SYSCONFIG_TOOL_SYSCONFIG_MANIFEST}" -s "${COM_TI_C2000WARE_SYSCONFIG_MANIFEST}" -s "${C2000WARE_ROOT}/.metadata/sdk.json" -d "F28004x" --package F28004x_100PZ --part F28004x_100PZ

That looks more reasonable

Is the procedure from the application note still up to date?

  • Hi, 

    Once you enable the sysconfig for the project,  you have to change the settings inside the project properties to select C2000 SysConfig and choose your specific device package/part.

    Pls refer this link no how to configure the SysConfig project properties 

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/910829/faq-how-do-i-add-sysconfig-support-pinmux-and-peripheral-initialization-to-an-existing-driverlib-project

    Also, pls note that the SysConfig support is built on top of the C2000 driverlib software layer and will not work with bitfields.

    Best Regards

    Siddharth

  • Hi Siddharth,
    the link you provided is crucial, as it describes better (yet not completely) the procedure to add SysConfig than in the application note.

    Foreword: The basic example with bitfields is mentioned just as an easy-to-replicate resource, not as a real project.

    Then, what is important to follow is

    1. Confirm to enable the SysConfig support
    2. Ignore the proposed immediate modification of the .syscfg file - this won't be saved properly!
    3. Reopen the project properties and add the device name, right there in the SysConfig Base Options; in my case, this was "F28004x"
    4. Most probably you'll also need to add the package name; in my case "F28004x_100PZ"
    5. At this point, the .syscfg file can be modified

    What is still missing is the setting for the include path, which isn't updated in the C/C++ project - the project still can't be built successfully.

    Similar to native driverlib projects, I added then a variable in project properties:

    Open Resource, Linked Resources, Path Variables and add something like C2000WARE_DLIB_ROOT
     set to ${COM_TI_C2000WARE_INSTALL_DIR}\driverlib\f28004x\driverlib

    Finally, add the variable to the include search path.

    This would make the project build successful... at least with this basic example.

    P.S. Sorry for the horrible colors in the pictures, but unfortunately this is how CCS defaults to a dark theme