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.

Why choose CCS ?

Guru 11940 points

Hi,

sorry if this thread sound somehow provocative, this is not my intention.

I'm about to try some (non-commercial) projects with the LM4F launchpad, and recently decided to give CCS a try - V5.3 in this case.

My first question: as far as I understand, there is no limitation to the free licence, except it "will only work with the onboard emulation on the board", to cite the Wiki here.

But more important, what are the points in favour of CCS, compared to other IDEs ? Here, I mean especially such beat-them-all toolchains like Keil uVision,  Atollic TrueStudio and Crossworks. I'm using CrossWorks at the moment, as it supports Atmel, NXP and ST parts, too. (The MCUs I used - in fact, it supports more).

I hope some real-user feedback is more informative than marketing announcements ;-)

  • Why not? (use it)

    The interface is Eclipse which I used for ARM7 and Android -- so I'm kinda used to it.

    The compiler is from Dinkum -- used by Embarcadero (Codegear, Borland) and Microsoft plus others...

    It works -- I am told that debugging is better on IAR etc. -- but then I do not use the debugger all that much so I can't say anymore than it's adequate for my use. Careful code design is better than any debugger I have ever used IMHO.

    I ran up against the limits of IAR trial version in the first week -- so after a week of dawdling I switched to CCS and have no compelling reason to switch back.

    Since I work with MSP430, C2000 and Cortex M3& M4 it's a good choice. Especially as it looks like I need to add a DSP to the mix.

  • Why not? (use it)

    The interface is Eclipse which I used for ARM7 and Android -- so I'm kinda used to it.  ...

    Since I work with MSP430, C2000 and Cortex M3& M4 it's a good choice. Especially as it looks like I need to add a DSP to the mix

    I had been working with Eclipse-based IDEs, and IMHO it is not the "greatest invention on earth", meaning I'm not a fan. Atollic or LPCXpresso are examples of such an IDE. I also tried Atmel's Studio, but finally turned away from the "one IDE for every MCU family" solution.

    If you stay within TI's MCU world, CCS seems to be the best choice. But how das it fare in the M3/M4 world alone ? From my superficial experience, I can't see a convincing advantage to others.

    I ran up against the limits of IAR trial version in the first week -- so after a week of dawdling I switched to CCS and have no compelling reason to switch back.

    Code size or functionality limitations are the a major drawback of most free versions, I fully agree here. I had been working with a fully licenced version of IAR some years ago (for MSP430, incidentally), but at the moment, IAR has IMHO no compelling offer for non-commercial users. My private Crossworks licence costs about 1/10 of a IAR license (or Keil, Atollic, Code-Red, for that matter).


    The compiler is from Dinkum -- used by Embarcadero (Codegear, Borland) and Microsoft plus others..

    One could score that as a point for Keil - it is owned by ARM now, and is assumed to have the best support for the core. I've seen benchmarks were the Keil compiler scored significantly better in code density and performance, compared to gcc derivates.

    However, that is of less importance to me. I don't need to squeeze the last bit of performance/Flash usage out of a small MCU, like I need to do in my day job (with PIC18F ;-().

  • One of the biggest advantages of CCS is cost.  A full seat is only about $500, whereas I believe Keil and IAR are six times that.  Also, there are a variety of free versions depending on the processor you are using.  These free versions are typically limited to work only with lower performing emulators (XDS100, for which I don't believe there are ARM or MSP430 drivers at this point) or locked to an eval board, but otherwise are full function.

    A small point of correction too: the TI ARM compiler is not made by Dinkum.  I think we use Dinkum for the runtime support library, but the compiler itself is made by TI people in Texas as far as I know.  It is not GNU or GCC based.  TI has been making and improving this ARM compiler for many many years, and in my personal opinion it is a pretty good compiler (code size and cycle efficiency) compared to other ARM compilers.  I don't have any hard evidence to share.  Just my opinion based on limited observation.

    Regards,

    David

     

  • David Alter:

    I certainly agree on the cost. It is nice to be able to use one interface for a wide variety of processors.

    Eclipse may not be the best interface around, but consistency has a quality all of its own.

    Now, as to Dinkum. You got me there...

    I just looked though all the PDFs in my TI directory -- all 959... Indeed they are all TI branded (where appropriate)... or so it seems

    However, on Versions 5.02 and previous it looks like Dinkum HTML help was still there in HTML format. I just added the 5.03 compiler a few days ago and had not yet investigated to see what the new help looked like.

    I have a folder with the compilers and the help for the five(?) compilers I use plus help folders organized for my most used documents... They are still pulling up the Dinkum help for the older versions.

    It looks like there has been some changes or re-branding... or maybe TI broke the piggy bank and bought them..???

  • Hi Dave (Robinson),

    As I mentioned in my earlier post, I think TI uses Dinkum for parts of the runtime support library in the compiler.  I've attached a .pdf that comes with the TI ARM v5.0.1 compiler (installs with CCSv5.3.0).  This document shows which pieces of the RTS lib are from which vendors, including TI native.

    The RTS library is one thing, but the heart of a compiler is the code generation.  In other words, taking the users C code and converting it into assembly language.  This is what makes or breaks a compiler, not the RTS library.  The code generator in the TI ARM compiler is a TI product, and not from a third party.  People can and do sometimes replace functions in the RTS library with their own code (e.g., may be someone has a better or prefered particular function than what the library has), but nobody can replace the code generator.  It is inherent to the compiler.

    - David

  • Dave (Alter):

    You don't have to be quite so careful with your language -- I have written compilers (and OS systems) of various types and know what a code emitter is etc.  ;-) (And an RTL/RTS -- I think... maybe...perhaps -- better check)

    Is this the point where I ask "Are you now or have you ever been a user of the Dinkum Compiler"???? (Shades of Joe McCarty I know...)

    Did I get it that wrong? I will be more careful in the future and read the manifest more carefully...

    Regardless I really appreciate it when these mistaken impressions are corrected. Perhaps TI should include a document where it is laid out clearly who does what and what the responsibilities are -- more so than the manifest -- and where to look for exact information.

    Also -- I think the compiler is a great choice for people who work on a wide range of your processors.

    Now, FInal Question/Statement,  I guess that means I will have to re-organize my Help folder for the Compiler. So where are thes documents that used to be Dinkum but are now....???? whatever -- or should I just hunt?

    I hope they let you rest occasionally... since you are clearly working from home.

  • Dave (Robinson),

    >> Now, FInal Question/Statement,  I guess that means I will have to re-organize my Help folder for the Compiler. So where are these documents that used to be Dinkum but are now....???? whatever -- or should I just hunt?

    You're beyond my knowledge now.  I'm not on the compiler team mind you.  You're going to just have to hunt.  If you are looking for documentation of the functions that are in the RTS library (e.g., calling conventions, what each function actually does), I think you're not going to find them.  TI stopped documenting these something like 5 years ago.  They used to be in the TI C-Compiler User's Guides, but no more.  The reasoning behind this is that they are standard RTS functions and documented in many other places (e.g., Kernighan and Ritchie, or really any compiler text).  Please don't shoot the messenger -- I didn't agree with the decision!

    >> I hope they let you rest occasionally... since you are clearly working from home.

    Naw.  I'm on the couch watching TV.  Just browsing the microcontroller forums on my laptop to see if I can quickly help anyone out.

    - David

     

  • One of the biggest advantages of CCS is cost.  A full seat is only about $500, whereas I believe Keil and IAR are six times that.  Also, there are a variety of free versions depending on the processor you are using.  These free versions are typically limited to work only with lower performing emulators (XDS100, for which I don't believe there are ARM or MSP430 drivers at this point) or locked to an eval board, but otherwise are full function.

    That is surely a point for commercial use. But even $500 keeps out most hobbyists. Basically, I'm ok with the evalboard-locked free version. I paid less than half of that for my Crossworks license, which supports LM3F and LM4F with ICDI, besides a lot of other vendors and debug adapters. I'm using STM32 and LPC too, so this point is rather important for me.

    From a commercial point of view, TI is out of scope for my company. Reason is the obvious upward-push (NRND for all M3). Using PIC18F until now, we are looking for an alternative for the known reasons. An M4F is much too expensive, a M0 or low pin count M3 would more than suffice. That is not going to happen from TI, as sales representatives told us (and me). And we are in the mass product business, where you have to explain every fraction of a cent. In this environment, the price of a toolchain license is fixed costs, and doesn't matter much.

  • f. m. said:

    Hi,

    sorry if this thread sound somehow provocative, this is not my intention.

    I'm about to try some (non-commercial) projects with the LM4F launchpad, and recently decided to give CCS a try - V5.3 in this case.

    My first question: as far as I understand, there is no limitation to the free licence, except it "will only work with the onboard emulation on the board", to cite the Wiki here.

    But more important, what are the points in favour of CCS, compared to other IDEs ? Here, I mean especially such beat-them-all toolchains like Keil uVision,  Atollic TrueStudio and Crossworks. I'm using CrossWorks at the moment, as it supports Atmel, NXP and ST parts, too. (The MCUs I used - in fact, it supports more).

    I hope some real-user feedback is more informative than marketing announcements ;-)

    Sounds like you're using a Personal License from Crossworks. 

    So, as long as you stay 'non-commercial' you should stay with it! The CCS board-locked license will allow to generate Production Code --> you're allowed to use it for commercial projects.

    aBUGSworstnightmare

  • Sounds like you're using a Personal License from Crossworks. 

    So, as long as you stay 'non-commercial' you should stay with it! The CCS board-locked license will allow to generate Production Code --> you're allowed to use it for commercial projects.

    You are correct, it is called "Personal Licence". And I use it only that way, not for commercial projects.

    I've noticed about the commercial usage of the board-locked licence, but that adds no value for me.

    One drawback of Crossworks is the limited support from silicon vendors. Example projects are available for Keil, IAR, Atollic, or CCS, but I not yet came across a ready-to-build Crossworks project. That is not a big issue, --EXCEPT-- for stuff built on vendor specific frameworks. Especially IAR and ASF (Atmel) projects are often a PITA to port. I have not yet tried to port a less-trivial project from StellarisWare, but since it has Keil & IAR project files and make files, I expect less problems.

  • Stellarisware is available for Crossworks! You need to manage the packages and install it.

    aBUGSworstnightmare

  • Maybe I missed that ?

    I have downloaded and installed a version of StellarisWare (...and zipped + copied it to my Linux installation, too). That one contains Keil, IAR, CCS and CSL project file in every example folder, plus make files.

    A quick search for CW *.hzp / *.hzs files brought 3 projects in the ../third_party/FreeRTOS/Demo/ folder up, all for LM3Sxxx. We are talking about the same StellarisWare version ?

  • f. m. said:

    I have downloaded and installed a version of StellarisWare (...and zipped + copied it to my Linux installation, too). That one contains Keil, IAR, CCS and CSL project file in every example folder, plus make files.

    A quick search for CW *.hzp / *.hzs files brought 3 projects in the ../third_party/FreeRTOS/Demo/ folder up, all for LM3Sxxx. We are talking about the same StellarisWare version ?

    Hi f.m.,

    no, those were the wrong ones for use with Crossworks!

    Start Crossworks for ARM and click on  'Manage Packages'

    Then scroll down until you find 'Stellarisware for Crossworks for ARM' and install this package.

    aBUGSworstnightmare

  • Well, thank you - stupid me had it already installed...

    Only thing is, all .../lm3sxxx subfolders contain CW project files, except .../ek-lm4f120xl. Guess I have to wait for an update from Rowley, or do it manually.