diff --git a/CMakeLists.txt b/CMakeLists.txt
index 932319d303651e79c24ccbf0f5a023f6762e4a52..b2a2c14edbead10e40657b61acf894f4ae65fb79 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,7 +77,8 @@ list(REMOVE_DUPLICATES GENERATOR_ARGS)
if(GENERATOR_ARGS)
message(STATUS "[${PROJECT_NAME}] Additional Generator Arguments: ${GENERATOR_ARGS}")
- add_definitions(-DGENERATOR_ARGS="${GENERATOR_ARGS}")
+ string (REPLACE ";" " " _TMP_STR "${GENERATOR_ARGS}")
+ add_definitions(-DGENERATOR_ARGS="${_TMP_STR}")
else()
add_definitions(-DGENERATOR_ARGS="")
set(GENERATOR_ARGS "" CACHE STRING "")
diff --git a/app/bcc1/alarm1/CMakeLists.txt b/app/bcc1/alarm1/CMakeLists.txt
index d5a06fc9995a49d86bd6bc7bc9377109d753e550..2eaf1d3affad102f124581f5a133c277bf6f405c 100644
--- a/app/bcc1/alarm1/CMakeLists.txt
+++ b/app/bcc1/alarm1/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_alarm1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm1b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm1c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_c.py
LIBS libtest
TEST_ISO
@@ -27,7 +27,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm1d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_d.py
LIBS libtest
TEST_ISO
@@ -36,7 +36,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm1e
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_e.py
LIBS libtest
TEST_ISO
@@ -46,7 +46,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm1f
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
# VERIFY verify_f.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/alarm1/osekossystem.xml b/app/bcc1/alarm1/osekossystem.xml
deleted file mode 100644
index a2f197311e64b606c61920614f06ce8d3e84a8f5..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm1/osekossystem.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>100</CYCLETIME>
- <RELTIME>100</RELTIME>
- <ACTIVATETASK>
- <TASK>H2</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-</oseksystem>
diff --git a/app/bcc1/alarm1/system.xml b/app/bcc1/alarm1/system.xml
deleted file mode 100644
index 218dd64c3c4ccecac0767dc831c72e37c6cb7af1..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm1/system.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/alarm2/CMakeLists.txt b/app/bcc1/alarm2/CMakeLists.txt
index d6740bd6b5387e9bbab3bbdec5f1b10ca07e0d7e..35162828a5651394fa487ff5a2820d3522a5d454 100644
--- a/app/bcc1/alarm2/CMakeLists.txt
+++ b/app/bcc1/alarm2/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_alarm2a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
TEST_ISO
a.cc
@@ -8,7 +8,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm2b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
TEST_ISO
b.cc
@@ -16,7 +16,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm2c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
TEST_ISO
c.cc
diff --git a/app/bcc1/alarm2/osekossystem.xml b/app/bcc1/alarm2/osekossystem.xml
deleted file mode 100644
index 7fb2daef7f49dcb3e00aca63d1cd4d9b782f623c..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm2/osekossystem.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ACTIVATETASK>
- <TASK>H1</TASK>
- </ACTIVATETASK>
- </ALARM>
-
-
- <ALARM>
- <name>A2</name>
- <COUNTER>C2</COUNTER>
- <ACTIVATETASK>
- <TASK>H2</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1024</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
- <HARDWARECOUNTER>
- <name>C2</name>
- <MAXALLOWEDVALUE>1024</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
-</oseksystem>
diff --git a/app/bcc1/alarm2/system.oil b/app/bcc1/alarm2/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..8554d581935aa35a790f78bf9854ac8ec06f382f
--- /dev/null
+++ b/app/bcc1/alarm2/system.oil
@@ -0,0 +1,62 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H1;
+ };
+ };
+
+ ALARM A2 {
+ COUNTER = C2;
+ ACTION = ACTIVATETASK {
+ TASK = H2;
+ };
+ };
+
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1024;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+ COUNTER C2 {
+ MAXALLOWEDVALUE = 1024;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+
+};
+
diff --git a/app/bcc1/alarm2/system.xml b/app/bcc1/alarm2/system.xml
deleted file mode 100644
index 218dd64c3c4ccecac0767dc831c72e37c6cb7af1..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm2/system.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/alarm3/CMakeLists.txt b/app/bcc1/alarm3/CMakeLists.txt
index 15b8011a3ca80cc04d2e5dd3df870297038cc9d2..277372cd0df1fb83bde2411bc602be428b2a71ad 100644
--- a/app/bcc1/alarm3/CMakeLists.txt
+++ b/app/bcc1/alarm3/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_alarm3a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm3b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm3c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_c.py
LIBS libtest
TEST_ISO
@@ -27,7 +27,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm3d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_d.py
LIBS libtest
TEST_ISO
@@ -36,7 +36,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_alarm3e
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_e.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/alarm3/osekossystem.xml b/app/bcc1/alarm3/osekossystem.xml
deleted file mode 100644
index 5886194cedf1395def603fd0f0f46567d382a375..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm3/osekossystem.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>100</CYCLETIME>
- <RELTIME>100</RELTIME>
- <ACTIVATETASK>
- <TASK>H3</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-</oseksystem>
diff --git a/app/bcc1/alarm3/system.oil b/app/bcc1/alarm3/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..9d292b7aacc6ab1f2fde9cf75440f52eb04e9de0
--- /dev/null
+++ b/app/bcc1/alarm3/system.oil
@@ -0,0 +1,66 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H3;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 100;
+ CYCLETIME = 100;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1024;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+
+};
+
diff --git a/app/bcc1/alarm3/system.xml b/app/bcc1/alarm3/system.xml
deleted file mode 100644
index c321f19678149470395eedc94097879bff335384..0000000000000000000000000000000000000000
--- a/app/bcc1/alarm3/system.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/complex1/CMakeLists.txt b/app/bcc1/complex1/CMakeLists.txt
index 6d8add57742146eaee4e1e4986c57012a5d99507..244d67d2c833fe4cfb7af72805a82a96b90c6c96 100644
--- a/app/bcc1/complex1/CMakeLists.txt
+++ b/app/bcc1/complex1/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_complex1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_complex1b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_complex1c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_c.py
LIBS libtest
TEST_ISO
@@ -27,7 +27,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_complex1d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
TEST_ISO
d.cc
diff --git a/app/bcc1/complex1/osekossystem.xml b/app/bcc1/complex1/osekossystem.xml
deleted file mode 100644
index 35b6cbded925c53a6adc63e6da83a20acbbba6f6..0000000000000000000000000000000000000000
--- a/app/bcc1/complex1/osekossystem.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ISR>
- <name>ISR1</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>5</DEVICE>
- </ISR>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>100</CYCLETIME>
- <RELTIME>1</RELTIME>
-
- <ACTIVATETASK>
- <TASK>H2</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
-</oseksystem>
diff --git a/app/bcc1/complex1/system.oil b/app/bcc1/complex1/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..f91912fd8b1bd2ed6bdb121848ea1ec156fa889d
--- /dev/null
+++ b/app/bcc1/complex1/system.oil
@@ -0,0 +1,59 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ISR ISR1 {
+ CATEGORY = 2;
+ DEVICE = 5;
+ };
+
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H2;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 1;
+ CYCLETIME = 100;
+ };
+ };
+
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+
+};
+
diff --git a/app/bcc1/complex1/system.xml b/app/bcc1/complex1/system.xml
deleted file mode 100644
index 6452ee5d1dbc218123541541f5011a519dd1bc22..0000000000000000000000000000000000000000
--- a/app/bcc1/complex1/system.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>ISR1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/complex2/CMakeLists.txt b/app/bcc1/complex2/CMakeLists.txt
index b7df38da3c81e0bd12cf1b8e336907f76b74aec3..67c9d5492e490c7ff357e9adf66205a1e73d47ee 100644
--- a/app/bcc1/complex2/CMakeLists.txt
+++ b/app/bcc1/complex2/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_complex2a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/complex2/osekossystem.xml b/app/bcc1/complex2/osekossystem.xml
deleted file mode 100644
index 03c05984df69cb58d721b75992f135291bdd4db6..0000000000000000000000000000000000000000
--- a/app/bcc1/complex2/osekossystem.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>NON</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
-
- <ISR>
- <name>ISR1</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>37</DEVICE>
- </ISR>
-
-</oseksystem>
diff --git a/app/bcc1/complex2/system.oil b/app/bcc1/complex2/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..d39e3f198efd9412b4ae4ca65a8ddb928a08cad7
--- /dev/null
+++ b/app/bcc1/complex2/system.oil
@@ -0,0 +1,53 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = NONE;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ ISR ISR1 {
+ CATEGORY = 2;
+ DEVICE = 37;
+ };
+
+};
+
diff --git a/app/bcc1/complex2/system.xml b/app/bcc1/complex2/system.xml
deleted file mode 100644
index 6a485d25ad6c2d13eac0eb079d1c5a5d5b358081..0000000000000000000000000000000000000000
--- a/app/bcc1/complex2/system.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>ISR1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/depsvc/CMakeLists.txt b/app/bcc1/depsvc/CMakeLists.txt
index e1c77a04f43079cc5d2139e1be9e6f4fab21fda8..f2421458825f0ac6861e2610054dc59e8490a3df 100644
--- a/app/bcc1/depsvc/CMakeLists.txt
+++ b/app/bcc1/depsvc/CMakeLists.txt
@@ -2,7 +2,7 @@ if( (${DOSEK_ARCHITECTURE} STREQUAL "posix") OR (${DOSEK_ARCHITECTURE} STREQUAL
DOSEK_BINARY (
NAME bcc1_depsvc
LIBS libdepsvc libtest
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
TEST_ISO
depsvc.cc
)
diff --git a/app/bcc1/depsvc/osekossystem.xml b/app/bcc1/depsvc/osekossystem.xml
deleted file mode 100644
index 2ddd78e7d457a3f528974e217b59c2ee70daf0f1..0000000000000000000000000000000000000000
--- a/app/bcc1/depsvc/osekossystem.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>DependabilitySystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>TRUE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>CheckedTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>PeriodicActivation</name>
- <COUNTER>PeriodicActivationCounter</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>1000</CYCLETIME>
- <RELTIME>100</RELTIME>
- <ACTIVATETASK>
- <TASK>CheckedTask</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>PeriodicActivationCounter</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
- <CHECKEDOBJECT>
- <name>area</name>
- <TYPEDEF>
- <HEADER>app/bcc1/depsvc/type.h</HEADER>
- <TYPENAME>chararray</TYPENAME>
- </TYPEDEF>
- </CHECKEDOBJECT>
-
- <CHECKEDOBJECT>
- <name>data</name>
- <TYPEDEF>
- <HEADER>app/bcc1/depsvc/type.h</HEADER>
- <TYPENAME>complextype</TYPENAME>
- </TYPEDEF>
- <CUSTOMCHECKFUNCTION>datacheck</CUSTOMCHECKFUNCTION>
- </CHECKEDOBJECT>
-
-</oseksystem>
-
diff --git a/app/bcc1/depsvc/system.oil b/app/bcc1/depsvc/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..3b1a2264fedf8da919f0638ac9187fb74be52ac5
--- /dev/null
+++ b/app/bcc1/depsvc/system.oil
@@ -0,0 +1,47 @@
+CPU TestSystem {
+
+ OS DependabilitySystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK CheckedTask {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ALARM PeriodicActivation {
+ COUNTER = PeriodicActivationCounter;
+ ACTION = ACTIVATETASK {
+ TASK = CheckedTask;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 100;
+ CYCLETIME = 1000;
+ };
+ };
+
+ COUNTER PeriodicActivationCounter {
+ MAXALLOWEDVALUE = 1000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+ CHECKEDOBJECT area {
+ TYPEDEF = chararray;
+ HEADER = "app/bcc1/depsvc/type.h";
+ };
+
+ CHECKEDOBJECT data {
+ TYPEDEF = complextype;
+ HEADER = "app/bcc1/depsvc/type.h";
+ CHECKFUNCTION = datacheck;
+ };
+};
+
diff --git a/app/bcc1/depsvc/system.xml b/app/bcc1/depsvc/system.xml
deleted file mode 100644
index 4c584d8080abff20a72e6edd80278e988880c217..0000000000000000000000000000000000000000
--- a/app/bcc1/depsvc/system.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>DependabilitySystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>CheckedTask</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/hoffmann/CMakeLists.txt b/app/bcc1/hoffmann/CMakeLists.txt
index c68c03de5d78081df147423550e7b3754ff2b165..e3471f59ff29a7741311e62d33d12406a001513c 100644
--- a/app/bcc1/hoffmann/CMakeLists.txt
+++ b/app/bcc1/hoffmann/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME hoffmann_task1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
a.cc
)
diff --git a/app/bcc1/hoffmann/osekossystem.xml b/app/bcc1/hoffmann/osekossystem.xml
deleted file mode 100644
index aa498b4dd65cd9e50c0df4863107c0e95305a15d..0000000000000000000000000000000000000000
--- a/app/bcc1/hoffmann/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/app/bcc1/hoffmann/system.oil b/app/bcc1/hoffmann/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..ce22b3a851411d0fbb9c51bd950ccd3645dfc89b
--- /dev/null
+++ b/app/bcc1/hoffmann/system.oil
@@ -0,0 +1,33 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Handler11 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Handler12 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Handler13 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+};
+
diff --git a/app/bcc1/hoffmann/system.xml b/app/bcc1/hoffmann/system.xml
deleted file mode 100644
index 41ca0c15b9d03cb20a4afccad38508d132c0e9ed..0000000000000000000000000000000000000000
--- a/app/bcc1/hoffmann/system.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/isr2/CMakeLists.txt b/app/bcc1/isr2/CMakeLists.txt
index 5e6ed593e48a5bd4eb581612ccf240142bf0249a..b4a4846a342a052caf902eeb6bbd42ef17752075 100644
--- a/app/bcc1/isr2/CMakeLists.txt
+++ b/app/bcc1/isr2/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_isr2a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_isr2b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_isr2c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_c.py
LIBS libtest
TEST_ISO
@@ -27,7 +27,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_isr2d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_d.py
LIBS libtest
TEST_ISO
@@ -36,7 +36,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_isr2e
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_e.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/isr2/osekossystem.xml b/app/bcc1/isr2/osekossystem.xml
deleted file mode 100644
index 58a0a1e75b907c698a8bf1697a164e1d98567f61..0000000000000000000000000000000000000000
--- a/app/bcc1/isr2/osekossystem.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ISR>
- <name>ISR1</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>37</DEVICE>
- </ISR>
-
-</oseksystem>
diff --git a/app/bcc1/isr2/system.xml b/app/bcc1/isr2/system.xml
deleted file mode 100644
index 6452ee5d1dbc218123541541f5011a519dd1bc22..0000000000000000000000000000000000000000
--- a/app/bcc1/isr2/system.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>ISR1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/lukas/CMakeLists.txt b/app/bcc1/lukas/CMakeLists.txt
index 3939ef7389c370f054e4a29da23960dbd318d862..24cf46124398888b43ba43cdd481caed134a4307 100644
--- a/app/bcc1/lukas/CMakeLists.txt
+++ b/app/bcc1/lukas/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_lukas_dispatch
- SYSTEM_DESC dispatch.xml
+ SYSTEM_DESC dispatch.oil
LIBS libtest
TEST_ISO
dispatch.cc
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_lukas_alarmstress
- SYSTEM_DESC alarmstress.xml
+ SYSTEM_DESC alarmstress.oil
LIBS libtest
TEST_ISO
alarmstress.cc
@@ -17,7 +17,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_lukas_isr2
- SYSTEM_DESC isr2.xml
+ SYSTEM_DESC isr2.oil
LIBS libtest
TEST_ISO
isr2.cc
diff --git a/app/bcc1/lukas/alarmstress.oil b/app/bcc1/lukas/alarmstress.oil
new file mode 100644
index 0000000000000000000000000000000000000000..8e1dd2f337fc72188febdb612b85ce915c40f385
--- /dev/null
+++ b/app/bcc1/lukas/alarmstress.oil
@@ -0,0 +1,57 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Task1 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Task2 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Task3 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Task4 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = Task4;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 10;
+ CYCLETIME = 1;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 50000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+};
+
diff --git a/app/bcc1/lukas/alarmstress.xml b/app/bcc1/lukas/alarmstress.xml
deleted file mode 100644
index dd8d8ea272201f6d7f6d0458c25381300a217867..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/alarmstress.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Task1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>alarmstress_osek.xml</specificdescription>
-</system>
diff --git a/app/bcc1/lukas/alarmstress_osek.xml b/app/bcc1/lukas/alarmstress_osek.xml
deleted file mode 100644
index a3c08d453386d636ce1e8f133835c7c03fc4a641..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/alarmstress_osek.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Task1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
-
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>1</CYCLETIME>
- <RELTIME>10</RELTIME>
- <ACTIVATETASK>
- <TASK>Task4</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>50000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
-
-</oseksystem>
diff --git a/app/bcc1/lukas/dispatch.oil b/app/bcc1/lukas/dispatch.oil
new file mode 100644
index 0000000000000000000000000000000000000000..03060a1d3118a671fe33485d67c235a8fb3f5d8d
--- /dev/null
+++ b/app/bcc1/lukas/dispatch.oil
@@ -0,0 +1,41 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Task1 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Task2 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Task3 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Task4 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+};
+
diff --git a/app/bcc1/lukas/dispatch.xml b/app/bcc1/lukas/dispatch.xml
deleted file mode 100644
index 458e46af7aded06690dc7bdecfdc741bfd4f71cf..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/dispatch.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Task1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>dispatch_osek.xml</specificdescription>
-</system>
diff --git a/app/bcc1/lukas/dispatch_osek.xml b/app/bcc1/lukas/dispatch_osek.xml
deleted file mode 100644
index 0722c3f3a66a925e1f1147c8f8cba2fd055e1b2c..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/dispatch_osek.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Task1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
-
-</oseksystem>
diff --git a/app/bcc1/lukas/isr2.oil b/app/bcc1/lukas/isr2.oil
new file mode 100644
index 0000000000000000000000000000000000000000..f670a98f9f7b499d67a46de1a29cd4a7e0a1755b
--- /dev/null
+++ b/app/bcc1/lukas/isr2.oil
@@ -0,0 +1,47 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Task1 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Task2 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ISR ISR37 {
+ CATEGORY = 2;
+ DEVICE = 37;
+ };
+
+ ISR ISR38 {
+ CATEGORY = 2;
+ DEVICE = 38;
+ };
+
+ ISR ISR39 {
+ CATEGORY = 2;
+ DEVICE = 39;
+ };
+
+ ISR ISR40 {
+ CATEGORY = 2;
+ DEVICE = 40;
+ };
+
+};
+
diff --git a/app/bcc1/lukas/isr2.xml b/app/bcc1/lukas/isr2.xml
deleted file mode 100644
index 405e817a4d6ce05c5df8f3a8e4d33d7c36990b13..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/isr2.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>10</interarrivaltime>
- </nonperiodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ2</identifier>
- <interarrivaltime>10</interarrivaltime>
- </nonperiodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ3</identifier>
- <interarrivaltime>10</interarrivaltime>
- </nonperiodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ4</identifier>
- <interarrivaltime>10</interarrivaltime>
- </nonperiodicevent>
-
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Task1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Task2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>ISR37</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ2</event>
- <subtask root="true">
- <handler>ISR38</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ3</event>
- <subtask root="true">
- <handler>ISR39</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
-
- <task>
- <event>IRQ4</event>
- <subtask root="true">
- <handler>ISR40</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
-
- <specificdescription>isr2_osek.xml</specificdescription>
-</system>
diff --git a/app/bcc1/lukas/isr2_osek.xml b/app/bcc1/lukas/isr2_osek.xml
deleted file mode 100644
index a730090ca297d41639c32593b82c7d400ac11c11..0000000000000000000000000000000000000000
--- a/app/bcc1/lukas/isr2_osek.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Task1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Task2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ISR>
- <name>ISR37</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>37</DEVICE>
- </ISR>
-
- <ISR>
- <name>ISR38</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>38</DEVICE>
- </ISR>
-
- <ISR>
- <name>ISR39</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>39</DEVICE>
- </ISR>
-
- <ISR>
- <name>ISR40</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>40</DEVICE>
- </ISR>
-
-
-
-</oseksystem>
diff --git a/app/bcc1/resource1/CMakeLists.txt b/app/bcc1/resource1/CMakeLists.txt
index 889794b76b7c000c17ac0db0047128204b6f6ec1..702f9fa4c0b7ffd15da573ec42bc317db50cb36a 100644
--- a/app/bcc1/resource1/CMakeLists.txt
+++ b/app/bcc1/resource1/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_resource1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_a.py
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_b.py
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_a.py # Same constraints as A
TEST_ISO
@@ -27,7 +27,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_d.py
TEST_ISO
@@ -36,7 +36,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1e
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_e.py
TEST_ISO
@@ -45,7 +45,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1f
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_f.py
TEST_ISO
@@ -55,7 +55,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1g
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_g.py
TEST_ISO
@@ -64,7 +64,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1h
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_h.py
TEST_ISO
@@ -73,7 +73,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1j
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
#VERIFY verify_j.py
TEST_ISO
@@ -82,7 +82,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource1k
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_k.py
TEST_ISO
diff --git a/app/bcc1/resource1/osekossystem.xml b/app/bcc1/resource1/osekossystem.xml
deleted file mode 100644
index 64d39d3e588ba416979ca8920873670526221e95..0000000000000000000000000000000000000000
--- a/app/bcc1/resource1/osekossystem.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <RESOURCE>
- <name>RES_SCHEDULER</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R234</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R345</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
-
-</oseksystem>
diff --git a/app/bcc1/resource1/system.xml b/app/bcc1/resource1/system.xml
deleted file mode 100644
index c321f19678149470395eedc94097879bff335384..0000000000000000000000000000000000000000
--- a/app/bcc1/resource1/system.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/resource2/CMakeLists.txt b/app/bcc1/resource2/CMakeLists.txt
index 5886013de8f779eedf65b9ebfea9f93a46bf1960..22f3b29ea4be96492d24cfce24a034e6392de08f 100644
--- a/app/bcc1/resource2/CMakeLists.txt
+++ b/app/bcc1/resource2/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_resource2a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_resource2b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/resource2/osekossystem.xml b/app/bcc1/resource2/osekossystem.xml
deleted file mode 100644
index 3d297d7abe5a9ac05ef0ff1a6c9d8b4140363296..0000000000000000000000000000000000000000
--- a/app/bcc1/resource2/osekossystem.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <RESOURCE>
- <name>RES_SCHEDULER</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R234</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R345</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>100</CYCLETIME>
- <RELTIME>1000</RELTIME>
-
- <ACTIVATETASK>
- <TASK>H3</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>50000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
-</oseksystem>
diff --git a/app/bcc1/resource2/system.oil b/app/bcc1/resource2/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..830f16a551f429132e680ef42d5885f3469acfef
--- /dev/null
+++ b/app/bcc1/resource2/system.oil
@@ -0,0 +1,84 @@
+
+CPU TestSystem {
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ USERESSCHEDULER = TRUE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ RESOURCE = R345;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ RESOURCE = R345;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE {
+ APPMODE = OSDEFAULTAPPMODE;
+ };
+ RESOURCE = R345;
+ };
+
+ APPMODE OSDEFAULAPPMODE;
+
+ RESOURCE R234 {
+ RESOURCEPROPERTY = STANDARD;
+ };
+
+ RESOURCE R345 {
+ RESOURCEPROPERTY = STANDARD;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H3;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 100;
+ CYCLETIME = 1000;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 50000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+
+};
diff --git a/app/bcc1/resource2/system.xml b/app/bcc1/resource2/system.xml
deleted file mode 100644
index c321f19678149470395eedc94097879bff335384..0000000000000000000000000000000000000000
--- a/app/bcc1/resource2/system.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/sse1/CMakeLists.txt b/app/bcc1/sse1/CMakeLists.txt
index 81d67647e45f70c8e57d45440c43424df035e644..ae8cfb56889d4aa4574ad01f858f94d646ebaeec 100644
--- a/app/bcc1/sse1/CMakeLists.txt
+++ b/app/bcc1/sse1/CMakeLists.txt
@@ -2,7 +2,7 @@
DOSEK_BINARY(
NAME bcc1_sse1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_a.py
TEST_ISO
@@ -11,7 +11,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_sse1b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_b.py
TEST_ISO
@@ -21,7 +21,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_sse1c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
LIBS libtest
VERIFY verify_c.py
TEST_ISO
diff --git a/app/bcc1/sse1/osekossystem.xml b/app/bcc1/sse1/osekossystem.xml
deleted file mode 100644
index 64d39d3e588ba416979ca8920873670526221e95..0000000000000000000000000000000000000000
--- a/app/bcc1/sse1/osekossystem.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>R234</RESOURCE>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- <RESOURCE>R345</RESOURCE>
- </TASK>
-
- <RESOURCE>
- <name>RES_SCHEDULER</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R234</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <RESOURCE>
- <name>R345</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
-
-</oseksystem>
diff --git a/app/bcc1/sse1/system.oil b/app/bcc1/sse1/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..b2fda36b6e760b08bb0b8750e4499075487d7b3f
--- /dev/null
+++ b/app/bcc1/sse1/system.oil
@@ -0,0 +1,67 @@
+
+CPU TestSystem {
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ USERESSCHEDULER = TRUE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ RESOURCE = R345;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = R234;
+ RESOURCE = R345;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE {
+ APPMODE = OSDEFAULTAPPMODE;
+ };
+ RESOURCE = R345;
+ };
+
+ APPMODE OSDEFAULTAPPMODE;
+
+ RESOURCE R234 {
+ RESOURCEPROPERTY = STANDARD;
+ };
+
+ RESOURCE R345 {
+ RESOURCEPROPERTY = STANDARD;
+ };
+
+
+};
diff --git a/app/bcc1/sse1/system.xml b/app/bcc1/sse1/system.xml
deleted file mode 100644
index c321f19678149470395eedc94097879bff335384..0000000000000000000000000000000000000000
--- a/app/bcc1/sse1/system.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/sse1/verify_a.py b/app/bcc1/sse1/verify_a.py
index 57b3db31eb17125dcf76b45e1babb4031cf5a1a0..bbf7c47dd2bf8d8a01ec2b8b5c0d3b9ecad9ef38 100644
--- a/app/bcc1/sse1/verify_a.py
+++ b/app/bcc1/sse1/verify_a.py
@@ -31,7 +31,7 @@ def after_SystemStateFlow(analysis):
t.promise_all_syscalls_checked()
-def after_Combine_RunningTask_SSE(analysis):
+def after_ConstructGlobalCFG(analysis):
# Find all three systemcall handlers
(H1, H2, H3, H4, H5, Idle, StartOS) = \
get_functions(analysis.system_graph, ["H1", "H2", "H3", "H4", "H5",
diff --git a/app/bcc1/task1/CMakeLists.txt b/app/bcc1/task1/CMakeLists.txt
index 6259f5acc56de1e103c3d266ad9585b33ee3ef68..63696c00e9c2025d73df3ac7c62894799b59acd5 100644
--- a/app/bcc1/task1/CMakeLists.txt
+++ b/app/bcc1/task1/CMakeLists.txt
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1a_sse
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
GENERATOR_ARGS -fgen-asserts -fsse
@@ -19,7 +19,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -28,7 +28,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_c.py
LIBS libtest
TEST_ISO
@@ -37,7 +37,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_d.py
LIBS libtest
TEST_ISO
@@ -46,7 +46,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1e
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_e.py
LIBS libtest
TEST_ISO
@@ -55,7 +55,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1f
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_f.py
LIBS libtest
TEST_ISO
@@ -64,7 +64,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task1g
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_g.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/task1/osekossystem.xml b/app/bcc1/task1/osekossystem.xml
deleted file mode 100644
index aa498b4dd65cd9e50c0df4863107c0e95305a15d..0000000000000000000000000000000000000000
--- a/app/bcc1/task1/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/app/bcc1/task1/system.xml b/app/bcc1/task1/system.xml
deleted file mode 100644
index 41ca0c15b9d03cb20a4afccad38508d132c0e9ed..0000000000000000000000000000000000000000
--- a/app/bcc1/task1/system.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/bcc1/task2/CMakeLists.txt b/app/bcc1/task2/CMakeLists.txt
index 9350f597a31a27b564d4a8a3692df47e65002e35..f6ee91877cc44049b377a42f84fa0d5ca26b33d1 100644
--- a/app/bcc1/task2/CMakeLists.txt
+++ b/app/bcc1/task2/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bcc1_task2a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task2b
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_b.py
LIBS libtest
TEST_ISO
@@ -18,7 +18,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME bcc1_task2c
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
diff --git a/app/bcc1/task2/osekossystem.xml b/app/bcc1/task2/osekossystem.xml
deleted file mode 100644
index 1bac559e03f96cecfcb850efb7e3d51045670f6c..0000000000000000000000000000000000000000
--- a/app/bcc1/task2/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>NON</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/app/bcc1/task2/system.oil b/app/bcc1/task2/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..4bbfcb22666e2dcef95884f8ed887dc9574ec71a
--- /dev/null
+++ b/app/bcc1/task2/system.oil
@@ -0,0 +1,35 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Handler11 {
+ SCHEDULE = NON;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Handler12 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Handler13 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+
+};
+
diff --git a/app/bcc1/task2/system.xml b/app/bcc1/task2/system.xml
deleted file mode 100644
index 41ca0c15b9d03cb20a4afccad38508d132c0e9ed..0000000000000000000000000000000000000000
--- a/app/bcc1/task2/system.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/benchmark/CMakeLists.txt b/app/benchmark/CMakeLists.txt
index acf20988f531f04692b5fe917414f30b24db24da..592ec65359ae24ffc8a1a51673c50420ef5e2942 100644
--- a/app/benchmark/CMakeLists.txt
+++ b/app/benchmark/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bench-task1a
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
FAIL
a.cc
)
diff --git a/app/benchmark/complex1/CMakeLists.txt b/app/benchmark/complex1/CMakeLists.txt
index 832e37cbe2b169f6d692ae8389abe2a7bc92d1bb..ba1af3c069cf36e12c5a3acd75086fc6309c8432 100644
--- a/app/benchmark/complex1/CMakeLists.txt
+++ b/app/benchmark/complex1/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bench-complex1d
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
FAIL
d.cc
)
diff --git a/app/benchmark/complex1/osekossystem.xml b/app/benchmark/complex1/osekossystem.xml
deleted file mode 100644
index 5f34addb471ea9b499a93770fd5414a24f8542d5..0000000000000000000000000000000000000000
--- a/app/benchmark/complex1/osekossystem.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ISR>
- <name>ISR1</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>10</PRIORITY>
- <DEVICE>37</DEVICE>
- </ISR>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>5</CYCLETIME>
- <RELTIME>1</RELTIME>
-
- <ACTIVATETASK>
- <TASK>H2</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-
-</oseksystem>
diff --git a/app/benchmark/complex1/system.oil b/app/benchmark/complex1/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..f91912fd8b1bd2ed6bdb121848ea1ec156fa889d
--- /dev/null
+++ b/app/benchmark/complex1/system.oil
@@ -0,0 +1,59 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ISR ISR1 {
+ CATEGORY = 2;
+ DEVICE = 5;
+ };
+
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H2;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 1;
+ CYCLETIME = 100;
+ };
+ };
+
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+
+};
+
diff --git a/app/benchmark/complex1/system.xml b/app/benchmark/complex1/system.xml
deleted file mode 100644
index 6452ee5d1dbc218123541541f5011a519dd1bc22..0000000000000000000000000000000000000000
--- a/app/benchmark/complex1/system.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>ISR1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/benchmark/coptermock/CMakeLists.txt b/app/benchmark/coptermock/CMakeLists.txt
index 8c4d92392c24ad70a25d7904f2d12865f4fae845..c6fb796c22245b305bf5c38ddc8cf0e2682d9795 100644
--- a/app/benchmark/coptermock/CMakeLists.txt
+++ b/app/benchmark/coptermock/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME bench-coptermock
- SYSTEM_DESC system.xml
+ SYSTEM_DESC system.oil
FAIL
dosek.cc
)
diff --git a/app/benchmark/coptermock/osekossystem.xml b/app/benchmark/coptermock/osekossystem.xml
deleted file mode 100644
index d42aa40b15de389c9ce730a247f765538b2482e2..0000000000000000000000000000000000000000
--- a/app/benchmark/coptermock/osekossystem.xml
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>CopterMock</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <!-- Signal Gather Tasks -->
-
- <TASK>
- <name>SignalGatherInitiateTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>24</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>SPIBus</RESOURCE>
- </TASK>
-
- <TASK>
- <name>SignalGatherFinishedTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>25</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>SPIBus</RESOURCE>
- </TASK>
-
- <TASK>
- <name>SignalGatherTimeoutTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>23</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- <RESOURCE>SPIBus</RESOURCE>
- </TASK>
-
- <TASK>
- <name>SignalProcessingActuateTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>22</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>SignalProcessingAttitudeTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>21</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <!-- Actuate Tasks -->
- <TASK>
- <name>FlightControlTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>NON</SCHEDULE> <!-- Non preemptable -->
- <PRIORITY>11</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>FlightControlAttitudeTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>12</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>FlightControlActuateTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>13</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>MavlinkSendTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>10</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <!-- Watchdog Task -->
- <TASK>
- <name>CopterControlWatchdogTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>NON</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <!-- Remote Control Tasks -->
- <TASK>
- <name>CopterControlTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ISR>
- <name>MavlinkRecvHandler</name>
- <CATEGORY>2</CATEGORY>
- <PRIORITY>100</PRIORITY>
- <DEVICE>37</DEVICE>
- </ISR>
-
- <RESOURCE>
- <name>SPIBus</name>
- <TYPE>STANDARD</TYPE>
- </RESOURCE>
-
- <ALARM>
- <name>SignalGatherAlarm</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>30</CYCLETIME>
- <RELTIME>10</RELTIME>
-
- <ACTIVATETASK>
- <TASK>SignalGatherInitiateTask</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <ALARM>
- <name>FlightControlAlarm</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>90</CYCLETIME>
- <RELTIME>13</RELTIME>
-
- <ACTIVATETASK>
- <TASK>FlightControlTask</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <ALARM>
- <name>CopterControlWatchdogAlarm</name>
- <COUNTER>C1</COUNTER>
- <ARMED>FALSE</ARMED>
- <CYCLETIME>0</CYCLETIME>
- <RELTIME>0</RELTIME>
-
- <ACTIVATETASK>
- <TASK>CopterControlWatchdogTask</TASK>
- </ACTIVATETASK>
- </ALARM>
-
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>50000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-</oseksystem>
diff --git a/app/benchmark/coptermock/system-no-annotation.xml b/app/benchmark/coptermock/system-no-annotation.xml
deleted file mode 100644
index 990dc340b5d3e13accffd101b2196197ae19610b..0000000000000000000000000000000000000000
--- a/app/benchmark/coptermock/system-no-annotation.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>CopterMock</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>SignalGatherEvent</identifier>
- <period>3</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>FlightControlEvent</identifier>
- <period>9</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>MavlinkReceiveEvent</identifier>
- <interarrivaltime>9000</interarrivaltime>
- </nonperiodicevent>
-
- <task>
- <event>SignalGatherEvent</event>
-
- <subtask root="true">
- <handler>SignalGatherInitiateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalGatherFinishedTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalGatherTimeoutTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalProcessingActuateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalProcessingAttitudeTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task>
- <event>FlightControlEvent</event>
- <subtask root="true">
- <handler>FlightControlTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>FlightControlAttitudeTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>FlightControlActuateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>MavlinkSendTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task>
- <event>MavlinkReceiveEvent</event>
-
- <subtask root="true">
- <handler>MavlinkRecvHandler</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>CopterControlTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task>
- <event>MavlinkReceiveEvent</event>
-
- <subtask root="true">
- <handler>CopterControlWatchdogTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/benchmark/coptermock/system.oil b/app/benchmark/coptermock/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..d7829c89f2cebd6bbf2a2add08c349421a58062a
--- /dev/null
+++ b/app/benchmark/coptermock/system.oil
@@ -0,0 +1,167 @@
+CPU CopterMock {
+
+ OS Coptermock {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASKGROUP SignalGatherGroup {
+ PROMISE = SERIALIZED;
+ };
+
+ TASK SignalGatherInitiateTask {
+ SCHEDULE = FULL;
+ PRIORITY = 24;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = SPIBus;
+ TASKGROUP = SignalGatherGroup;
+ };
+
+ TASK SignalGatherFinishedTask {
+ SCHEDULE = FULL;
+ PRIORITY = 25;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = SPIBus;
+ TASKGROUP = SignalGatherGroup;
+ };
+
+ TASK SignalGatherTimeoutTask {
+ SCHEDULE = FULL;
+ PRIORITY = 23;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ RESOURCE = SPIBus;
+ TASKGROUP = SignalGatherGroup;
+ };
+
+ TASK SignalProcessingActuateTask {
+ SCHEDULE = FULL;
+ PRIORITY = 22;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = SignalGatherGroup;
+ };
+
+ TASK SignalProcessingAttitudeTask {
+ SCHEDULE = FULL;
+ PRIORITY = 21;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = SignalGatherGroup;
+ };
+
+ /* Actuate Tasks */
+ TASKGROUP FlightControlGroup {
+ PROMISE = SERIALIZED;
+ };
+
+ TASK FlightControlTask {
+ SCHEDULE = NON;
+ PRIORITY = 11;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = FlightControlGroup;
+ };
+
+ TASK FlightControlAttitudeTask {
+ SCHEDULE = FULL;
+ PRIORITY = 12;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = FlightControlGroup;
+ };
+
+ TASK FlightControlActuateTask {
+ SCHEDULE = FULL;
+ PRIORITY = 13;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = FlightControlGroup;
+ };
+
+ TASK MavlinkSendTask {
+ SCHEDULE = FULL;
+ PRIORITY = 10;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = FlightControlGroup;
+ };
+
+ /* Watchdog Task */
+ TASKGROUP WatchdogGroup {
+ PROMISE = SERIALIZED;
+ };
+ TASK CopterControlWatchdogTask {
+ SCHEDULE = NON;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = WatchdogGroup;
+ };
+
+ /* Remote Control Task */
+ TASKGROUP MavlinkReceiveGroup {
+ PROMISE = SERIALIZED;
+ };
+
+ TASK CopterControlTask {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = MavlinkReceiveGroup;
+ };
+ ISR MavlinkRecvHandler {
+ CATEGORY = 2;
+ PRIORITY = 100;
+ DEVICE = 37;
+ TASKGROUP = MavlinkReceiveGroup;
+ };
+
+ RESOURCE SPIBus {
+ RESOURCEPROPERTY = STANDARD;
+ };
+
+ ALARM SignalGatherAlarm {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = SignalGatherInitiateTask;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 10;
+ CYCLETIME = 30;
+ };
+ };
+
+ ALARM FlightControlAlarm {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = FlightControlTask;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 10;
+ CYCLETIME = 90;
+ };
+ };
+
+ ALARM CopterControlWatchdogAlarm {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = CopterControlWatchdogTask;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 50000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+};
+
diff --git a/app/benchmark/coptermock/system.xml b/app/benchmark/coptermock/system.xml
deleted file mode 100644
index 5d0728deb8fdf85e2043c14c81257232315b35b3..0000000000000000000000000000000000000000
--- a/app/benchmark/coptermock/system.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>CopterMock</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>SignalGatherEvent</identifier>
- <period>3</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>FlightControlEvent</identifier>
- <period>9</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>MavlinkReceiveEvent</identifier>
- <interarrivaltime>9000</interarrivaltime>
- </nonperiodicevent>
-
- <task promise-serialized="true">
- <event>SignalGatherEvent</event>
-
- <subtask root="true">
- <handler>SignalGatherInitiateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalGatherFinishedTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalGatherTimeoutTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalProcessingActuateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>SignalProcessingAttitudeTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task promise-serialized="true">
- <event>FlightControlEvent</event>
- <subtask root="true">
- <handler>FlightControlTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>FlightControlAttitudeTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>FlightControlActuateTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>MavlinkSendTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task promise-serialized="true">
- <event>MavlinkReceiveEvent</event>
-
- <subtask root="true">
- <handler>MavlinkRecvHandler</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
-
- <subtask>
- <handler>CopterControlTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
- <task promise-serialized="true">
- <event>MavlinkReceiveEvent</event>
-
- <subtask root="true">
- <handler>CopterControlWatchdogTask</handler>
- <deadline> <relative>true</relative> <type>hard</type> <deadline>200</deadline> </deadline>
- </subtask>
- </task>
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/benchmark/osekossystem.xml b/app/benchmark/osekossystem.xml
deleted file mode 100644
index aa498b4dd65cd9e50c0df4863107c0e95305a15d..0000000000000000000000000000000000000000
--- a/app/benchmark/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/app/benchmark/system.oil b/app/benchmark/system.oil
new file mode 100644
index 0000000000000000000000000000000000000000..762091f4bcfab812999901ae2af27602fd06e4a6
--- /dev/null
+++ b/app/benchmark/system.oil
@@ -0,0 +1,35 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK Handler11 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+
+ TASK Handler12 {
+ SCHEDULE = FULL;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK Handler13 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+
+};
+
diff --git a/app/benchmark/system.xml b/app/benchmark/system.xml
deleted file mode 100644
index 41ca0c15b9d03cb20a4afccad38508d132c0e9ed..0000000000000000000000000000000000000000
--- a/app/benchmark/system.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/benchmark/zedboard/osekossystem.xml b/app/benchmark/zedboard/osekossystem.xml
deleted file mode 100644
index aa498b4dd65cd9e50c0df4863107c0e95305a15d..0000000000000000000000000000000000000000
--- a/app/benchmark/zedboard/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/app/benchmark/zedboard/system.xml b/app/benchmark/zedboard/system.xml
deleted file mode 100644
index 74a545c7acf62783df49378290a72a891de5e3f9..0000000000000000000000000000000000000000
--- a/app/benchmark/zedboard/system.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ1</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
- <nonperiodicevent>
- <identifier>IRQ2</identifier>
- <interarrivaltime>2000</interarrivaltime>
- </nonperiodicevent>
-
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ1</event>
- <subtask root="true">
- <handler>isrA</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>IRQ2</event>
- <subtask root="true">
- <handler>isrB</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>2000</deadline>
- </deadline>
- </subtask>
- </task>
-
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/sysmodel/1alarm/CMakeLists.txt b/app/sysmodel/1alarm/CMakeLists.txt
index bb1ca7d5bf383de34f5e864f00304db7c1b093c5..7feb035d0a96ca4630e40204ea12298370461c6a 100644
--- a/app/sysmodel/1alarm/CMakeLists.txt
+++ b/app/sysmodel/1alarm/CMakeLists.txt
@@ -1,6 +1,6 @@
DOSEK_BINARY(
NAME sysmodel_1alarm_a
- SYSTEM_DESC a.xml
+ SYSTEM_DESC a.oil
VERIFY verify_a.py
LIBS libtest
TEST_ISO
@@ -9,7 +9,7 @@ DOSEK_BINARY(
DOSEK_BINARY(
NAME sysmodel_1alarm_aa
- SYSTEM_DESC aa.xml # OTHER XML!
+ SYSTEM_DESC aa.oil # OTHER XML!
VERIFY verify_aa.py
LIBS libtest
TEST_ISO
diff --git a/app/sysmodel/1alarm/a.oil b/app/sysmodel/1alarm/a.oil
new file mode 100644
index 0000000000000000000000000000000000000000..491a0412d30b55068dd5fd4f901f4e441cefe545
--- /dev/null
+++ b/app/sysmodel/1alarm/a.oil
@@ -0,0 +1,65 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H3 {
+ SCHEDULE = NONE;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H3;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 100;
+ CYCLETIME = 100;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+};
+
diff --git a/app/sysmodel/1alarm/a.xml b/app/sysmodel/1alarm/a.xml
deleted file mode 100644
index e9625827cd55c554f0c1f5819a60a971d6b7b8ef..0000000000000000000000000000000000000000
--- a/app/sysmodel/1alarm/a.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E2</event>
- <subtask root="true">
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task promise-serialized="true">
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/sysmodel/1alarm/aa.oil b/app/sysmodel/1alarm/aa.oil
new file mode 100644
index 0000000000000000000000000000000000000000..545c7a654a7c0af3d7408df5c90bf47768963184
--- /dev/null
+++ b/app/sysmodel/1alarm/aa.oil
@@ -0,0 +1,71 @@
+CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK H1 {
+ SCHEDULE = FULL;
+ PRIORITY = 5;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASKGROUP H2H3 {
+ PROMISE = SERIALIZED;
+ };
+
+ TASK H2 {
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = H2H3;
+ };
+
+ TASK H3 {
+ SCHEDULE = NONE;
+ PRIORITY = 3;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ TASKGROUP = H2H3;
+ };
+
+ TASK H4 {
+ SCHEDULE = FULL;
+ PRIORITY = 2;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ TASK H5 {
+ SCHEDULE = FULL;
+ PRIORITY = 1;
+ ACTIVATION = 1;
+ AUTOSTART = FALSE;
+ };
+
+ ALARM A1 {
+ COUNTER = C1;
+ ACTION = ACTIVATETASK {
+ TASK = H3;
+ };
+ AUTOSTART = TRUE {
+ ALARMTIME = 100;
+ CYCLETIME = 100;
+ };
+ };
+
+ COUNTER C1 {
+ MAXALLOWEDVALUE = 1000;
+ TICKSPERBASE = 1;
+ MINCYCLE = 1;
+ };
+
+};
+
diff --git a/app/sysmodel/1alarm/aa.xml b/app/sysmodel/1alarm/aa.xml
deleted file mode 100644
index 09ccd086d304b18c8c1a3f69088af978959e1497..0000000000000000000000000000000000000000
--- a/app/sysmodel/1alarm/aa.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>E1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E2</identifier>
- <period>2000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E3</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E4</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <periodicevent>
- <identifier>E5</identifier>
- <period>4000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>E1</event>
- <subtask root="true">
- <handler>H1</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task promise-serialized="true">
- <event>E3</event>
- <subtask root="true">
- <handler>H3</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask >
- <handler>H2</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E4</event>
- <subtask root="true">
- <handler>H4</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <task>
- <event>E5</event>
- <subtask root="true">
- <handler>H5</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/app/sysmodel/1alarm/osekossystem.xml b/app/sysmodel/1alarm/osekossystem.xml
deleted file mode 100644
index f4cfd8f0d3001513d91cd58727c5283ae445b4f2..0000000000000000000000000000000000000000
--- a/app/sysmodel/1alarm/osekossystem.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>H1</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H2</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H3</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>3</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H4</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>2</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>H5</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>1</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>FALSE</AUTOSTART>
- </TASK>
-
- <ALARM>
- <name>A1</name>
- <COUNTER>C1</COUNTER>
- <ARMED>TRUE</ARMED>
- <CYCLETIME>100</CYCLETIME>
- <RELTIME>100</RELTIME>
- <ACTIVATETASK>
- <TASK>H3</TASK>
- </ACTIVATETASK>
- </ALARM>
-
- <HARDWARECOUNTER>
- <name>C1</name>
- <MAXALLOWEDVALUE>1000</MAXALLOWEDVALUE>
- <TICKSPERBASE>1</TICKSPERBASE>
- <MINCYCLE>1</MINCYCLE>
- </HARDWARECOUNTER>
-</oseksystem>
diff --git a/app/sysmodel/1alarm/verify_a.py b/app/sysmodel/1alarm/verify_a.py
index 2eda607e5ac74884c732547189719bd94632f91a..0b0ad4dba1d03624a41654a0ee8fb6ef53780564 100644
--- a/app/sysmodel/1alarm/verify_a.py
+++ b/app/sysmodel/1alarm/verify_a.py
@@ -12,17 +12,15 @@ def after_ConstructGlobalCFG(analysis):
t.mark_syscalls_in_function(H4)
t.mark_syscalls_in_function(H5)
- assert len(t.self_loop_abbs(H3, E.system_level)) == 0
+ assert len(t.self_loop_abbs(H3, E.system_level)) == 1
assert len(t.self_loop_abbs(H2, E.system_level)) == 1
-
- t.activate([Idle, H2], # =>
+ t.activate([Idle, H2], # =>
H3)
- t.reachability(H3, "ChainTask", [H2], # =>
+ t.reachability(H3, "ChainTask", [H2], # =>
[H2])
-
- t.reachability(H2, "TerminateTask", [], # =>
+ t.reachability(H2, "TerminateTask", [], # =>
[H3, Idle])
t.reachability(Idle, "Idle", [], # =>
diff --git a/dependability/benchmark/benchfile.py b/dependability/benchmark/benchfile.py
index c3ef476793a3867fd93a0c8c164ee5a5f857d416..e782f65e7ebf25d6864af6042dc9d74128eef525 100644
--- a/dependability/benchmark/benchfile.py
+++ b/dependability/benchmark/benchfile.py
@@ -13,21 +13,21 @@ class CheckedObject:
CheckedObject.typenumber += 1
def expand_declaration(self):
- return "DeclareCheckedObject(benchtype" + str(self.typenumber) + ", %s);\n" % self.name
+ return "DeclareCheckedObject(benchtype" + str(self.typenumber) \
+ + ", %s);\n" % self.name
def expand_typedef(self):
- return "typedef char benchtype" + str(self.typenumber) + "[" + str(self.size) + "];\n"
+ return "typedef char benchtype" + str(self.typenumber) \
+ + "[" + str(self.size) + "];\n"
def expand_xml(self):
- return ''' <CHECKEDOBJECT>
- <name>''' + self.name + '''</name>
- <TYPEDEF>
- <HEADER>app/bcc1/depbench/benchtype.h</HEADER>
- <TYPENAME>benchtype''' + str(self.typenumber) + '''</TYPENAME>
- </TYPEDEF>
- </CHECKEDOBJECT>
+ return ''' CHECKEDOBJECT {name} {{
+ HEADER = "app/bcc1/depbench/benchtype.h";
+ TYPEDEF = benchtype{typenumber};
+ }};
+'''.format(name=self.name,
+ typenumber=self.typenumber)
-'''
class BusyWaiting:
"""Manages a busy waiting loop"""
@@ -46,11 +46,12 @@ class BusyWaiting:
}
''' % str(self.duration)
+
class Acquiration:
"""Manages an acquiration of an checkedObject"""
def __init__(self, checkedObject, duration):
- self.checkedObject = checkedObject
+ self.checkedObject = checkedObject
self.loop = BusyWaiting(duration)
def dur(self):
@@ -58,7 +59,9 @@ class Acquiration:
def expand(self):
name = self.checkedObject.name
- return " AcquireCheckedObject(" + name + ");" + self.loop.expand() + " ReleaseCheckedObject(" + name + ");\n"
+ return " AcquireCheckedObject(" + name + ");" + self.loop.expand() \
+ + " ReleaseCheckedObject(" + name + ");\n"
+
class Benchfile:
"""Manages elements of an application file of a benchmark"""
@@ -80,9 +83,9 @@ class Benchfile:
def expand_file(self):
content = '''
#include "os.h"
-#include "depsvc.h"
+#include "dependability/depsvc.h"
#include "arch/generic/hardware_threads.h"
-#include "dependability_service.h"
+#include "dependability/dependability_service.h"
#include "output.h"
#include "benchtype.h"
@@ -132,33 +135,29 @@ PreIdleHook() {
return content
def expand_osekossystem(self):
- content = '''<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
- <OS>
- <name>BenchSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>TRUE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>BenchTask</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-'''
+ content = """CPU TestSystem {
+
+ OS TestSystem {
+ STATUS = STANDARD;
+ ERRORHOOK = FALSE;
+ STARTUPHOOK = FALSE;
+ SHUTDOWNHOOK = FALSE;
+ PRETASKHOOK = FALSE;
+ POSTTASKHOOK = FALSE;
+ };
+
+ TASK BenchTask {
+ TYPE = BASIC;
+ SCHEDULE = FULL;
+ PRIORITY = 4;
+ ACTIVATION = 1;
+ AUTOSTART = TRUE;
+ };
+"""
for co in self.get_checkedObjects():
content += co.expand_xml()
- content += '''
-</oseksystem>'''
+
+ content += "\n};"
return content
def generate_bench_app(self):
@@ -173,50 +172,18 @@ PreIdleHook() {
cmakelists.write('''DOSEK_BINARY (
NAME bcc1_depbench
depbench.cc
- SYSTEM_XML system.xml
+ SYSTEM_DESC system.oil
LIBS libdepsvc
)''')
cmakelists.close()
depbench = open(approot + 'depbench.cc', 'w')
depbench.write(self.expand_file())
depbench.close()
- systemxml = open(approot + 'system.xml', 'w')
- systemxml.write('''<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>DependabilitySystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>BenchTask</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>''')
- systemxml.close()
- osekossystem = open(approot + 'osekossystem.xml', 'w')
+
+ osekossystem = open(approot + 'system.oil', 'w')
osekossystem.write(self.expand_osekossystem())
osekossystem.close()
+
benchtype = open(approot + 'benchtype.h', 'w')
benchtype.write(self.expand_type_header())
benchtype.close()
diff --git a/dependability/benchmark/createresults.py b/dependability/benchmark/createresults.py
index 7ebfa077e7899dc5390197e82944e93c851abfd1..ed0b4d514b6e283c24dc37810fbf6b322e6ad858 100755
--- a/dependability/benchmark/createresults.py
+++ b/dependability/benchmark/createresults.py
@@ -31,9 +31,9 @@ if __name__ == "__main__":
print("Prepare")
pcall("clean build directory", ["rm -r *"], sh = True, mf = True)
pcall("create dummy application", [depgenroot + "runbench.py", str(repetitions), str(slots), str(objects)], sout = f)
- pcall("create new build environment", [depgenroot + "/../../new_build_env.py", "--dependability_failure_logging=yes"], sout = dn, serr = dn)
+ pcall("create new build environment", [depgenroot + "/../../new_build_env.py", "--dependability_failure_logging=yes"])
for i in range(0, runs):
print("Run " + str(i) + ":")
pcall("create application", [depgenroot + "runbench.py", str(repetitions), str(slots), str(objects)], sout = f)
- pcall("build", ["make", "-j1", "bcc1_depbench"], sout = dn, serr = dn)
+ pcall("build", ["make", "-j1", "bcc1_depbench"])
pcall("run", ["qemu-system-i386", "-no-reboot", "-nographic", "-smp", "2", "-kernel", "bcc1_depbench"], sout = f)
diff --git a/generator/CMakeLists.txt b/generator/CMakeLists.txt
index 5afbc690d71f1615014c10933c411d74f1bd6e46..368d8b02f91a2efb3cd35abaa18182e4c5abd144 100644
--- a/generator/CMakeLists.txt
+++ b/generator/CMakeLists.txt
@@ -1,7 +1,5 @@
set(PYTHON_MODULES_TEST
- RTSCSystemDescription
- RTSCAnalysis
)
foreach(module ${PYTHON_MODULES_TEST})
diff --git a/generator/Generator.py b/generator/Generator.py
index 6440b3d24b41c38056dda54d5532cc18e28db6b9..7aa076f1a168011fdbe9ce9692943358d17f7522 100644
--- a/generator/Generator.py
+++ b/generator/Generator.py
@@ -11,7 +11,6 @@ class Generator:
self.name = name
self.system_graph = system_graph
self.stats = system_graph.stats
- self.rtsc_analysis = system_graph.rtsc
self.arch_rules = arch_rules
self.os_rules = os_rules
self.syscall_rules = syscall_rules
diff --git a/generator/OILSystemDescription.py b/generator/OILSystemDescription.py
index b9b0e57989f2d37f8b284b5a06a94d93ac835de9..31fa5d084019474abb4920d32eab27eb5e3a706c 100755
--- a/generator/OILSystemDescription.py
+++ b/generator/OILSystemDescription.py
@@ -3,8 +3,8 @@
see: http://portal.osek-vdx.org/files/pdf/specs/oil25.pdf
"""
from pyparsing import (Word, alphanums, alphas, hexnums,
- nums, Optional, Keyword, QuotedString, Suppress,
- Group, Forward, ZeroOrMore, cStyleComment, restOfLine)
+ nums, Optional, Keyword, QuotedString, Suppress,
+ Group, Forward, ZeroOrMore, cStyleComment, restOfLine)
""" This is an example oil description:
CPU Josek_x86 {
@@ -34,6 +34,7 @@ CPU Josek_x86 {
};
"""
+
class OILObject:
def __init__(self, name=""):
@@ -47,12 +48,13 @@ class OILObject:
def __str__(self):
ret = self.__class__.__name__ + " : " + self.name
- for k,v in vars(self).items():
+ for k, v in vars(self).items():
if k.isupper(): # if it it a uppercase OIL Keyword
# lowercase members are special sets or lists
ret += "\n\t\t" + str(k) + ": " + str(v)
return ret
+
class AppMode(OILObject):
def __init__(self, name=""):
@@ -82,12 +84,22 @@ class ISR(OILObject):
self.resources = dict()
self.messages = dict()
self.DEVICE = None
+ self.TASKGROUP = None
def get_device(self):
assert self.DEVICE, "No device number set for ISR '" + self.name + "'"
return self.DEVICE
- device = property(get_device, None, None, "Returns the ISRs device number")
+ @property
+ def taskgroup(self):
+ if not self.TASKGROUP:
+ return self.name
+ else:
+ return self.TASKGROUP
+
+ @property
+ def device(self):
+ return self.get_device()
def evaluate(self, oil):
super(ISR, self).evaluate(oil)
@@ -95,7 +107,6 @@ class ISR(OILObject):
if param[0] == "RESOURCE":
self.resources[param[1]] = param[1]
-
def __str__(self):
ret = super(ISR, self).__str__()
if self.resources:
@@ -103,6 +114,27 @@ class ISR(OILObject):
return ret
+class CheckedObject(OILObject):
+
+ def __init__(self, name=""):
+ super(CheckedObject, self).__init__(name)
+ self.TYPEDEF = ""
+ self.HEADER = None
+ self.CHECKFUNCTION = None
+
+ @property
+ def typename(self):
+ return self.TYPEDEF
+
+ @property
+ def header(self):
+ return self.HEADER
+
+ @property
+ def checkfunc(self):
+ return self.CHECKFUNCTION
+
+
class Event(OILObject):
def __init__(self, name=""):
@@ -120,13 +152,12 @@ class Counter(OILObject):
self.SOFTCOUNTER = ""
-
class Alarm(OILObject):
class ActionParam:
def __str__(self):
ret = self.__class__.__name__
- for k,v in vars(self).items():
+ for k, v in vars(self).items():
if k.isupper():
ret += "\n\t\t\t" + str(k) + ": " + str(v)
return ret
@@ -154,8 +185,8 @@ class Alarm(OILObject):
super(Alarm, self).__init__(name)
self.COUNTER = ""
self.ACTION = ""
- self.action_params = ""
- self.AUTOSTART = ""
+ self.action_params = None
+ self.AUTOSTART = False
self.autostart_params = None
def evaluate(self, oil):
@@ -163,26 +194,27 @@ class Alarm(OILObject):
''' read out alarm actions '''
for param in oil[1]:
if param[0] == "ACTION" and len(param) > 2:
- if param[1] == "SETEVENT":
- self.action_params = self.SETEVENT()
- elif param[1] == "ACTIVATETASK":
- self.action_params = self.ACTIVATETASK()
- elif param[1] == "ALARMCALLBACK":
- self.action_params = self.ALARMCALLBACK()
-
- for acp in param[2:]:
- if hasattr(self.action_params, acp[0]):
- setattr(self.action_params, acp[0], acp[1])
+ if param[1] == "SETEVENT":
+ self.action_params = self.SETEVENT()
+ elif param[1] == "ACTIVATETASK":
+ self.action_params = self.ACTIVATETASK()
+ elif param[1] == "ALARMCALLBACK":
+ self.action_params = self.ALARMCALLBACK()
+
+ for acp in param[2:]:
+ if hasattr(self.action_params, acp[0]):
+ setattr(self.action_params, acp[0], acp[1])
+
''' read out autostart parameters '''
- if param[0] == "AUTOSTART" and len(param) > 2 and param[1] == True:
- self.autostart_params = self.AutostartParams()
- for acp in param[2:]:
- if acp[0] == "ALARMTIME":
- self.autostart_params.ALARMTIME = int(acp[1])
- elif acp[0] == "CYCLETIME":
- self.autostart_params.CYCLETIME = int(acp[1])
- elif acp[0] == "APPMODE":
- self.autostart_params.APPMODE.add(acp[1])
+ if param[0] == "AUTOSTART" and len(param) > 2 and param[1] is True:
+ self.autostart_params = self.AutostartParams()
+ for acp in param[2:]:
+ if acp[0] == "ALARMTIME":
+ self.autostart_params.ALARMTIME = int(acp[1])
+ elif acp[0] == "CYCLETIME":
+ self.autostart_params.CYCLETIME = int(acp[1])
+ elif acp[0] == "APPMODE":
+ self.autostart_params.APPMODE.add(acp[1])
@property
def counter(self):
@@ -198,11 +230,15 @@ class Alarm(OILObject):
@property
def cycletime(self):
- return self.autostart_params.CYCLETIME
+ if self.autostart_params:
+ return self.autostart_params.CYCLETIME
+ return 0
@property
def reltime(self):
- return self.autostart_params.ALARMTIME
+ if self.autostart_params:
+ return self.autostart_params.ALARMTIME
+ return 0
def activated_task(self):
if self.action_params.TASK:
@@ -210,7 +246,6 @@ class Alarm(OILObject):
else:
return None
-
def __str__(self):
ret = super(Alarm, self).__str__()
ret += "\n\t\tAction Params: " + str(self.action_params)
@@ -219,6 +254,21 @@ class Alarm(OILObject):
return ret
+class TaskGroup(OILObject):
+
+ def __init__(self, name=""):
+ super(TaskGroup, self).__init__(name)
+ self.promises = dict()
+
+ def evaluate(self, oil):
+ super(TaskGroup, self).evaluate(oil)
+
+ ''' read out appmodes for autostart '''
+ for param in oil[1]:
+ if param[0] == "PROMISE":
+ self.promises[param[1].lower()] = True
+
+
class Task(OILObject):
def __init__(self, name=""):
@@ -228,6 +278,7 @@ class Task(OILObject):
self.ACTIVATION = 0
self.PRIORITY = 0
self.SCHEDULE = "NON"
+ self.TASKGROUP = None
self.resources = dict()
def evaluate(self, oil):
@@ -243,6 +294,7 @@ class Task(OILObject):
self.autostart_appmodes[appmode[1]] = appmode[1]
if param[0] == "RESOURCE":
self.resources[param[1]] = param[1];
+
@property
def is_autostarted(self):
return self.AUTOSTART
@@ -263,6 +315,13 @@ class Task(OILObject):
def priority(self):
return self.PRIORITY
+ @property
+ def taskgroup(self):
+ if not self.TASKGROUP:
+ return self.name
+ else:
+ return self.TASKGROUP
+
def __str__(self):
ret = super(Task, self).__str__()
if self.AUTOSTART:
@@ -298,6 +357,8 @@ class CPU:
self.counters = dict()
self.events = dict()
self.isrs = dict()
+ self.checked_objects = dict()
+ self.task_groups = dict()
def evaluate(self, oil):
self.name = oil[1]
@@ -358,9 +419,12 @@ class CPU:
def __str__(self):
ret = "CPU " + self.name + "\n\t" + str(self.os)
- for x in [obj.values() for obj in [self.tasks, self.appmodes, self.resources, self.counters, self.alarms, self.events, self.isrs]]:
- for xi in x:
- ret += "\n\t" + str(xi)
+ for x in [obj.values() for obj in
+ [self.tasks, self.appmodes, self.resources,
+ self.counters, self.alarms, self.events, self.isrs,
+ self.checked_objects]]:
+ for xi in x:
+ ret += "\n\t" + str(xi)
return ret
@@ -380,9 +444,10 @@ class OILSystemDescription:
ob = Suppress("{")
cb = Suppress("}")
- oobject = Keyword("OS") ^ Keyword("TASK") ^ Keyword("COUNTER") ^ Keyword("ALARM") \
+ oobject = Keyword("OS") ^ Keyword("TASK") ^ Keyword("COUNTER") ^ Keyword("ALARM") \
^ Keyword("RESOURCE") ^ Keyword("EVENT") ^ Keyword("ISR") ^ Keyword("MESSAGE") \
- ^ Keyword("COM") ^ Keyword("NM") ^ Keyword("APPMODE") ^ Keyword("IPDU")
+ ^ Keyword("COM") ^ Keyword("NM") ^ Keyword("APPMODE") ^ Keyword("IPDU") \
+ ^ Keyword("CHECKEDOBJECT") ^ Keyword("TASKGROUP")
object_name = Group(oobject + name) # e.g., OS myOs, COUNTER mycounter
attribute_name = name ^ oobject
@@ -423,6 +488,8 @@ class OILSystemDescription:
alarms = dict()
events = dict()
isrs = dict()
+ checked_objects = dict()
+ groups = dict()
# Read out CPU
for x in oil:
if x[0] == "CPU":
@@ -448,15 +515,22 @@ class OILSystemDescription:
alarm = Alarm()
alarm.evaluate(x)
alarms[alarm.name] = alarm
- elif x[0][0] == "EVENT" :
+ elif x[0][0] == "EVENT":
event = Event()
event.evaluate(x)
events[event.name] = event
- elif x[0][0] == "ISR" :
+ elif x[0][0] == "ISR":
isr = ISR()
isr.evaluate(x)
isrs[isr.name] = isr
-
+ elif x[0][0] == "CHECKEDOBJECT":
+ obj = CheckedObject()
+ obj.evaluate(x)
+ checked_objects[obj.name] = obj
+ elif x[0][0] == "TASKGROUP":
+ group = TaskGroup()
+ group.evaluate(x)
+ groups[group.name] = group
cpu.os = os
cpu.tasks = tasks
@@ -466,11 +540,12 @@ class OILSystemDescription:
cpu.alarms = alarms
cpu.events = events
cpu.isrs = isrs
+ cpu.checked_objects = checked_objects
+ cpu.task_groups = groups
cpu.interconnect()
return cpu
-
def getOS(self):
return self.refined.os
@@ -489,6 +564,12 @@ class OILSystemDescription:
def getISRs(self):
return self.refined.isrs.values()
+ def getCheckedObjects(self):
+ return self.refined.checked_objects.values()
+
+ def getTaskGroups(self):
+ return self.refined.task_groups.values()
+
def __str__(self):
return str(self.refined)
@@ -496,5 +577,3 @@ class OILSystemDescription:
if __name__ == "__main__":
oil = OILSystemDescription('test/example.oil')
print(oil)
-
-
diff --git a/generator/RTSCAnalysis.py b/generator/RTSCAnalysis.py
deleted file mode 100644
index 02f6052b5a0866048448d42c3a5565be8e423904..0000000000000000000000000000000000000000
--- a/generator/RTSCAnalysis.py
+++ /dev/null
@@ -1,85 +0,0 @@
-from lxml import objectify
-
-from collections import namedtuple
-
-class RTSCAnalysis:
- """The RTSCAnalysis class represents the results of the application
-analysis done by the RTSC. Informations are for example for every
-system call: Who called it? In which ABB?"""
- def __init__(self, rtsc_xml):
- self.rtsc_xml = rtsc_xml
- self.rtsc_dom = objectify.parse(open(self.rtsc_xml)).getroot()
-
- def syscalls(self):
- """Return all system calls"""
- syscalls = []
- for x in self.rtsc_dom.systemcall:
- args = []
- for arg in x.xpath("*[local-name()='call_arguments']/*[local-name()='arg']"):
- args += [str(arg)]
- syscall = self.SystemCall(name = x.get("name"),
- abb = int(x.get("abb")),
- arguments = args)
- syscalls.append(syscall)
- return syscalls
-
- def find_syscall(self, abbid):
- """Find a specific system call within an ABB"""
- for syscall in self.syscalls():
- if abbid == syscall.abb:
- return syscall
-
- SystemCall = namedtuple("SystemCall", ["name", "abb", "arguments"])
-
- def get_abbs(self):
- abbs = []
- # Gather all ABB xml nodes under <abbgraph>
- for abb_xml in self.rtsc_dom.xpath('//*[local-name()=\'abb\']'):
- abb = self.ABB(id = int(abb_xml.get("name")),
- in_function=abb_xml.get("function"),
- func_entry = abb_xml.get("func_entry") == "true")
- abbs.append(abb)
- return abbs
-
- def get_edges(self):
- # Gather all ABB xml nodes under <abbgraph>
- deps = []
- for abb_xml in self.rtsc_dom.xpath('//*[local-name()=\'abb\']'):
- for dep_xml in abb_xml.xpath('*[local-name()=\'dependency\']'):
- dep = self.Dependency(source = int(abb_xml.get("name")),
- target = int(dep_xml.get("target")))
- deps.append(dep)
- return deps
-
- def get_calls(self, graph = None):
- # Gather all ABB xml nodes under <abbgraph>
- calls = []
- for call_xml in self.rtsc_dom.xpath('*[local-name()=\'functioncall\']'):
- call = self.Call(function = call_xml.get("name"),
- abb = int(call_xml.get("abb")))
- calls.append(call)
- return calls
-
- ABB = namedtuple('ABB', ['id', 'in_function', 'func_entry'])
- Dependency = namedtuple('Dependency', ['source', 'target'])
- Call = namedtuple('Call', ['function', 'abb'])
-
-################################################################
-##
-## Testcases
-##
-################################################################
-import unittest
-
-class TestRTSCAnalysis(unittest.TestCase):
- def setUp(self):
- self.rtsc = RTSCAnalysis("test/rtsc_analyze.xml")
- def test_osek_attributes(self):
- syscall = self.rtsc.find_syscall(4)
- self.assertEqual(syscall.name, "OSEKOS_ActivateTask")
- self.assertEqual(syscall.abb, 4)
- self.assertEqual(syscall.arguments[0], "OSEKOS_TASK_Struct_Handler13")
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/generator/RTSCSystemDescription.py b/generator/RTSCSystemDescription.py
deleted file mode 100644
index 5ade2145311613006325b014a8ac1c9fcb0dd030..0000000000000000000000000000000000000000
--- a/generator/RTSCSystemDescription.py
+++ /dev/null
@@ -1,238 +0,0 @@
-from lxml import objectify
-import os
-from collections import namedtuple
-
-
-class RTSCSystemDescription:
- """The system description represents the system.xml, that describes
- the elements within the application (tasks, alarms, etc...).
-
- WARNING: This is only a hacky frontend for the system.xml. Use the Systemgraph for real information."""
- def __init__(self, system_xml):
- self.system_xml = system_xml
- self.system_dom = objectify.parse(open(self.system_xml)).getroot()
-
- self.osek_xml = os.path.join(os.path.dirname(system_xml), str(self.system_dom.specificdescription))
- self.osek_dom = objectify.parse(open(self.osek_xml)).getroot()
-
- def getName(self):
- return str(self.system_dom.name)
-
- def isExtended(self):
- return str(self.osek_dom.OS.STATUS) == "EXTENDED"
-
- def getHooks(self):
- hooks = {}
- for name in ["error", "startup", "shutdown", "pretask", "posttask"]:
- hooks[name] = self.osek_dom.OS[name.upper() + "HOOK"] == "TRUE"
- return hooks
-
- class Task:
- def __init__(self, event_element, root_subtask_name, subtasks, promises):
- self.event = event_element
- self.root_subtask = str(root_subtask_name)
- self.subtasks = subtasks
- self.promises = promises
-
- def getEvent(self, name):
- for event in self.system_dom.periodicevent:
- if event.identifier == name:
- return (str(name), "periodic", int(event.period), int(event.phase),
- int(event.jitter))
-
- for event in self.system_dom.nonperiodicevent:
- if event.identifier == name:
- return (str(name), "nonperiodic", int(event.interarrivaltime))
-
- def getTasks(self):
- tasks = []
- for task in self.system_dom.task:
- event = self.getEvent(task.event)
- assert event != None, "Every Task must be associated with an Event"
- promises = {'serialized': False}
- for attribute, value in task.items():
- if attribute.startswith("promise-"):
- promise = attribute[len("promise-"):]
- assert promise in promises, "Unkown promise: %s" % attribute
- promises[promise] = (value == "true")
- subtasks = {}
- root_subtask = None
- for subtask in task.subtask:
- deadline = (str(subtask.deadline.type),
- int(subtask.deadline.relative),
- int(subtask.deadline.deadline))
- subtasks[str(subtask.handler)] = deadline
- if "root" in list(subtask.keys()):
- root_subtask = subtask.handler
- tasks.append(self.Task(event, root_subtask, subtasks, promises))
- return tasks
-
- def isISR(self, name):
- if hasattr(self.osek_dom, "ISR"):
- for isr in self.osek_dom.ISR:
- if isr.name == name:
- return True
- return False
-
- SubTask = namedtuple("Subtask", ["name", "is_basic", "static_priority", "max_activations",
- "autostart", "preemptable"])
- def getSubTasks(self):
- subtasks = []
- for xml in self.osek_dom.TASK:
- subtasks.append(self.SubTask(
- name = str(xml.name),
- is_basic = str(xml.TYPE) == "BASIC",
- preemptable = str(xml.SCHEDULE) == "FULL",
- static_priority = int(str(xml.PRIORITY)),
- max_activations = int(str(xml.ACTIVATION)),
- autostart = str(xml.AUTOSTART) == "TRUE"))
- return subtasks
-
- def getSubTask(self, name):
- for task in self.getSubTasks():
- if task.name == name:
- return task
-
- Alarm = namedtuple("Alarm", ["name", "counter", "task", "event",
- "armed", "cycletime", "reltime"])
-
- def getAlarms(self):
- alarms = []
- if not hasattr(self.osek_dom, "ALARM"):
- return []
- for alarm in self.osek_dom.ALARM:
- name = alarm.name
- tasks = []
- events = []
- if hasattr(alarm, "ACTIVATETASK"):
- for task in alarm.ACTIVATETASK:
- tasks.append(task.TASK)
- if hasattr(alarm, "SETEVENT"):
- for setevent in alarm.SETEVENT:
- tasks.append(setevent.TASK)
- events.append(setevent.EVENT)
-
- armed = False
- cycletime = 0
- reltime = 0
- if hasattr(alarm, "ARMED"):
- armed = (str(alarm.ARMED) == "TRUE")
- if hasattr(alarm, "CYCLETIME"):
- cycletime = int(str(alarm.CYCLETIME))
- if hasattr(alarm, "RELTIME"):
- reltime = int(str(alarm.RELTIME))
-
- # OSEK Spec 9.2 Only one task or one event is
- # activated
- assert len(tasks) == 1 or (len(tasks == 1 and len(events)) == 1)
- if len(events) == 0:
- events = [None]
- alarms.append(self.Alarm(name = str(name),
- counter = str(alarm.COUNTER),
- task = tasks[0],
- event = events[0],
- armed = armed,
- cycletime = cycletime,
- reltime = reltime))
- return alarms
-
- Counter = namedtuple("Counter", ["name", "maxallowedvalue", "ticksperbase", "mincycle",
- "softcounter"])
-
- def getHardwareCounters(self):
- counters = []
- if not hasattr(self.osek_dom, "HARDWARECOUNTER"):
- return []
- for counter in self.osek_dom.HARDWARECOUNTER:
- counters.append(self.Counter(name = counter.name,
- maxallowedvalue = counter.MAXALLOWEDVALUE,
- ticksperbase = counter.TICKSPERBASE,
- mincycle = counter.MINCYCLE,
- softcounter = False))
- return counters
-
-
- ISR = namedtuple("ISR", ["name", "category", "priority", "device"])
-
- def getISR(self, name):
- if not hasattr(self.osek_dom, "ISR"):
- return
- for isr in self.osek_dom.ISR:
- if isr.name == name:
- return self.ISR(name = isr.name,
- category = int(isr.CATEGORY),
- priority = int(isr.PRIORITY),
- device = int(isr.DEVICE),
- )
-
- Resource = namedtuple("Resource", ["name", "tasks"])
-
- def getResources(self):
- resources = []
- if not hasattr(self.osek_dom, "RESOURCE"):
- return resources
- for res in self.osek_dom.RESOURCE:
- tasks = set([])
- for task in self.osek_dom.TASK:
- if res.name == "RES_SCHEDULER":
- tasks.add(task.name)
- if not hasattr(task, "RESOURCE"):
- continue
- for x in task.RESOURCE:
- if str(x) == res.name:
- tasks.add(task.name)
- resources.append(self.Resource(name = res.name,
- tasks = list(tasks)))
- return resources
-
- CheckedObject = namedtuple("CheckedObject", ["name", "header", "typename", "checkfunc"])
-
- def getCheckedObjects(self):
- checkedObjects = []
- if not hasattr(self.osek_dom, "CHECKEDOBJECT"):
- return checkedObjects
- for co in self.osek_dom.CHECKEDOBJECT:
- header = None
- typename = None
- checkfunc = None
- assert co.name, "A CHECKEDOBJECT requires a name"
- if hasattr(co, "TYPEDEF"):
- if hasattr(co.TYPEDEF, "HEADER"):
- header = co.TYPEDEF.HEADER
- if hasattr(co.TYPEDEF, "TYPENAME"):
- typename = co.TYPEDEF.TYPENAME
- assert typename is not None, "A CheckedObject must have a type"
- if hasattr(co, "CUSTOMCHECKFUNCTION"):
- checkfunc = co.CUSTOMCHECKFUNCTION
- checkedObjects.append(self.CheckedObject(co.name, header, typename, checkfunc))
- return checkedObjects
-
-
-################################################################
-##
-## Testcases
-##
-################################################################
-import unittest
-
-class TestRTSCSystemDescription(unittest.TestCase):
- def setUp(self):
- self.desc = RTSCSystemDescription("test/system.xml")
- def test_osek_attributes(self):
- self.assertEqual(self.desc.getName(), "TestSystem")
- self.assertFalse(self.desc.isExtended())
- hooks = self.desc.getHooks()
- self.assertTrue(len(hooks) == 5)
- for i in hooks:
- self.assertFalse(hooks[i])
-
- def test_tasks(self):
- tasks = dict([(x.name, x) for x in self.desc.getSubTasks()])
- self.assertEqual(len(tasks), 3)
-
- self.assertTrue(tasks["Handler12"].is_basic)
- self.assertEqual(tasks["Handler13"].max_activations, 1)
- self.assertEqual(tasks["Handler11"].static_priority, 5)
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/generator/annotate/cored_annotate.cc b/generator/annotate/cored_annotate.cc
deleted file mode 100644
index 134da301656793db723bab98b202652f3eb3a508..0000000000000000000000000000000000000000
--- a/generator/annotate/cored_annotate.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-#include "os.h"
-#include "rtsc_annotate.h"
-#include "depsvc.h"
-
-extern "C" {
-
-void OSEKOS_kickoff(void) {
- rtsc_systemcall();
-}
-
-StatusType OSEKOS_ActivateTask(TaskType t) {
- rtsc_systemcall();
- rtsc_annotate_os_param(t);
-}
-
-StatusType OSEKOS_ChainTask(TaskType t) {
- rtsc_systemcall();
- rtsc_annotate_os_param(t);
-}
-
-StatusType OSEKOS_TerminateTask() {
- rtsc_systemcall();
-}
-
-StatusType OSEKOS_Schedule() {
- rtsc_systemcall();
-}
-
-StatusType OSEKOS_GetResource(ResourceType r) {
- rtsc_systemcall();
- rtsc_annotate_os_param(r);
-}
-
-StatusType OSEKOS_ReleaseResource(ResourceType r) {
- rtsc_systemcall();
- rtsc_annotate_os_param(r);
-}
-
-StatusType OSEKOS_SetEvent(TaskType t,EventMaskType e) {
- rtsc_systemcall();
- rtsc_annotate_os_param(t);
- rtsc_annotate_os_param((void*)e);
-}
-
-StatusType OSEKOS_GetEvent(TaskType t,EventMaskType e) {
- rtsc_systemcall();
- rtsc_annotate_os_param(t);
- rtsc_annotate_os_param((void*)e);
-}
-
-StatusType OSEKOS_ClearEvent(EventMaskType e) {
- rtsc_systemcall();
- rtsc_annotate_os_param((void*)e);
-}
-
-StatusType OSEKOS_WaitEvent(EventMaskType e) {
- rtsc_systemcall();
- rtsc_annotate_os_param((void*)e);
-}
-
-StatusType OSEKOS_GetAlarm(AlarmType a, TickType* ticks) {
- rtsc_systemcall();
- rtsc_annotate_os_param(a);
- rtsc_annotate_app_param((void*)ticks);
-}
-
-StatusType OSEKOS_SetRelAlarm(AlarmType a, TickType inc, TickType cycle) {
- rtsc_systemcall();
- rtsc_annotate_os_param(a);
- rtsc_annotate_app_param((void*)inc);
- rtsc_annotate_app_param((void*)cycle);
-}
-
-StatusType OSEKOS_SetAbsAlarm(AlarmType a, TickType inc, TickType cycle) {
- rtsc_systemcall();
- rtsc_annotate_os_param(a);
- rtsc_annotate_app_param((void*)inc);
- rtsc_annotate_app_param((void*)cycle);
-}
-
-StatusType OSEKOS_CancelAlarm(AlarmType a) {
- rtsc_systemcall();
- rtsc_annotate_os_param(a);
-}
-
-StatusType OSEKOS_AdvanceCounter(CounterType c) {
- rtsc_systemcall();
- rtsc_annotate_os_param(c);
-}
-
-StatusType OSEKOS_SendMessage(MessageIdentifier m,void *data) {
- rtsc_systemcall();
- rtsc_annotate_os_param(m);
- rtsc_annotate_app_param((void*)data);
-}
-
-StatusType OSEKOS_ReceiveMessage(MessageIdentifier m,void *data) {
- rtsc_systemcall();
- rtsc_annotate_os_param(m);
- rtsc_annotate_app_param((void*)data);
-}
-
-StatusType OSEKOS_SendDynamicMessage(MessageIdentifier m,void *data,unsigned int length) {
- rtsc_systemcall();
- rtsc_annotate_os_param(m);
- rtsc_annotate_app_param((void*)data);
- rtsc_annotate_app_param((void*)length);
-}
-
-StatusType OSEKOS_ReceiveDynamicMessage(MessageIdentifier m,void *data,unsigned int length) {
- rtsc_systemcall();
- rtsc_annotate_os_param(m);
- rtsc_annotate_app_param((void*)data);
- rtsc_annotate_app_param((void*)length);
-}
-
-StatusType OSEKOS_SendZeroMessage(MessageIdentifier m) {
- rtsc_systemcall();
- rtsc_annotate_os_param(m);
-}
-
-
-void OSEKOS_ShutdownOS(StatusType m) {
- rtsc_systemcall();
- rtsc_annotate_os_param((void*)m);
-
-}
-
-void OSEKOS_DisableAllInterrupts() {
- rtsc_systemcall();
-}
-void OSEKOS_EnableAllInterrupts() {
- rtsc_systemcall();
-}
-void OSEKOS_SuspendAllInterrupts() {
- rtsc_systemcall();
-}
-void OSEKOS_ResumeAllInterrupts() {
- rtsc_systemcall();
-}
-void OSEKOS_SuspendOSInterrupts() {
- rtsc_systemcall();
-}
-void OSEKOS_ResumeOSInterrupts() {
- rtsc_systemcall();
-}
-
-
-void OSEKOS_AcquireCheckedObject(struct CHECKEDOBJECTStruct *) {
- rtsc_systemcall();
-}
-
-void OSEKOS_ReleaseCheckedObject(struct CHECKEDOBJECTStruct *) {
- rtsc_systemcall();
-}
-
-}
diff --git a/generator/annotate/rtsc_annotate.h b/generator/annotate/rtsc_annotate.h
deleted file mode 100644
index 5b37194fc62ff8fe23947c211ccbe00e1257aa1e..0000000000000000000000000000000000000000
--- a/generator/annotate/rtsc_annotate.h
+++ /dev/null
@@ -1,147 +0,0 @@
-#ifndef __rtsc_annotate_h__
-#define __rtsc_annotate_h__
-
-#include "os.h"
-
-/******************************************************************************
- * *
- * Annotations to describe OSEKOS-Systemcalls *
- * *
- ******************************************************************************/
-
-/**
- * This annotation indicates that the caller is part of the OS API
- **/
-void rtsc_systemcall();
-
-/**
- * This annotation indicates that a particular parameter is a parameter
- * belonging to the application, so this parameter must not be eliminated when
- * cleaning up the OS API Calls of the source system.
- *
- * Example:
- *
- * void setData(Message *m,void *data) {
- * llvm_annotate_application_param(data);
- * }
- *
- * This indicates that the parameter data carries application related
- * information. Therefore, that variable passed to this particular call of
- * setData() must not be eliminated when the call to setData() gets removed!
- **/
-void rtsc_annotate_app_param(void* param);
-
-/**
- * This annotation indicates that a particular parameter is a parameter
- * belonging to the operating system, so this parameter should be eliminiated
- * when the OS API Calls of the source system are cleaned up.
- *
- * Example:
- *
- * void setData(Message *m,void *data) {
- * llvm_annotate_os_param(data);
- * }
- *
- * This indicates that this parameter does not carry application related
- * information. Therefore, the variable passed to this particular call to
- * setData() should also be eliminated when the call to setData gets removed!
- **/
-void rtsc_annotate_os_param(void* param);
-
-/**
- * This annotation indicates that all parameters passed to a parfticular system
- * call belong to the operating system, so all these parameters should be
- * eliminated when the OS API Calls of the source system are cleaned up.
- **/
-void rtsc_annotate_os_param_all();
-
-/******************************************************************************
- * *
- * Annotations to mark access to global variables *
- * *
- ******************************************************************************/
-
-/**
- * This annotation marks the definition of a global variable
- **/
-void RTSC_store_global(void *global,void *local);
-
-/**
- * This annotation marks the use of a global variable
- **/
-void RTSC_load_global(void *global,void *local);
-
-#define STORE(GLOBAL,LOCAL) \
- RTSC_store_global(&GLOBAL,&LOCAL)
-
-#define LOAD(GLOBAL,LOCAL) \
- RTSC_load_global(&GLOBAL,&LOCAL)
-
-/******************************************************************************
- * *
- * Annotations to provide information for WCET-analysis *
- * *
- ******************************************************************************/
-
-/**
- * Thist annotation provides the maximum number of iterations a loop will carry out
- **/
-void RTSC_setLoopCount(unsigned int i);
-
-/**
- * This annotation provides the maximum number of iteratiions a loop will carry
- * out at all as first parameter. The second parameter may hold a local variable
- * that contains more precise information about the actual iteration count
- **/
-void RTSC_setVariableLoopCount(unsigned int i,void *var);
-
-/**
- * Thist annotation provides the maximum depth of a recursive function call.
- **/
-void RTSC_setRecursionDepth(unsigned int i);
-
-/**
- * This annotation provides the maximum depth of a recursive function call as
- * first parameter. The second parameter may hold a local variable that contains
- * more precise information about the actual recursion depth.
- **/
-void RTSC_setVariableRecursionDepth(unsigned int i,void *var);
-
-#define LOOP_COUNT(count) \
- RTSC_setLoopCount(count)
-
-#define VAR_LOOP_COUNT(count,var) \
- RTSC_setLoopCount(count,(void*)&var))
-
-#define RECURSION_DEPTH(depth) \
- RTSC_setRecursionDepth(depth)
-
-#define VAR_RECURSION_DEPTH(depth,var) \
- RTSC_setRecursionDepth(depth,(void*)&var)
-
-/******************************************************************************
- * *
- * Annotations to provide possible values for given variables *
- * *
- ******************************************************************************/
-
-/**
- * This annotation informs about possible values of the variable that is given
- * as first parameter. If such an annotation is given, no values except those
- * given by these annotations are considered.
- **/
-void RTSC_possibleValue(void *var,void *val);
-
-#define POSSIBLE_VAL(var,val) \
- RTSC_possibleValue((void*)&var,(void*)val)
-
-/**
- * Specify the WCET for a given basic block. If multiple annotations are given
- * the WCETs are summed up.
- **/
-void RTSC_setBBWCET(unsigned int wcet);
-
-#define BBWCET(WCET) \
- RTSC_setBBWCET(WCET)
-
-#endif /* __rtsc_annotate_h__ */
diff --git a/generator/graph/PassManager.py b/generator/graph/PassManager.py
index fd2d00e3e7eef1307ca1ea733692c78346879bbc..3e138faee538daf687eef9277ac9c6d386487403 100644
--- a/generator/graph/PassManager.py
+++ b/generator/graph/PassManager.py
@@ -79,7 +79,7 @@ class PassManager:
self.verifiers[x] = getattr(module, x)
logging.info("Loaded %d verifier functions", len(self.verifiers))
- def get_pass(self, name, only_enqueued = False):
+ def get_pass(self, name, only_enqueued=False):
P = self.passes.get(name, None)
if only_enqueued and P:
if P in self.analysis_pipe or P.valid:
@@ -100,11 +100,11 @@ class PassManager:
pass_number = 0
# Dump graph as dot output
- with open("%s_00_passes.dot" %(basefilename), "w+") as fd:
+ with open("%s_00_passes.dot" % (basefilename), "w+") as fd:
fd.write(self.pass_graph().dump_as_dot())
# Dump graph as dot output
- with open("%s_%02d_RTSC.dot" %(basefilename, pass_number), "w+") as fd:
+ with open("%s_%02d_original.dot" %(basefilename, pass_number), "w+") as fd:
fd.write(self.system_graph.dump_as_dot())
pass_number += 1
diff --git a/generator/graph/SystemGraph.py b/generator/graph/SystemGraph.py
index 7498f4d3a9ab39a8a067e4ddc6be3c7f5c34c81a..82588977d27af463786f1d0c8faccfdd72082674 100644
--- a/generator/graph/SystemGraph.py
+++ b/generator/graph/SystemGraph.py
@@ -17,7 +17,7 @@ class SystemGraph(GraphObject, PassManager):
produces system blocks"""
def __init__(self):
- GraphObject.__init__(self, "SystemGraph", root = True)
+ GraphObject.__init__(self, "SystemGraph", root=True)
PassManager.__init__(self, self)
self.counters = {}
self.tasks = []
@@ -26,7 +26,6 @@ class SystemGraph(GraphObject, PassManager):
self.label = "SystemGraph"
self.max_abb_id = 0
self.system = None
- self.rtsc = None
self.llvmpy = None
self.alarms = []
self.isrs = []
@@ -44,7 +43,7 @@ class SystemGraph(GraphObject, PassManager):
for function in self.functions.values():
if not self.passes["AddFunctionCalls"].is_relevant_function(function):
continue
- if not function in sub_objects:
+ if function not in sub_objects:
objects.append(function)
return objects
@@ -78,7 +77,7 @@ class SystemGraph(GraphObject, PassManager):
return subtask
- def find_syscall(self, function, syscall_type, arguments, multiple = False):
+ def find_syscall(self, function, syscall_type, arguments, multiple=False):
abbs = []
for abb in function.abbs:
if abb.isA(syscall_type) \
@@ -100,16 +99,25 @@ class SystemGraph(GraphObject, PassManager):
"""The scheduler priority is higher than the highest task"""
return max([x.static_priority for x in self.get_subtasks()]) + 1
-
def read_oil_system_description(self, system):
- """Reads in the system description out of an OIL file and builds the tasks and subtask
- objects and connects them"""
- maxprio = 0 # Maximum task prio according to OIL file
+ """Reads in the system description out of an OIL file and builds the
+ tasks and subtask objects and connects them
+
+ """
+ maxprio = 0 # Maximum task prio according to OIL file
+ tasks = {}
for task_desc in system.getTasks():
+ # Create or Get the Task (Group)
+ task_group = task_desc.taskgroup
taskname = task_desc.name
- task = Task(self, "Task:" + taskname)
- self.tasks.append(task)
- self.stats.add_child(self, "task", task)
+ if task_group not in tasks:
+ task = Task(self, task_group)
+ self.tasks.append(task)
+ tasks[task_group] = task
+ self.stats.add_child(self, "task", task)
+ else:
+ task = tasks[task_group]
+
subtask = Subtask(self, taskname, "OSEKOS_TASK_" + taskname)
# Every subtask belongs to a task
task.add_subtask(subtask)
@@ -133,9 +141,17 @@ class SystemGraph(GraphObject, PassManager):
# ISR
isr_prio = maxprio + 1 # ISR get priorities above maximum task prio
for isr_desc in system.getISRs():
- task = Task(self, "ISRTask:" + isr_desc.name)
- self.tasks.append(task)
- self.stats.add_child(self, "task", task)
+ task_group = isr_desc.taskgroup
+ taskname = isr_desc.name
+ if task_group not in tasks:
+ task = Task(self, task_group)
+ self.tasks.append(task)
+ tasks[task_group] = task
+ self.stats.add_child(self, "task", task)
+ else:
+ task = tasks[task_group]
+
+ # Generate Subtask for ISR
subtask = Subtask(self, isr_desc.name, "OSEKOS_ISR_" + isr_desc.name)
task.add_subtask(subtask)
self.functions[subtask.function_name] = subtask
@@ -154,12 +170,18 @@ class SystemGraph(GraphObject, PassManager):
subtask.set_max_activations(1)
subtask.set_autostart(False)
subtask.set_is_isr(True, isr_desc.device)
- self.stats.add_data(subtask, "is_isr", True, scalar = True)
+ self.stats.add_data(subtask, "is_isr", True, scalar=True)
self.isrs.append(ISR(self, subtask))
+ # Now, all Task (Groups) are created, now we catch the task group configurations
+ for taskgroup_desc in system.getTaskGroups():
+ task_group = tasks[taskgroup_desc.name]
+ task_group.promises.update(taskgroup_desc.promises)
+
# Counters
- Counter = namedtuple("Counter", ["name", "maxallowedvalue", "ticksperbase", "mincycle",
+ Counter = namedtuple("Counter", ["name", "maxallowedvalue",
+ "ticksperbase", "mincycle",
"softcounter"])
for ctr in system.getCounters():
self.counters[ctr.name] = Counter(name = ctr.name,
@@ -200,91 +222,11 @@ class SystemGraph(GraphObject, PassManager):
if not x.is_isr]
self.resources[sched] = Resource(self, sched, subtasks)
-
- def read_xml_system_description(self, system):
- """Reads in the system description out of an XML file and builds the tasks and subtask
- objects and connects them"""
-
- for task_desc in system.getTasks():
- task = Task(self, "Task:by-event:" + task_desc.event[0])
- task.set_event(task_desc.event)
- task.set_promises(task_desc.promises)
- self.tasks.append(task)
- self.stats.add_child(self, "task", task)
- for subtask_name, deadline in task_desc.subtasks.items():
- isISR = system.isISR(subtask_name)
- if isISR:
- subtask = Subtask(self, subtask_name, "OSEKOS_ISR_" + subtask_name)
- else:
- subtask = Subtask(self, subtask_name, "OSEKOS_TASK_" + subtask_name)
- # Every subtask belongs to a task
- task.add_subtask(subtask)
- # Every subtask is also an function
- self.functions[subtask.function_name] = subtask
- self.stats.add_child(task, "subtask", subtask)
-
-
- subtask.set_deadline(deadline)
- if isISR:
- isr_osek = system.getISR(subtask_name)
- subtask.set_static_priority(isr_osek.priority)
- # Assumption: Our subtasks are non-preemptable basic-tasks
- subtask.set_preemptable(False)
- subtask.set_basic_task(True)
- subtask.set_max_activations(1)
- subtask.set_autostart(False)
- subtask.set_is_isr(True, isr_osek.device)
- self.stats.add_data(subtask, "is_isr", True, scalar = True)
-
- self.isrs.append(ISR(self, subtask))
- else:
- subtask_osek = system.getSubTask(subtask_name)
- assert subtask_osek.static_priority != 0, \
- "No user thread can have the thread ID 0, it is reserved for the Idle thread"
- subtask.set_static_priority(subtask_osek.static_priority)
- subtask.set_preemptable(subtask_osek.preemptable)
- subtask.set_basic_task(subtask_osek.is_basic)
- subtask.set_max_activations(subtask_osek.max_activations)
- subtask.set_autostart(subtask_osek.autostart)
- subtask.set_is_isr(False)
- self.stats.add_data(subtask, "is_isr", False, scalar = True)
self.checkedObjects = system.getCheckedObjects()
-
- self.counters = {x.name: x for x in system.getHardwareCounters()}
-
- for alarm in system.getAlarms():
- activated_subtask = self.functions["OSEKOS_TASK_" + alarm.task]
- belongs_to_task = activated_subtask.task
-
- # Generate a Alarm Handler SubTask
- name = "OSEKOS_ALARM_HANDLER_" + alarm.name
- subtask = Subtask(self, alarm.name, name)
- subtask.set_static_priority(1<<31)
- subtask.set_preemptable(False)
- subtask.set_basic_task(True)
- subtask.set_max_activations(1)
- subtask.set_autostart(False)
- subtask.set_is_isr(True)
-
-
- # And add it to the task where the activated task belongs to
- belongs_to_task.add_subtask(subtask)
- self.functions[subtask.function_name] = subtask
-
- self.alarms.append(Alarm(self, subtask, alarm, activated_subtask))
-
- for res in system.getResources():
- self.resources[res.name] = Resource(self, res.name, res.tasks)
- if not "RES_SCHEDULER" in self.resources:
- sched = "RES_SCHEDULER"
- subtasks = [x.name for x in self.get_subtasks()
- if not x.is_isr]
- self.resources[sched] = Resource(self, sched, subtasks)
-
-
+
def read_llvmpy_analysis(self, llvmpy):
self.llvmpy = llvmpy
self.max_abb_id = 0
@@ -379,81 +321,7 @@ class SystemGraph(GraphObject, PassManager):
abb.function.called_functions.update(called_funcs)
- def read_rtsc_analysis(self, rtsc):
- self.rtsc = rtsc
- self.max_abb_id = 0
-
- # Add all atomic basic blocks
- for abb_xml in rtsc.get_abbs():
- abb = AtomicBasicBlock(self, abb_xml.id)
- self.max_abb_id = max(self.max_abb_id, abb_xml.id)
- ## add to global abb dict for faster search
- self.all_abbs[abb.get_id()] = abb
-
- # Get function for abb
- function = self.functions.get(abb_xml.in_function)
- if function == None:
- # Not existing yet, just add it
- function = Function(abb_xml.in_function)
- self.functions[abb_xml.in_function] = function
- function.add_atomic_basic_block(abb)
- if abb_xml.func_entry:
- function.set_entry_abb(abb)
-
- # Generate an ActivateTask for every alarm
- for alarm in self.alarms:
- activate_task = self.new_abb()
- alarm.handler.add_atomic_basic_block(activate_task)
- alarm.handler.set_entry_abb(activate_task)
- activate_task.make_it_a_syscall(S.ActivateTask, [alarm.subtask])
- alarm.carried_syscall = activate_task
-
- # Statistic generation
- self.stats.add_child(alarm.handler.task, "subtask", alarm.handler)
- self.stats.add_data(alarm.handler, "is_isr", True, scalar = True)
-
-
- # Add all implicit intra function control flow graphs
- for dep in self.rtsc.get_edges():
- source = self.find_abb(dep.source)
- target = self.find_abb(dep.target)
- source.add_cfg_edge(target, E.function_level)
-
- # Find all return blocks for functions
- for function in self.functions.values():
- ret_abbs = []
- for abb in function.abbs:
- if len(abb.get_outgoing_edges(E.function_level)) == 0:
- ret_abbs.append(abb)
-
- if len(ret_abbs) == 0:
- logging.info("Endless loop in %s", function)
- elif len(ret_abbs) > 1:
- # Add an artificial exit block
- abb = self.new_abb()
- function.add_atomic_basic_block(abb)
- for ret in ret_abbs:
- ret.add_cfg_edge(abb, E.function_level)
- function.set_exit_abb(abb)
- else:
- function.set_exit_abb(ret_abbs[0])
- if isinstance(function, Subtask) and function.is_isr:
- # All ISR function get an additional iret block
- iret = self.new_abb()
- function.add_atomic_basic_block(iret)
- iret.make_it_a_syscall(S.iret, [function])
- function.exit_abb.add_cfg_edge(iret, E.function_level)
- function.set_exit_abb(iret)
-
- # Add all system calls
- for syscall in self.rtsc.syscalls():
- abb = self.find_abb(syscall.abb)
- assert abb.isA(S.computation)
- abb.make_it_a_syscall(S.fromString(syscall.name), syscall.arguments)
- assert not abb.isA(S.computation)
- assert abb in self.get_abbs()
- assert len(self.get_syscalls()) >= len(self.rtsc.syscalls())
-
+
def new_abb(self, bbs=[]):
self.max_abb_id += 1
diff --git a/generator/main.py b/generator/main.py
index 90cab40d4647dde407381c664fcbceef9afbc5da..0fde17c1a0a9cc698d48ac2c21fc12df6a3f1298 100755
--- a/generator/main.py
+++ b/generator/main.py
@@ -18,6 +18,7 @@ import sys
import logging
import optparse
+
def split_lls_callback(option, opt, value, parser):
x = value.split(',')
y = getattr(parser.values, option.dest)
@@ -25,6 +26,7 @@ def split_lls_callback(option, opt, value, parser):
x = y + x
setattr(parser.values, option.dest, x)
+
def setup_logging(log_level : int):
""" setup the logging module with the given log_level """
@@ -39,7 +41,7 @@ if __name__ == "__main__":
source_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.abspath(os.path.join(source_dir, "..")))
- from generator import LLVMPYAnalysis, Generator, RTSCAnalysis, RTSCSystemDescription, OILSystemDescription
+ from generator import LLVMPYAnalysis, Generator, OILSystemDescription
from generator.rules import *
from generator.graph import *
from generator.tools import panic, wrap_typecheck_functions
@@ -51,8 +53,6 @@ if __name__ == "__main__":
parser = optparse.OptionParser(usage=usage)
parser.add_option("", "--system-desc",
metavar="SYSTEM_DESC", help="the system description file (.xml or .oil)")
- parser.add_option("", "--rtsc-analyze-xml",
- metavar="RTSC_ANALYZE_XML", help="the RTSC Analyze file")
parser.add_option("-p", "--prefix",
metavar="DIR", help="where to place the dosek source (prefix)")
parser.add_option("-n", "--name",
@@ -98,8 +98,7 @@ if __name__ == "__main__":
if options.system_desc:
if options.system_desc.lower().endswith(".xml"):
- system_description = RTSCSystemDescription.RTSCSystemDescription(options.system_desc)
- graph.read_xml_system_description(system_description)
+ panic("RTSC XMLs no longer supported")
elif options.system_desc.lower().endswith(".oil"):
system_description = OILSystemDescription.OILSystemDescription(options.system_desc)
graph.read_oil_system_description(system_description)
@@ -115,12 +114,7 @@ if __name__ == "__main__":
systemanalysis = None
- if options.rtsc_analyze_xml:
- rtsc_analysis = RTSCAnalysis.RTSCAnalysis(options.rtsc_analyze_xml)
- graph.read_rtsc_analysis(rtsc_analysis)
- systemanalysis = rtsc_analysis
-
- elif options.llfiles and len(options.llfiles) > 0:
+ if options.llfiles and len(options.llfiles) > 0:
print("Analyzing via llvmpy. ", options.llfiles)
mergedoutfile = open(options.mergedoutput, 'w')
if not mergedoutfile:
@@ -134,7 +128,7 @@ if __name__ == "__main__":
pass_manager.register_and_enqueue_analysis(ABBMergePass())
else:
- print("Error, choose an analysis variant. RTSC or LLVMPY")
+ print("No .ll files given")
sys.exit(-1)
graph.add_system_objects()
diff --git a/generator/test/example.oil b/generator/test/example.oil
index d110b7959f372f5b73952ddd2e8ec59027fb77b3..1e4ea975121fe16a525cef6e5ffbe64880b2d1f1 100644
--- a/generator/test/example.oil
+++ b/generator/test/example.oil
@@ -96,4 +96,11 @@ CPU Josek_x86 {
DEVICE = 32;
};
+ CHECKEDOBJECT data {
+ TYPEDEF = complextype {
+ HEADER = "app/bcc1/depsvc/type.h";
+ };
+ CHECKFUNCTION = datacheck;
+ };
+
} : "Das ist eine Beschreibung der CPU" ;
diff --git a/generator/test/osekossystem.xml b/generator/test/osekossystem.xml
deleted file mode 100644
index 3672fed325750282707fc3d74ce74d459da15520..0000000000000000000000000000000000000000
--- a/generator/test/osekossystem.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0"?>
-
-<oseksystem xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <OS>
- <name>TestSystem</name>
- <STATUS>STANDARD</STATUS>
- <ERRORHOOK>FALSE</ERRORHOOK>
- <STARTUPHOOK>FALSE</STARTUPHOOK>
- <SHUTDOWNHOOK>FALSE</SHUTDOWNHOOK>
- <PRETASKHOOK>FALSE</PRETASKHOOK>
- <POSTTASKHOOK>FALSE</POSTTASKHOOK>
- </OS>
-
- <TASK>
- <name>Handler11</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>5</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler12</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-
- <TASK>
- <name>Handler13</name>
- <TYPE>BASIC</TYPE>
- <SCHEDULE>FULL</SCHEDULE>
- <PRIORITY>4</PRIORITY>
- <ACTIVATION>1</ACTIVATION>
- <AUTOSTART>TRUE</AUTOSTART>
- </TASK>
-</oseksystem>
diff --git a/generator/test/rtsc_analyze.xml b/generator/test/rtsc_analyze.xml
deleted file mode 100644
index c16fdfd5b93b0be18017b316919e514ced65d350..0000000000000000000000000000000000000000
--- a/generator/test/rtsc_analyze.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<RTSCAnalyze xmlns="http://www4.informatik.uni-erlangen.de/RTSC">
-
- <systemcall abb="3" name="OSEKOS_ActivateTask">
- <call_arguments>
- <arg pos="0" type="global">OSEKOS_TASK_Struct_Handler12</arg>
- </call_arguments>
- </systemcall>
-
- <systemcall abb="4" name="OSEKOS_ActivateTask">
- <call_arguments>
- <arg pos="0" type="global">OSEKOS_TASK_Struct_Handler13</arg>
- </call_arguments>
- </systemcall>
-
- <systemcall abb="5" name="OSEKOS_TerminateTask">
- <call_arguments/>
- </systemcall>
-
- <systemcall abb="7" name="OSEKOS_TerminateTask">
- <call_arguments/>
- </systemcall>
-
- <systemcall abb="9" name="OSEKOS_TerminateTask">
- <call_arguments/>
- </systemcall>
-
- <abbgraph>
- <event id="Event1">
- <subtask name="Handler11">
- <abb function="OSEKOS_TASK_Handler11" name="5"/>
- <abb func_entry="true" function="OSEKOS_TASK_Handler11" name="3">
- <dependency target="7"/>
- <dependency target="4"/>
- </abb>
- <abb function="OSEKOS_TASK_Handler11" name="4">
- <dependency target="9"/>
- <dependency target="5"/>
- </abb>
- </subtask>
- <subtask name="Handler12">
- <abb func_entry="true" function="OSEKOS_TASK_Handler12" name="7"/>
- </subtask>
- <subtask name="Handler13">
- <abb func_entry="true" function="OSEKOS_TASK_Handler13" name="9"/>
- </subtask>
- </event>
- </abbgraph>
-
-</RTSCAnalyze>
diff --git a/generator/test/system.xml b/generator/test/system.xml
deleted file mode 100644
index 41ca0c15b9d03cb20a4afccad38508d132c0e9ed..0000000000000000000000000000000000000000
--- a/generator/test/system.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0"?>
-
-<system xmlns = "http://www4.informatik.uni-erlangen.de/RTSC"
- xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
-
- <name>TestSystem</name>
- <mappingtype>name</mappingtype>
- <granule>ms</granule>
- <resolution>1</resolution>
- <systemtype>OSEKOS</systemtype>
-
- <periodicevent>
- <identifier>Event1</identifier>
- <period>1000</period>
- <phase>0</phase>
- <jitter>0</jitter>
- </periodicevent>
-
- <task>
- <event>Event1</event>
- <subtask root="true">
- <handler>Handler11</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler12</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- <subtask>
- <handler>Handler13</handler>
- <deadline>
- <relative>true</relative>
- <type>hard</type>
- <deadline>200</deadline>
- </deadline>
- </subtask>
- </task>
-
- <specificdescription>osekossystem.xml</specificdescription>
-</system>
diff --git a/toolchain/app.cmake b/toolchain/app.cmake
index 4e7b0c48da89f012a44b17b05c6cb1e2e27257b5..2e64dcca755774491ef40d1bbaab861458fbec1e 100644
--- a/toolchain/app.cmake
+++ b/toolchain/app.cmake
@@ -1,5 +1,4 @@
include(CMakeParseArguments)
-include(rtsc)
MACRO(DOSEK_BINARY_EXECUTABLE NAME SOURCES SYSTEM_DESC VERIFY_SCRIPT DEFINITIONS LIBS SPECIFIC_GENERATOR_ARGS)
SET(DOSEK_ANNOTATE_SOURCE "${DOSEK_GENERATOR_DIR}/annotate/cored_annotate.cc")
@@ -21,7 +20,6 @@ MACRO(DOSEK_BINARY_EXECUTABLE NAME SOURCES SYSTEM_DESC VERIFY_SCRIPT DEFINITIONS
COMMENT "[${PROJECT_NAME}/${name}] Compiling cored_annotate.c with clang")
set(DOSEK_SOURCE_SYSTEM "${DOSEK_OUTPUT_DIR}/source_system.ll")
- set(DOSEK_RTSC_ANALYZE_XML "${DOSEK_OUTPUT_DIR}/rtsc_analyze.xml")
set(DOSEK_GENERATED_SOURCE "${DOSEK_OUTPUT_DIR}/dosek.cc")
set(DOSEK_GENERATED_LINKER "${DOSEK_OUTPUT_DIR}/linker.ld")
@@ -129,7 +127,6 @@ MACRO(DOSEK_BINARY_EXECUTABLE NAME SOURCES SYSTEM_DESC VERIFY_SCRIPT DEFINITIONS
)
# Compile the dosek system
- include_directories(${RTSC_SOURCE_DIR}/data/SystemSupport/CoReD/include/)
dosek_executable(${NAME} EXCLUDE_FROM_ALL
SOURCES ${DOSEK_SOURCE_SYSTEM} ${DOSEK_GENERATED_SOURCE}
LIBS ${DOSEK_BINARY_LIBS}
diff --git a/toolchain/rtsc.cmake b/toolchain/rtsc.cmake
deleted file mode 100644
index 1e6557acf990f7b3dd8fc27d7bca027f500e0819..0000000000000000000000000000000000000000
--- a/toolchain/rtsc.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-# The RTSC Source code and a compiled rtsc version
-SET(RTSC_SOURCE_DIR "/proj/i4danceos/tools/rtsc/rtsc" CACHE STRING "Source directory of the RTSC")
-SET(RTSC_BINARY_DIR "/proj/i4danceos/tools/rtsc/rtscbuild" CACHE STRING "Build directory of the RTSC")
-SET(RTSC_LLVM_BINARY_DIR "/proj/i4danceos/tools/rtsc/llvmbuild" CACHE STRING "Build directory of the LLVM (used for RTSC)")
-
-SET(EAG_BINARY "${RTSC_BINARY_DIR}/bin/eag")
-SET(CLANG_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/clang")
-SET(CLANGPP_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/clang++")
-SET(LLVM_NM_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/llvm-nm")
-SET(LLVM_LINK_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/llvm-link")
-SET(LLVM_OPT_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/opt")
-SET(LLVM_LLC_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/llc")
-SET(LLVM_LD_BINARY "${RTSC_LLVM_BINARY_DIR}/bin/llvm-ld")
-
-