Software randomization of execution times for avionic systems

Among the wide range of research work we've done during the past, one of the "most blue sky" areas has been in the area of probabilistic timing analysis (PTA), where specific hardware support randomizes sources of execution time variability, making it possible to produce accurate statistical predictions of worst-case execution probabilities, see our PROXIMA research project and
Read More

What are the overheads of code coverage? Using "Doom" as an example

One question that we are frequently asked is what instrumentation overhead RapiCover introduces. Achieving low overhead instrumentation is recognized by our customers as a key strength of RapiCover. To measure structural code coverage of embedded software, or for that matter any software, code coverage tools like RapiCover use instrumentation (additional code that records what code has been executed).
Read More

CAST-10 "Literal" Interpretation of Decision Coverage Increases Rigor of Testing Requirements

The Certification Authorities Software Team (CAST) issue guidance on various issues regarding the interpretation of DO-178B and DO-178C. In the CAST-10 position paper [1], they discuss the interpretation of a "decision". In CAST-10, three possible interpretations are made for a decision:
Read More

Function pointers and their impact on stack analysis

Function pointers present a real problem for static code analysis, including when calculating stack usage. Understanding software stack requirements is an activity that is required for several standards/guidelines including DO-178B and DO-178C. Nevertheless function pointers are supported and therefore prevalent in most system-level languages (C and Ada both have them, whilst they are used all the time with C++).
Read More

Philippa explains: "What is MC/DC?"

Philippa explains to Lucy:
Read More