Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
WSymb
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
OTAWA-plugins
WSymb
Commits
cb372201
Commit
cb372201
authored
1 year ago
by
Forget Julien
Browse files
Options
Downloads
Patches
Plain Diff
Test, update, authors.
parent
d6aeced4
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
README.md
+22
-12
22 additions, 12 deletions
README.md
WCET-procedure-arguments-as-parameters.md
+5
-11
5 additions, 11 deletions
WCET-procedure-arguments-as-parameters.md
do_in.sh
+3
-5
3 additions, 5 deletions
do_in.sh
with
30 additions
and
28 deletions
README.md
+
22
−
12
View file @
cb372201
...
@@ -2,15 +2,16 @@
...
@@ -2,15 +2,16 @@
WSymb: Symbolic Worst-Case Execution Time (WCET) computation.
WSymb: Symbolic Worst-Case Execution Time (WCET) computation.
*
Version 1.
0.0
(for OTAWA v2),
April
202
0
*
Version 1.
1
(for OTAWA v2),
December
202
3
----
----
## Authors
## Authors
*
Clement Ballabriga
<Clement.Ballabriga@nospamuniv-lille.fr>
*
Clement Ballabriga
<Clement.Ballabriga@nospamuniv-lille.fr>
*
Julien Forget
<Julien.Forget@nospamuniv-lille.fr>
*
Julien Forget
<Julien.Forget@nospamuniv-lille.fr>
*
Celestine Sauvage
<celestine.sauvage@nospamgmail.com>
*
Sandro Grebant
<sandro.grebant@nospamuniv-lille.fr>
*
Sandro Grebant
<sandro.grebant@nospamuniv-lille.fr>
*
Giuseppe Lipari
<giuseppe.lipari@nospamuniv-lille.fr>
*
Celestine Sauvage
<celestine.sauvage@nospamgmail.com>
License: GPL 2.1 or higher.
License: GPL 2.1 or higher.
...
@@ -20,12 +21,12 @@ Please remove "nospam" from the email addresses.
...
@@ -20,12 +21,12 @@ Please remove "nospam" from the email addresses.
## Introduction
## Introduction
WSymb is a WCET analysis tool. Its main specificity is that, instead
of
WSymb is a WCET analysis tool. Its main specificity is that, instead
a constant WCET, it computes a
*WCET formula*
, where symbols (or
of
a constant WCET, it computes a
*WCET formula*
, where symbols (or
parameters) can correspond to various kinds of values unnkown at
analysis
parameters) can correspond to various kinds of values unnkown at
time. The formula can later be
*instanciated*
, when parameter
values are
analysis
time. The formula can later be
*instanciated*
, when parameter
known. For more details on the underlying theory, check out
the papers
values are
known. For more details on the underlying theory, check out
[1,2].
the papers
[1,2].
WSymb consists of several separate parts:
WSymb consists of several separate parts:
...
@@ -43,6 +44,12 @@ WSymb consists of several separate parts:
...
@@ -43,6 +44,12 @@ WSymb consists of several separate parts:
*
The instantiation of the WCET formula relies on an API documented in
*
The instantiation of the WCET formula relies on an API documented in
`pwcet/include/pwcet-tuntime.h`
.
`pwcet/include/pwcet-tuntime.h`
.
*
`WCET-procedure-arguments-as-parameters.md`
: this file describes an
extension to the original analysis, which analyzes the binary code
of a procedure to produce a WCET formula that represents the WCET of
the procedure as a function of its arguments. It implements the
approach presented in [2].
A complete example covering all these different parts is provided in
A complete example covering all these different parts is provided in
directory
`example`
.
directory
`example`
.
...
@@ -163,8 +170,11 @@ so:
...
@@ -163,8 +170,11 @@ so:
----
----
## References
## References
[1] Ballabriga, C., Forget, J., & Lipari, G. (2018). Symbolic WCET computation. ACM Transactions on Embedded Computing Systems (TECS), 17(2), 39.
[1] Ballabriga, C., Forget, J., Lipari, G. (2018). Symbolic WCET
ISO 690
computation. ACM Transactions on Embedded Computing Systems (TECS),
17(2), 39. https://hal.science/hal-01665076
[2] https://arxiv.org/abs/1709.09369
[2] Grebant S, Ballabriga C, Forget J, Lipari G. WCET analysis with
procedure arguments as parameters. InProceedings of the 31st
International Conference on Real-Time Networks and Systems 2023 Jun 7
(pp. 11-22). https://hal.science/hal-04118213
This diff is collapsed.
Click to expand it.
WCET-procedure-arguments-as-parameters.md
+
5
−
11
View file @
cb372201
# WCET analysis with procedure arguments as parameters
# WCET analysis with procedure arguments as parameters
*
Version 1.0.0, November 2023
----
----
## Authors
## Authors
...
@@ -27,12 +25,10 @@ arguments. It implements the approach presented in [1].
...
@@ -27,12 +25,10 @@ arguments. It implements the approach presented in [1].
Required packages:
Required packages:
-
WSymb, cloned from its
-
WSymb, cloned from its
[
git
](
https://gitlab.cristal.univ-lille.fr/otawa-plugins/polymalys
)
[
git
](
https://gitlab.cristal.univ-lille.fr/otawa-plugins/polymalys
)
;
branch
``input conditionals``
;
-
Otawa for WSymb (see instructions in the README.md of WSymb);
-
Otawa for WSymb (see instructions in the README.md of WSymb);
-
Polymalys, cloned from its
-
Polymalys, cloned from its
[
git
](
https://gitlab.cristal.univ-lille.fr/otawa-plugins/WSymb
)
,
[
git
](
https://gitlab.cristal.univ-lille.fr/otawa-plugins/WSymb
)
;
branch
``input conditionals``
;
-
Otawa for Polymalys (see instructions in the README.md of Polymalys);
-
Otawa for Polymalys (see instructions in the README.md of Polymalys);
-
Basic compilation tools (make, gcc, g++, as well as the arm
-
Basic compilation tools (make, gcc, g++, as well as the arm
versions).
versions).
...
@@ -71,12 +67,10 @@ In the following, the required version is specified when necessary.
...
@@ -71,12 +67,10 @@ In the following, the required version is specified when necessary.
### Polymalys
### Polymalys
Compile Polymalys (using Otawa for Polymalys):
Compile Polymalys (using Otawa for Polymalys):
```
shell
```
shell
./do_in.sh polymalys
cd
<polymalys>
;
make
install
cd
tests
;
make
poly
./do_in.sh polymalys
make
-C
<polymalys>
install
;
make
-C
<polymalys>/tests
poly
```
```
### WSymb
### WSymb
...
@@ -84,7 +78,7 @@ Compile Polymalys (using Otawa for Polymalys):
...
@@ -84,7 +78,7 @@ Compile Polymalys (using Otawa for Polymalys):
Compile and install WSymb (using Otawa for WSymb):
Compile and install WSymb (using Otawa for WSymb):
```
shell
```
shell
./do_in.sh wsymb
cd
<wsymb>
;
make
install
;
cd
simplify
;
make
;
cd
libpwcet
;
make
./do_in.sh wsymb
make
-C
<wsymb>
install
;
make
-C
<wsymb>/
simplify
;
make
-C
<wsymb>/
libpwcet
```
```
----
----
...
@@ -106,7 +100,7 @@ file wih Otawa (any of the two Otawa versions should produce the same
...
@@ -106,7 +100,7 @@ file wih Otawa (any of the two Otawa versions should produce the same
result):
result):
```
shell
```
shell
./do_in.sh wsymb <otawa-wsymb>/bin/mkff <programme>.elf
[
function
]
>
programme
.el
f
./do_in.sh wsymb <otawa-wsymb>/bin/mkff <programme>.elf
[
function
]
>
<
programme
>.f
f
```
```
Specifying the function is optional. If the function is not specified,
Specifying the function is optional. If the function is not specified,
...
...
This diff is collapsed.
Click to expand it.
do_in.sh
+
3
−
5
View file @
cb372201
#!/bin/sh
#!/bin/sh
# update the two
first
variables as necessary
# update the two variables
below
as necessary
OTAWA_POLY
=
/home/forget/Code/
WSymb-procedures/
polymalys/otawa
OTAWA_POLY
=
/home/forget/Code/polymalys/otawa
OTAWA_WSYMB
=
/home/forget/
Code/WSymb-procedures
/otawa
OTAWA_WSYMB
=
/home/forget/
Installs/otawa-wsymb
/otawa
case
$1
in
case
$1
in
"polymalys"
)
"polymalys"
)
echo
"Executing with Otawa version Polymalys"
export
PATH
=
$OTAWA_POLY
/bin/:
$PATH
export
PATH
=
$OTAWA_POLY
/bin/:
$PATH
export
LD_LIBRARY_PATH
=
$OTAWA_POLY
/lib/:
$OTAWA_POLY
/lib/otawa/otawa/:
$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH
=
$OTAWA_POLY
/lib/:
$OTAWA_POLY
/lib/otawa/otawa/:
$LD_LIBRARY_PATH
shift
shift
$*
;;
$*
;;
"wsymb"
)
"wsymb"
)
echo
"Executing Otawa version WSymb"
export
PATH
=
$OTAWA_WSYMB
/bin:
$PATH
export
PATH
=
$OTAWA_WSYMB
/bin:
$PATH
export
LD_LIBRARY_PATH
=
$OTAWA_WSYMB
/lib:
$OTAWA_WSYMB
/lib/otawa/otawa:
$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH
=
$OTAWA_WSYMB
/lib:
$OTAWA_WSYMB
/lib/otawa/otawa:
$LD_LIBRARY_PATH
shift
shift
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment