The direction of comments on this topic has ranged from direct
advice about how to avoid line-by-line coding with graphical user interfaces to
complaints about the preponderance of "bloatware" so common on computers today.
Here's a sample of some of the more salient comments ...
"I have spent a number of
years using MATLAB/Simulink to create control loop and sequencer models and
then automatically coding them to real-time executables," says Kurt Jaeger,
senior systems engineer at Rockwell Collins Controls Technology near
Washington, D.C. "For the right application, model-based design can cut a lot
of development time out of the project and facilitate development and
hardware-in-the-loop testing. On the other hand, the drivers and libraries have
to exist for the processor platform, and performance depends on how good the
code/compile tools are. Cost- and performance-conscious embedded developers
often still end up line coding, for performance and code-size reasons."
Ravi Amur, an embedded system consultant from India notes that
FPGAs provide an alternative to the sequential instruction execution of
microprocessors/microcontrollers. "There will probably remain some amount of
sequential execution in all applications, however," he adds, "because control flow and data flow are the basic
mechanisms implemented with state machines and signal processing algorithms. It
will be interesting to see how case tools/code generation tools will cope with
multi-threaded programming for the multi-core processors."
Several members were quick to point out that no matter how you
get around line-by-line coding, someone somewhere will still have to do the
line-by-line coding behind the scenes to enable the design engineer to avoid
Software developers still have to write line-by-line, notes Jim
Donelson, senior software developer at iS3 in Florida. "I do embedded work and
that is 95 percent C and 5 percent assembly," he says. "The Linux kernel is
about the same - the architecture sub directory has some assembly language code
for processor-specific and board-specific ports, which are about 3 to 4 percent
C++, with the rest being in regular C. Windows is about the same."
To help simplify the task as much as possible, Donelson says that
his first move is usually to find out the code he is looking to create has
already been written. "We also look to buy code that is written and maintained
for a price, as that price is almost always lower that â€˜roll your own'."
One of the biggest walls in embedded software development is the integration of low-level drivers with higher-level middleware and application code, but silicon vendors are stepping up to bring it down.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.