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'."
At the Design News webinar on June 27, learn all about aluminum extrusion: designing the right shape so it costs the least, is simplest to manufacture, and best fits the application's structural requirements.
For industrial control applications, or even a simple assembly line, that machine can go almost 24/7 without a break. But what happens when the task is a little more complex? That’s where the “smart” machine would come in. The smart machine is one that has some simple (or complex in some cases) processing capability to be able to adapt to changing conditions. Such machines are suited for a host of applications, including automotive, aerospace, defense, medical, computers and electronics, telecommunications, consumer goods, and so on. This radio show will show what’s possible with smart machines, and what tradeoffs need to be made to implement such a solution.