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") - -