Note: The tools that are referenced next are future projects and ideas that may be developed in the scope of the RTEMS Centre project.

Core File Generation Tool

With this tool a user shall be able to trace back to the point were the program failed. A system failure may either be the consequence of some unexpected exception or simply an unsuccessful assertion in the application code . When the system fails a raw memory dump is sent to the developer’s computer, which will then use this tool to generate a core file. The core file must then be loaded into GDB.

Remote Debug Monitor Tool

With this tool a user shall be able to load an application in ELF format. This tool envisage to support only the a.out-sunos-big file format.

PROM Image Builder Tool

This is a tool that encapsulates the user application in an image file that is ready to be burned into a boot PROM of an ERC32 or LEON system.

The main objective of the tool is to log the behaviour of an RTEMS application executing in a board or in a simulator. The data collected is then presented in a graphical mode , providing an easy way to observe the execution flow of the RTEMS system when running an RTEMS Application . This tool can help in the detection of eventual flaws as well as possible optimizations to the system by monitoring both temporal (e.g. which task is executing at a given point in time) and spatial changes (e.g. memory usage) in the system. The development of this tool arises from the fact that crucial systems (by example: space systems) present a high-level of criticality in consequence it is vital that the temporal behaviour of an RTEMS application is study in detail.

Some of the information that is monitored regards the:

  • Task execution flow;
  • System calls;
  • Software interrupts;
  • Hardware interrupts;
  • Memory usage;
  • CPU usage;

The RTEMS Timeline Tool was developed in such a way, that it can log all the moments that happen the following events (if they are selected to be monitored by the tool):

  • Schedulability analysis (Task execution flow);
  • RTEMS API calls (System calls);
  • Interrupt Generation (Hardware and Software interrupts);
  • Configuration Tables:
    • RTEMS Workspace address;
    • RTEMS Workspace size;
    • RTEMS Workspace free memory;
    • Heap size (given to libc);
  • Stack and Memory usage;

In particular, all the RTEMS API primitives can be monitored, including, for example:

  • rtems_semaphore_obtain;
  • rtems_semaphore_release;
  • rtems_semaphore_create;
  • rtems_semaphore_delete;
  • etc; 

or even,

  • rtems_task_create;
  • rtems_task_delete;
  • rtems_task_suspend;
  • rtems_task_wake_after;
  • rtems_task_wake_when;
  • etc;

It is also possible to monitor the interrupt occurrence and internal scheduling events , such as:

  • thread priority changes (due for example, to semaphore inherence/ceiling protocols);
  • thread insertion in the ready queue;
  • thread removal from the ready queue;
  • thread context switch;
  • thread begin;
  • etc;

Other context dependent parameters, such as:

  • thread maximum stack size;
  • dynamic memory allocation;

can also be monitored.

The main objective on the development of this RTEMS tool is to provide developers an easy way to configure RTEMS applications.

The idea for this tool arose from the fact that an application developed for the RTEMS system needs several the configuration parameters to be difinedwhich can be overlooked on its configuration phase by the application developer who is developing it.

This tool tries to simplify the  development process of RTEMS applications through the introduction of a graphical interface for its configuration , which is complemented with contextual help when the situation justifies.

At the same time it allows the management of resources used by the RTEMS application and this way minimize resource usage .

 

The RTEMS Application Configuration Tool allows users to:

  • easily configure a RTEMS application and at the same time permit minimum resource usage .
  • use the Eclipse environment for the development of RTEMS applications as a plug-in.
  • launch a standalone instance of the tool through the commandline .
  • configure relevant options in an easy manner with the aid of contextual help for each one.
  • check the application’s memory footprint .

The RTEMS Application Configuration tool GUI provides access to the configuration of elements of RTEMS Applications such as:

  • RTEMS managers ;
  • Stacks (number of stacks, extra stacks, presence of floating point stack);
  • Objects (maximum number of objects according to their type);
  • Libraries (C and Math);
  • Debug (remote stub and symbols);
  • File System ;
  • Networking;

The main objective of this RTEMS Tool is to provide users an easy way to deploy RTEMS on their systemfreeing the developer from most problems that are usually associated with the installation process of RTEMS. This is due to the existence of several configuration parameters in RTEMS as well as the baseline tools (e.g. binutils, GCC or Newlib) that it depends on, which may overwhelm newcomers in its configuration step  or even could become an annoyance and a waste of development time for the software developer who wants to use the RTEMS system.

For example, some of the challenges for developers that are new to RTEMS include:

  • Knowing which tools are needed to build a development system;
  • Knowing which versions of those tools should be used ;
  • Knowing what patches need to be applied . This is due to the fact that the RTOS is highly dependent on its baseline tools and the use of different versions than the ones that were intended to be used can break the system;
  • Knowing what are the host and target systems for which the tools will be built for;
  • Enabling support for the desired programming languages ;

For RTEMSsome of the features to be considered include the possibility of the selection of:

  • Networking;
  • Remote debugging ;
  • APIs;
  • Target boards ;
  • Multiprocessing;
  • Test suites ;
  • Debugging support (for RTEMS itself);
  • Documentation;

The RTEMS Configuration and Installation Tool will allow the users to:

  • Chose for each RTEMS version , a default installation profile (in order to simplify the deployment process);
  • Select the baseline tools needed for RTEMS installation from the local file system or from a remote location;
  • Adjust the settings generated by the tool before the installation procedure starts;
  • Save the installation script to a user specified location;
  • Save/Load the configuration parameters to/from a file;