mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-30 00:15:24 +00:00
Some test suites depend on determining at run-time an available IRQ line which can then be used to execute the test suite. This logic cannot used if the available IRQ line is not targeting the current security state. Therefore, filter out the _ns Cortex-m boards from running these tests suites (i.e. when building with CONFIG_TRUSTED_EXECUTION_NONSECURE=y) since we can not contol the target state of the NVIC interrupt lines. These tests suites test generic ARM features, that do not depend on TrustZone-M configuration, so it is OK that they are only executed on ARM platforms without the NONSECURE configration set. Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
prj.conf | ||
README.txt | ||
testcase.yaml |
Title: Test to verify advanced features of ARM Cortex-M interrupt handling. Description: This test suite verifies the behavior of CONFIG_ZERO_LATENCY_IRQS and CONFIG_DYNAMIC_DIRECT_INTERRUPTS at runtime (ARM Only) The first test verifies the behavior of CONFIG_DYNAMIC_DIRECT_INTERRUPTS at runtime. In particular, it tests that dynamic direct IRQs may be installed at run-time in the software interrupt table. Only for ARMv7-M and ARMv8-M Mainline targets. The second test verifies the behavior of CONFIG_ZERO_LATENCY_IRQS at runtime. In particular, it tests that IRQs configured with the IRQ_ZERO_LATENCY flag are assigned the highest priority in the system (and, therefore, cannot be masked-out by irq_lock()). Only for ARMv7-M and ARMv8-M Mainline targets. The third test verifies the behavior of the IRQ Target State API for TrustZone-M enabled Cortex-M Mainline CPUs. --------------------------------------------------------------------------- Building and Running Project: This project outputs to the console. It can be built and executed on QEMU as follows: ninja/make run --------------------------------------------------------------------------- Troubleshooting: Problems caused by out-dated project information can be addressed by issuing one of the following commands then rebuilding the project: ninja/make clean # discard results of previous builds # but keep existing configuration info or ninja/make pristine # discard results of previous builds # and restore pre-defined configuration info --------------------------------------------------------------------------- Sample Output: *** Booting Zephyr OS build zephyr-v2.1.0-358-g9ac0a8c10a2e *** Running test suite arm_irq_advanced_features =================================================================== starting test - test_arm_dynamic_direct_interrupts PASS - test_arm_dynamic_direct_interrupts =================================================================== starting test - test_arm_zero_latency_irqs Available IRQ line: 57 PASS - test_arm_zero_latency_irqs =================================================================== starting test - test_arm_irq_target_state Available IRQ line: 93 PASS - test_arm_irq_target_state =================================================================== Test suite arm_irq_advanced_features succeeded =================================================================== PROJECT EXECUTION SUCCESSFUL