Commit 28e0c5bf authored by Valentin Touzeau's avatar Valentin Touzeau

Merge branch 'beta'

parents 089830d0 9655e417
# 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
### Cloning repository
```
git clone https://gricad-gitlab.univgrenoble-alpes.fr/touzeauv/cache-analysis.git
cd cache-analysis
```
### 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 ../../lrumc
mkdir build
cd build
cmake ..
make
sudo make install
cd ../../lruzdd
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
```
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).
......@@ -359,7 +359,7 @@ All analysis steps are optional, and \software{lruexact} can convert all classif
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{diagrams/lrupreanalysis}
\includegraphics[width=\textwidth]{diagrams/lrupreanalysis.pdf}
\caption{Overview of the \software{lrupreanalysis} plugin}
\label{fig:lrupreanalysis}
\end{figure}
......@@ -391,7 +391,7 @@ All analysis steps are optional, and \software{lruexact} can convert all classif
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{diagrams/lruexact}
\includegraphics[width=\textwidth]{diagrams/lruexact.pdf}
\caption{Overview of the \software{lruexact} plugin}
\label{fig:lruexact}
\end{figure}
......@@ -418,7 +418,7 @@ All analysis steps are optional, and \software{lruexact} can convert all classif
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{diagrams/lruzdd}
\includegraphics[width=\textwidth]{diagrams/lruzdd.pdf}
\caption{Overview of the \software{lruzdd} plugin}
\label{fig:lruzdd}
\end{figure}
......@@ -442,7 +442,7 @@ All analysis steps are optional, and \software{lruexact} can convert all classif
\begin{figure}[ht]
\centering
\includegraphics[width=\textwidth]{diagrams/lruzdd}
\includegraphics[width=\textwidth]{diagrams/lruzdd.pdf}
\caption{Overview of the \software{lruzdd} plugin}
\label{fig:lruzdd}
\end{figure}
......
#!/bin/bash
git submodule update --init
red='\033[0;31m'
green='\033[0;32m'
blue='\033[0;36m'
nc='\033[0m'
display_message () {
local message="$1"
local color="$2"
echo -e "${color}INSTALL SCRIPT: ${message}${nc}"
}
fail () {
local error="$1"
display_message "${error}" "${red}"
exit
}
build_module () {
local location=$(pwd)
local module="$1"
local module_folder="dependencies/$module"
display_message "Build and install module ${module}" "${blue}"
cd "${module_folder}"
mkdir -p build || fail "Error: Cannot create build directory for module ${module}"
cd build
cmake .. || fail "Error running \"cmake ..\" for module ${module}"
display_message "Building module ${module}..."
make && display_message "Module ${module} build" "${green}" || fail "Error running \"make\" for module ${module}"
display_message "Installing module ${module}..."
sudo make install && display_message "Mdule ${module} installed" "${green}"
cd "${location}"
}
build_module "lrupreanalysis"
build_module "lruexact"
build_module "lrumc"
build_module "lruzdd"
build_module "lrusecurity"
#lrupreanalysis
#lruexact
#lrumc
#lruzdd
#lrusecurity
#ocache
#
#cd dependencies/module/
#mkdir build
#cd build
#cmake ..
#make
#sudo make install
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