Semantic Analysis for Worst-Case Execution Time Analysis
Tuesday 5 August 2014
Hard real-time systems like planes or cars are controlled by software tasks. We say these systems are hard real-time systems because the tasks which control them have to terminate within a certain amount of time to ensure that the system will not be late for its next action. Measuring execution times on targetted architectures may be sufficient for some real-time systems, but not for hard ones. Indeed, this method does not ensure that the measured worst-case execution time (WCET) will be a safe bound, which in most cases will be superior to the measured one. That is why safe worst-case execution time bounding is of major interest for hard real-time systems. The closer to the real WCET the estimation is, the faster the system may be. To improve WCET estimation, one must take into account all levels of abstractions in the system design, from its software design to the targetted microprocessor architecture. The level at which we worked is between high level design (Lustre, Simulink) and C. We developed a tool written in C++ to extract semantic information from C code in order to help understand how shared memory is used through functions and from there to improve WCET estimation. We present hereafter the development of this semantic analysis tool.