Software Development, Real-time Software, Development Suite,
Taking away the pain
The first point of pain in developing a control software application is the construction of a cyclic schedule, since such applications involve processing periodic inputs and outputs on different interfaces not necessarily all at the same frequency. The standard practice is to construct this schedule manually; which, depending on the complexity the application, could take weeks. Simulations are then run to determine the jitter performance of the schedule for each task. However, the end-to-end response performance of the application and the requisite buffer sizes are not known until the application is completed so that these metrics can be measured. If the tests show that the schedule needs to be modified, then the whole process needs to be repeated.
The Canavita solution takes away the pain and tedium of these chores by automating much of them. In particular:
- The application schedule is constructed automatically.
- The resulting processing jitters are computed automatically.
- The consequent buffering and storage requirements are also calculated automatically.
- Even the C code for implementing the application schedule is generated automatically.
All of this is done in a matter of seconds, not weeks. The mathematically rigorously calculated static bounds on queue backlogs and response times add assurance to the results of the tests that are carried out following system integration.
The Canavita real-time software development suite (CASTE Suite) accelerates the development of integrated modular real-time software applications as follows:
- Free the system architect and the system integrator from the tedium of scheduling design, so that they can focus on their domain-specific concerns.
- C-Language support and XML template input parameters. Rather than forcing the developers to learn yet another programming language, they can continue to write their code in C. Similarly, the architect specifies the parameters of the application by populating text-based XML templates.
- CaRTE - The Canavita real-time executives come with CPU-time policers and input-rate policers built into them; the architect simply specifies the parameters of the policers. Thus capacities allocated statically at compile time are rigorously enforced and guarded at run-time. Any run-time task faults are isolated and the user fault-management function is notified. Practical experience has shown us such policers prove their worth even at the system-integration phase of the project.
- A rich menu of real-time executives (RTE’s) to choose from. Users can choose the scheduling model that best suits the application. For instance, for control applications, which are sensitive to jitter, we offer a cyclic time-triggered RTE. Alternatively, if the application demands event-driven responsiveness, the user can employ our event-triggered priority-based RTE.
- CASTE - the Canavita Automatic System Timing Engine - analytically deduces, from the parameters specified by the architect, deterministic bounds on queue backlogs and response times. These bounds add assurance to the results of tests carried out following the system integration phase of the project, in the sense that, if implementations of the individual tasks have remained faithful to the design specifications and real-time budgets, then the measurements cannot exceed the analytic bounds.
- Automatic timing parameter calibration - In order to calibrate the real-time overhead incurred by a Canavita RTE for a given target computer, we provide calibration functions in our CASTE suite.
- Worst-Case / Upper Bound Analysis - By using probablistic methods, the CASTE Suite can quantify upper bounds for a desired confidence levels based on the measured values
- Customizable solutions for complex application for in-house expertise to devise a suitable scheduler
- Multi-platform, multi-CPU architectures, multi-Core CPU support
The following two applications show how easily and naturally real-time applications can be expressed in the Canavita paradigm. Namely, the observation that such app's consist of the following four logical parts:
- system inputs
- periodic timers
- tasks that act upon or are invoked by system inputs and timers
- and data communicated between tasks.
- a vehicle control system consists of six processing nodes networked through a CANbus
- a prototypical electronic threat detection and response system for a military aircraft
, Real-time Software
, Software Development