Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emoun/platin
https://github.com/emoun/platin
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/emoun/platin
- Owner: Emoun
- Created: 2024-02-28T08:58:20.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-03-07T13:31:27.000Z (10 months ago)
- Last Synced: 2024-03-07T14:48:25.015Z (10 months ago)
- Language: Promela
- Size: 2.14 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Roadmap: ROADMAP
Awesome Lists containing this project
README
PLATIN toolset
==============This directory contains the PLATIN tools for manipulating, generating
and transforming PML files.Setup
-----
### Recommended
* `./setup.sh`
* `export PATH=:$PATH`### Alternative
* `./install.sh -i `
* `export PATH=/bin/:$PATH`Requirements
------------* ruby 1.9 or newer (mandatory)
- ruby 2.6.3 known to work
* lpsolve
- sudo aptitude install liblpsolve55-dev
* Ubuntu/Debian specific
- point LD_LIBRARY_PATH to the lpsolve library, e.g `export LD_LIBRARY_PATH=/usr/lib/lp_solve:$LD_LIBRARY_PATH`Basic Usage
-----------* Compile test program
echo 'volatile int out; __attribute__((noinline)) void f(int x) { int i; for(i = 0; i<1024;i++) out+=x; } ' > test.c
echo 'int main() { f(3); f(5); return 0; }' >> test.c
patmos-clang -Wall -mserialize=test.pml -mpreemit-bitcode=test.bc -o test test.c* Analyze using aiT
platin wcet -i test.pml -b test --report
* Analyze f() using platin-internal analyzer only
platin wcet --analysis-entry f -i test.pml -b test --disable-ait --enable-wca --report
* Enable analysis of the (dynamic) execution trace [for comparison]
platin wcet --enable-trace-analysis --trace-entry main --analysis-entry f -i test.pml -b test --enable-wca --report
* Use flow facts from the (dynamic) execution trace [for early-stage development]
platin wcet --use-trace-facts --trace-entry main --analysis-entry f -i test.pml -b test --enable-wca --report
LLVM Options
------------
CodeGen/Passes:* -mserialize=FILE
* -mpreemit-bitcode=FILE
* -mserialize-roots=LISTKnown Problems
--------------* tool chain problems
- mrtc/whet -O0: Needs math libraries => problem with atan functionDemo of individual tools
------------------------MORE TO COME
Architectures
=============Notes for ARM (not up-to-date)
------------------------------# Install ARM crosscompiler (Ubuntu)
# sudo aptitude install gcc-arm-linux-gnueabi libc6-dev-armel-cross
#
# Install ARM simulator (Ubuntu)
# hg clone http://repo.gem5.org/gem5-stable
# cd gem5-stable
# emacs src/arch/arm/linux/process.cc # change linux version in line 69 to '2.6.35'
# scons build/ARM/gem5.opt
# GEM5_HOME=`pwd`# Demo
# source = src/$1.c
mkdir -p bin out# Compile using clang
patmos-clang -O1 -target arm-linux-gnueabi -marm -Xclang -backend-option -Xclang -mserialize=bin/$1.pml \
-c -o bin/$1.o src/$1.c# Link using arm-linux-gnueabi-gcc
arm-linux-gnueabi-gcc -static bin/$1.o -o bin/$1.elf# Simulate using GEM5
$GEM5_HOME/build/ARM/gem5.opt --debug-flags=Exec,-ExecMicro,ExecMacro --trace-file=$1.trace \
$GEM5_HOME/configs/example/se.py -c bin/$1.elf# Analyze using platin (pseudo costs)
platin wcet --disable-ait --trace-file m5out/$1.trace --outdir out -b bin/$1.elf -i bin/$1.pml --report