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.

CCS/CC2640R2F: how-to migrate .cfg file into .syscfg file?

Part Number: CC2640R2F
Other Parts Discussed in Thread: SYSCONFIG,

Tool/software: Code Composer Studio

Hi!

I am very new to code composer studio (using v10). I watched many tutorial videos and tried the examples.

At the examples is where I got stuck by now.

I got the hello world TI-RTOS example to run (from the simplelink CC2640R2 SDK - 4.10.00.10). Build and debug work out of the box. :-)

Next in the TI-RTOS tutorial it is suggested that I change the content of the main file (hello.c) and also edit the syscfg-file.

=> There is no syscfg-file in that project. Only a hello.cfg is there which seems to be editable by normal text editor in ccs.

So I created an empty syscfg file and ccs asked me whether this shozuld be used in the current project, which I answered with yes.

I set the target device and package and enabled the TI-RTOS and power modules.

When I try to build that it tells me that some things got redefined - which I can understand, since now 2 config files are in the project:

error #10056: symbol "Board_init" redefined: first defined in "./CC2640R2_LAUNCHXL.obj"; redefined in "./syscfg/Board.obj"
error #10056: symbol "PINCC26XX_hwAttrs" redefined: first defined in "./CC2640R2_LAUNCHXL.obj"; redefined in "./syscfg/Board.obj"
error #10056: symbol "PowerCC26XX_config" redefined: first defined in "./CC2640R2_LAUNCHXL.obj"; redefined in "./syscfg/Board.obj"
error #10056: symbol "BoardGpioInitTable" redefined: first defined in "./CC2640R2_LAUNCHXL.obj"; redefined in "./syscfg/Board.obj"
error #10010: errors encountered during linking; "hello_CC2640R2_LAUNCHXL_tirtos_ccs.out" not built

>> Compilation failure
makefile:152: recipe for target 'hello_CC2640R2_LAUNCHXL_tirtos_ccs.out' failed
gmake[1]: *** [hello_CC2640R2_LAUNCHXL_tirtos_ccs.out] Error 1
makefile:148: recipe for target 'all' failed
gmake: *** [all] Error 2

Next I tried to simply remove the hello.cfg file and got another error message when trying to build:

Buildfile generation error occurred..
This project does not contain a buildable RTSC Configuration (.cfg) file. In order for it to build, this project must contain one RTSC Configuration file that is not excluded from build.
Build stopped..

What can I do to get the tutorial to run properly?

Thanks for any pointers in advance!

Cheers

