Visual programming and vision are separate issues,
but both will be big this year. Likewise, multicore
systems are pushing the demands on parallel programming
and virtualization, which also is becoming
a significant tool in a single-core embedded designer’s
toolkit. Overall, software development is going to be a lot
more interesting this year.
Visual Programming
Old LabVIEW and UML (Universal
Modeling Language) hacks will sniff at the idea that
visual programming is a new trend (Fig. 1). But it’s garnering
more vendor support that will likely lead to some
major competition, as there is yet to be the equivalent of C
for visual programming. Still, it is no longer the realm of
large systems development, as with Telelogic’s UML-based
Rhapsody or test and control as with National Instruments’
LabVIEW or the MathWorks’ Simulink.
One area helping to push visual programming is
robotics. Another is data visualization, where it is natural
to meld the presentation with the computation side.
Likewise, data flow and time-based programming often is
more easily addressed in a visual context than a text-based
programming environment.
Only a few established
implementations
have mature
development tools
and user communities,
but that will
not stop upstarts
like Microsoft’s Visual
Programming
Language (VPL)
from making a
dent in the market.
The movement to
visual programming
tools will likely
help the market
grow in addition to
stealing developers
from their textbased
tools.
Multicore and Virtual Machines
Visual programming
lends itself nicely to the parallel programming that
will be important to the upcoming flood of multicore
devices. Multicore systems continue to be a challenge on the
software side, especially because of the plethora of hardware
architectures and the even greater overabundance of software
approaches to the problem.
Such approaches range from new programming languages
to
runtime libraries like MPI (message passing interface)
and
Intel’s Thread Building Blocks. No one solution will
answer all the problems, and it may be years before any one
dominates a particular arena.
One approach that’s reigning in symmetrical multiprocessing
(SMP) systems is virtualization. Virtual-machine
(VM) support in the latest crop of 64-bit processors for the
x86,
Power, and Sparc architectures reduces the VM overhead.
The techniques are well established in the server market,
and embedded developers are quickly adopting them.
Virtualization also is being used for migration and security
in the embedded space. Virtualization enables legacy operating
environments to coexist on the same hardware as new
systems. Likewise, performance has improved to make many
real-time configurations possible, allowing other components
to run in their own VM with a different operating system.
The development, deployment, and management techniques
will be new to many developers. This year will be an
opportunity to learn and take advantage of the hardware
and
software offerings.
Watch the Birdie
Visual programming is one thing.
Visual applications are another, and they’re growing significantly
because of the availability of low-cost cameras as well
as the drive to HDTV. They all employ video processing,
and
the hardware is showing up to match the applications.
Texas Instruments’ DaVinci DM6467
is specifically designed to address the
hi-def (HD) transcoding challenges
with a multicore design that integrates
an ARM926EJ-S core and a 600-MHz
C64x+ DSP core together with a
high-definition video coprocessor,
conversion engine, and targeted video
port interfaces. The software can take
advantage of the transcoding hardware
to handle simultaneous, multi-format
HD encode, decode, and transcoding
up to 1080p at 30 frames/s.
Video encoding typically employs
standard codecs, permitting designers to
simply choose support instead of creating
it from scratch. This is also true for
the audio streams, and there are more of
them given the increase in Voice over IP
(VoIP). VoIP is key to Digium’s Asterisk
Appliance 50, which runs the opensource
Asterisk private branch exchange
(PBX) software. VoIP development platforms
and reference designs will be even
more readily available this year.
The other part of the video puzzle
is video recognition. The ability to
pair a processor with a camera, often
right beside the camera chip, is letting
designers employ video systems without
requiring massive expertise in videorecognition
software. This will allow developers
of robotic control systems and
surveillance systems to utilize the latest
hardware without getting a PhD.
Seeing De'bug
Sight continues
to play a part in the improvement of
debugging tools, which has been sadly
lacking for the past few years. Trace
tools like Express Logic’s TraceX are
becoming easier to use with new features
like its summary line (Fig. 2).
One of the biggest problems with
tracing systems is the tremendous
amount of information that is available
and the small amount of information
that is useful to solve a particular
problem. Enhancements like the summary
line help find that needle in the
haystack of events.
Micrium’s µC/Probe received “Best
of Show” Honors at the 2007 Freescale
Technology Forum (Fig. 3). With this
tool, C/C++ developers can quickly
link a graphical control panel to data
within an application without modifying
the application. Systems like this
will become more common this year
even as established platforms like National
Instruments’ LabVIEW continues
to push the envelope in terms of
the visual user interface.
Obstacles still abound as ways to
cope with multicore debugging become
more important. These solutions
will be a requirement as more developers
venture into the realm of multicore
programming and debugging, which
are likely to remain challenging, especially
in heterogenous and asymmetric
architectures.
Open Season on Open Source
The trend toward open-source solutions
continues as companies that have
previously delivered closed-source solutions
open their software chests and
reveal their treasures. This includes
major companies such as Sun, Microsoft,
and Intel. Of course, not all opensource
solutions are released equally,
and it pays to read the fine print.
That’s where things get interesting
for GPL 3 (general public license).
GPL 2 covers a great deal of code and
projects. Some will migrate to GPL 3,
while others may not. Combine this
with the possible change in the wind
for online multimedia distribution,
and you can expect a whole new world.
Security Last but Not Least
Most
developers leave security until the end
or overlook it completely. But this age
of mobile, wireless devices requires
more than tacit acknowledgement of
security. The tools exist and are being
adopted, and the easier integration
and improvement of configuration
tools are starting to have an effect.
MontaVista’s Mobilinux provides a
graphical interface to tune its implementation
of SELinux (Secure Linux)
for mobile devices. This includes
stripping down the full SELinux
security feature set to one that will fit
on a cell phone that is significantly
smaller than the typical server where
SELinux usually calls home.