Boston ESC Tracks
The Boston Embedded Systems Conference is nearly upon us. It's September 18 to 21. Expect 10,000 of your fellow developers, oodles of new products on display, and tons of conference sessions.
There are so many of these sessions that the Conference has decided to organize them into a number of tracks. I'm the chair for five tracks, and wanted to share a little about each of them.
The Real-Time Development track is probably the most uniquely-embedded aspect of the conference. Nothing here scales to the IT business. These papers are all about the microseconds. Surveys show that about 70% of us use a real-time OS in our embedded applications. But do you really know what's going on under the RTOS's hood? How does one select a scheduler? Even if you're not using an operating system, real-time issues are always a concern. Need to time-optimize your C++ code? Want better ways to profile and reduce CPU loading? The classes in this track are for the developer interested in engineering approaches to managing time in embedded applications.
Jean Labrosse will be back with his always popular talks about using an RTOS. I'm hoping to sit in on Rob Oshana's and Dan Sak's classes on reducing runtime overhead. Bruce Powel Douglass will present about designing safety-critical systems, a subject grouped here because these applications are usually real-time, and are truly embedded. Few if any IT projects will kill if the software fails.
In my opinion nearly every firmware developer faces tremendous challenges balancing performance issues. These classes address subjects that are an indispensable part of the embedded toolkit.
Firmware development is a gigantic field that encompasses all sorts of disciplines, challenges and novel opportunities. In the Software Development track we present a number of classes that give practical, immediately-useful suggestions to help you get working code out faster. For instance, Java is on the horizon " do you need to get up to speed in it? Michel de Champlain's always popular Java Jumpstart is a full-day tutorial designed to take you from no knowledge of Java to being a capable user of that language. Surveys show that while Java has a relatively small part of the embedded space, it's relentlessly growing every year.
One of my perennial frustrations with this industry (and software in general) is that we start debugging when a bug appears. That's like not brushing your teeth and going to the dentist to repair a constant series of cavities. Bugs Will Happen. Wise developers seed their programs with debugging constructs to catch these pesky (and expensive) problems early. So my talk about Design by Contract in C is about a subject that I'm passionate about. Bertrand Meyer's DBC has caught hold in some segments of the software industry, and it's time for firmware people to embrace it as well.
Must your code be reliable? If the answer is no, you're one of the lucky few. All firmware must be reliable if we want to delight our customers. The fact that every three year old knows to reset anything electronic if it acts oddly is a testament to the poor state of the art in this industry. Steve Rakitin's new "Software Reliability Basics for Embedded Systems" and Brian Schmidt's "Software Fault Tree Analysis" classes promise to be fascinating and packed with useful information for those interested in safer, more reliable code. I'm working on soliciting more of this sort of material for future conferences, since this subject will grow in importance.
Ten years ago Linux was barely on anyone's radar screen. Five years ago it had no impact on embedded systems. Today 45% of 32 bit designs incorporate Linux, but the learning curve is steep. Companies continue to say "just toss Linux in, after all, it's free." Free, maybe. Hard, for sure. Linux supporter Cygnus (since absorbed by Red Hat) used to say "we make free software affordable."
Classes in the Linux track will teach you how to select a distribution, and how to get Linux running in your environment using the GNU toolchain. Bill Gatliff, probably one of the world's experts at using Linux in the embedded environment, is giving five classes, including a full-day embedded Linux jumpstart that's essential for anyone planning to transition to this OS. He's offering a class about dealing with the nuances of open source licenses (including the new GPL3) from a developer's perspective, complemented by one from Edmund Walsh aimed more at the bosses who must make intelligent selection decisions. Edmund is an IP lawyer, not an engineer. I always advise companies to get counsel when embedding OSS to avoid debacles like the one faced by Linksys when they were outed for allegedly violating the GPL.
Both Bill and Michael Anderson will offer classes about debugging embedded Linux applications, and Robert Day's 60 minute Shop Talk will be a lively discussion about using Eclipse as the basis for a toolchain.
Debugging and test are hard. Inadequate strategies have led to numerous disasters like the $500m Ariane failure. Worse, test gets left to the project's end, so is the first thing trimmed in the desperate race to ship. It's insane, but common. Classes in the Debugging, Verification, and Test track present alternatives and offer practical how-to demonstrations about different tools and techniques.
Dave Stewart (a hugely popular speaker) will dig deep into using a logic analyzer to find the really hard bugs. This class is essential, especially for folks just coming into the field.
I'm excited about David Kalinsky's class about static code analysis. A few companies, some of whom will be exhibiting at the show, offer static analyzers that deconstruct source files into graphs to find execution-time bugs without executing the code. It's astonishing what these tools do find. There's little doubt in my mind that this technology is going to be critical in the future. After all, what we want is a program that scans the source for bugs, and these are already a first approximation to that.
The agile methods movement has a lot of interesting things to say. One of the most important, in my opinion, is to focus early and constantly on test, rather than leaving it till the end. James Grenning will talk about Test-Driven Development, an agile method that integrates test and coding, and Brian Cruickshank's "Keeping Agile: Test-centric Software Development" will offer another agile view of the subject.
The entire conference program is on-line. If you're attending, please stop me and say "hello!"
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at firstname.lastname@example.org. His website is www.ganssle.com.
Register here for ESC Boston track classes. The conference will be held September 18 to 21 at the Hynes Convention Center, Boston, MA. If you can't attend ESC Boston and are interested in these tracks, you can download track presentations for a fee from Embedded on Demand after the show.