summaryrefslogtreecommitdiff
path: root/doc/energy-kratos.md
blob: 3d47a1cc57f8088d5600978d553593ed7ed92430 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Diese Anleitung beschreibt die Generierung von Energiemodellen mit dfatool und
Kratos. Sie geht von der folgenden Verzeichnisstruktur aus.

* `data`: Benchmark-Messdaten
* `data/cache`: Cache für teilweise ausgewertete Benchmarks
* `dfatool`: dfatool-Repository
* `kratos`: Kratos-Repository

*kratos* enthält Gerätetreiber mit zugehörigen PTA-Definitionen
(Transitionen, Zustände und Parameter der Hardware) sowie Hilfsfunktionen für
Benchmarks. In *dfatool* liegen die Generierungs- und Auswertungsskripte.

## Benchmarkgenerierung

Die Generierung und Vermessung von Benchmarks erfolgt immer mit
`generate-dfa-benchmark.py`. Dieses muss vom Kratos-Verzeichnis aus
aufgerufen werden. Kratos muss zuvor passend konfiguriert worden sein.

Konfiguration:

* msp430fr5994 "UART on eUSCI\_A" aktiv: "uart" mit 9600 Baud auf A1
* msp430fr5994 "Timer/Counter" aktiv: 16/1/1 == 16 MHz CONTINUOUS von SMCLK auf A1
* msp430fr5994 "Cycle Counter" aktiv: via A1
* apps "dfatool energy benchmark" aktiv (und sonst nix)

Ablauf: Siehe energy-multipass.md

## Beispiel

Wenn sich msp430-etv und energytrace in $PATH befinden und ein CC1101 Funkchip
angeschlossen und in Kratos konfiguriert ist, generiert der folgende Aufruf mit
einem MSP430FR5994 Launchpad einen erfolgreichen Benchmark-Ablauf:

```
cd kratos
../dfatool/bin/generate-dfa-benchmark.py --data=../data \
--os=kratos --sleep=500 --repeat=1 --depth=3 --arch=msp430fr \
--energytrace=sync=timer model/drivers/radio/cc1101_simpliciti.dfa  src/apps/AEMR/AEMR.cc
```

Nach einigen Minuten wird unter `data` ein auf radio.tar endendes Archiv mit
Benchmark-Setup (Treiber-PTA, energytrace-Config, Traces durch den
Automaten) und Messdaten (energytrace-Logfiles) abgelegt. Dieses kann wie folgt
analysiert werden:

```
cd dfatool
bin/analyze-archive.py --info --show-model=all --show-model-error ../data/...-radio.tar
```