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.