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.
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.
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.