The Solar Orbiter recently celebrated its first birthday, having completed one year in space after its launch on the 10th February 2020. While it progresses towards an elliptical orbit around the Sun, it continues to send images and data supporting the scientific efforts of researchers on Earth. Congratulations to all of those involved in such a huge achievement showcasing the fantastic capabilities of modern engineering!
Here at Rapita, we are proud of the role that the Rapita Verification Suite (RVS) played in the development of the Energetic Particle Detector (EPD), a component of the solar orbiter measuring energy levels of solar particles. Rapita’s RapiTime was used by developers at the University of Alcalá to support schedulability analysis for the software of the EPD’s Instrument Control Unit (ICU).
Following on from the success of this project, we have been working together with the University of Alcalá to further integrate the full suite of RVS tools with the EPD’s bootloader software. The aims of this project are to evaluate and improve on a RapiCover integration that had been engineered at Alcalá and to generate a suite of unit tests demonstrating the workflow facilitated by the RVS tools. The software and integrations will also serve as a platform for demonstration and testing purposes here at Rapita.
We built on the existing integration to achieve integrations of RapiCover, RapiTest, and RapiTime, through which we collect data on-target using a softcore LEON3 processor instantiated on an FPGA board. The team at the University of Alcalá have been using the integrations to develop unit tests using RapiTest and collect coverage up to DO-178C DAL A standards (collecting coverage metrics up to and including MC/DC) through RapiCover. Our on-target effort has been supported by Cobham Gaisler, who generously provided a license for their GRMON debugger, which has helped us facilitate executable loading, execution, and debugging and provides a mechanism for extracting coverage and test data.
The flexibility of the RVS tool suite delivers users a number of options for data collection and measurement. We have implemented three approaches to data collection on this project. One uses an RTBx to collect coverage data on-the-fly through a livemap (Figure 1), where instrumentation data is streamed out in real-time to indicate which elements of the code have been exercised. This allows testing of coverage across reset sequences. The second approach uses an in-memory map approach to collect coverage and functional test data, where results are built in memory and then extracted after test runs have finished via the GRMON debugger. In the final approach, a trace of execution behavior and timestamps is streamed directly from the LEON3 hardware to collect execution time data. We have collected data using all three approaches and processed it using RVS to give a complete view of the software characteristics (Figure 2).
The project has recently moved into phase 2, and the team at Alcalá have made an emulator for the LEON3 processor available to us. Integration with this emulator will support us in using the RVS integration on the bootloader software as a demonstration, training and testing platform as we won’t all need a physical board and numerous wires on our desks! I’d like to thank the engineers at Alcalá for their continued support in this project as we continue to write tests and progress towards the completion of this second phase of the work.