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.

Code Composer Studio v4 for MSP430 Beta available

Guru**** 162255 points
Other Parts Discussed in Thread: MSP430F2272, MSP430F2132, MSP430F2252, MSP430F427

The next version of our MSP430 Code Composer development tools are in beta and we’d like to give you an opportunity to give try them out and provide feedback.  The new version is called Code Composer Studio v4.  Starting with version 4, we will change the name from Code Composer Essentials to Code Composer Studio and will now support our MCU and DSP families with the same product. 

 

Code Composer Studio v4 includes many improvements for MSP430 including build option usability, reduced runtime support library size (which improves code size) and automatic updating.

 

Feel free to visit our CCSv4 website (http://tiexpressdsp.com/wiki/index.php?title=Category:Code_Composer_Studio_v4) to learn more about this release and to download the beta.

 

If you have any comments or run into any problems, please post them on this forum thread.

 

Regards,

John

 

 

John Stevenson

CCS Product Manager

  • Hi,

     

    Great news.

    How about License upgrade if we own CCE Professional?
    Do we have to buy this new version again?

    regards,

    Gregor

  • Gregor,

    If you purchased CCE Pro within 12 months of the release of CCSv4 then you will receive the new version for free.  There are more details here:

    http://tiexpressdsp.com/index.php?title=Licensing

     

    Regards,

    John

  • John,

    Interesting news indeed.  What about Vista support?  IIRC, the USB driver was the only problem under Vista.  Any update?

    Kind regards,

    Mike

  • Mike - like CCE v3, CCS v4 will support Vista.  however, the msp430 driver (msp430.dll) that communicates between the IDE and the FET is currently only supported under 32-bit systems.   we're working on 64-bit support and we'll hopefully get it out soon. 

  • Any information on license pricing?

  • We will continue to have a MSP430 code size limited verison that is free.  The equivalent of the current CCE Pro MSP430 would be the CCSv4 Microcontroller version, the node locked (single machine) license for this will be 495 which is consistent with the CCE pricing.  There will also be floating license versions available a well, pricing for those are not finalized. 

     

    Regards,

    John

  • Hello John

    I have just converted one of my MSP430F2272 projects to CCS V4. Worked perfectly right out of the box.

    Congratulations.

    One small issue (more an annoyance than anything). After rebuilding the project there was a warning stating that the project was originally built for version 3.0 of the CG tools. Version 3.0 of the CG tools is not installed. So there is no choice. In CCS build settings the properties rightly indicate that the project should build with version 3.2 of the CG tools. However in the C/C++ build tab it indicates that the CG tools version is 3.0.1. It cannot be changed because it is greyed out. Therefore I cannot get rid of the warning it seems...

    Regards

    Bruno

  • I just tried the CCSv4 on a project I have been using with CCE. The CCSv4 tools wanted to update the firmware in my FET430UIF, which I allowed it to do. I was having trouble with halting the target and seeing memory contents, local variables, etc. and I figured I would put it aside and try again when I had more time to play with it.

    I went back to the CCE tools in an effort to get some work done, but now CCE will not recognize the existence of the FET430UIF. I cannot get CCSv4 to properly show the machine state when the target is halted which I REALLY need to do, and I cannot go back to CCE because the FET430UIF no longer works with it. Is there any way to force a reload of the old firmware in the FET430UIF?

    Regards,

    Dave

     

  • Dave,

    Back up the msp430.dll in your CCE install then copy the one from CCSv4 into it.  That should enable you to work wih CCE again.

    Regards,

    John

  • JohnS said:
    Back up the msp430.dll in your CCE install then copy the one from CCSv4 into it. 

    Thanks John, that worked great! It's nice to know that I can go back to CCE if I have to.

    I've been using the new tool for a little while now and I am finding that it works pretty well. I have a couple suggestions since it is still in Beta phase:

    1) CCE allows the user to pick from a drop-down list of all global variables and check or uncheck which variables are to appear in the watch window. CCSv4 does not have this feature and it sure would be nice.

    2) The IAR tools offer a shortcut to enable or disable the GIE flag and I find that particularly useful. When the target is paused and single stepping is required, the debugger perpetually steps into the various ISR events that are still being triggered by external events unless the GIE bit is cleared. It requires many steps and clicks to get to and from the GIE bit to set and clear it and I spend a lot of time doing that. A shortcut button to toggle that particular bit would be nice to have.

    3) I still cannot always get the watch window to update or see where the target is paused in the source code when the Halt button is clicked. It only works about 10% of the time, and this is showstopper for the debugger.

    I'm having a little trouble with keeping the target connected to the tool through the FET430UIF, but I have not determined what causes the breakdown just yet. Other that that it's working great so far!

    Thanks -

    Dave

  • Dave,

    1) We actually had the option to browse and add global variables in early beta builds.  I believe we lost it when we replaced the view with a new one.  It should be added back in before the final release.

    2) If we had a way that you could automatically clear GIE on a halt would that help?  I guess the problem there would be that we would also need to automatically set it on Run as well which would cause problems while stepping.  I guess what we could do is show how to white a short little GEL script that adds a couple of menu items under the scripts menu that would set and clear the bit.  If the script is generic across all MSP devices maybe we could even have it setup by default.

    3) Not updating on halt would be a big problem.  Is there a particular devices this is happening on?

    Regards,

    John 

  • Bruno I will import a couple projects on Monday to see if I can reproduce this.  In theory you should be able to select build properties from the right context menu of the project and then select build settings and switch it to the 3.2 compiler (but it seems like that is already indicating 3.2, but the build options being displayed are for 3.0.1).

  • Bruno Paillard said:
    One small issue (more an annoyance than anything). After rebuilding the project there was a warning stating that the project was originally built for version 3.0 of the CG tools. Version 3.0 of the CG tools is not installed. So there is no choice. In CCS build settings the properties rightly indicate that the project should build with version 3.2 of the CG tools. However in the C/C++ build tab it indicates that the CG tools version is 3.0.1. It cannot be changed because it is greyed out. Therefore I cannot get rid of the warning it seems...

    when importing old projects, i've run into the same problem and i haven't figured out how to fix it.  it's not a showstopper but a workaround would be greatly appreciated.

  • JohnS said:
    2) If we had a way that you could automatically clear GIE on a halt would that help?  I guess the problem there would be that we would also need to automatically set it on Run as well which would cause problems while stepping.  I guess what we could do is show how to white a short little GEL script that adds a couple of menu items under the scripts menu that would set and clear the bit.  If the script is generic across all MSP devices maybe we could even have it setup by default.

    I'm not sure it would be a good idea to automatically set or clear the GIE as not all  pro9grams would require it to be set the same way. If there were an option button that would toggle the current state of the GIE bit, whatever it currently is, then that would be ideal. I find myself spending a lot of time and breaking a lot of concentration having to go in there and set/clear that particular bit because it's buried fairly deep and far away from everything else I'm usually looking at, and modifying its value it is quite necessary for single stepping.

    JohnS said:
    3) Not updating on halt would be a big problem.  Is there a particular devices this is happening on?

    The MSP du jour is the MSP430F2132. I have many other projects I can (and eventually will) try it with. It's fairly consistent in its behavior with the project I am currently working on and that's why I had to go back to the CCE tool. Is there any other info that would be helpful? I'm assuming I am the lucky one and it's not happening with anyone else.

    Thanks -

    Dave

  • Dave 1024 said:
    It's fairly consistent in its Normal 0 behavior

    Sorry - fat fingers. Please dont try to make sense out of that. It should read "It's fairly consistent in its normal behavior".

  • Dave 1024 said:

    I'm not sure it would be a good idea to automatically set or clear the GIE as not all  pro9grams would require it to be set the same way. If there were an option button that would toggle the current state of the GIE bit, whatever it currently is, then that would be ideal. I find myself spending a lot of time and breaking a lot of concentration having to go in there and set/clear that particular bit because it's buried fairly deep and far away from everything else I'm usually looking at, and modifying its value it is quite necessary for single stepping.

    Dave,

    It is not exactly what you are looking for, but we do have an option to turn off interrupts while stepping. Look for the "Disable interrupts while stepping" option located under Window -> Preferences -> CCS -> Debugger Options ->MSP430.

    Turning this option on will disable GIE while stepping if GIE is already enabled.

    I hadn't heard of issue (3) yet. We'll need to look into that.

    Andy

  • Andy said:
    It is not exactly what you are looking for, but we do have an option to turn off interrupts while stepping. Look for the "Disable interrupts while stepping" option located under Window -> Preferences -> CCS -> Debugger Options ->MSP430.

    YES! That is exactly what I am needing. Thank you for pointing that out, I did not know that control was there. Please disregard all that other stuff I was saying about the GIE bit. I was looking all over in the CCE configuration for a similar switch but I cannot find one. Does anybody else know of such a control for CCE?

    Issue 3 (see above) is preventing me from test driving the new tool during working hours. Is there anything I can do to help illustrate the problem?

    Regards,

    Dave

  • Bruno,

    I can see the with importing on old CCEv3 project and CCS getting confused about the build tools.  The projects are building ok forme as well but it is indicating in one place that it is using 3.0.0 and in another 3.2B2.  it is actually building with the new 3.2 compiler.  I will file a bug to track this.

    One small issue (more an annoyance than anything). After rebuilding the project there was a warning stating that the project was originally built for version 3.0 of the CG tools. Version 3.0 of the CG tools is not installed. So there is no choice. In CCS build settings the properties rightly indicate that the project should build with version 3.2 of the CG tools. However in the C/C++ build tab it indicates that the CG tools version is 3.0.1. It cannot be changed because it is greyed out. Therefore I cannot get rid of the warning it seems...

     

    Regards,

    John

  • Hello John

     

    Exactly right. I do not believe that there is a functional issue. The project is building correctly with version 3.2 of the CG tools. I can see also some minor differences inthe COFF file, confirming that the project built using the new CG tools.

    Regards

    Bruno

  • Dave 1024 said:

    Issue 3 (see above) is preventing me from test driving the new tool during working hours. Is there anything I can do to help illustrate the problem?

    Dave,

    I have not been able to reproduce issue (3). When this problem occurs:

    • What does the call stack display? Does it say something like "Thread [main] (Suspended)" followed below by the call stack?
    • Do the source window, disassembly, and watch window just change, or do they change to something unexpected?
    • Is the PC arrow displayed in the disassembly window?

    Thanks

    Andy

     

  • Hi Andy,

    Thanks for following up on this. I just now found out that if I click the Step Over button enough times then I will eventually get a PC arrow and all is well from that point. Once I get the PC arrow then the Source Step-over and Step-Into buttons become active after being grayed out and I can single step the source code from that point.

    I was not looking at the disassembly window before, but now that I am looking at that it is obvious what is happening. It is halting in the middle of the assembly code between C source lines, and hopefully this will be another issue where I don't have something set right (again). Any clue as to what that might be? I've looked all over, but I may have missed a control button somewhere.

    Thanks -

    Dave

  • Dave,

    I'm not sure what the issue is yet, but it does seem like a CCS problem.

    I have a suspicion that I need to check out here. It might have something to do with how stepping is interacting with ISRs in your application.

    Andy

  • Here are a couple more clues that might help:

    1) I'm looping endlessly in a process that executes a fair amount of simple integer 32 and 16-bit math in my application. When it halts in the assembly code it always halts in div32u.asm or mult32.asm (I did not write the asm code).

    2) I am using lots of timer and external interrupts, but removing external interrupts and/or clearing GIE has no effect. It still halts in the .asm math processes which are only executed in the main spin-loop.

    3) This point is likely moot given that clearing GIE doesn't fix anything, but I will still mention that the ISR processes do not perform any  multiply or divide math functions, and there are no multi-dimensional arrays that might trigger a reentrant multiply operation from within an ISR.

    I hope this helps -

    Dave

  • Dave,

    I really appreciate your help in tracking this down. 

    I don't have the exact device you are using immediately available and I haven't been abel to see this issue on other similar devices. While I get an f2132, would you be able to try the attached nonsensical program to see if it reproduces the problem on your target?

    Thanks,

    Andy

    f2132.zip
  • The project you provided runs, halts, and steps just fine.The interrupt triggers the way I would expect, and I don't see any strange behavior.

    Here's one that does not work:

    void main(void)
    {
      long l = 1;
     
      for(;;)
      {
        l *= 123123;
      }
    }

    Try running that and you might see what I am seeing. The program halts in the middle of the mult32.asm assembly code every time. If you click on the assembly step-over button enough times you will eventually get to the end of the multiply where the PC arrow shows up and the source step-into and source step-over buttons become active and work just fine. It looks like it happens with any 32-bit multiply or divide. Break points always work properly, it's only the Halt button that does not.

    Regards,

    Dave

  • Hello John,

    I'm now about testing new CCSv.4, but I'm a little bit woried to connect my FET430UIF with it. As I read there is new firmware used by CCS which is incopatible with old one used by CCE and IAR (and Elprotronics programmer I think).

    My apprehension is if eZ430-F2013 and eZ430-RF2500 USB sticks will work. I use them for some occasion. Espacially eZ430-F2013 is wery sensitive to upload new firmware (it leads to destroy it).

    Regards

    Jarda

  • Jaromir Subcik said:
    I'm now about testing new CCSv.4, but I'm a little bit woried to connect my FET430UIF with it. As I read there is new firmware used by CCS which is incopatible with old one used by CCE and IAR (and Elprotronics programmer I think).

    jarda - did you experience a problem with the new beta or are you just worried about the possibility of a problem?

  • Hello Jaromir

    May be a bit of reassurance. During my tests I went back and forth 3 or 4 times between CCE V3 and CCS V4. Each time the tool reflashed the FET430UIF. I found no problem. I know that some people experienced problems. But this has not been my experience so far.

    Hope this helps

    Bruno

  • I'm just woried about it with bat experience with my first eZ430-F2013. You can go through yahoo MSP430 conference about one and half year ago - there was a big discussion about this problem and many members described similar problem.

    Jarda

  • Bruno, I'm not affraid not working FET430UIF but eZ430 tools.

    Jarda

  • Hello Jarda

    I understand.

    Bruno

     

  • Hello John

    I steadily go through my old projects with CCS V4.0.

    I am now porting a project that was developed for the F427 a year ago. On this project I have the following problem:

    - When in the C/C++ perspective I can build the project no problem.

    - After building the project if I try to go to the debugger (by clicking on the little bug in the toolbar, the IDE attempts to rebuild everything (why...?). At this point I receive many error messages "...gmake *** no rule to make target 'Instruments\ccsv4\tools\compiler\msp430\include\.... I don't understand why the tools won't build this time, they just did a minute ago! Is it possible that it does not process paths correctly? - Notice the path starts at "Instruments"... Probably missing the beginning.

    - If I simply go to the debugger (by invoking "Launch TI Debugger"), the debugger opens, but won't connect to the target because it is setup for a MSP430F2252, and the real target is an F427. I have not found where I can configure the debugger for a specific target (other than in the project properties where it is correctly set...)

    I can provide the project if it helps

    Regards

    Bruno

  • Bruno,

    It is really odd that clicking the project build button works but clicking the bug button fails.  Clicking the bug button just calls project build on the active project before launching the debugger.  If you could send the project that may help to figure it out, to me it seems like one of the path variables is forgetting quotes and the space in Texas Instruments is messing thing up.

    Some other info that may help.  The bug button has a couple of actions associated with it.  The first is debug active project, this is the default action.  Debug active project will look at what your active project is (the one that is noted as active in the C/C++ projects view), it will do an incremental build on it and then it will attempt to launch the debugger.  When launching the debugger it looks for the .ccxml file in your project.  The .ccxml file contains the information about which device you are using and which emulation tool is setup.  For MSP430 we generate this file at the end of the project wizard as we just assume you are using a USB connection, for other device families we can't make that assumption so people have to create the .ccxml file.

    When you select the Launch TI debugger option we ignore your projects and try to launch your default configuration.  Basically it looks for a .ccxml file that is marked as default.  Not sure where it is picking up the F2252, do you have another project in your workspace that uses 2252?  For MSP430 we try to hide the fact that these .ccxml files are use because the target configs are simple (i.e. once you have picked your device we have enough info to just generate it).  However if you want to debug without projects then you do need to create one.  If you go to Target -> New Target Configuration, it will open the wizard for creating one.  This will place it in a default location global to your install.  Give it a name, then select the connection type (TI MSP430 USB1) then select your device (MSP430F427), then click save on the main toolbar.  To make sure this is setup as the default config go to View -> Target Configurations, expand the user defined node and you should see the name of the file that you just created, if t does not say [default] beside it then right click on and choose to make it the default config.  While we generally hide this stuff it is very useful if you want to create a config with Multiple FETs connected (i.e. USB1 and USB2), or if you are not working with projects and just want to create these configs so that you can quickly launch different configurations, to do this you just create them and then go to the target configuration view and right click on the config you want and select "Launch Selected Configuration".

     

    John

  • Hello John

    I do not know why the F2252. I have never worked with that target. The last project I tested was using F2272.

    I can launch the debugger without specifying the project. I did create a new target configuration specifying the F427. I made it the default as you explained. However when I go to "connect to the target" I still get an error message specifying "The target setup (MSP430F2252) does not match the actual target type (MSP430F427)"

    After going back and forth between the C/C++ and debug perspectives it finally recognized the target. I was able to load the program and run. At this point the code runs but does not do what it is supposed to do (probably crashes). But this is another problem altogether.

    All zipped the project is a bit over 1MB. Where/how do you want me to send it?

  • Bruno can you send the zip to here: ccsv4beta@list.ti.com

    Thanks,

    John

  • Hello!

     

    Could anybody tell me how to make CCS read a license file?

    I have setup the wrong host ID. Then I have asked for a license change, and I got it for the right

    host ID this time, but I don't know how to make CCS update its license.

    Thanks for any hint!

    Pascal

     

  • Pascal,

    There are a couple ways to do it. 

    1. Inside CCS to Help -> Licensing Options.  It lets you specify the path to your license file.
    2. Just copy your license file into <installdir>\ccsv4\DebugServer\license.  That is where we read the files from by default.

    Regards,

    John

  • Hello John

    I looked more closely at the error messages. It looks like the problem comes from spaces in the paths of the make file. Every time there is a space the tools seem to interpret that as the end of the command.

    Regards

    Bruno

  • Hello John

    I am now encountering a problem with the code generation tools, in the same project that I sent earlier today:

    The problem originates in the interrupt routine SAMP_ISR() inSD16.c. After compiling look into SD16.asm you will find the Samp_ISR interrupt routine. When the optimizer is set for level 2 (the default), the new code-gen tools create a routime called abproc0() (abstracted procedure 0). This procedure is called from within the interrupt routine, yet it ends with an RTI...! This RTI is executed before the ISR has had a chance to restore the context (R14 and R15). This causes the code to crash. If I only optimize at level 1, abproc0() is not created and the code is functional. Also, if I modify the code to make it less symetrical, but still optimize at level 2, this routine abproc0() is not created and the code remains functional.

    I believe abproc0() should end with an RET at the very least.

    Hope this helps. Don't hesitate if you have any question.

    Regards

    Bruno

  • Hello John!

    Sorry for the delay.

    Thanks, it works now!

    Pascal

  • Hello John

    With all the changes in the CCS IDE is there any chance of reviving the visual linker sometime in the future?

    I was very disapointed when this tool got canned. I imagine there were others like me...

    Regards

    Bruno

  • Wow you used the Visual Linker, that is going back a few years!

    We do not have any plans to bring it back.  It was a DSP tool feature and at the time we discontinued it we could not find many people using it.  Also with the switch to cache based architectures it wasn't as relevant anymore.  And for families like MSP430 we try to abstract you from having to deal with linker command files.

     

    John 

  • Well, at the risk of sounding like a dinosaur I go way-backer (wayer-back...) than that  ;-)  I have worked on the C25 and C30 in my days!

    Even on architectures such as the MSP430 where the system map is already defined there is a need to do fine placement more often that you might think. In these circumstances the linker command syntax is very powerful, but for detailed work very complex and not extremely intuitive...

    At the time when it was discontinued all our customers were disapointed also (mainly because we had done all our examples using it, and it was so easy to use).

    In any case if TI ever decides to revive it I know of a few takers.

    Best regards

    Bruno

  • Bruno Paillard said:
    Each time the tool reflashed the FET430UIF. I found no problem.

    Did you have to do anything in particular to make this happen? I am having lots of problems with CCS relating to halting and stepping as mentioned before which prevents me from using this tool, and I would like to go back to what (sort of) worked between CCE and the FET430UIF.

    The CCE debugger is now acting up as well and reloading it has no effect. Is there any way at all to force the reloading of the FET430UIF firmware? Folks have been asking for this for a long time on the MSP430 user forums and there have been no answers that I know of.

    Andy: Did you get any mileage out of the simple code snippet I sent before regarding the halt/single step? Can you duplicate the error?

    Thanks -

    Dave

  • Hello Dave

    Upon debugging in CCS V4 the FET430UIF always managed to detect the firmware was not up to date and reflash it. Then upon debugging in CCE V3.0 it always detected it was not the correct version and reflashed it back.

    I must be one of the lucky ones. I have never seen a problem.

    One thing that may be done: There is a free tool made by ELPROTRONIC (www.elprotronic.com) for the FET 430UIF. This tool also reflashes the FET430UIF if it is not the correct version to work with their software. My guess is that it uses the same software modules as the TI tool. If everything else fails I can send you an old version of this tool. It will surely reflah the FET430UIF to an earlier version. After that, CCE should be able to upgrade the firmware.

    Tell me if you want me it works. If not I can send you this old version.

    Regards

    Bruno

  • Bruno Paillard said:
    There is a free tool made by ELPROTRONIC (www.elprotronic.com) for the FET 430UIF

    That is a very useful tool, and it worked just fine. CCE was able to recognize and re-flash the FET430UIF. It's nice to have a tool like that when all you want to do is program a bunch of parts.

    Thank you for that link!

    Dave

  • You are most welcome!

  • I purchased CCS v3.3 Platinum with a 1 year support package 5 months ago which was DSP centric and did not support MSP430.  Do I have access to CCS v4 with MSP430 support now?

  • Yes you would receive a CCSv4 Platinum license as part of your 1 year subscription and it would include MSP430 support in addition to the DSP & ARM families supported by your current tools.

    Regards,

    John

  • I just bought CCE430 PRO 3.x. About when will I get new license for CCSv4? Should I sit tight  and watch the mailbox?

    Will it ship by post outside US or by e-mail ?

    I don't know how and where to register CCE430 PRO. Please give me a hint! Thx!

**Attention** This is a public forum