System-on-Chip (SoC)
Embedded OS
Open Source
Embedded displays (LCD)
Embedded Ethernet
Wireless
Eclipse platform
FPGA Design
JTAG
Planar transformer
Embedded multimedia
Set-top box
Mobile software platforms

STWorkbench is the integrated development environment for the digital television receivers based on ST processors

The STWorkbench environment confirms the general tendency of shifting to the open standards of the Eclipse platform that has been observed in the industry of the embedded systems development environments for the recent years. STWorkbench, the development environment for the digital television receivers based on the ST processors, is not an exception. The open platform offers the advantages and flexibility, previously not available in the proprietary environments.

STMicroelectronics company is a world leader producing processors for the digital television receivers. STMicroelectronics provides software engineers with the set of components required. These are, first of all, the embedded OS21 and STLinux operating systems.

OS21 is a real-time operating system (RTOS), featuring all the functions required and permitting to create compact applications with the minimum requirements to the software resources.

STLinux is based on the widely used operating system Linux, and as a result, provides all the advantages typical of this OS.

One more essential support component for software application development is STWorkbench integrated development environment (IDE). IDE allows to work with the applications for the OS21 and STLinux operating systems. The main principles of the use are the same, the difference is in the availability of tools for the core and STLinux core modules debugging and in the complexity of the setting of the compilation and debugging tools.

The current STWorkbench version is an enhanced version of the Eclipse 3.4 ("Ganymede") development environment and includes the CDT 5.0 C/C++ development plug-ins.

Additionally, it provides the following STLinux- and OS21-specific functionality:

  • managed make and debug of the applications and libraries
  • integrated STLinux kernel configuration and build
  • kernel debugging using KGDB or the ST40 JTAG Kernel Debugger
  • the ability to launch debug sessions from the command line
  • target filesystem browsing
  • host-target file transfer
  • core file debugging
  • user application profiling
  • system profiling using OProfile
  • graphical system tracing with KPTrace

OProfile is a tool of the system performance monitoring that has a minor impact on its operation. It consists of a kernel driver and a daemon for collecting sample data, and several post-profiling tools for turning data into information. OProfile leverages the hardware performance counters of the CPU to enable profiling of a wide variety of interesting statistics, which can also be used for basic time-spent profiling. All code is profiled: hardware and software interrupt handlers, kernel modules, the kernel, libraries, and applications. STWorkbench uses VisualOProfile for the OProfile configuration and graphic expression of the data.

Figure 1. Window of Oprofile results

KPTrace is a dynamic kernel tracing solution for STLinux. It allows tracepoints to be added to the kernel, and provides a simple interface to configure, collect and view the trace. Over three hundred useful tracepoints are pre-defined, including interrupts, system calls, and much more. New tracepoints can be added on any kernel symbol without rebuilding or rebooting the system. All tracepoints can be enabled and disabled at runtime, and, because only enabled tracepoints are actually present in the kernel, the system intrusion is minimized.

Figure 2. Window of Kptrace results

Moreover, the package also contains a number of useful third party plug-ins:

The Remote System Explorer (RSE) is a toolkit that allows you to connect and work with a variety of remote systems. With the predefined plug-ins, you can look at remote file systems, transfer files, do remote search, execute commands and work with processes.

Mylyn is an Eclipse subsystem that operates tasks. Mylyn dynamically adjusts the Eclipse interface, leaving just those elements in the resource tree that comply with the current task.

Subclipse is the Subversion plug-in for Eclipse.

AnyEdit adds extra functions to the contextual menu of the editors, based on the Eclipse word processor, to the Eclipse main menu and to the quick launch panel.

ColorEditor is an editor with the syntax highlighter.

TimeDoctor is a tool for the visualization of task tracing performance, queues, cache behavior, etc. First, it was aimed at the embedded media processors for the audio/video data-flow applications analysis, but it is also used in some other ways.

ECalc is a plug-in that allows to work with the mathematical expressions.

EHEP is a plug-in that allows to browse and edit any files in the hex mode.

STWorkbench can be used with the existing software projects. IDE only adds small service files to the project tree, and the make files origin collection is used for the compilation.

STWorkbench has an intuitively comprehensive interface that allows even the beginners without any efforts to master the debugging methods. The possibility of the simultaneous debugging of the Linux cîre and user application makes it an essential tool for the experienced programmers, as well.