Zephyr Project Requirements
Interrupts

Interrupts

STATEMENT:

SPDX-License-Identifier: Apache-2.0

1. Installing static IRQ service routines (ISR).
UID: ZEP-SRS-7-1
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to initialize a static IRQ service routine (ISR), providing all parameters needed to configure the hardware and software.

2. Static IRQ initial status.
UID: ZEP-SRS-7-2
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

The static IRQ shall be initially disabled.

3. Installing direct IRQ service routines (ISR).
UID: ZEP-SRS-7-3
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to initialize a direct IRQ handler, providing all parameters needed to configure the hardware and software.

USER_STORY:

As the developer of low-power and low-latency applications, I need to implement ISRs that avoid the normal interrupt and power management overhead.

4. Direct IRQ initial status.
UID: ZEP-SRS-7-4
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

The direct IRQ shall be initially disabled.

5. Installing dynamic IRQ service routines (ISR).
UID: ZEP-SRS-7-5
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to initialize a dynamic IRQ service routine, providing all parameters needed to configure the hardware and software.

6. Dynamic IRQ initial status.
UID: ZEP-SRS-7-6
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

The dynamic IRQ shall be initially disabled.

7. Uninstalling dynamic IRQ service routines (ISR).
UID: ZEP-SRS-7-7
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to uninstall a dynamic ISR.

8. Global IRQ disable
UID: ZEP-SRS-7-8
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to Disable all IRQs on a CPU, and return the state the IRQ hardware prior to being disabled.

9. Global IRQ enable
UID: ZEP-SRS-7-9
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to Enable all IRQs on a CPU and return them to thier previous state.

10. Specific IRQ disable
UID: ZEP-SRS-7-10
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to Disable a specified IRQ.

11. Specific IRQ enable
UID: ZEP-SRS-7-11
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide a mechanism to Enable a specified IRQ.

12. IRQ Enabled status
UID: ZEP-SRS-7-12
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide mechanisms that returns the Enabled status of a specified IRQ, where the status is Enabled or Disabled.

13. ISR Context status
UID: ZEP-SRS-7-13
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

Zephyr RTOS shall provide mechanisms that returns the execution context, where the context is In-ISR or Not In-ISR.

USER_STORY:

As the developer of functions that may run in either ISR or THREAD context, I need to know the current context to enable condition behavior.

14. Multi-level interrupts
UID: ZEP-SRS-7-14
STATUS: Draft
TYPE: Functional
COMPONENT: Interrupts
parent relations:
STATEMENT:

The Zephyr RTOS shall support multi-level preemptive interrupt priorities, when supported by hardware.