- 05 Nov, 2015 1 commit
-
-
Christian Dietrich authored
The maxallowedvalue of the watchdog timer was too small for the actual usage of the timer. This regression was introduced in 243a06f0. So it has no influence of already published research, since it only appears in the osek-v branch. Change-Id: I074d5b757e03bf8632e838a9f5cbd9e25ba2182e
-
- 04 Nov, 2015 2 commits
-
-
Christian Dietrich authored
Change-Id: I6e6703f873f3535d41e84a7c00fbec89010ab839
-
Christian Dietrich authored
In order to compare the wired version of OSEK-V with something, we implement a non-wired version (tradtional SW implementation) for osek-v. Change-Id: Id5dbc865974f2cf44cd4104cb7ebcd83830fb89f
-
- 03 Nov, 2015 1 commit
-
-
Christian Dietrich authored
Change-Id: I22360809385c0d0ca69b98e34ce512217e1ab88d
-
- 29 Oct, 2015 8 commits
-
-
Christian Dietrich authored
The static alarm detection can be turned of for osek-v with --static-alarms n. With this flag all counters and alarms are instantiated dynamically. Change-Id: I6cf44ed79ae60aebcdf9a375acd1ccb2fd450ea5
-
Christian Dietrich authored
The extractor did not build under posix AND osek-v, since the headers, which come with risc-v are weird. Change-Id: I43be143492954487a4cbe0d2a206a69b75d206b6
-
Christian Dietrich authored
Change-Id: I239c2c81f0946568c9a027d8c5004d0a691399f4
-
Christian Dietrich authored
After removing the static alarms from the system, we can optimize the timer irq frequency. We choose the GCD resolution of all dynamic counters and let the timer interrupt with a lower frequency. We're only allowed to do this optimization, if the underlying count has a lower resolution. Change-Id: Ic39c8f6db142baa97a7f50b19c23a7a1fe601eaa
-
Christian Dietrich authored
Static alarms are not managed by the timer interrupt. We wipe them from the implementation. If a counter has no present alarms anymore, we wipe it from the timer interrupt. If no counter has to be ticked, the timer interrupt is disabled, the Counter::tick() method becomes empty. Change-Id: I9438c8cfa511b5163bbb477c2d5b4f2e0f469697
-
Christian Dietrich authored
We will identify static alarms. A static alarm is configured running within the OIL file, and is never touched by CancelAlarm/SetRelAlarm/SetAbsAlarm. The OSEK-V architecture will not emit code for manaing static alarms. They are managed by the hardware. Change-Id: I7ebd5c06120cbdf6e36a60f2939b5a5f01eb5962
-
Christian Dietrich authored
A few changes had to be done at the osek-v port in order to support bench-coptermock application: - interrupt support - slower timer interrupt - arch_startup has to return normally - implement interrupt control system calls Change-Id: I6fe5c046a9bd1fc6422c5abcc9aa2041cceae990
-
Christian Dietrich authored
Change-Id: Icbff87011948f22e269824b772a48b3bda596804
-
- 23 Oct, 2015 1 commit
-
-
Christian Dietrich authored
remove some old cruft Change-Id: Ie94b7dd352acec017979ce76fcc6d0f7fbd197b8
-
- 20 Oct, 2015 1 commit
-
-
Stefan Bader authored
Prior to this cmake could only find "grub-mkrescue". Change-Id: Id16ce4958d826953387c80865aafe47a5660eecd
-
- 23 Sep, 2015 1 commit
-
-
Christian Dietrich authored
In the FSM representation, interrupts are no longer modled as separate tasks. Change-Id: I3c9de5f629a5b36330e1339263700efabd34b822
-
- 18 Sep, 2015 1 commit
-
-
Christian Dietrich authored
-
- 16 Sep, 2015 1 commit
-
-
Christian Dietrich authored
Change-Id: If54efba52eed798bf95dda470f5b5bf714eb6f60
-
- 10 Sep, 2015 3 commits
-
-
Christian Dietrich authored
Change-Id: Ic2554caf81492cb93b73c423a28fa014c6288ce5
-
Christian Dietrich authored
We explicitly enable the popcnt instruction in the code generation stage. Change-Id: I799aabebede13da1dae3adc0e8cd864b4bc817f6
-
Christian Dietrich authored
The priority of a task is caluclated from its dynamic-priority state word and the event state words. Until now, we did not check this value for being a correctly encoded value, which causes quite a number of SDCs in the bench-coptermock-isorc numbers. Therefore, we check this value for validity and hope for the best. Change-Id: Ie95c1b64b56d79a6110455270fb099fee919269f
-
- 07 Sep, 2015 1 commit
-
-
Christian Dietrich authored
It is unwise to overwrite the set-event bitmask on a SetEvent system call. ecc1_event1f will ensure the correct behavior in the future. Change-Id: I98bf21664d381e6093c194ad0442ee168fc92764
-
- 12 Aug, 2015 4 commits
-
-
Martin Hoffmann authored
Change-Id: I1d13300681efa07a74d2f82eef6a56f62e682fb1
-
Martin Hoffmann authored
Change-Id: I9a2790cf1dac9c068bd4ff98ae43d8bf9ba74613
-
Christian Dietrich authored
Somes these testcases produced 5{<><><>}33x instead of 5{<><><>}3x This is not a application or OS bug, but a race condition with the waiting times. Change-Id: I1e847e13188b15d567ce4efd92f473a4f39a666b
-
Christian Dietrich authored
The symbolic system execution is now able to enumerate all possible system states with two different approaches. Either we can use the "old" version which uses states with blocks to be executed in the next step, like it is described in LCTES'15 (Dietrich et. al). Or we can use the application finite state machines as basis. These state machines are smaller (lesser nodes) than the application's CFG. They are based on the task's ICFG. Change-Id: I05e050ed3f39bd18ecf86b4d7bb423b4ce0825e0
-
- 06 Aug, 2015 1 commit
-
-
Christian Dietrich authored
The ApplicationFSM pass transforms the ICFG of a task to a finite state machine. This construction is done by transforming CFG-edges to FSM-states, and CFG-blocks to FSM-transitions. In a second step, the CFG-computation blocks are handled as FSM-epsilon transitions. Then a standard epsilon elimination is done for subtask-FSM. Change-Id: I874bc3b17ebaf16b58bb70226e5eef091e5cbbe9
-
- 05 Aug, 2015 1 commit
-
-
Stefan Bader authored
Added a modifier for llvm bitcode files, which adds function attributes + values to a specific function. Change-Id: I57d71147c776686bfd18025d3090485b69da6bf8
-
- 27 Jul, 2015 4 commits
-
-
Christian Dietrich authored
Change-Id: Iebb4498dcb5c8a1ebb6bae8d13b75e4645e1cba6
-
Christian Dietrich authored
Change-Id: I38d53965e1dfe1c337a946bc7d47239a62a5cd3e
-
Christian Dietrich authored
Change-Id: I14a18026ef4e6320dd0c6da61fb8f6c4892ca16f
-
Christian Dietrich authored
Not all bits in the cfg region word are used, therefore we can safely reset them so a known state afterwards. Change-Id: Ic059b80bf46f9a53742383025e495e653837cb68
-
- 23 Jul, 2015 3 commits
-
-
Christian Dietrich authored
Change-Id: I83cac7005d667bdfd2045f8e0e58c03bddf1a475
-
Christian Dietrich authored
Inlining the scheduler reveals a high potential for specialization and and SDC reduction. In the implementation of the zedboard benchmark, we dropped the inlinability support. This is now possible again. With inline-scheduler+specialization the scheduler is paritally instansiated whereever possible. Test-Config: --arch i386 --encoded=no --inline-scheduler=yes --specialize=yes Test-Config: --arch i386 --encoded=no --inline-scheduler=yes --specialize=no Test-Config: --arch i386 --encoded=no --inline-scheduler=no --specialize=yes Test-Config: --arch i386 --encoded=no --inline-scheduler=no --specialize=no Test-Config: --arch i386 --encoded=yes --inline-scheduler=yes --specialize=yes Test-Config: --arch i386 --encoded=yes --inline-scheduler=yes --specialize=no Test-Config: --arch i386 --encoded=yes --inline-scheduler=no --specialize=yes Test-Config: --arch i386 --encoded=yes --inline-scheduler=no --specialize=no Change-Id: I2749078a3cc4ebeeb19bde14eb769b5781ac409f
-
Christian Dietrich authored
Inlining is hard. Convincing the compiler to actually inline the systemcall bodies is even harder. Therefore we now use the always_inline flag together with the -always-inline (llvm-opt) compiler pass. Furthermore -gc-section drops all unused functions. Change-Id: Ifd429e28ebb330944230076bca3886f4ef1171e3
-
- 20 Jul, 2015 1 commit
-
-
Christian Dietrich authored
Until know there where two different versions of scheduler.h.in, one for encoded and one for the unencoded variant. In essence they were nearly identical. Therefore, they could be unified without changing the execution sequence. Change-Id: Ifff4cd4a18bee135e286f330212aa14247cc2277
-
- 08 Jun, 2015 2 commits
-
-
Christian Dietrich authored
Like the last change, this one does not change the SDC rate, but does only make them detectable by application/FAIL*. Until now, MPU faults were routed to isr_undetected Change-Id: Iac81f8611753cafbddb6d1f9c4bbe505a788890e
-
Christian Dietrich authored
Until now, unhandled interrupt resulted in a hanging machine. This did *not* cause the SDC rates to change, but made the TIMEOUT numbers for fault injection campaigns slightly too high. Change-Id: I4616c5ddad66659bab604cd3ed5b5405ceea44ce
-
- 01 Jun, 2015 1 commit
-
-
Martin Hoffmann authored
This includes using nm again, instead of llvm-nm. Change-Id: Ic8b1b6054427ddaf028ece5e7758309ee0d4b3be
-
- 29 May, 2015 2 commits
-
-
Christian Dietrich authored
Change-Id: Ia516171592bc51c9fcef37fa9d2f2c9e947dd148
-
Christian Dietrich authored
Change-Id: I5303f2cd78122dd07921a97c5a598254bc3915fd
-