Commit 9655e417 authored by Valentin Touzeau's avatar Valentin Touzeau

Merge branch 'new_readme' into beta

parents ef8190ec 62fae8e5
# Cache Analysis
# Welcome on the homepage of the Cache Analysis Plugin for Otawa !
## Prerequisites
### Installing Otawa v2
Refer to the official Otawa website - [http://www.otawa.fr] - to install it.
Here are the instructions to install Otawa itself:
```
mkdir otawa
cd otawa
wget http://www.tracesgroup.net/otawa/packages/otawa-install.py
chmod u+x otawa-install.py
./otawa-install.py
rm otawa-install.py
```
In addition to Otawa, you might need some other packages to analyze a program:
* orange to extract loop bounds from C sources
* otawa-arm to parse arm binary
* otawa-lp_solve5 to solve the ILP problem and get a WCET
Those can be installed using the Otawa installer:
```
./bin/otawa-install.py orange otawa-arm otawa-lp_solve5
```
Note that the otawa-install.py script does not actually install anything.
In order to use Otawa framework, you will have to copy lib, bin and include directories to an appropriate locations, like /usr/local/lib, /usr/local/bin and /usr/local/include.
## Cloning Cache Analysis Project
```
git clone https://gricad-gitlab.univgrenoble-alpes.fr/touzeauv/cache-analysis.git
cd cache-analysis
```
This repostory mainly consists in several Otawa modules used to perform several kind of cache analyses.
You can build and install them automatically using the (experimental) installation script provided:
```
./install.sh
```
Note that the script installs modules at the location given by otawa-config (by default, /usr/local/...) which might requires root privileges.
The installation script will thus prompt for your password (through sudo) when required.
Similarly, it might require gitlab credentials when cloning submodules.
Alternatively, you can clone, build and install all modules manually as described below
### Initialize submodules
```
git submodule update --init
```
## Building Cache Analysis Tools
ocache, the only tool currently provides relies on three unofficial Otawa plugins you need to build before ocache.
### Building dependencies
Note that the order of plugins installation matters, because of some internal dependencies
Here is one way to build them:
```
cd dependencies/lrupreanalysis/
mkdir build
cd build
cmake ..
make
sudo make install
cd ../../lruexact/
mkdir build
cd build
cmake ..
make
sudo make install
cd ../../lrumc
mkdir build
cd build
cmake ..
make
sudo make install
cd ../../lruzdd
mkdir build
cd build
cmake ..
make
sudo make install
cd ../../lrusecurity
mkdir build
cd build
cmake ..
make
sudo make install
```
Note that the default install directory used is provided by otawa-config.
### Building Cache Analysis Tools
You can then proceed to the ocache building and installation:
```
cd ../../
mkdir build
cd build
cmake ..
make
```
### Building documentation
The current state of the user guide can be obtained using the following command:
```
The aim of this plugin is to provide an efficient and optimally precise analysis of LRU caches in Otawa.
All the documentation is currently being rewritten.
You will find the most up-to-date information on the [wiki](https://gricad-gitlab.univ-grenoble-alpes.fr/touzeauv/cache-analysis/-/wikis/Home) of this project.
If you do not find what you are looking for, you can try the older version of the documentation in the doc directory of this repository.
Finally, you can also contact me at [Valentin.Touzeau@cs.uni-saarland.de](mailto:valentin.touzeau@cs.uni-saarland.de).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment