|Go to ESC Boston.|
No matter what its venue, the problem I always have with the Embedded Systems Conference is that there is not enough of me to go around.
Not only do I want to cruise the show floor and talk to developers, I also want to corner as many tool and building-block vendors as I can and talk to them about what they're introducing and what they've got in the planning stages.
And then there are the ESC classes. Even if attending classes was all I had to do, there are too many classes and opportunities to talk to hardware engineers and software developers attending them for just one of me.
I'll be facing this dilemma at the upcoming ESC in Boston, Sept. 26-29. Looking over the agenda of about 120 classes for the conference, as expected I have identified too many classes I want to attend. They fall into five categories:
- Agile program development
- ARM processor development
- Multicore programming
Following are my Editor's Top Picks in these categories and a few thoughts about their significance.
Agile software development
Because the need for software quality is increasing as embedded designs become more complex, I have paid a lot of attention to classes that will provide useful information on the Agile software development methodology . At ESC in Boston, these include:
In Agile embedded software development (ESC-300) James Grenning, president of Renaissance Software Consulting Company, introduces the principles and practices of Agile software development and offers details on how this iterative technique can be applied effectively to embedded designs.
Agile model driven development (ESC-206) . Independent Consultant and UML Guru Stephen J. Mellor will demonstrate how the addition of the concept of “actions” to model-driven environments such as UML makes it possible to apply many of the principles of agility to executable models.
Agile and the embedded developer (ST-02) is another must attend class. Freescale's Robert Oshana takes the discussion of Agile development from the general and theoretical to the specific and practical, detailing some of his experiences in actual Agile-based embedded projects and how you can to leverage this approach in your specific designs.
I've followed the commentary on Embedded.com about the need for better software quality by ESD columnist Jack Ganssle, who will also be presenting at the conference. A few of the responses to his columns are truculent and dismissive. And even where there is agreement in general and in principle about the need, when it comes to their specific designs most did not feel a compelling need.
Given the role embedded systems are playing in our lives, this attitude will have to change, and I think that these speakers and others in the Project Management track will do much to change your mind.
Even though Agile development is very much on my mind, I know that for many embedded systems developers attending the conference, it's Google's platform that has their attention. ESC devotes an entire track to Linux/Android/Open source . In addition there is a chance for embedded systems developers to earn an Android Certification .
Of the several classes in this track, the one I'm most interested in is Android variants, hacks, tricks, and resources (ESC-205) presented by Karim Yaghmour of Opensys.
While the Linux/Android platform has more than enough capability for non-real-time and nondeterministic mobile apps, as it now stands I don't think it has much chance in hardcore embedded control apps. I'm hoping that Yaghmour's class –an overview of third-party projects, resources, and tools that embedded systems developers may need–will provide some insights on how to adapt both Android and Linux to the applications in the mainstream of embedded control design.
ARM processor development
If you're like me, you're probably ravenous about anything that relates to the ARM processor platform. It has become the de facto standard for much of the embedded systems design and mobile markets, despite Intel's continuing efforts to make inroads with its new x86-based Atom processor platform.
While UBM's 2011 ARMTechCon in Santa Clara will open only four weeks after the Boston ESC, a number of ESC classes and venues will keep you satiated–at least temporarily–until then, including:
Embedded programmers guide to the ARM Cortex-M architecture (ESC-108) where the instructor, Feabhas Ltd.'s Niall Cooling, will look at the Cortex from an embedded software engineer's perspective, examining ARM's implemented specific features (such as unaligned data transfers, bit-banding) that aid the programmer, including a new a software support standard (CMSIS–Cortex Microcontroller Software Interface Specification).
Developer's insight into Cortex M debugging and M4 (ESC-213). Mark Kraeling of GE Transportation will focus on the various hardware debug options that are available on ARM Cortex M processor cores, explaining them from a software developer's point of view as well as revealing tips and tricks to make the debugging steps easier.
If you want to drill down to some specific applications, be sure to sign up for a series of classes from Gene Carter, David Donley, Paul Boogaards, and Amitkumar Bhojraj of NXP Semiconductor:
While single core 8-, 16-, and 32-bit microcontroller applications dominate the embedded design space, it is in the more lucrative mobile and embedded consumer products that the horsepower of 32-bit multicore architectures are needed. So no developer who wants to keep his or her options open can afford to ignore learning about the current design thinking in this area. I recommend these five classes at ESC Boston:
Writing reliable multicore code (ESC-311) . Greg Davis of Green Hills Software will provide details on the top sources of run-time errors in multicore systems and how to avoid them in order to write reliable code.
Software reliability on multiprocessor architectures(ESC-417). Klocworks CTO Gwyn Fisher will focus on the use of source-code analysis (SCA) and offers a tools-oriented approach to deal with the challenges of multicore code reliability as it relates to concurrency and data-representation problems.
Accelerating applications through parallelism (ESC-423), presented by Michael Anderson of The PTR Group, is a practical hands-on class in which he discusses such techniques as vector processing, GPGPU, attached processors, and other parallel techniques to accelerate our apps with hardware that many developers already have.
In FPGA partial reconfiguration: a partner to multicore processing (ESC-202) , taught by Juanjo Noguera and Glenn Steiner of Xilinx, you'll learn how this technique works and how it can reduce system costs while increasing system flexibility and performance. The class will also explore a number of design examples including FPGA-based coprocessors and how they can provide acceleration for multicore processors.
Multicore performance optimization–a visual approach (SS-215). Michael Christofferson of Enea talks about how to use run-time tools that aid in analyzing whether the software design meets its stated goals, most of which center around performance and optimal core utilization.
I'm almost as rabid as Jack Ganssle about security, especially in a world in which embedded systems will be ubiquitously connected, open, and naked to the world 24/7. If you're as concerned as Jack and I are, you'll find the following classes compelling:
Embedded design in a black hat world , a keynote speech by Infineon VP Joerg Borchert, in which he'll discuss security strategies to manage risk in embedded design, covering such pressing issues as the security ecosystem in the embedded world; new attack classes in hardware and software; upgrades and connectivity; the evolution of security for connected devices; evolving counterstrategies; the realities of embedded design that hinder or help address security issues; and lessons learned from the PC ecosystem.
Modern network security protocols for embedded systems (ESC-201). Green Hills Software CTO Dave Kleidermacher provides an overview of the latest and most important cryptographic algorithms and protocols, the implications of their use in constrained embedded systems, and loads of other useful advice regarding performance, power consumption, footprint, and key management.
Strong encryption and correct design are not enough (ESC-205). Luke Teyesser and Gilbert Goodwill of Cryptography Research provide hands-on examples of how device power analysis can be used to observe the internal functions of an unsecured device and extract the secret key, as well as reveal some methods to defeat such analysis and resultant timing attacks.
My one absolutely must-attend class
If all else fails and there is just one class I'll have time to attend, I'll have to pick Embedded IPv6 ready or not, here it comes (ESC-301).
In this class, Thomas Cantrell and Dave Kleidermacher of Green Hills Software examine the implications of recent wireless enhancements to the new Internet Protocol and its impact on the emergence of the Internet of Things. They'll discuss how to add features such as field upgrade, remote management, and application downloads to your embedded design. They'll also explore how to add and support IPv6 at a system level and then at an application level.
These are my picks. But I know there are many ways to slice and dice the 100 or more classes in the three days of the Boston ESC and my particular choices may not coincide with yours. But if one or more of me meets one or more of you at the conference, I look forward to getting together and having our own panel session about what we have learned at the conference.
Bernard Cole is editor of Embedded.com on-line and of the Embedded newsletters that go out twice a week as well as articles editor for Embedded Systems Design magazine. He is also a partner in TechRite Associates, LLP, a technical writing and editing consultancy to high technology companies. He can be contacted at or (928) 525-9087.