Testing interrupt handling scenarios in TF-M is an important thing as secure/non-secure interrupts preempting secure/non-secure Thread mode in any combination, and having 2 independent schedulers (one on secure and one on non-secure side) makes interrupt handling a non-trivial task.
Creating test cases that run on the device under test is challenging, as there are limited number of peripherals that can be easily set up to trigger interrupts (these are basically the timer peripherals), and make those interrupts to trigger at a certain point of execution is even more challenging.
In this presentation I present a script utility that can be run inside a debugger, and that can trigger interrupts via NVIC registers at configurable points during execution, based on some configuration files.
The utility is not TF-M specific, can be used with any SW that can benefit from testing with IRQs triggered in NVIC.
The tool currently in proof-of-concept state internally for Arm Development Studio debugger, but we have plans to make a version that runs in GDB.
Possible topics to be covered (some might be dropped, based on how interesting (and long) other topic will turn out):
- Limitations of the current (upstream) tests
- The concept of the tool (description, basic diagrams)
- benefits over the current method, applicability in CI
- Implementation details
- Input file formats
- class hierarchy, debugger abstraction, integrating in the debugger
- Comparing scripting capabilities of Arm-DS and GDB debugger
- Demo (or presenting sample output)
Senior Software Engineer (Arm Ltd.)
Mate is a software engineer at Arm. He has been working as a software engineer for over 10 years, developing software for environments ranging from telecom servers through windows desktop applications to IoT devices. Currently he is a maintainer of the Trusted Firmware-M open source project.