Jean

  • Jean,

    It is ok to have both a .cfg and a .syscfg file in your projects.  The .cfg contains the configuration for TI-RTOS.  The .syscfg has configuration for drivers and some software stacks.  At some point in the future that all will be handled via SysConfig but currently it is separate.

    The error message you are seeing is because there is already a file in your project that is doing the driver configuration.  CC2640R2_LAUNCHXL.c

    This file is conflicting with the Board.c file that is generated by SysConfig.  You can try right clicking on the CC2640R2_LAUNCHXL.c file and exclude it from the build.  That would remove the conflict that you are seeing.   I was able to do this with the adcbufcontinuous example and get it to build.

    However I am not sure what the state of SysConfig for CC2640R2 is.  I will loop in the CC2640R2 team to comment on that.

    Regards,

    John

  • Dear John,

    thanks for coming back to me on this quickly!

    I tried to implement your advice:

    • deleted the old project completely
    • imported it again from SDK examples
    • build => ok => run ok
    • create syscfg file and activate TI-RTOS entry => save
    • exclude CC2640R2_LAUNCHXL.c from build
    • build all => not ok

    The error message is:

    >> Compilation failure
    subdir_rules.mk:20: recipe for target 'syscfg/Board.obj' failed
    Fatal error #1965: cannot open source file "syscfg/Board.c"
    1 catastrophic error detected in the compilation of "syscfg/Board.c".
    Compilation terminated.
    gmake: *** [syscfg/Board.obj] Error 1
    Building file: "../ccfg.c"
    Invoking: ARM Compiler
    ....
    ....

    Finished building: "../ccfg.c"

    Building file: "../CC2640R2_LAUNCHXL_fxns.c"
    Invoking: ARM Compiler
    ...
    ...

    Finished building: "../CC2640R2_LAUNCHXL_fxns.c"

    Building file: "../hello.c"
    Invoking: ARM Compiler
    ...
    ...
    Finished building: "../hello.c"

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

    **** Build Finished ****

    How did you get yours to work? Anything I missed?

    edit: I just noticed that no board.c was generated.

    Thanks!

    Cheers

    Jean

  • Jean,

    Here is my procedure.  I was building a different example before.  This time I will try it with the RTOS hello example.

    • Import hello example from the CC2640R2 SDK v4.10 via Resource Explorer

    here it is in my Project Explorer

    • Next I add a .syscfg file by selecting to create a new file

    • That gives me an error about needing to specify the device 

    The LaunchPad is not available in the board selection so I select the device.  Note that the SDK has to be selected in the first drop down

    I click start.

    • In SysConfig I start by just adding RTOS for now as I am not yet sure what else this example uses peripheral wise.  After adding I save.

    • Now I exclude the old CC2640R2_LAUNCHXL.c file

    • Now I build.

    So I get the same error about not finding the Board.c file.  Before when I was doing this I did not get this error.  I think the issue here is that the file is not being generated.

    • I open SysConfg to confirm this by clicking on the button to see what the generated files are

    This is the button on the right

    It then shows this which has no C or H files listed

    • Next click the actions to add DMA and Power

    If I check the generated files now I can see the files will be generated

    • I save and build again

    It builds ok now

    Regards,

    John

  • Hi Jean,

    If you are able to make the steps John posted work - great.

    However the SimpleLink CC2640R2 SDK is meant to be used with CCS 9. If you use this version you will not get the failures.

  • Dear Marie,

    thx for your input!

    Indeed I managed to make only one step of the tutorial work with John's input. As soon as I used code from the tutorial it wouldn't build anymore.

    What do you recommend me to do?

    • is there a working SDK (with examples) for CCS10?
    • is it possible to downgrade to CCS9 or reinstall? Where would I find previous versions of CCS
      • edit:I found the CCS v9 and installed it. in order to do so, I did:
        • uninstall CCS v10
        • remove ti folder with any SDKs
        • download+install CCS v9 with option: simplelink CC13xx and CC26xx wireless MCUs => I am using a CC2640R2 LAUNCHXL dev board
        • once installed and started CCS for first time, I did the recommended upgrades, reboot
        • start CCS v9 and installed the SimpleLink CC2640R2 SDK - 4.10.00.10 - it says there is an optional component (XDS) unavailable - later it will say that XDS 3.5xxx is not found and instead XDS 3.61.xxx used
        • create project from resource explorer example hello
        • build => ok
        • debug => ok
        • create  syscfg (which is not present in example) => not ok
          • this time I cannot reach the point of actually creating the syscfg.
          • problem is there is no SDK to choose from (syscfg menu looks different, maybe different version due to CCS v9?)
          • I can select a device => CC2640R2RGV (according to small print on LAUNCHXL board)
          • then modules available does not include TI-RTOS
          • .... that's where I am stuck. I checked the SDK being installed and it looks ok from the package manager.

    I am really at the end of my knowledge and ideas. Please help me with any pointers!

    Thanks a lot!

    Jean

  • JeanR said:
    Indeed I managed to make only one step of the tutorial work with John's input. As soon as I used code from the tutorial it wouldn't build anymore.

    What was the error that you saw with the tutorial and CCSv10?  What tutorial are you following?

  • Hi Jean,

    Sorry about the misunderstanding.

    SysConfig is not supported for CC2640R2. To successfully build CC2640R2 plase use CCS 9.

  • Dear John & Marie,

    the tutorial I am following is:

    By now I have installed CCS v9.

    • In CCS v10 I understand from Marie, that syscfg for CC2640R2F is not supported? Is that correct?

    From the tutorial step 'Task 1 - replacing the contents of hello.c' I gather that I need to change the syscfg file. Since there is no syscfg file yet, I understood that I can create one by creating an empty file with extension .syscfg and accept to use it in project scope. Then I need to fill out the syscfg basics like choosing a SDK and a device. Also I need to exclude the 'CC2640R2_LAUNCHXL.c' from build. That worked fine with CCS v10. However then the code example of the tutorial did not work anymore. (as I have uninstalled the CCS v10 I cannot say anymore what the exact error was. I tried researching it, but came to no conclusion.)

    Now with CCS v9 the creation of the syscfg seems to not work anymore. I can create the syscfg, however I cannot choose anymore an SDK, only the device. Because of that (I guess) the TI-RTOS option is not shown in the syscfg editor.

    • first question: which CCS version should I use to work with a CC2640R2F device?
    • How can I get the TI-RTOS tutorial to work?

    I kindly ask you to be very explicit with me, since I have not yet enough experience with CCS to know many of the given things. :-) thx!

    Thank you so much!!

    Cheers

    Jean

    EDIT:

    The package overview says this for me (snipped together):

    When creating the syscfg in CCS v9 I get this:

  • Based on Marie's feedback it is best to not use SysConfig for this device.  It looks like the SimpleLink Academy tutorial for TI-RTOS is showing the wrong instructions.  Most of our our SimpleLInk Devices use SysConfig so this must be a common module.

    One thing you could do is to look at an old verison of SimpleLink Academy.  Does this link show it ok for you:

    http://dev.ti.com/tirex/explore/node?a=krol.2c__2.40.00.32&a=krol.2c__3.10.00.15&a=krol.2c__3.20.00.21&a=krol.2c__3.30.00.20&a=krol.2c__3.40.00.10&node=AMtnZk2LTvHnhgseIRtw-w__krol.2c__3.10.00.15

    As far as the build error you saw in CCSv10.  The issue is a compability issue with the C runtime library in the compiler and the SDK.  If you end up using CCSv10 in the future you can resolve this by installing the old 18.12 compiler in CCS.  This can be done from the help menu by selecting "Install Code Generation Compiler tools".

    Regards,

    John

  • Dear John,

    thanks a lot for summing it up.

    For me as customer it raises the following questions:

    • is syscfg not supported because this device will not be supported anymore or even phased out?
    • does the use of an old compiler mean that in the future I will have to be content with that compiler and there will be no more upgrade due to lack of device support?

    I am asking this because we are in the process of using this device in a mass-product.

    Thank you!

    Cheers

    Jean

  • Jean,

    I will have to leave the first question on the CC2640R2 status to Marie.

    For the second question on the compiler you have options.  Even though 18.12.x is a "older" compiler it is still what we call a long term support (LTS) release so we continue to do maintenance releases for it.  So you can continue to get bug fixes.

    Each release of an SDK will be validated with a particular LTS compiler stream.  In this case the 4.10 release of the SDK specifies the 18.12.x compiler.  If you stick with that verison of the SDK then you would stick with the 18.12.x compiler stream.  Now it is very likely that the next release of the SDK would be validated with the 20.2.x LTS compiler.  If you choose to upgrade to that SDK you would then also upgrade your compiler.  CCS can work with many different versions of the compiler, SDK, XDCTools.  Each project specifies which versions to use.

    Regards,

    John

  • Hi Jean,

    CC2640R2 is still supported and is not being phased out.

    If you look at the last few SimpleLink CC2640R2 SDK releases you will see that we are still adding new features for this device, however the main focus is on bug fixing.

    You can read more about Texas Instruments' commitment to device long term support here: