What are your favorite tools of the embedded systems trade? Jack interprets the results from Embedded Market Survey.
Configuration management tools garnered just 13% of the favorite/most important vote. They're boring. But CM tools are as essential as the Ethernet cabling that interconnects computers and routers. Nothing happens without them, or at least nothing reliable. Some companies unbelievably continue to use sneakernet, and others unbelievably continue to use sneakernet or a pile of disks and directories to manage version control. As Gregory Wilson wrote in the article "Where's the Real Bottleneck in Scientific Computing?", ignorance of version control is computational illiteracy.7
Every other category of tool ranked under 10%. Source-code analysis got 8% of the votes. Amazing but true. I assume that includes Lint, a syntax checker on steroids that has been around since the '70s. Lint is an imperfect and at times frustrating tool. But it finds bugs. Consider this snippet:
int do_something(int end)
{
int i, j=0;
int r=0;
for(i=0; i< end; + + i)j
|= toggle_bit();
r=(j + i) & 0xff;
if(j < end)r=end;
return r;
}
What's wrong with the code?
Actually, there's plenty that's problematic with this, not the least the uninformative variable names and the use of C's poorly-defined "int" directive. But look deeper. See anything?
I bet you stared at that for a while before noticing the spaces around the increment operator. Lint finds this error in a millisecond. This stuff is hard, and anything that can be automated, must be.