Code Confidence Tools for FreeRTOS

Add this URL to your Eclipse Installation to reach this solution's update site.

Oxygen (4.7)

Neon (4.6)

Mars (4.5)

Luna (4.4)

Learn more...

Details Group Tabs

Friday, July 20, 2018 - 08:17
aheise0kv's picture

I am surprised there isn't more detail available on the web for this great plugin. Because of the information vacuum, I was a little wary of laying down ~$150 for this plugin, but the feature list was compelling. It's been about two weeks and I've been very satisfied, save for a little struggle in setting up. Satisfied enough, as it were, to spend some time to break the silence about this product out here on the web.

Here're my notes on the product.

Upon purchasing, I needed to wait for my license key and download link, which arrived within a day. I also received an invite to the private support forum. The author was very responsive to my questions. He always replied within a day, and sometimes much sooner.

I ran into a bit of an issue because the demo package on the Eclipse Marketplace worked for Eclipse Kepler, but the full version requires Mars. I was well-set-up on Kepler and was not too keen on moving over to Mars...but a few hours later my toolchain was up and running again on Mars and the CCT for FreeRTOS installed and licensed as well.

I'm not using Kinetis Design Studio, but rather the stock Mars IDE with CDT, ARM GCC, and GNU debugging tools for ARM. On the hardware side I have a SEGGER J-Link base connected to my custom board using SWD to a Freescale K20.

The next (and last) real obstacle was getting my launch configurations ironed out. I had to try several combinations of settings before I got the launch to run smoothly, but after getting over the initial hump it's been smooth sailing.

Feature-wise, I've really enjoyed it, especially after debugging FreeRTOS without kernel awareness for a while. One of the biggest gains has been the "exception debugging" option. I don't build with C++ exceptions enabled, but the CCT for FreeRTOS has allowed me to track down a few random hard faults that I had no hope of finding before. That alone was worth the price of admission.

At first it was magical, but the funny thing is, it once you start using just seems normal. Debugging on embedded becomes basically the same as debugging a desktop application. You don't notice the debugger, it just works. The tasks are presented as threads; you suspend/pause the application, and you see where each task is at that moment (usually waiting at vPortYield). When an exception/hard fault occurs, the debugger jumps to the point in the code where the fault occurred.

For debugging I use CCT, SEGGER RTT, and SEGGER SystemViewer. They are a great combination (and two of them are free after you pick up a J-Link), and together they make a comprehensive debugging system, in my opinion.

I'm sure this is what it's like for IAR or Keil folks already--but for less than a tenth of a price. The environment is probably not as cohesive as the engineer-grade tools, but for hobbyists, bootstrapping startups, and cash conscious individuals and businesses, this tool is part of a legitimate and professional embedded development system.

Thanks for reading!