The real-time operating-system (RTOS) ruckus is all but a murmur this year. Linux is well established with the 2.6 kernel and a single-source code package for memory-management-unit (MMU) and MMU-less processors. Other major RTOS vendors presented new releases as well. But now, platforms and tools are key. The new releases are only polished rather than major technology improvements.
RTOS vendors are working to provide an extensive, integrated package to developers. The platforms will target specific application areas, such as medical and communications. These platforms include almost everything, starting with the OS and moving through network stacks and development tools. Multimedia and Voice over IP (VoIP) platforms incorporate codecs. And, carrier-oriented packages include system-management application programming interfaces (APIs) and applications. Expect to see more in the package for the same price as bundling continues. However, check out how the components in a development suite may impact final delivery costs.
One area of growth on the OS side is in 8-bit and some 16-bit environments, where program memory size is on the rise along with processor performance. C is now the most important development language for these small devices, and C makes an ideal fit with compact OSs. This also is leading to improvements on the development tool side for these low-end devices.
Eclipse 3.0's release seems to have opened the floodgates. It was a major redesign and release that coincided with other Eclipse-based projects, including the C/C++ Development Tool (CDT).
News is imminent on the Java/XML framework-based Eclipse Modeling Framework (EMF), which is the basis for the UML2 project. UML (Universal Modeling Language) continues to gain ground as a high-end development tool. The UML2 project employs a common XMI scheme to facilitate interchange of semantic models.
It's interesting to note how Eclipse is opening up the once-proprietary development arena as vendors start to migrate toward narrowly focused platform-based solutions. Eclipse actually makes such solutions simpler because vendors can integrate third-party products into their platforms. Developers needn't contend with additional integration and testing.
Texas Instruments' Code Composer Essentials for the 16-bit MSP430 microcontroller is one brand-new development tool based on Eclipse 3.0. Most of the package is based on the open-source Eclipse framework with TI-specific enhancements in the compiler code generator and the debugger.
Debuggers, especially the gdb graphical Linux debugger, are expected to show only minor improvements this year. Diagnostic-tool improvement hasn't been stalled, though. These days, developers are becoming more versed in trace tools.
For instance, LynuxWorks SpyKer Pro brings enhanced trace analysis tools to Linux. SpyKer Pro uses dynamic runtime instrumentation, enabling it to provide trace information for any application. With its improved filtering and sophisticated search criteria, conditions such as deadlock and priority inversion can be identified. SpyKer is available as a standalone tool or as an Eclipse plug-in.
Secure hardware, encryption acceleration, and a significant rise in embedded connectivity have heightened the demand for security-savvy developers. They must have strong knowledge of good security practices, as well as attack methodologies and ways to prevent system subversion. Liability is raising its ugly head, and building a secure system is the only way to protect your company and customers.
But don't be too quick to lead the way. Security stacks are becoming as ubiquitous as network stacks, though security stacks tend to be much more confusing. Minimal standards for higher-level protocols and procedures mean early adopters could be building themselves into a proprietary trap and potentially a support nightmare. There are many standards, such as encryption methods like the Advanced Encryption Standard (AES). But standards are only part of the puzzle. Understanding will be the key, so make the investment up front. Security isn't something that can be designed late in a system.
Safety- and mission-critical issues are gaining prominence during the development process as embedded applications take on more ambitious tasks in automotive, medical, aerospace, and other applications. Developers in these areas are well aware of the standards, tools, and techniques available. But these methods are moving into the embedded mainstream too, because one of the main concerns of a safety-critical design is minimization of defects.
Compiler support is increasing for safety-oriented standards MISRA C and Embedded C++. Java will continue to grow in importance when it comes to safety-critical applications. This year, look for safety-critical Java standards that incorporate changes such as no garbage collection; strong, compile-time syntax checking; and safety-critical libraries that are smaller and different than standard Java libraries.
Finally, UML will continue to make its impact felt in this area. Error minimization is only part of the solution. Ensuring the application does what it was designed to do is equally important. UML's methodology and new tools from UML vendors will make this year very interesting for existing and new UML developers.