You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeRTOS-Kernel/portable/IAR
Devaraj Ranganna a07f649bd5
Armv8-M (except Cortex-M23) interrupt priority checking (#673)
* Armv8-M: Formatting changes

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>

* Armv8-M: Add support for interrupt priority check

FreeRTOS provides `FromISR` system calls which can be called directly
from interrupt service routines. It is crucial that the priority of
these ISRs is set to same or lower value (numerically higher) than that
of `configMAX_SYSCALL_INTERRUPT_PRIORITY`. For more information refer
to https://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html.

Add a check to trigger an assert when an ISR with priority higher
(numerically lower) than `configMAX_SYSCALL_INTERRUPT_PRIORITY` calls
`FromISR` system calls if `configASSERT` macro is defined.

In addition, add a config option
`configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` to disable interrupt
priority check while running on QEMU. Based on the discussion
https://gitlab.com/qemu-project/qemu/-/issues/1122, The interrupt
priority bits in QEMU do not match the real hardware. Therefore the
assert that checks the number of implemented bits and __NVIC_PRIO_BITS
will always fail. The config option
 `configQEMU_DISABLE_INTERRUPT_PRIO_BITS_CHECK` should be defined in the
`FreeRTOSConfig.h` for QEMU targets.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>

* Use SHPR2 for calculating interrupt priority bits

This removes the dependency on the secure software to mark the interrupt
as non-secure.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com>
Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com>
2 years ago
..
78K0R tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CA5_No_GIC tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CA9 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CM0 portable/ARM_CM0: Add xPortIsInsideInterrupt 2 years ago
ARM_CM3 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CM4F tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CM4F_MPU ARMv7M: Adjust implemented priority bit assertions (#665) 2 years ago
ARM_CM7 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ARM_CM23 Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM23_NTZ/non_secure Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM33 Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM33_NTZ/non_secure Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM35P Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM35P_NTZ/non_secure Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM55 Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM55_NTZ/non_secure Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM85 Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CM85_NTZ/non_secure Armv8-M (except Cortex-M23) interrupt priority checking (#673) 2 years ago
ARM_CRx_No_GIC tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
ATMega323 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
AVR32_UC3 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
AVR_AVRDx Added support of 64bit events. (#597) 2 years ago
AVR_Mega0 Added support of 64bit events. (#597) 2 years ago
AtmelSAM7S64 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
AtmelSAM9XE tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
LPC2000 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
MSP430 Added support of 64bit events. (#597) 2 years ago
MSP430X Added support of 64bit events. (#597) 2 years ago
RISC-V tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
RL78 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
RX100 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
RX600 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
RX700v3_DPFPU tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
RXv2 tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
STR71x tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
STR75x tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
STR91x tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago
V850ES tree-wide: Unify formatting of __cplusplus ifdefs 2 years ago