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/CCSTUDIO: CCS Cloud capabilities

Part Number: CCSTUDIO
Other Parts Discussed in Thread: CC2541

Tool/software: Code Composer Studio

Hi,

Is there any documentation on what capabilities CCS Cloud does/does not support? For example, I am trying to make changes to simple_peripheral_cc2640r2lp and I cannot find any way to access the board file board_cc2640lp.c.  Without this, I can't so the most basic things like change pin assignments etc.

Is this just me poking around in the dark or is CCS Cloud pretty much limited to no editing - just running pre-configured projects?

Regards,

ac

  • Andrew,

    CCS Cloud supports editing.  However the issue here is that these examples are setup to reference source files inside the SDK.  With most examples when you import them a copy of the source files are made in your project.  However here with this example the source file is referenced inside the SDK.  On the desktop you could edit the file (but I would suggest copying it) but in the Cloud you don't have access to edit those files.

    There is a way to work around this.  It is counter-intuitive but it generally works.

    • Locate the linked file that you want to take ownership of.  Linked files will have a little arrow at the bottom right like this one:

    • Right click on it and select "duplicate".  On Mac control-click.  Once you have done that you will see another copy of the file in the project with a number on the end.

    • Go back to the original file.  In this case board.c.  Right click on it and select "Exclude from build".  In my browser the status doesn't always refresh and I have to go up to the little gear icon and select Refresh Project Tree, sometimes it doesn't refresh until after the build.  Eventually it will look like this.  This time I had to build and then refresh and it looked good.

    Now I own the board.1.c file and can edit it.

    Regards,

    John

  • Hi John,

    Many thanks for your response. Looking back at my question, I notice that it was not entirely accurate - my apologies...

    The screenshot below is from CCS Cloud showing the board.c file:

    It is the included file, cc2640r2lp_board.c that I need to edit. In the SDK, this sits in simplelink_cc2640r2_sdk_1_50_00_58/source/ti/blestack/target/cc2640r2lp, one directory down relative to board.c.

    How can I pull this file into the workspace for editing?

    Kind regards,

    ac

  • That explains why I didn't see the exact filename you mentioned.

    This will be a bit more tricky.
    The board.c file will need to be excluded so that it doesn't pull in the file from the SDK.
    Then we are going to need to get a copy of the file and upload it to your project.

    Normally I would just send it to you but I am on a Mac today and that SDK is not currently available on Mac. I will get it from someone else on my team and then attach it to this thread.

    Regards,
    John
  • Actually I found a way to get it. Go to the line you have circled in the screen capture. The right click on it and select jump to definition or hit F3. The file will now be open. You can the go to the file menu and select Save As and save it directly in your project.

    Regards,
    John
  • Hi John,

    Many thanks for your comments. I am able to open the target file, save into my project, edit it etc. but it does not get picked up during the project build. No matter where I save the file in the overall project structure (app tree or stack tree), it does not get included in the build (my testing methodology is to make a destructive edit so that the file will not compile, clean both stack and app projects then run the app. The result is both projects build with no errors and the app gets loaded onto the board just fine).

    Where do I go from here? Just to give you some background, I am trying to get this working for some workshops that I want to organise and run. The desktop version of CCS is too fussy to expect workshop attendees to install on the day (ideally, workshop attendees should not have to install anything) - CCS Cloud is perfect in theory but...

    Regards,
    ac
  • ac,

    Depending on what the workshop is going to cover it is a good fit.  We see a number of university classes using it these days.  However you do need to keep in mind that its functionality is pretty limited.  So the workshop would need to be pretty high level.  If you need to change build options or set watch points... it will not be suitable.  If people just need to build code and edit code and step then it is ok.

    Another option that I have used for workshops is to have CCS Desktop pre-installed on USB sticks.  If the development board you are using is XDS110 based then it should be fine driver wise as it uses a native USB driver.  One dependency you have to watch out for are the Microsoft visual C runtime libraries.  Used to just include the installers for those on the stick and if someone hit an issue they could quickly run those and they only take a few seconds to run.

    Back to the build issue.  Here is what I have.  I saved the file to the root of my project and I also renamed it.  For me it is included in the build.  I inserted a #error to check. 

    Regards,

    John

  • Hi John,

    Again, many thanks for your feedback.

    To answer some of your questions before reviewing the CCS Cloud situation:

    I plan to use the CC2640R2 Launchpad for the workshops. The workshops will be for experienced iOS developers who would like to gain an understanding of IoT and embedded technology. Since the workshops target iOS developers, all work needs to be done in the Mac environment.  The workshops will take attendees through the front-to-back process of developing a Bluetooth LE enabled iOS application and an application on the Launchpad to control RGB LEDs (as an example output device )and an ambient temperature sensor (as an example input device). Workshop attendees will be able to take the hardware home and further develop it, or develop new ideas, if they so desire (if they want to go further with developing at home, it is expected that they will switch to CCS Desktop).

    In the workshop itself, all of the coding will be done within the Launchpad application so there are no issues regarding access to SDK files - what we are discussing is what I need to do to set up the appropriate structures ahead of time. I need to set up a DMA driver and interrupt handler, enhanced timer drivers for synchronised timers (not currently supported by the TI driver), reconfigure GPIO pins.

    By the looks of things (see my latest observations below) it will not be possible to leverage existing SDK files and modify them within CCS Cloud so I will have to code at the driverlib and/or register level (not sure yet if I will hit similar problems with driverlib). While this is possible, it is not optimal for workshop attendees:

     1. Workshop attendees will not be able to learn about coding at the RTOS driver level so are really starting off on the wrong foot - they should code at the highest level possible, dropping down to lower levels only when necessary

     2. All of the code will be "outside" of RTOS and, hence, will lose access to the RTOS power management support (specifically, RTOS won't be aware of running timers or DMA transfers).

    Your other suggestion of building a CCS Desktop environment on USB stick is a viable option although painful. I have a parallel environment on USB at the moment (on a Mac) and I have not encountered any problems yet. The pain comes from having to build 10-20 USB sticks for every workshop (it takes ages) and, possibly, having to supply a USB extender to attendees if they don't have enough spare USB slots (3 are needed with the USB solution)

    Back to my latest observations on CCS Cloud:

    I was able to pull in a source SDK file into my build environment but there were two issues:

    1. (Small issue) I also had to modify the include statements to point back into the SDK hierarchy (I call this a small issue but it could cascade...)

    2. (showstopper) the underlying SDK file is still getting built so I am ending up with duplicate declaration errors

    Above is the structure I need to change (one of, maybe more as I get into this) in file CC2640R2_LAUNCHXL.c.  First I had to change the include paths as follows:

    Commented out the generic declaration since the compiler complained that it couldn't open the file and replaced it with a path back into the SDK...(copying that file into my project still generated the same error)

    That got rid of the first error but I now get a slew of these errors:

    This tells me that the SDK source file is also being compiled and I don't see any way of excluding it from the build.

    Unless you know of some way around this, I can see no choice but to follow a parallel strategy of coding in CCS Cloud at the driverlib or register level while also coding in the CCS USB environment. If I hit no further issues in CCS Cloud then I could use it for the workshops. Otherwise I will have to deploy CCS Desktop on USB.

    Another option but a long-shot is to get a clang/llvm environment up and running in Xcode. I reckon with a week of dedicated time I could get a compile/link environment running but I have no idea how to download to the Launchpad and then set breakpoints, single step etc...

    Kind regards,

    AC

  • AC,

    I will forward this on to the SDK team as well as there are some changes that need to be made to make development in the Cloud more usable. Right now for this SDK about all you can do work with the examples as is without tweaking much.

    If I do what you have done I can reproduce the symbol redefinition error. Certainly seems like the object file for the original C file is still getting passed to the linker. That is a bit hard to debug in the cloud. In the desktop environment I would physically rename the original file and see where the build fails to see how it is getting pulled in.

    One word of caution on the desktop is that the SDK for CC2640R2 is not available for Mac. Technically only a Windows package is provided. However as you have found it does work on Mac and Linux (Cloud build is happening on Linux).

    Producing the USB sticks historically has not proven to be a big deal when I have done it. I just create one and then clone them. However available USB ports could be an issue. Especially with newer MacBooks which only have USB-C ports and require adapters (mine is like that).

    Regards,
    John
  • AC,

    I was speaking with some of the team that support CC2640R2 today and they mentioned that in the project 0 example most of these files are editable by default.

    You can go to the Resource Explorer link here and then click the button to import this one into CCS Cloud. It may be a better fit for what you want to do:
    dev.ti.com/.../

    Regards,
    John
  • John,

    Thanks for that! Who would've guessed? I took look at Project 0 then jumped straight into the simple peripheral since I had previously worked with that with the CC2541 and knew what to expect.

    Anyway, let me shift over to Project 0 and see how I can progress...

    Many thanks,
    AC