- 1 Building OTAWA
- 2 Computing a WCET
- 3 Writing an OTAWA Application
- 4 Control Flow Graphs
- 5 Property Work
- 6 Code Processors
- 7 Features
- 8 Using ELM
- 9 Performing Iterative Data Flow Analysis
- 10 Using Abstract Interpretation
- 11 References
- 12 Architecture Formats
This section describes the requirements to build and use the OTAWA framework.
OTAWA has been mainly tested on a 32 and 64-bits Linux OS but it should work well with any other POSIX-compliant Unix system. Feel free to contact us for any problem at firstname.lastname@example.org.
To build OTAWA, the following tools are required:
Depending on the use of OTAWA, you should also install :
OTAWA has been tested on the following platforms:
|Linux||Ubuntu from 6.10||x86, x86_64|
|Windows||XP, 7||x86, x86_64|
Just download the binary version from http://www.otawa.fr .
Unzip the archive and that is: it is ready to use:
$ tar xvf package.tar.bz2
Replace "package" with the right package name.
OTAWA commands are available in the directory package/bin and you should want to add them to your PATH:
Just download the source version from http://www.otawa.fr .
Unzip the archive, choose an installation directory and launch the build script:
$ tar xvf package.tar.bz2 $ cd package $ make PREFIX=installation_directory
Replace the "package" by the right package name and installation_directory by the directory where OTAWA has to be installed.
Although it is a bit harder, it may be useful to install OTAWA directly from the source repository to stay up to date with the OTAWA development process. OTAWA is using the Mercurial source manager (http://mercurial.selenic.com/).
To get a module composing OTAWA (called MODULE in the commands below), you have to type:
hg clone https://anon:email@example.com/hg/TRACES/MODULE/trunk MODULE
The idea is that all OTAWA dependencies sources have been unpacked in a directory at the same level as the sources of OTAWA. We call this directory BUILD_DIR and call the installation directory INSTALL_DIR.
move to the building directory
$ cd BUILD_DIR
retrieve and compile the GLISS2 utility
$ cd gliss2 $ make
get the core architectures and compile them (in the same directory as GLISS2) such that they can be linked with dynamic libraries
$ cd ARCH $ make WITH_DYNLIB=1
get the the lp_solve package, unpack it and rename it lp_solve5. Apply the following commands to compile it:
$ cd lp_solve5 $ patch -p1 < PACTH_FILE $ cd lpsolve55 $ sh ccc
The PATCH_FILE file may be accessed .
finally, get gel, elm and otawa and compile with the following commands:
$ cd PACK $ cmake . -DCMAKE_INSTALL_DIR=INSTALL_DIR $ make install
oRange is tool used to determine automatically loop bounds. It is very handy to compute WCET and you should need it. To compile it,
get frontc and compile it (a simple make invocation is enough),
$ cd frontc $ make
then compile oRange and install it
$ cd oRange $ make install PREFIX=INSTALL_DIR
Building an extension is easier: you have just to check that the otawa-config utility is in the command path (add to your PATH or equivalent variable the path INSTALL_DIR'/bin'. Then, just type the following command:
$ cd PACKAGE $ cmake . $ make install
Notice that some extensions have dependencies on GLISS2 packages (for example, otawa-sparc extensions requires the sparc instruction set). In this case, compile the GLISS extension before the OTAWA extension.