Lineo’s Embedix SDK (Software Development Kit) is a collection of tools designed for developing embedded Linux applications. The tools work on most Linux distributions, and the SDK comes with a copy of Caldera OpenLinux 2.3. OpenLinux includes the GNU compiler collection (GCC), but many developers will want to take advantage of the included Metrowerks CodeWarrior, an X Windows-based graphical development environment. Unfortunately, CodeWarrior comes with only online documentation; we’d prefer printed documentation.
The centerpiece of the SDK is the Embedix Target Wizard. This tool takes the disparate components of an embedded environment (including the operating system and application), strips out unneeded information, and generates a compact binary that can be downloaded onto an embedded system. The Target Wizard is project-oriented, so it’s easy to copy projects and make adjustments to test different configurations. It also takes care of many annoying chores, including checking dependencies for missing components. Development is typically done using C, C++, or assembler, although any available compiler can be used if it can generate code for the target processor. The Wizard can currently target the x86 and PowerPC processors.
Linux is the target operating system, but Linux by itself lacks the real-time support needed by time-critical applications. Lineo’s Embedix Realtime, a hard real-time RTOS, is included with the SDK and uses the RTAI (real-time application interface) to provide RT support for RT applications. This approach allows conventional Linux applications to run by making the traditional Linux APIs available also. This split architecture forces the use of interprocess communication between these two types of applications, but this approach is normally used so time-critical components are isolated.
We liked the additional SDK tools such as the R2D2 Debugger and the Linux Trace Toolkit. These are critical for remote debugging and can even be used over an Ethernet connection. The printed documentation that came with the tools was excellent as well.
We did find the Embedix SDK installation lacking though. Each component is installed separately, and most involve manually editing configuration files or scripts. Most embedded developers will be experienced Linux users, so this should not be a major problem; still, the installation process could be made significantly easier.
The steep learning curve may be a problem for those expecting to get an embedded application out the door quickly. Embedded development is more complex than desktop or server application development. CodeWarrior takes a while to master, but the result is well worth the effort.
Embedix SDK includes all the software necessary for developing and testing an embedded system. The graphical development environment will appeal to most developers, although the targeting tools and RTOS work equally well with command-line tools.
While Embedix SDK is definitely not for desktop or server application development, it is hard to beat for building an embedded Web server or any other type of embedded application — even those that require real-time support.