I'm currently working on a Python-based framework for on-target firmware testing of firmware of Cortex-M MCU systems. The approach is heavily based on the use of the debug probe to perform unit as well as system tests.
The framework I have in mind allows us to do
The tests themselves are implemented in Python and are executed on a host PC which also gives you full accesses to whatever equipment you already have available for providing external test stimuli or performing measurements.
I would like to learn what approaches you are taking for firmware testing and I would like to hear your opinion on the proposed approach. If things work out well, we plan to release the framework on GitHub later this spring.
Best,Thomas, Software R&D, ams AG
Though not complete firmware, but our RTOS is tested on target using various debug probes (depending on the CPU) using the respective API. But we build test executables and use the debug probes for downloading/flashing and retrieving test results. So we need only a minimum feature.
For code coverage we rely on either Lauterbach or IAR simulator.
Thanks for the Feedback!I'd like to learn at what level you perform your testing. Is it system testing, unit test, something in-between?How are test results from your test executables send back to the host? UART, debugger (SWO), ...?When yous say that you are using Lauterbach for code coverage - does that imply that your Cortex-M MCU has ETM implemented or is this done in another way?
as for the results: Yes we use the debugger to read the memory where the result is stored.
Since we test our RTOS, it is more a unit then a system test. We only need to test the core functionality, so no peripherals.
Coverage is done in the Lauterbach simulator or the IAR simulator.
View all questions in Cortex-M / M-Profile forum