Zephyr Project Requirements
Semaphores
  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-1
1. Counting Semaphore Definition At Compile Time ZEP-SRS-5-1

The Zephyr RTOS shall provide a mechanism to define and initialize a semaphore at compile time.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-2
2. Counting Semaphore Definition At Run Time ZEP-SRS-5-2

The Zephyr RTOS shall provide a mechanism to define and initialize a semaphore at runtime.

ZEP-SRS-5-3
3. Maximum limit of a semaphore ZEP-SRS-5-3

The Zephyr RTOS shall define the maximum limit of a semaphore when the semaphore is used for counting purposes and does not have an explicit limit.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-4
4. Initialialization with maximum count value ZEP-SRS-5-4

When initializing a counting semaphore, the maximum permitted count a semaphore can have shall be set.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-5
5. Initial semaphore value ZEP-SRS-5-5

When initializing a counting semaphore, the initial semaphore value shall be set.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-6
6. Semaphore acquisition mechanism ZEP-SRS-5-6

The Zephyr RTOS shall provide a mechanism allowing threads to acquire a semaphore.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-7
7. Semaphore acquisition with count greater than zero ZEP-SRS-5-7

While the semaphore's count is greater than zero, the requesting thread shall acquire the semaphore and decrement its count.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-8
8. Semaphore acquisition with zero count ZEP-SRS-5-8

While the semaphore's count is zero, the requesting thread shall be blocked until the semaphore is released by another thread.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-9
9. Semaphore acquisition timeout ZEP-SRS-5-9

When attempting to acquire a semaphore, the Zephyr RTOS shall accept options that specify timeout periods, allowing threads to set a maximum wait time for semaphore acquisition.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-10
10. Semaphore acquisition timeout error handling ZEP-SRS-5-10

When attempting to acquire a semaphore, where the semaphore is not acquired within the specified time, the Zephyr RTOS shall return an error indicating a timeout.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-11
11. Semaphore acquisition no wait error handling ZEP-SRS-5-11

When attempting to acquire a semaphore, where the current count is zero and no timeout time was provided, the Zephyr RTOS shall return an error indicating the semaphore is busy.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-12
12. Semaphore release ZEP-SRS-5-12

The Zephyr RTOS shall provide a mechanism allowing threads to release a semaphore.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-13
13. Semaphore release ZEP-SRS-5-13

The Zephyr RTOS shall increment the semaphore's count upon release.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-14
14. Semaphore release with priority inheritance ZEP-SRS-5-14

When there are threads waiting on the semaphore, the highest-priority waiting thread shall be unblocked and acquire the semaphore.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-15
15. Checking semaphore count ZEP-SRS-5-15

The Zephyr RTOS shall provide a mechanism for threads to check the current count of a semaphore without acquiring it.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-16
16. Semaphore reset ZEP-SRS-5-16

The Zephyr RTOS shall provide a mechanism that resets the semaphore count to zero.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-17
17. Semaphore acquisitions abort after reset ZEP-SRS-5-17

When a semaphore is reset, the Zephyr RTOS shall abort all existing acquisitions of the semaphore returning a resource contention error code.

  • ZEP-SYRS-14
    13.2. Counting Semaphore ZEP-SYRS-14

    The system shall implement a semaphore synchronization primitive for coordinating access to shared resources among multiple threads.

ZEP-SRS-5-18
18. Semaphore Initialization Option Validation ZEP-SRS-5-18

When initializing a counting semaphore, where the maximum permitted count of a semaphore is invalid, then the Zephyr RTOS shall return an error indicating invalid values.