SNIP_CLASSIC_OS_SECTION_7_9_28_1_Requirements
Wortlaut
7.9.28.1 Requirements
[SWS_Os_00648] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall provide a spinlock mechanism that works across cores.⌋
[SWS_Os_00649] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall provide a GetSpinlock function which occupies a spinlock. If the spinlock is already occupied, GetSpinlock shall keep on trying to occupy the spinlock until it succeeds.⌋
[SWS_Os_00650] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈GetSpinlock shall be callable from Task level.⌋
[SWS_Os_00651] Upstream requirements: SRS_Os_80021
⌈GetSpinlock shall be callable from Category 2 ISR level.⌋ The behavior of GetSpinlock is undefined if called from a category 1 ISR
[SWS_Os_00652] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall provide a TryToGetSpinlock function which occupies a spinlock. If the spinlock is already occupied by a Task, TryToGetSpinlock shall return.⌋
[SWS_Os_00653] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈TryToGetSpinlock shall be callable from Task level.⌋
[SWS_Os_00654] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈TryToGetSpinlock shall be callable from Category 2 ISR level.⌋
[SWS_Os_00655] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall provide a ReleaseSpinlock function which releases an occupied spinlock. If the spinlock is not occupied an error shall be returned.⌋
[SWS_Os_00656] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈ReleaseSpinlock shall be callable from Task level.⌋
[SWS_Os_00657] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈ReleaseSpinlock shall be callable from Category 2 ISR level.⌋
[SWS_Os_00658] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall generate an error if a Task tries to occupy a spinlock that is assigned to a Task/Category 2 ISR on the same core (including itself).⌋
[SWS_Os_00659] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall generate an error if an Category 2 ISR tries to occupy a spinlock that is assigned to a Task/Category 2 ISR on the same core.⌋
[SWS_Os_00660] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈A unique order in which multiple spinlocks can be occupied by a Task/Category 2 ISR on one core should be configurable in the AUTOSAR Operating System. This might be realized by the configuration item (OsSpinlockSuccessor{NEXT_SPINLOCK}) where NEXT_SPINLOCK refers to the consecutive spinlock. (See OsSpinlockSuccessor)⌋
[SWS_Os_00661] Upstream requirements: SRS_Os_80018, SRS_Os_80021
⌈The AUTOSAR Operating System shall generate an error if a Task/Category 2 ISR on a core, where the same or a different Task/ISR already holds a spinlock, tries to seize another spinlock that has not been configured as a direct or indirect successor of the latest acquired spinlock (by means of the OsSpinlockSuccessor configuration parameter) or if no successor is configured.⌋
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
TryToGetSpinlock nesting deadlock error
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_OS.pdf |
|---|---|
| Dokumentseite | Seite 115 |
| Ziel-Modul | os (classic) |
| Ziel-Anforderung | SWS_Os_00709 |
| Semantische Rolle | heuristic |
| Automatisierungs-Konfidenz | 0.75 |