Embedded systems are evolving, but where are the tools?
These are exciting times to be an embedded system developer. The landscape is evolving at a rapid pace. That much is evident from the almost daily stream of news from this sector.
However, although the announcements are exciting, they are either about evolution in embedded hardware architectures or what’s new in the software space. ARM 64-bit v8 and big.LITTLE on one side. The latest in embedded Linux and application specific offerings on the other. There is little, if any, mention of happenings in embedded development tools.
That is partly because the evolution of those tools has not kept up with the growth in embedded hardware and software. It’s a problem.
A scenario is quickly developing where the gap could become very large between what the embedded ‘system’ (hardware + software) is capable of delivering and what the embedded developer can actually enable.
The embedded tools challenge
The embedded software design methodology, especially the code-compile-debug flow, hasn’t changed much. The arrival of multicore architectures has given rise to new defects (race conditions, deadlocks, stalls, etc.) which are not a part of the traditional embedded design lexicon. Added to that, there are the expectations of ‘high-performance’ from multicore that imply a need for quality performance analysis tools.
One small bit of good news is that there are free technologies (Oprofile, free, top/ps) and open source software (LTT, gprof, sar) that try to fill this gap. But they are at best ‘utilities’ and are typically run ad-hoc. As they have no relationship to each other, it is left to the user to determine the best approach to using them in combination.
OK, so obviously I’m with Mentor. And at this point, I have to say what we are doing to make life easier and improve development.
Sourcery Analyzer updated for multicore
Most recently, Mentor Embedded announced an update at last week’s ARM TechCon to Sourcery Analyzer, a powerful embedded Linux debug and performance analysis tool.
Sourcery Analyzer has been designed for embedded developers working on high-performance multicore Linux systems. It is an amalgam of open source software and bleeding-edge proprietary technology (which, incidentally, which has its roots in the EDA side of Mentor).
Sourcery Analyzer has been updated for multicore Linux developers (Source: Mentor Graphics)
Sourcery Analyzer leverages the popular open source LTTng 2.0 (Linux Trace Toolkit next generation) project as its source mechanism to collect performance- and debug-related Linux kernel and user-space trace data.
To facilitate quick out-of-box setup and analysis, it then includes a library of ‘Analysis Agents’. This is a set of pre-processed views of popular analysis routines. Performance analysis of user-space applications is also possible by creating custom analysis agents. In addition, Trace Calculator and Measurement Tool utilities provide unprecedented data manipulation flexibility.
Of course that’s my pitch. You will – and I hope you do – want to know more. So I wanted to take this opportunity to point you in the direction of further resources that illustrate the productivity gains we are already delivering through Sourcery Analyzer.
This whitepaper will give you the chance to learn more about both Sourcery Analyzer and LTTng.
Meanwhile, a little over two weeks from now – on November 28th – my colleague Frederik Ostman will give an online seminar, ‘Learn how to identify and fix timing issues in embedded Linux applications with LTTng and Sourcery Analyzer’. I hope that you can join us (and for the many of you outside the US or for whom the ‘live’ presentation is inconvenient, it will also be archived).
Our industry is evolving fast and urgently needs to address the hardware-software gap. Mentor Embedded will play an aggressive role in that, and we also recognize that you need to hear the detailed story behind our plans.