Analyze your code with Bound-T to get
A real-time program must meet its deadlines every time and all the time. Bound-T is a software tool that helps you create reliable real-time software. By static analysis of the code, Bound-T computes an upper bound on the execution time. Thus it is easy to verify that deadlines are met even in the worst-case execution path.
Bound-T lets you deliver hard real-time software with confidence in its performance. For soft real-time programs, Bound-T can find the execution time of different execution scenarios to help you compute average response times and CPU loads. In both cases, Bound-T reduces the cost of performance verification.
Traditionally, real-time performance is verified by measuring the execution time of a set of test cases. It is often hard to define the worst-case execution scenario, and cumbersome to set up a realistic test harness in which the scenario can be run and measured. Static analysis, as in Bound-T, needs neither test cases nor test harness.
Using sophisticated methods of data-flow analysis and arithmetic modelling, Bound-T finds the loop-counter variables and bounds their initial and final values, thus bounding the number of loop repetitions.
Since Bound-T analyses the executable code, it is independent of the source language of the target program. It even handles mixed-language programs, for example programs that use assembly language libraries.
In some cases, Bound-T may be sensitive to the target compiler. Some compilers use library routines with non-standard calling sequences, or special code idioms for things like switch/case statements. Tidorum strives to make Bound-T compatible with the major compilers for each target.
Bound-T can analyse code for which the source is not at hand, for example mathematical libraries. (Note that target software licenses may limit such analysis.)
Rare events, such as hardware failures, can be excluded from the "worst case" software scenario by user-written assertions on variable values, loop bounds, and the number of times specific calls are executed. Such assertions also support the analysis of complex programs that cannot be analysed fully automatically. Good coding style reduces the need for assertions. Assertions are written as text files. By modifying the assertions, various execution scenarios can be analysed, for example to find the program's response times under various input loads.
In analysis and architectural design, you can use Bound-T to verify real-time design issues such as execution time budgets for each operation. A skeleton program can be built with the real loop and call structure but with all computations replaced by dummy loops that use the budgeted time. Bound-T can compute the overall execution time to verify that the overall deadlines are meet with these budgets.
During coding and testing, you can use Bound-T to verify that each operation meets its time budgets. The program does not have to be complete or executable, only linkable.
Finally, you can verify that the full program meets its deadlines by analysing its schedulability based on the worst-case execution times given by Bound-T.
Bound-T is aimed chiefly at small and mid-sized embedded processors. It is able to model pipeline timing but does not currently model the real behaviour of caches. This leads to overestimated (conservative) times for such features.
Static execution-time analysis is unsolvable in general. For Bound-T, the target program mustbe recursion-free and have a reducible loop structure. With automatic loop analysis, the analysis time depends strongly on the flow-complexity of target subprograms, otherwise the analysis time is proportional to the size of the target program.
Since Bound-T analyses machine code, a specific version is provided for each type of target. The currently supported target processors are shown in the table below.
| Type | Series | Models | Compatible tool-chains | Available |
|---|---|---|---|---|
| 8-bit controller | Intel-8051 | Several | Keil C51, IAR Systems, and others | Now |
| 32-bit DSP | Analog Devices | ADSP-21020< | ADI g21k (gcc) | Now |
| 32-bit general | SPARC V7 | ERC32 single-chip | gcc, Gnat, ORK | Now |
Work is in progress on support for the target processors ARM7TDMI, Atmel
AVR and Renesas H8/300.
Tidorum tracks the market for embedded processors to select new targets and welcomes your suggestions. Thanks to modular design, Tidorum can adapt Bound-T to customer-specified targets; please ask for an offer.
Bound-T can be executed on host platforms as follows. All targets are generally supported on all platforms.
| CPU | O/S | Available |
|---|---|---|
| SPARC | Solaris | Now |
| Intel | Linux | Now |
| Intel | Win NT (with CygWin) | Now |
Bound-T is implemented using standard programming languages and portable coding styles. If you would like to use Bound-T on a platform that is not listed above, please us known and we will evaluate if a port is feasible.
Tidorum Ltd was founded in 2003 to further develop, sell and support Bound-T, taking over these functions from Space Systems Finland Ltd (SSF) where Bound-T was first developed.
SSF developed Bound-T at first for the European Space Agency and successfully used it in space projects (for example, in the DEBIE instrument. Tidorum is now making Bound-T commercially available in various ways as detailed below.
Tidorum offers a service where Tidorum uses Bound-T to analyse the real-time performance of a customer program. This can take place at Tidorum premises, or at the customer site.
Bound-T will be delivered for use at customer premises under various forms of licensing. Please contact Tidorum for further information.
Tidorum will provide support and training for Bound-T. Please contact Tidorum and let us know your needs.
The following documents are supplied with Bound-T and are also freely available on the web:
| Web | http://www.tidorum.fi |
| info@tidorum.fi | |
| Phone | +358 (0) 40 563 9186 |
| Fax | Not available |
| Tidorum Ltd Tiirasaarentie 32, FI-00200 Helsinki, Finland |
Please note that our office hours are 9 to 16 Finnish time (GMT + 2 hours, or +3 hours in the summer).
Acknowledgements. Bound-T was first developed at Space Systems Finland Ltd (SSF) with support from the European Space Agency (ESA/ESTEC). Free software has played an important role: we are grateful to Ada Core Technology for the Gnat compiler, to William Pugh and others for the Omega system, to Michel Berkelaar for the lp-solve program, and to Mats Weber, Ted Dennison and EPFL-DI-LGL for Ada programming component libraries. Call-graphs and flow-graphs from Bound-T are displayed with the dot tool from AT&T Bell Laboratories.