On Friday, Freescale has updated CodeWarrior for MCU10 from V10.4 to V10.5, available on http://www.freescale.com/cwmcu10. I have not had much time to use it over the week-end, but here is a list of the things which in my view will make me switch my projects over to 10.5 and use it in my university classes:
- Smaller: smaller setup and less disk space
- Faster: faster debugging and flashing
- Features: Eclipse Juno, detachable editor views, ‘unlimited’ breakpoints, simplified debugger attach/connect/download, and more.
As in MCU10.4, the installer allows me just to install the needed architectures.
💡 No need to uninstall an earlier version of CodeWarrior. I have 10.5 installed in parallel (in a different folder) from the earlier CodeWarrior versions.
Even with more devices supported, the needed disk space and download size is reduced.
For a combined S08/RS08, ColdFire and Kinetis/ARM installation:
- MCU10.4: 1.11 GB setup/download size, 3.2 GB installed on disk
- MCU10.5: 1.05 GB setup/download size, 2.4 GB installed on disk
For Kinetis/ARM only:
- MCU10.4: 852 MB setup/download size, 2.2 GB installed on disk
- MCU10.5: 684 MB setup/download size, 1.4 GB installed on disk
So 10.5 is smaller to download, and uses much less space on disk :-).
The biggest visual change is that CodeWarrior 10.5 is using the Eclipse Juno 4.2.1 and CDT 8.1.1.
Debugger Toolbar Icons
With the move to Eclipse Juno, the debugger icons for stepping/etc are moved are not any more in the Debug view:
The CodeWarrior specific ones like ‘Reset’ or ‘Restart’ are still in Debug view. The motivation for the Eclipse community to move the standard debugging icons to the main toolbar was to allow debug operations without having the ‘Debug’ view open. Not a big deal until I get used to search for the icons in the main toolbar I guess.
💡 The old toolbar can be restored with ‘Show Debug Toolbar’:
Eclipse Juno comes with a nice feature: Detachable Views 🙂 With the earlier version, it was possible to have a detached main window or view. But this was not supported for the Edit view (the one with the sources) where it would make most sense. Now this is supported too:
The detached view is always in front of the main window, but can be moved everywhere, as well outside (e.g. on a second display).
To detach, grab the tab and move it outside of the main window:
To ‘un-detach’, grab the view tab (the tab, not the window title bar!) and drop it back in to the main window:
💡 To move a window to its ‘tabbed’ position, simply drag it to the tab location in the tab list.
Debugger Download, Connect and Attach
Instead of going trough different launch configurations, MCU10.5 makes it much simpler to either download, connect or attach: I can select the debug session type in the same launch configuration now:
If selecting ‘Custom’, I can disable the reset sequence and the initialization script in the dialog, without going into the target configuration.
I noticed that debugging/stepping is faster with 10.5. I measured the time to download for a 64 KByte application with P&E OpenSDA (OpenSDA V1.06 firmware):
- MCU10.4: 13 seconds
- MCU10.5: 10 seconds
So this is at least for this combination a 25% improvement :-).
MCU10.5 installs in the installation folder a new OpenSDA firmware:
C:\Freescale\CW MCU v10.5\OpenSDA\firmware
It has the DEBUG-APP_Pemicro_v108.SDA firmware in it: I used so far V1.06 and missed that P&E has released a new version on their website. Using that firmware added yet again about 10% improvement:
- MCU10.5: 9 seconds (with V1.08 P&E OpenSDA Firmware) 🙂
The Segger OpenSDA is still 30% faster (6 seconds instead of 9 seconds), but it does not offer a combined USB CDC device class :-(. So if you do not need the virtual COM port, the Segger OpenSDA is a faster option.
Processor Expert and C++
The release notes say that Processor Expert supports now C++. Checking the generated sources it indeed has added awareness for C++. However, the wizard to create new projects still do not allow to select Processor Expert as option for C++ projects :-(. So from a user perspective C++ is still not easily possible, so I still need to use my manual approach described here.
Segger ‘Unlimited’ Breakpoints
Microcontroller like the KL25Z on the FRDM-KL25Z have only a limited number of breakpoints available. MCU10.5 supports now the ‘unlimited’ breakpoint feature of Segger: I can set more than the normal two breakpoints: 🙂
Segger is using the hardware breakpoints first, and then is using ‘software’ breakpoints in FLASH:
Because the Segger unit is programming the flash ‘on the fly’ and very fast, the added delay is nearly not noticeable.
Processor Expert Pins Searching is Over!
Can you spot and select in the list below the pin PTC0?
Yes, with all the pin muxing and multi-purpose-pin assignments it is pretty hard to spot it :-(. This even gets harder as the list can contain many, many pins, so you might scroll up and down too.
The good news is: With 10.5 it is possible to enter text and it will filter for every item having that text in it :-):
So far I have not seen any issues with my projects I upgraded to MCU10.5. As a general rule: Eclipse might add some more stuff into the project files, so while upgrading typically works fine, downgrading (going to previous Eclipse versions) might be problematic. For sure I recommend to use a new workspace, and *not* to share a workspace with different versions of Eclipse. So I have a workspace for 10.4 and a workspace for 10.5.
CodeWarrior needs a new 10.5 license file, so an existing 10.4 one does not work, so you need to do a license version renewal o the Freescale web site. Additionally, the MQX Kernel-Awareness plugin is included in all (including free) editions. Unfortunately for FreeRTOS you would need to use GDB as described in this post.
The new CodeWarrior for MCU10.5 is smaller, it is faster and comes with a set of new nice features. Eclipse Juno has for sure the biggest and most visual impact, and for sure I will need more time to explore it further. What for me counts most is the increased performance, and this is what counts every day.
Happy Upgrading 🙂