DEENESPTFRRUARHIKOZHNL

AUTOSAR OS

ModulOs (AUTOSAR OS)
BSW-Modul-ID1
Standard-Header#include "Os.h"
SWS-SpezifikationAUTOSAR_SWS_OS.pdf
ClusterOperating System

모듈 가이드AI 생성

시간 제어 시퀀스를 제어하고, OS-Application을 서로 보호하며, ECU의 코어들을 조정합니다.
AI 생성 미검증 모델: claude-opus-5-5 · 노력: high · 온도: 제어 불가 · 프롬프트: 5b459e21507a 출처
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

시간 제어 시퀀스를 제어하고, OS-Application을 서로 보호하며, ECU의 코어들을 조정합니다.

운영체제는 Task 및 ISR을 실행하고, Counter 및 ScheduleTable을 구동하며, 소프트웨어를 보호된 OS-Application으로 격리합니다. EcuM은 StartCore를 사용하여 코어를 시작한 다음, 각 코어에서 StartOS가 호출됩니다[SWS_Os_00676]. ScheduleTable은 StbM을 통해 글로벌 시간과 명시적으로 동기화될 수 있습니다. 다른 객체에 대한 액세스는 구성된 권한이 있는 경우에만 가능합니다SWS OS 62쪽. 보호 위반이 발생하면 ProtectionHook이 Task, OS-Application 또는 전체 시스템을 종료할지 여부를 결정합니다.

운영체제는 Classic 스택의 실행 코어입니다. Task, ISR, 알람, Counter 및 ScheduleTable을 관리하고, 이를 trusted 또는 non-trusted인 OS-Application으로 그룹화합니다SWS OS 61쪽. EcuM은 StartCore을(를) 사용하여 코어를 시작한 다음 StartOS을(를) 사용하여 OS를 시작하며, 시작된 각 코어는 StartOS을(를) 직접 호출합니다SWS EcuM 82쪽, [SWS_Os_00676]. ShutdownAllCores은(는) 모든 코어에서 OS를 종료하고 반환되지 않습니다[SWS_Os_00713]. 소프트웨어 컴포넌트는 RTE를 통해 OS 서비스를 사용하며, BSW 모듈의 경우 사용할 수 있는 서비스가 제한됩니다SWS BSWGeneral 48쪽.

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (Os의 일부) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os SWS BSWGeneral에 따른 허용된 서비스만 ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc 포함함 hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os 보호 위반 시 예외 발생

컨텍스트 다이어그램: EcuM, StbM, RTE 및 BSW 모듈은 분리된 서비스 그룹을 통해 Os에 액세스합니다. IOC는 Os의 일부입니다. 출처: SWS EcuM 34쪽, SWS OS 119쪽

Counter는 시간 기반을 형성합니다. 하드웨어 값은 0에서 시작하여 단조 증가하도록 보정됩니다SWS OS 39쪽. ScheduleTable은 애플리케이션에 의해 Counter에 대해 절대적 또는 상대적으로 시작되며, 중지는 즉시 적용됩니다SWS OS 46쪽. 명시적 동기화 시 StbM은 SyncScheduleTable을(를) 통해 글로벌 시간 값을 제공합니다. 그러면 OS는 편차가 구성된 정밀도 내에 들어올 때까지 Expiry Point를 조정합니다[SWS_Os_00199], SWS OS 57쪽.

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() 또는 테이블 종료 RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() 또는 |편차| > Precision

상태 다이어그램: 시작부터 동기화를 거쳐 중지에 이르기까지 ScheduleTable의 라이프사이클. 출처: [SWS_Os_00784], SWS OS 49쪽

보호 개념은 구성에서 허용하지 않는 한 다른 OS-Application의 객체에 대한 액세스를 금지합니다SWS OS 62쪽. CallTrustedFunction은(는) OS-Application 간의 제어된 전환을 가능하게 합니다[SWS_Os_00097]. 여러 코어는 교착 상태 감지 기능이 있는 스핀록 및 IOC를 통해 서로 조정합니다[SWS_Os_00686], [SWS_Os_00718].

심각한 오류가 발생하면 ProtectionHook의 반환 값이 후속 조치를 결정합니다[SWS_Os_00538]:

  • 오류 무시,
  • Task 또는 ISR 종료,
  • 재시작을 동반하거나 동반하지 않는 OS-Application 종료,
  • 시스템 종료.

새로 시작된 OS-Application은 AllowAccess을(를) 사용하여 자체적으로 다시 활성화합니다[SWS_Os_00501].

운영체제의 역할 및 ECU 내의 인접 컴포넌트

운영체제는 Classic 스택의 실행 코어입니다. 운영체제는 Task, ISR, 알람, Counter 및 ScheduleTable을 관리합니다. 이러한 객체들을 Hook 및 Trusted Function과 함께 trusted 또는 non-trusted인 구성 가능한 OS-Application으로 묶습니다 SWS OS 61쪽. 또한 운영체제는 자신이 직접 사용하며 GPT 드라이버가 관리하지 않는 모든 타이머를 초기화하고 구성합니다 SWS OS 39쪽.

인접 모듈들은 명확히 정의된 인터페이스를 통해 접근합니다:

  • EcuM은 StartOS, StartCore, GetCoreID 및 ShutdownAllCores을 통해 시작 및 종료를 제어합니다 SWS EcuM 34쪽.
  • StbM은 GetCounterValue, GetElapsedValue, GetScheduleTableStatus 및 SyncScheduleTable을 사용합니다 SWS StbM 152쪽.
  • 소프트웨어 컴포넌트는 서비스 인터페이스 OsService을 갖는 RTE 포트를 통해 OS 서비스에 접근합니다 TR VFB 89쪽. OsSecondsPerTick가 구성된 Counter의 경우 이 인터페이스는 특히 GetCounterValue 및 GetElapsedValue를 제공합니다 [SWS_Os_00560].

BSW 모듈의 경우 테이블에 따라 어떤 OS 서비스를 사용하는 것이 허용되는지가 결정됩니다 SWS BSWGeneral 48쪽. OS-Application 간 통신은 IOC가 담당합니다. IOC는 운영체제의 일부이며 RTE에 의해 호출됩니다 SWS OS 119쪽, [SWS_Os_00718].

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (Os의 일부) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os SWS BSWGeneral에 따른 허용된 서비스만 ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc 포함함 hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os 보호 위반 시 예외 발생

컨텍스트 다이어그램: Os는 EcuM, StbM, RTE 및 BSW 모듈에 의해 각각 고유한 서비스 그룹을 통해 사용되며, IOC 및 하드웨어 접근을 캡슐화합니다. 출처: SWS EcuM 34쪽, SWS StbM 152쪽, TR VFB 89쪽, SWS OS 119쪽

시작, 코어 관리 및 종료

멀티코어 동작 시 EcuM은 마스터 코어에서 루프를 돌며 구성된 모든 코어를 StartCore으로 시작합니다. 그 후 StartOS(ECUM_DEFAULT_APP_MODE)을 호출합니다 SWS EcuM 82쪽. 시작된 각 코어에서도 StartOS이 호출되어야 합니다 [SWS_Os_00676]. 이는 GetCoreID 이후 각 슬레이브 코어의 EcuM이 담당합니다 SWS EcuM 83쪽.

StartCore에는 다음과 같은 규칙이 적용됩니다 SWS OS 166쪽:

  • 이 서비스는 재진입이 불가능합니다(non-reentrant).
  • StartOS 이후의 호출은 E_OS_ACCESS을 반환하며, 코어는 시작되지 않습니다.
  • 이미 시작된 코어는 E_OS_STATE을 반환합니다.

AUTOSAR OS의 제어 밖에 있는 코어를 위해 StartNonAutosarCore이 제공됩니다 [SWS_Os_00682].

코어는 CoreIdType을 통해 식별됩니다. 논리적 ID는 0부터 시작하고 연속적이며, OS_CORE_ID_MASTER은 마스터 코어를 지정합니다 [SWS_Os_00790], [SWS_Os_00825]. GetCoreID는 호출 코어의 논리적 ID를 반환합니다 [SWS_Os_00674]. 이 서비스는 StartOS 이전에도 호출할 수 있습니다 SWS OS 111쪽.

StartOS 이후 및 첫 번째 StartupHook 이전에 OS는 모든 OS-Application을 APPLICATION_ACCESSIBLE로 설정합니다 SWS OS 62쪽. 그 후 시스템 전체 StartupHook이 이어집니다. 그 이후에야 애플리케이션별 StartupHook_<App>이 각 OS-Application의 권한으로 실행됩니다 SWS OS 134쪽, [SWS_Os_00539].

Os의 멀티코어 기동EcuM (Master-Kern)Os (Master-Kern)Os (Slave-Kern)EcuM (Slave-Kern)GetCoreID()CoreIdTypeloop구성된 모든 코어 대상StartCore(CoreID, &Status)AUTOSAR OS의 제어 하에AUTOSAR OS 시작Status = E_OKStartOS(ECUM_DEFAULT_APP_MODE)GetCoreID()StartOS(ECUM_DEFAULT_APP_MODE)StartOS 이후: OS-Applications를 APPLICATION_ACCESSIBLE로 설정,그 후 StartupHook, 이어서 StartupHook_<App> 실행optStartOS 이후 StartCore 실행StartCore(CoreID, &Status)Status = E_OS_ACCESS,코어가 시작되지 않음

시퀀스 다이어그램: 마스터 코어는 자체 StartOS 이전에 나머지 코어들을 시작합니다. 각 코어는 StartOS를 직접 호출하며, 이후의 StartCore는 거부됩니다. 출처: SWS EcuM 82쪽, SWS EcuM 83쪽, SWS OS 166쪽, SWS OS 188쪽

R20-11에서 GetNumberOfActivatedCores은 StartCore을 통해 활성화된 코어 수를 반환합니다 [SWS_Os_00672]. 이후 버전에서는 대신 "AUTOSAR OS가 실행되는 코어"로 언급합니다 SWS OS 196쪽.

ControlIdle을 사용하여 코어별 유휴 시간 동작(예: 절전용)을 선택합니다. 기본값은 IDLE_NO_HALT입니다. 알 수 없는 코어 또는 모드는 E_OS_ID를 반환합니다 [SWS_Os_00769], [SWS_Os_00771], [SWS_Os_00793].

ShutdownAllCores은 모든 AUTOSAR 코어에서 OS를 종료하고, 다른 코어들을 강제로 셧다운시키며 결코 반환되지 않습니다 [SWS_Os_00713]. 이때 먼저 ShutdownHook_<App>가 실행됩니다. 그런 다음 코어들이 동기화되며, 그 이후에야 글로벌 ShutdownHook이 뒤따릅니다 SWS OS 98쪽, [SWS_Os_00541].

시간 기준으로 사용되는 Counter 및 ScheduleTable

GetCounterValue은 하드웨어 Counter의 경우 타이머 값을, 소프트웨어 Counter의 경우 소프트웨어 틱을 반환합니다. OS는 하드웨어 값이 0에서 시작하여 모듈러스까지 증가하도록 보정합니다 SWS OS 39쪽, [SWS_Os_00383].

GetElapsedValue은 이전에 읽은 값 이후의 틱 수를 반환합니다. Value이 최대 허용 Counter 값보다 크면 E_OS_VALUE가 뒤따릅니다 SWS OS 192쪽, [SWS_Os_00392].

IncrementCounter은 소프트웨어 Counter만 증가시키며, 하드웨어 Counter에 대해서는 E_OS_ID을 반환합니다. 이때 알람 동작이 실패하면 OS는 Error-Hook을 호출하지만 서비스 자체는 E_OK를 반환합니다 SWS OS 190쪽, [SWS_Os_00399].

ScheduleTable의 시작과 중지는 애플리케이션의 작업입니다 SWS OS 46쪽. Initial Expiry Point는 다음 카운터 값에서 처리됩니다:

  • StartScheduleTableAbs: Start + InitialOffset 시점 [SWS_Os_00358].
  • StartScheduleTableRel: Now + Offset + InitialOffset 시점 [SWS_Os_00347].

상대적 시작 시 Offset이 0이거나 OsCounterMaxAllowedValue − InitialOffset보다 크면 E_OS_VALUE 오류가 발생합니다. 이미 시작된 테이블은 E_OS_STATE을 반환합니다 SWS OS 179쪽.

StopScheduleTable은 즉시 중단되며, 이미 중지된 테이블은 E_OS_NOFUNC을 반환합니다 [SWS_Os_00006]. 이후 다시 시작하면 테이블의 처음부터 시작합니다 SWS OS 46쪽.

NextScheduleTable은 후속 테이블을 연결합니다. 두 테이블 모두 동일한 Counter에 의해 구동되어야 하며, 그렇지 않으면 E_OS_ID이 발생합니다 [SWS_Os_00191], SWS OS 184쪽.

GetScheduleTableStatus은 시작되지 않은 테이블에 대해 SCHEDULETABLE_STOPPED을 E_OK와 함께 보고합니다 SWS OS 189쪽, [SWS_Os_00784].

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() 또는 테이블 종료 RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() 또는 |편차| > Precision

상태 다이어그램: ScheduleTableStatusType의 모든 상태를 포함하는 ScheduleTable의 수명 주기; WAITING 및 RUNNING은 명시적 동기화에서만 발생하며, 암시적으로 동기화된 테이블은 STOPPED, NEXT 및 RUNNING_AND_SYNCHRONOUS만 갖습니다. 출처: [SWS_Os_00784], SWS OS 43쪽, SWS OS 49쪽, SWS OS 48쪽

ScheduleTable과 글로벌 시간의 동기화

암시적 동기화에서는 구동 Counter 자체가 동기화 카운터가 됩니다. 이 경우 테이블은 세 가지 상태만 갖습니다 SWS OS 48쪽. StartScheduleTableRel은 OsScheduleTblSyncStrategy = IMPLICIT에 대해 오류 E_OS_ID을 반환합니다 SWS OS 179쪽. 반면 명시적 동기화는 로컬에서 구동되는 테이블을 외부 동기화 카운터에 맞춥니다. 이는 StbM의 시간 기준에 결합하기 위한 안전 조치로 명시되어 있습니다 Safety Measures 66쪽.

시작 방법에는 두 가지가 있습니다 SWS OS 49쪽, [SWS_Os_00201]:

  • 구동 Counter를 기준으로 StartScheduleTableAbs 또는 StartScheduleTableRel을 통한 비동기 방식.
  • StartScheduleTableSynchron을 통한 동기 방식. 여기서는 동기화 값이 제공된 후 (Duration − Value) + InitialOffset 틱 시점에 Initial Expiry Point가 처리됩니다.

SyncScheduleTable은 동기화 카운터의 현재 값을 전달합니다. 해당 모듈러스는 테이블 기간에 해당합니다 SWS OS 52쪽, [SWS_Os_00199].

OS는 이로부터 편차를 계산하고 각 Expiry Point에서 지연을 조정합니다. 편차가 OsScheduleTblExplicitPrecision 이내인 경우 테이블은 "running and synchronous"로 간주됩니다 SWS OS 57쪽. SetScheduleTableAsync는 다음 SyncScheduleTable까지 동기 추적을 중지하며, Expiry Point는 계속 실행됩니다 SWS OS 188쪽, [SWS_Os_00422].

StbM에 의한 ScheduleTable의 명시적 동기화BSW 태스크 (OS 태스크 또는 주기적 호출)StbMOsStbM_MainFunction()GetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK, ScheduleStatusaltScheduleStatus == WAITING, RUNNING 또는 RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Abweichung berechnen,다음 만료 지점(Expiry Point)까지의 지연 시간 조정기타kein SyncScheduleTableStbM_MainFunction() 호출 시마다 동작 반복

시퀀스 다이어그램: StbM은 주기적으로 테이블 상태를 폴링하고 테이블이 시작된 경우에만 동기화 값을 제공합니다. 출처: SWS StbM 220쪽, SWS StbM 117쪽, [SWS_Os_00227], [SWS_Os_00199]

보호 개념: OS-Application, 접근 권한 및 Trusted Function

OS는 구성에서 명시적으로 허용하지 않는 한 OS-Application이 외부 객체에 접근하는 것을 방지합니다 SWS OS 62쪽. 권한이 없으면 서비스는 E_OS_ACCESS을 반환합니다. 항상 허용되는 메모리 및 객체 접근 확인 서비스는 예외입니다 SWS OS 73쪽.

런타임에는 다음과 같은 조회가 가능합니다:

  • GetApplicationID은 호출자가 구성된 OS-Application을 반환합니다 [SWS_Os_00016].
  • GetCurrentApplicationID은 호출자가 현재 실행 중인 OS-Application을 반환합니다. 두 값은 CallTrustedFunction 내부에서만 차이가 납니다 [SWS_Os_00797], [SWS_Os_00798].
  • CheckObjectOwnership은 객체의 소유자 또는 INVALID_OSAPPLICATION을 반환합니다 SWS OS 178쪽.
  • CheckObjectAccess은 ACCESS 또는 NO_ACCESS를 반환하며, 유효하지 않은 인수에 대해서는 항상 NO_ACCESS을 반환합니다 SWS OS 177쪽.

CheckTaskMemoryAccess 및 CheckISRMemoryAccess은 메모리 영역에 대한 권한 및 해당 영역이 스택에 속하는지 여부를 AccessType로 반환합니다. 전체 영역에 적용되지 않는 권한은 거부됩니다. 유효하지 않은 ID는 어떠한 권한도 반환하지 않습니다 SWS OS 175쪽, SWS OS 174쪽. 결과는 OSMEMORY_IS_WRITEABLE와 같은 매크로를 통해 평가됩니다 SWS OS 160쪽.

CallTrustedFunction은 제공하는 OS-Application의 보호 설정으로 함수를 실행합니다. 인덱스가 구성되지 않은 경우 E_OS_SERVICEID 및 ErrorHook 호출이 이어집니다 SWS OS 85쪽, SWS OS 172쪽. R20-11에서 동기화 동작은 호출된 함수에 따르며, 호출로 인해 재스케줄링이 트리거될 수 있습니다 [SWS_Os_00097]. trusted OS-Application에 대해서도 쓰기 접근을 제한할 수 있어야 합니다 [SWS_Os_00795].

Trusted Function 호출aufrufende OS-ApplicationTrusted-Function-StubBetriebssystem (System-Call-Dispatcher)bereitstellende OS-ApplicationDienstaufrufArgumente in Parameterstruktur packenCallTrustedFunction(FunID, FunParPtr)권한 확인altverweigertE_OS_SERVICEIDakzeptiert<trusted function>제공하는 OS-Application의 보호 설정 적용CheckTaskMemoryAccess(...)AccessType복귀E_OK반환 값

시퀀스 다이어그램: 스텁이 인수를 패키징하고, OS가 권한을 확인한 후에야 제공 OS-Application으로 전환하며, 해당 함수는 자체적으로 메모리 권한을 확인합니다. 출처: SWS OS 185쪽, SWS OS 396쪽, [SWS_Os_00097]

보호된 하드웨어 접근을 위해 8, 16 및 32비트 단위의 ReadPeripheral, WritePeripheral 및 ModifyPeripheral가 제공됩니다. 이들은 AreaIdType 유형의 주변 장치 영역에서 작동합니다 [SWS_Os_91000]. Modify 변형은 *Address = (*Address & Clearmask) | Setmask를 계산합니다 SWS OS 209쪽.

각 카테고리 2 ISR에 대해 DisableInterruptSource, EnableInterruptSource 및 ClearPendingInterrupt가 제공됩니다 [SWS_Os_00808]. ClearPendingInterrupt는 인터럽트 컨트롤러의 Pending 플래그만 지웁니다 [SWS_Os_00814].

버전 간 차이점: R20-11에서 시그니처에 ClearPending 매개변수가 포함되어 있음에도 불구하고 EnableInterruptSource은 항상 Pending 플래그를 지웁니다 [SWS_Os_00811]. 이후 버전에서는 이 지우기를 선택 사항으로 설명합니다 SWS OS 177쪽.

코어 및 파티션 간 조정

스핀록은 코어 경계를 넘어 작동합니다. GetSpinlock은 호출자의 스케줄링을 해제하지 않고 바쁘게 대기(busy-wait)하며, Task 및 카테고리 2 ISR 레벨에서 호출할 수 있습니다 SWS OS 115쪽. Extended Status에서는 두 가지 데드락 케이스를 감지합니다 [SWS_Os_00686]:

  • E_OS_INTERFERENCE_DEADLOCK: 동일한 코어의 Task가 이미 해당 락을 보유하고 있습니다.
  • E_OS_NESTING_DEADLOCK: 보유 중인 다른 스핀록과의 중첩이 허용되지 않습니다.

TryToGetSpinlock은 다른 코어의 Task가 락을 점유하고 있을 때 반환됩니다. 이때 TRYTOGETSPINLOCK_NOSUCCESS와 함께 E_OK을 반환합니다 [SWS_Os_00703], [SWS_Os_00792]. Task를 종료하기 전과 WaitEvent 이전에는 모든 스핀록을 올바른 순서로 해제해야 합니다 [SWS_Os_00695]. 간섭을 방지하려면 SuspendAllInterrupts로 감싸거나 OsSpinlockLockMethod 설정을 사용하는 것이 도움이 됩니다 SWS OS 101쪽.

코어 경계를 넘는 ActivateTask은 동기식으로 작동합니다. 오류 핸들러는 호출 코어에서 실행됩니다 SWS OS 103쪽. 반면 ActivateTaskAsyn 및 SetEventAsyn은 호출자에게 오류를 반환하지 않고 전역 Error-Hook에만 보고합니다 [SWS_Os_00816], [SWS_Os_00817]. 두 기능 모두 OS-Application이 있는 시스템에만 존재합니다 [SWS_Os_00818], [SWS_Os_00819]. 호출자가 더 이상 존재하지 않는 경우 보고는 생략됩니다 SWS OS 179쪽.

IOC는 송신자 및 수신자별로 함수를 생성합니다:

버퍼가 가득 차면 송신자는 IOC_E_LIMIT을 보고하고, 수신자는 다음 읽기 시 IOC_E_LOST_DATA을 받습니다 SWS OS 219쪽. R20-11에서 IocInit 및 OS와 IOC 코드의 분리 생성은 아직 DRAFT 상태입니다 [SWS_Os_00835], [SWS_Os_00831], [SWS_Os_00834].

오류가 발생한 경우의 동작

E_OS_ID 확인과 같은 많은 검사는 Extended Status에서만 수행됩니다. 포인터 인수는 여기서 NULL_PTR에 대해 검사되며 E_OS_ILLEGAL_ADDRESS로 거부됩니다 SWS OS 38쪽. E_OS_PROTECTION_MEMORY 및 E_OS_STACKFAULT와 같은 추가 오류 식별자는 중앙에서 정의됩니다 [SWS_Os_91025]. 서비스가 E_OK을 반환하지 않으면 OS는 ErrorHook 및 ErrorHook_<App>을 호출합니다 SWS OS 186쪽, [SWS_Os_00540].

심각한 오류 발생 시 OS는 ProtectionHook을 호출합니다. ProtectionHook의 ProtectionReturnType이 추가 대응 방식을 결정합니다 [SWS_Os_00538], [SWS_Os_00787]. ProtectionHook이 구성되지 않은 경우 OS는 ShutdownOS을 호출합니다 EXP ALEH 60쪽. OS-Application 종료 시 OS는 관련된 모든 객체를 중지합니다 SWS OS 62쪽:

  • 모든 Task 및 ISR,
  • 해당 인터럽트,
  • 해당 알람,
  • 해당 ScheduleTable.
ProtectionHook을 통한 보호 위반 대응OS-Application <App>의 태스크 / 카테고리 2 ISRProzessorBetriebssystemUse Case: Schutzverletzung보호 위반을 동반한 실행«Exception»ProtectionHook(Fatalerror)altPRO_TERMINATETASKISR태스크 / ISR의 강제 종료PRO_TERMINATEAPPLOS-Application 강제 종료PRO_TERMINATEAPPL_RESTARTOS-Application 강제 종료,Restart-Task startenPRO_IGNORE추가 동작 없음PRO_SHUTDOWNShutdownOS()

시퀀스 다이어그램: ProtectionHook의 반환값은 무시, Task/ISR 종료, OS-Application 종료(재시작 포함 또는 미포함) 및 시스템 셧다운 중에서 선택합니다. 출처: SWS OS 187쪽, [SWS_Os_00538], [SWS_Os_00787]

OS-Application은 APPLICATION_ACCESSIBLE, APPLICATION_RESTARTING 또는 APPLICATION_TERMINATED 상태입니다. 이 상태는 GetApplicationState [SWS_Os_00773], [SWS_Os_00499]에서 제공됩니다. R20-11에서 TerminateApplication은 RESTART 또는 NO_RESTART을 수신합니다 [SWS_Os_00258], [SWS_Os_00788]. 이후 버전에서는 이 매개변수를 무시합니다 SWS OS 194쪽.

RESTARTING 상태에서는 OSRestartTask만 실행되며, 다른 OS-Application은 접근 권한이 없습니다. OS-Application은 ECU의 재기동을 통해서만 APPLICATION_TERMINATED 상태를 벗어납니다 EXP ALEH 53쪽. OSRestartTask는 필요 시 CallTrustedFunction를 통해 정리 작업을 수행한 다음 AllowAccess을 사용하여 OS-Application을 다시 활성화합니다 EXP ALEH 76쪽, [SWS_Os_00501]. ECU 전역 ProtectionHook 및 Restart-Task의 코드는 통합자(Integrator)가 제공합니다 EXP ALEH 79쪽.

OsApplication start Start ACC APPLICATION_ACCESSIBLE start->ACC StartOS (첫 번째 StartupHook 이전) RES APPLICATION_RESTARTING ACC->RES PRO_TERMINATEAPPL_RESTART 또는 TerminateApplication(AppID, RESTART) TER APPLICATION_TERMINATED ACC->TER PRO_TERMINATEAPPL 또는 TerminateApplication(AppID, NO_RESTART) RES->ACC AllowAccess() (Restart 태스크에서 호출) RES->TER TerminateApplication(self, NO_RESTART)

상태 다이어그램: StartOS는 모든 OS-Application에 접근할 수 있도록 만듭니다. 보호 반응 또는 TerminateApplication은 RESTARTING 또는 TERMINATED 상태로 이어지며, 오직 AllowAccess만이 이전 상태로 되돌립니다. 출처: EXP ALEH 61쪽, [SWS_Os_00773], [SWS_Os_00501]

더 자세한 증거

페이로드에 포함된 요구사항 및 문서 위치를 기반으로 생성된 AI 가이드입니다. 릴리스 R20-11의 요구사항이 표준적이며, 이후 버전의 편차는 명시되어 있습니다.

AUTOSAR OS

Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 GetApplication [SWS_Os_00016] 📄 PDF

ApplicationType GetApplicationID (void);

This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).

함수 GetCurrentApplication [SWS_Os_00797] 📄 PDF

ApplicationType GetCurrentApplicationID (void);

This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().

함수 CallTrustedFunction [SWS_Os_00097] 📄 PDF

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);

A (trusted or non - trusted) OS - Application uses this service to call a trusted function

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f4173cc0ef4f 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

시스템 서비스 CallTrustedFunction(서비스 ID 0x02)을 통해 신뢰된(trusted) 또는 신뢰되지 않은(non-trusted) OS-Application이 실행을 위해 정의된 Trusted Function을 호출할 수 있습니다 [SWS_Os_00097]. 인터페이스는 헤더 Os.h을 통해 제공됩니다 [SWS_Os_00097].

호출 시 두 개의 입력 매개변수를 전달해야 합니다 [SWS_Os_00097]:

  • FunctionIndex(유형 TrustedFunctionIndexType): 호출할 함수의 인덱스를 나타냅니다 [SWS_Os_00097].
  • FunctionParams(유형 TrustedFunctionParameterRefType): 대상 함수의 매개변수를 가리키는 포인터를 전달합니다. 인수가 필요하지 않은 경우 반드시 NULL 포인터를 전달해야 합니다 [SWS_Os_00097].

시간 동작 측면에서 실행은 대상 루틴에 따라 달라집니다. 호출된 함수가 동기식이면 서비스도 동기식으로 동작합니다 [SWS_Os_00097]. 함수는 재진입 가능하게 구현되어 있지만, 실행 중에 운영체제의 재스케줄링을 유발할 수 있습니다 [SWS_Os_00097].

서비스는 반환값으로 유형 StatusType의 상태 값을 제공합니다 [SWS_Os_00097]:

  • E_OK: 실행이 오류 없이 성공적으로 완료되었습니다 [SWS_Os_00097].
  • E_OS_SERVICEID: 전달된 인덱스에 할당된 유효한 함수가 없습니다 [SWS_Os_00097].

본 사용 지침은 AUTOSAR R20-11을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 CheckISRMemoryAccess [SWS_Os_00512] 📄 PDF

AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);

This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9eaf26d27eff 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 CheckISRMemoryAccess은(는) OS 모듈의 동기 및 재진입 가능 시스템 서비스입니다([SWS_Os_00512]). 런타임에 특정 메모리 영역에 대해 지정된 ISR의 메모리 액세스 권한을 확인하는 데 사용됩니다.

사용법 및 매개변수

CheckISRMemoryAccess 호출 시 세 개의 입력 매개변수가 요구됩니다([SWS_Os_00512]):

  • ISRID: 검사할 ISR에 대한 참조(ISRType).
  • Address: 검사할 메모리 영역의 시작 주소(MemoryStartAddressType).
  • Size: 메모리 영역의 크기(MemorySizeType).

서비스는 반환값으로 AccessType 타입을 제공합니다. 이 반환값에는 지정된 영역에 대한 액세스 권한(읽기, 쓰기, 실행)이 포함되며, 해당 메모리 영역이 스택 영역의 일부인지 여부에 대한 정보도 추가로 제공합니다([SWS_Os_00512]).

동시성 및 통합

명세에 따르면 이 함수는 서비스 ID 0x03을(를) 가지며 재진입 가능한 것으로 선언되어 있습니다([SWS_Os_00512]). 헤더 Os.h을(를) 통해 사용할 수 있습니다([SWS_Os_00512]). 본 명세서 발췌본에는 특정 오류 코드나 DET/DEM에 대한 명시적인 피드백이 나열되어 있지 않습니다.

이 사용 지침은 AUTOSAR R20-11의 명세 데이터를 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 CheckTaskMemoryAccess [SWS_Os_00513] 📄 PDF

AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);

This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 91d38acf9e0a 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

CheckTaskMemoryAccess 함수는 헤더 Os.h을(를) 통해 제공되고 서비스 ID 0x04를 갖는 운영체제의 동기식 서비스를 나타냅니다 [SWS_Os_00513]. 이 함수는 특정 메모리 세그먼트에 대한 특정 태스크의 메모리 접근 권한을 조회하는 데 사용됩니다 [SWS_Os_00513].

매개변수 및 반환값

호출 시 서비스는 세 개의 입력 매개변수를 받습니다 [SWS_Os_00513]:

  • Task ID(TaskType 타입): 접근 권한을 검사할 태스크에 대한 참조입니다.
  • Address(MemoryStartAddressType 타입): 검사할 메모리 영역의 시작 주소입니다.
  • Size(MemorySizeType 타입): 검사할 메모리 영역의 크기입니다.

반환값으로 서비스는 AccessType 타입의 변수를 반환합니다 [SWS_Os_00513]. 이 반환값에는 지정된 메모리 영역에 대해 태스크가 쓰기, 읽기 또는 실행 권한으로 접근할 수 있는지 여부에 대한 정보가 포함되며, 해당 영역이 스택 영역의 일부인지 여부도 추가로 나타냅니다 [SWS_Os_00513]. 이 서비스에 대해 추가 오류 코드나 DET 알림은 지정되어 있지 않습니다.

동시성 및 상호 작용

이 서비스는 재진입 가능하도록 지정되어 있으므로 동시 실행 컨텍스트에서 안전하게 사용될 수 있습니다 [SWS_Os_00513]. CheckTaskMemoryAccess이(가) 런타임에 메모리 영역에 대한 권한을 조회하는 반면, AUTOSAR 표준은 ARTI 모듈 설명에서 디버깅 도구가 운영체제 객체의 상태와 속성을 기록하고 평가할 수 있는 인터페이스와 데이터 구조를 정의합니다 [SWS_Os_00829].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 CheckObjectAccess [SWS_Os_00256] 📄 PDF

ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);

This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c7ec73500d6c 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

CheckObjectAccess 함수([SWS_Os_00256])는 특정 OS-Application이 API 호출에서 운영체제 객체의 ID를 사용할 권한이 있는지 동기식으로 확인합니다. 애플리케이션을 식별하기 위해 ApplicationType 타입의 입력 매개변수 ApplID([SWS_Os_00256])이(가) 사용됩니다. ObjectType(타입 ObjectTypeType)을(를) 통해 어떤 종류의 객체를 검사할지 지정하며, 태스크, 리소스, 카운터, 알람 및 스케줄 테이블이 지원됩니다([SWS_Os_00256]). 세 번째 매개변수로는 가변 매개변수 목록 ...([SWS_Os_00256])을(를) 통해 검사할 객체 자체가 전달됩니다.

함수는 반환값으로 ObjectAccessType 타입을 반환합니다. 애플리케이션의 객체 접근이 허용되면 ACCESS이(가) 반환되고, 그렇지 않으면 NO_ACCESS이(가) 반환됩니다([SWS_Os_00256]). 이 서비스는 헤더 Os.h을(를) 통해 선언되며 서비스 ID 0x05([SWS_Os_00256])를 갖습니다.

동시성, 오류 처리 및 상호 작용

이 서비스는 재진입 가능하도록 지정되어 있으므로 동시 실행 컨텍스트에서 호출될 수 있습니다([SWS_Os_00256]). 이 함수에 대한 특정 오류 코드, 오류 상태에 대한 반환값 또는 DET나 DEM에 대한 알림은 사양에 정의되어 있지 않습니다([SWS_Os_00256]).

Interpretation: 가변 인수 ...은(는) 구현 시 ObjectType에 부합하는 객체의 구체적인 식별자를 전달할 것으로 보입니다. 질문 Q-5cb52ff94bb07826 (열림) 검사된 운영체제 객체는 운영체제 객체의 속성과 상태를 수집하고 평가하는 ARTI 디버깅 정보에도 반영됩니다([SWS_Os_00829]).

이 사용 지침은 R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 CheckObjectOwnership [SWS_Os_00017] 📄 PDF

ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);

This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 20318a993e09 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 시스템 함수 CheckObjectOwnership은(는) 특정 운영체제 객체가 어떤 OS-Application에 속하는지 확인하는 데 사용됩니다 [SWS_Os_00017]. 이 서비스를 통해 조회할 수 있는 객체에는 태스크, 인터럽트 서비스 루틴(ISR), 카운터, 알람 및 스케줄 테이블이 포함됩니다 [SWS_Os_00017].

이 함수는 헤더 파일 Os.h을(를) 통해 사용할 수 있으며 서비스 ID 0x06을(를) 갖습니다 [SWS_Os_00017]. 사용 시 함수는 두 개의 입력 매개변수를 받습니다:

  • ObjectType: ObjectTypeType 타입의 입력 매개변수로서 후속으로 전달되는 운영체제 객체의 종류를 나타냅니다 [SWS_Os_00017].
  • ...: 검사할 구체적인 객체를 서비스에 전달합니다 [SWS_Os_00017].

반환값으로 함수는 데이터 타입 ApplicationType을(를) 반환합니다 [SWS_Os_00017]. 여기에는 검사된 객체가 할당된 OS-Application의 식별자가 포함됩니다 [SWS_Os_00017].

오류 처리 및 실행 속성

조회된 객체가 시스템에 존재하지 않는 경우 서비스는 반환값 INVALID_OSAPPLICATION을(를) 반환합니다 [SWS_Os_00017].

동시성 동작과 관련하여 CheckObjectOwnership은(는) 재진입 가능하도록 지정되어 있으며 완전히 동기식으로 작동합니다 [SWS_Os_00017]. 반환값 외에 입출력 매개변수(inout 또는 out)는 존재하지 않습니다 [SWS_Os_00017].

이 사용 지침은 AUTOSAR Classic R20-11의 사양 SWS_Os_00017을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 StartScheduleTableRel [SWS_Os_00347] 📄 PDF

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9cbbffcaa010 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 매개변수

시스템 서비스 StartScheduleTableRel은 기반 카운터의 현재 카운터 값("Now")에 상대적으로 스케줄 테이블의 처리를 시작합니다 [SWS_Os_00347]. 호출은 동기식으로 실행되며 서비스 ID 0x07을 갖는 인터페이스 Os.h을 통해 제공됩니다 [SWS_Os_00347].

  • ScheduleTableID(입력, ScheduleTableType): 시작할 스케줄 테이블의 식별자 [SWS_Os_00347].
  • Offset(입력, TickType): 테이블 처리가 시작되기 전까지 카운터의 상대적 카운터 틱 수 [SWS_Os_00347].

반환값 및 오류 처리

함수는 StatusType 타입의 상태 코드를 반환합니다 [SWS_Os_00347]:

  • E_OK: 스케줄 테이블이 오류 없이 시작되었습니다 [SWS_Os_00347].
  • E_OS_STATE: 지정된 스케줄 테이블이 이미 시작되었습니다 [SWS_Os_00347].
  • E_OS_ID(상태 EXTENDED에서만 해당): 지정된 ScheduleTableID이(가) 유효하지 않습니다 [SWS_Os_00347].
  • E_OS_VALUE(상태 EXTENDED에서만 해당): 매개변수 Offset이(가) 0과 같거나 (OsCounterMaxAllowedValue - InitialOffset) 값을 초과합니다 [SWS_Os_00347].

동시성 및 제약사항

이 함수는 재진입 가능으로 명시되어 있습니다 [SWS_Os_00347]. 출력 또는 입출력 매개변수는 존재하지 않습니다 [SWS_Os_00347].

이 사용 지침은 AUTOSAR CP R20-11 명세를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 StartScheduleTableAbs [SWS_Os_00358] 📄 PDF

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);

This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8536dbe30f67 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 및 재진입 가능(reentrant) 함수 StartScheduleTableAbs은(는) 기본 카운터([SWS_Os_00358])의 지정된 절대 카운터 값에서 스케줄 테이블(Schedule Table)을 시작하는 데 사용됩니다. 이 서비스는 헤더 Os.h을(를) 통해 제공되며 서비스 ID 0x08(으)로 식별됩니다([SWS_Os_00358]).

호출 시 두 개의 입력 매개변수가 전달됩니다([SWS_Os_00358]):

  • ScheduleTableID: 시작할 Schedule Table의 식별자.
  • Start: Schedule Table이 시작되는 절대 카운터 틱 값.

함수는 반환값으로 StatusType 타입의 상태를 반환합니다([SWS_Os_00358]):

  • E_OK: 시작 작업이 성공했습니다.
  • E_OS_STATE: 지정된 Schedule Table이 이미 이전에 시작되었습니다.
  • E_OS_ID: 전달된 ScheduleTableID이(가) 유효하지 않습니다(EXTENDED 상태에서만 반환됨).
  • E_OS_VALUE: Start의 값이 최대 허용 카운터 값 OsCounterMaxAllowedValue을(를) 초과합니다(EXTENDED 상태에서만 반환됨).

상호 작용 측면에서, Schedule Table과 같은 운영체제 객체의 상태 및 동적 속성은 연결된 디버그 도구에 의해 ARTI 모듈 설명을 통해 평가되고 표시될 수 있습니다([SWS_Os_00829]). 해석: 명세서 발췌본에 명시적인 제한이 지정되어 있지 않으므로 호출 컨텍스트는 주로 태스크 레벨을 포함할 것으로 보입니다. 질문 Q-213de28d0345ccb1 (열림)

이 텍스트는 AI에 의해 작성되었으며 R20-11 릴리스의 명세만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 StopScheduleTable [SWS_Os_00006] 📄 PDF

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);

This service cancels the processing of a schedule table immediately at any point while the schedule table is running.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: acbfdebe2422 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 시스템 함수 StopScheduleTable([SWS_Os_00006])은 실행 중인 스케줄 테이블의 처리를 임의의 처리 시점에 즉시 중단합니다. 이 서비스는 헤더 Os.h에 선언되어 있으며 서비스 ID 0x09([SWS_Os_00006])을 가집니다. 유일한 입력 매개변수로는 중지할 스케줄 테이블을 지정하는 유형 ScheduleTableType의 ScheduleTableID이 사용되며, 입출력 또는 순수 출력 매개변수는 존재하지 않습니다([SWS_Os_00006]).

동기 호출은 반환값으로 유형 StatusType([SWS_Os_00006])의 상태 코드를 제공합니다:

  • E_OK: 스케줄 테이블의 처리가 오류 없이 중지되었습니다([SWS_Os_00006]).
  • E_OS_NOFUNC: 지정된 스케줄 테이블이 이미 중지된 상태였습니다([SWS_Os_00006]).
  • E_OS_ID: 전달된 식별자 ScheduleTableID이 유효하지 않습니다. 사양에 따르면 이 반환값은 EXTENDED 상태에서만 생성됩니다([SWS_Os_00006]).

이 함수는 재진입 가능([SWS_Os_00006])으로 정의됩니다. 해석: 선언된 재진입성을 고려할 때, 본 사양 발췌본에 구체적인 컨텍스트 제한이 없더라도 여러 OS 컨텍스트에서의 동기 호출이 허용되는 것으로 보입니다. 질문 Q-9cb147c4bc7dba7e (열림) 런타임 모니터링을 위해 스케줄 테이블과 같은 OS 객체의 상태 및 동적 속성을 ARTI 설명 파일을 통해 연결된 디버그 및 분석 도구로 전달할 수 있습니다([SWS_Os_00829]).

참고: 이 설명은 AUTOSAR Classic Release R20-11의 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 NextScheduleTable [SWS_Os_00191] 📄 PDF

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);

This service switches the processing from one schedule table to another schedule table.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: dfc067e72659 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 NextScheduleTable은 처리를 실행 중인 스케줄 테이블에서 후속 테이블로 동기식으로 전환하는 역할을 합니다 [SWS_Os_00191]. 이 서비스는 재진입 가능하도록 설계되었으며 헤더 Os.h을 통해 선언됩니다 [SWS_Os_00191].

매개변수 및 호출

호출 시 유형 ScheduleTableType의 두 입력 매개변수가 전달됩니다 [SWS_Os_00191]:

  • ScheduleTableID_From: 현재 처리 중인 스케줄 테이블의 식별자 [SWS_Os_00191].
  • ScheduleTableID_To: 후속 만료 지점(Expiry Points) 시퀀스를 제공하는 스케줄 테이블의 식별자 [SWS_Os_00191].

반환값 및 오류 처리

함수는 타입 StatusType의 상태 값을 반환합니다 [SWS_Os_00191]:

  • E_OK: 전환 요청이 오류 없이 발행되었습니다 [SWS_Os_00191].
  • E_OS_ID: 전달된 테이블 식별자 중 하나 이상이 유효하지 않은 경우, EXTENDED 상태로 구성된 경우에만 독점적으로 반환됩니다 [SWS_Os_00191].
  • E_OS_NOFUNC: 시작 테이블 ScheduleTableID_From이 시작된 상태가 아닙니다 [SWS_Os_00191].
  • E_OS_STATE: 대상 테이블 ScheduleTableID_To이 이미 활발히 시작되었거나 이미 후속 테이블로 지정되어 있습니다 [SWS_Os_00191].

상호작용 및 진단

운영체제의 관찰 및 분석을 위해 ARTI 모듈 설명은 해당 ORTI 컨테이너를 지원하므로, 디버그 도구는 운영체제 객체의 동적 상태 등을 평가하고 표시할 수 있습니다 [SWS_Os_00829].

이 텍스트는 자동으로 생성되었습니다. 모든 정보는 오직 AUTOSAR 릴리스 R20-11의 사양만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

This service starts an explicitly synchronized schedule table synchronously.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 8edf7224d053 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

시스템 서비스 StartScheduleTableSynchron은 명시적으로 동기화된 스케줄 테이블을 동기식으로 시작하는 데 사용됩니다 [SWS_Os_00201]. 이 함수는 헤더 파일 Os.h에 선언되어 있으며 서비스 ID 0x0b을 가집니다 [SWS_Os_00201]. 유일한 전달 매개변수로 함수는 시작할 테이블을 고유하게 참조하는 유형 ScheduleTableType의 입력 매개변수 ScheduleTableID을 예상합니다 [SWS_Os_00201]. 입출력 또는 순수 출력 매개변수는 없습니다 [SWS_Os_00201]. 처리는 동기식으로 수행되며 유형 StatusType의 반환값을 반환합니다 [SWS_Os_00201].

오류 처리

정상적인 흐름에서 함수 호출은 상태 코드 E_OK을 반환합니다 [SWS_Os_00201]. 오류 발생 시 다음과 같은 반환값이 명시되어 있습니다:

  • E_OS_STATE: 지정된 스케줄 테이블이 이미 시작된 상태이며 다시 동기식으로 시작할 수 없습니다 [SWS_Os_00201].
  • E_OS_ID: 전달된 ScheduleTableID이(가) 유효하지 않습니다 [SWS_Os_00201]. 이 오류 검사 및 오류 메시지는 EXTENDED 상태에서만 활성화됩니다 [SWS_Os_00201].

동시성 및 제약사항

이 함수는 재진입 가능으로 명시되어 있습니다 [SWS_Os_00201]. 이미 활성 상태인 테이블에 대한 반복 호출은 E_OS_STATE(으)로 거부되므로, 호출자는 호출 전에 대상 테이블이 이미 실행 중이지 않은지 확인해야 합니다 [SWS_Os_00201].

상호 작용

운영체제 객체의 상태 전이 및 동적 속성은 테스트 및 진단 도구를 위해 ARTI 모듈 설명 파일 및 ORTI 컨테이너를 통해 추적할 수 있습니다 [SWS_Os_00829]. 외부 디버거는 이러한 설명을 사용하여 런타임에 OS 객체의 내부 상태를 평가합니다 [SWS_Os_00829].

이 텍스트는 AUTOSAR R20-11 명세서를 기반으로 AI가 생성했습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 SyncScheduleTable [SWS_Os_00199] 📄 PDF

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service SyncScheduleTable.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 50f85b0fc4ce 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 운영체제 서비스 SyncScheduleTable은 스케줄 테이블에 카운터 값을 전달하고 동기화 프로세스를 시작하는 데 사용됩니다([SWS_Os_00199]). 이 함수는 헤더 파일 Os.h을 통해 제공됩니다([SWS_Os_00199]).

매개변수 및 반환값

이 함수는 두 개의 입력 매개변수([SWS_Os_00199])를 필요로 합니다:

  • Schedule Table ID: 유형 ScheduleTableType의 동기화할 스케줄 테이블 식별자([SWS_Os_00199]).
  • Value: 유형 TickType의 동기화 카운터 현재 카운터 값([SWS_Os_00199]).

유형 StatusType의 반환값은 E_OK(으)로 오류 없는 실행을 알립니다([SWS_Os_00199]).

오류 처리 및 제약 조건

호출 시점에 테이블이 SCHEDULETABLE_STOPPED 상태에 있으면 오류 E_OS_STATE이 반환됩니다([SWS_Os_00199]). 운영체제가 EXTENDED 상태로 구성된 경우 추가 검사가 적용됩니다([SWS_Os_00199]):

  • E_OS_ID: 지정된 테이블 ID가 유효하지 않거나, Os Schedule Tbl Sync Strategy이(가) 구성되지 않았거나 IMPLICIT(으)로 설정되어 있어 테이블을 동기화할 수 없습니다([SWS_Os_00199]).
  • E_OS_VALUE: 전달된 카운터 값 Value이(가) 허용 범위를 벗어납니다([SWS_Os_00199]).

상호작용 및 진단

스케줄 테이블과 같은 운영체제 객체의 상태 및 동적 속성은 ARTI 모듈 설명 및 ORTI 컨테이너를 통해 연결된 디버그 및 진단 도구로 평가될 수 있습니다([SWS_Os_00829]).

이 텍스트는 AUTOSAR R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 SetScheduletableAsync [SWS_Os_00422] 📄 PDF

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

This service stops synchronization of a schedule table.

함수 GetScheduleTableStatusof [SWS_Os_00227] 📄 PDF

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);

This service queries the state of a schedule table (also with respect to synchronization).

함수 IncrementCounter [SWS_Os_00399] 📄 PDF

StatusType IncrementCounter (CounterType CounterID);

This service increments a software counter.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 40e8148ee79f 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 운영체제 함수 IncrementCounter은(는) 소프트웨어 카운터를 명시적으로 전진시키는 역할을 합니다 [SWS_Os_00399]. 이 함수는 CounterType 타입의 식별자 CounterID을(를) 입력 매개변수로 요구하고, 다른 매개변수는 수정하지 않으며, 헤더 Os.h을(를) 통해 사용할 수 있습니다 [SWS_Os_00399]. 이 호출은 운영체제의 즉각적인 재스케줄링을 유발할 수 있음에 유의해야 합니다 [SWS_Os_00399].

오류 처리

StatusType 타입의 반환값은 작업의 성공 여부에 대한 정보를 제공합니다. 일반적인 작동 사례에서는 E_OK이(가) 오류 없는 실행을 보고합니다 [SWS_Os_00399]. 확장 상태 검사(EXTENDED 상태)가 활성화된 경우 잘못된 카운터 ID가 지정되었거나 참조된 카운터가 하드웨어로 구현되어 소프트웨어로 증가시킬 수 없을 때 서비스는 E_OS_ID을(를) 반환합니다 [SWS_Os_00399].

동시성 및 진단

이 함수는 재진입 가능하도록 설계되었으므로 동시에 호출될 수 있습니다 [SWS_Os_00399]. 가능한 재스케줄링은 Interpretation: 카운터의 전진이 알람 만료나 태스크 활성화와 같은 종속 작업을 트리거할 때 발생할 것으로 보입니다. 질문 Q-9004b5ced9b96230 (열림) 카운터와 같은 운영체제 객체 및 그 동적 상태를 관찰하기 위해 ARTI 모듈 설명은 연결된 분석 도구의 런타임 모니터링을 지원합니다 [SWS_Os_00829].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR 릴리스 R20-11의 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 GetCounterValue [SWS_Os_00383] 📄 PDF

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).

함수 GetElapsedValue [SWS_Os_00392] 📄 PDF

StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);

This service gets the number of ticks between the current tick value and a previously read tick value.

함수 TerminateApplication [SWS_Os_00258] 📄 PDF

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Service TerminateApplication.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 2ba1bf6d0722 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 함수 TerminateApplication은 OS-Application을 종료하는 데 사용되며 헤더 파일 Os.h을 통해 제공됩니다 [SWS_Os_00258]. 호출은 태스크, 카테고리 2 ISR 및 애플리케이션별 Error Hook의 컨텍스트에서 허용됩니다 [SWS_Os_00258].

입력 매개변수로 대상 애플리케이션의 식별자(Application)와 재시작 동작(Restart Option)이 전달됩니다 [SWS_Os_00258]:

  • 호출자 자신이 Application에 지정된 애플리케이션에 속하는 경우, 실행 시 자체 종료가 발생합니다 [SWS_Os_00258].
  • Restart Option을 통해 OS-Application을 이후에 재시작할지(RESTART) 아니면 재시작하지 않을지(NO_RESTART) 여부가 결정됩니다 [SWS_Os_00258].

이 함수는 유형 StatusType의 상태 값을 반환합니다 [SWS_Os_00258]:

  • E_OK은 오류 없는 종료를 알립니다 [SWS_Os_00258].
  • E_OS_STATE은 Application의 현재 상태가 종료를 허용하지 않음을 나타냅니다 [SWS_Os_00258].
  • EXTENDED 상태에서는 추가적인 오류 검사가 수행됩니다: 잘못된 애플리케이션 ID의 경우 E_OS_ID, Restart Option에 대한 매개변수 값이 유효하지 않은 경우 E_OS_VALUE, 호출자에게 Application을 종료할 권한이 없는 경우 E_OS_ACCESS [SWS_Os_00258].

이 사용 지침은 사양 SWS_Os_00258을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 AllowAccess [SWS_Os_00501] 📄 PDF

StatusType AllowAccess (void);

This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5da6dc1b3684 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 시스템 서비스 AllowAccess(서비스 ID 0x13)은(는) 자체 OS-Application의 상태를 APPLICATION_RESTARTING에서 APPLICATION_ACCESSIBLE(으)로 설정하는 데 사용됩니다([SWS_Os_00501]). 이 함수는 헤더 파일 Os.h을(를) 통해 사용할 수 있으며, 전달 매개변수를 받지 않고 StatusType 타입의 상태 값을 반환합니다([SWS_Os_00501]). 상태 변경이 성공적으로 수행되면 호출은 반환값 E_OK을(를) 제공합니다([SWS_Os_00501]).

오류 처리 및 동시성

호출한 OS-Application이 APPLICATION_RESTARTING 상태가 아닌 경우 실행이 실패하고 함수는 오류 값 E_OS_STATE을(를) 반환합니다([SWS_Os_00501]). 이 서비스에 대한 특정 DET 또는 DEM 알림은 사양에 정의되어 있지 않습니다. 동시성 동작과 관련하여 이 함수는 재진입 가능한 것으로 분류되어 병렬 프로세스에서 안전하게 실행될 수 있습니다([SWS_Os_00501]).

상호작용 및 진단

Interpretation: 이 호출은 모든 준비가 완료되고 다른 애플리케이션이 리소스에 다시 접근할 수 있게 되는 애플리케이션 자체의 재기동 단계가 끝날 때 일반적으로 발생할 것으로 보입니다. 질문 Q-f43a3f702d5d2428 (열림) 운영체제 및 관련 OS 객체의 동적 상태는 시스템 진단의 일환으로 표준화된 ARTI 설명 파일 및 관련 디버그 도구를 통해 평가되고 시각화될 수 있습니다([SWS_Os_00829]).

이 텍스트는 AI에 의해 작성되었으며 R20-11 사양 버전을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 GetNumberActivatedCores [SWS_Os_00672] 📄 PDF

uint32 GetNumberOfActivatedCores (void);

The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

함수 StartCore [SWS_Os_00676] 📄 PDF

void StartCore (CoreIdType CoreID, StatusType* Status);

It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 06b25350e939 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 StartCore은(는) 매개변수 Core ID을(를) 통해 지정된 프로세서 코어를 시작합니다 [SWS_Os_00676]. 이 함수는 직접적인 반환값을 갖지 않으며, OUT 매개변수 Status을(를) 통해 실행 결과를 호출자에게 전달합니다 [SWS_Os_00676]. 이 함수를 사용하여 코어가 시작된 경우, 해당 코어에서 후속적으로 Start OS을(를) 호출해야 합니다 [SWS_Os_00676].

호출 컨텍스트 및 동시성에 대해 엄격한 제한이 적용됩니다: StartCore은(는) 재진입 불가(Non Reentrant)로 지정되어 있습니다 [SWS_Os_00676]. Start OS()을(를) 통해 운영체제를 시작한 후의 호출은 지원되지 않습니다 [SWS_Os_00676]. 이 서비스는 동기식으로 구현되며 헤더 파일 Os.h에서 서비스 ID 0x17(으)로 제공됩니다 [SWS_Os_00676].

오류 처리는 매개변수 Status을(를) 통해 수행되며, 상태 구성에 따라 다음 값을 가질 수 있습니다 [SWS_Os_00676]:

  • 표준 상태에서 E_OK은(는) 오류 없는 실행을 나타냅니다 [SWS_Os_00676].
  • 확장 상태(extended status)에서 E_OK은(는) 마찬가지로 성공적인 시작을 확인합니다 [SWS_Os_00676].
  • E_OS_ID은(는) 전달된 Core ID이(가) 유효하지 않음을 보고합니다 [SWS_Os_00676].
  • E_OS_ACCESS은(는) 운영체제 시작 후의 허용되지 않은 호출을 알립니다 [SWS_Os_00676].
  • E_OS_STATE은(는) 요청된 프로세서 코어가 이미 활성화되어 있음을 나타냅니다 [SWS_Os_00676].

이 사용 지침은 AI에 의해 생성되었으며 릴리스 R20-11의 AUTOSAR Classic 운영체제 명세만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 StartNonCore [SWS_Os_00682] 📄 PDF

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);

The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4541cad4d0e6 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

동기식이며 재진입이 불가능한 함수 StartNonCore은(는) CoreID 매개변수를 통해 지정된 프로세서 코어를 시작합니다 [SWS_Os_00682]. 이 함수는 StartOS()을(를) 통해 운영체제가 시작된 후에 호출될 수 있으며 헤더 파일 Os.h을(를) 통해 사용할 수 있습니다 [SWS_Os_00682]. 호출자는 출력 매개변수 Status을(를) 통해 시작 절차가 성공했는지 확인할 수 있습니다 [SWS_Os_00682].

오류 처리 및 상태 값

이 함수는 직접적인 반환값이 없지만 포인터 매개변수 Status을(를) 통해 실행 결과를 보고합니다 [SWS_Os_00682]:

  • E_OK: 작업이 오류 없이 성공적으로 실행되었습니다 [SWS_Os_00682].
  • E_OS_ID: 지정된 CoreID이(가) 유효하지 않습니다(표준 상태에서) [SWS_Os_00682].
  • E_OS_STATE: 지정된 프로세서 코어가 이미 활성화되어 있습니다(표준 상태에서) [SWS_Os_00682].

제한 사항 및 순서 조건

재진입이 불가능한 인터페이스로서 StartNonCore은(는) 동시에 실행되어서는 안 됩니다 [SWS_Os_00682]. 또한 이 함수를 통해 활성화된 프로세서 코어에서는 어떠한 경우에도 StartOS을(를) 호출해서는 안 된다는 엄격한 요구사항이 적용되며, 그렇지 않을 경우 시스템 동작은 정의되지 않습니다 [SWS_Os_00682].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 GetSpinlock [SWS_Os_00686] 📄 PDF

StatusType GetSpinlock (SpinlockIdType SpinlockId);

Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: aaf2a4bc7e29 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 및 재진입 가능 운영체제 함수 GetSpinlock([SWS_Os_00686])은(는) 전달 매개변수 SpinlockId(타입 SpinlockIdType)을(를) 통해 스핀락 변수를 점유하는 데 사용됩니다. 실행 시 이 함수는 호출 태스크의 디스케줄링을 트리거하지 않고 능동 폴링 메커니즘("busy waiting")을 사용합니다([SWS_Os_00686]).

이 함수는 락을 성공적으로 획득하거나 오류가 발생한 후에만 반환됩니다. GetSpinlock은(는) 반환값으로 StatusType을(를) 반환합니다([SWS_Os_00686]):

  • E_OK: 락이 오류 없이 점유되었습니다(표준 및 Extended 상태).
  • E_OS_ID: 전달된 SpinlockId이(가) 유효하지 않습니다(Extended 상태에서만).
  • E_OS_INTERFERENCE_DEADLOCK: 동일한 Core의 Task가 이미 스핀록을 점유하고 있는 동안, Task가 해당 스핀록 점유를 시도하는 경우입니다(Extended 상태에서만 해당).
  • E_OS_NESTING_DEADLOCK: 동일한 코어의 태스크가 이미 다른 스핀락을 보유하고 있어 교착 상태(deadlock)를 유발할 수 있는 상황에서 태스크가 스핀락을 요청하려고 시도합니다(Extended 상태에서만).
  • E_OS_ACCESS: 지정된 스핀락에 액세스할 수 없습니다(Extended 상태에서만).

시스템 모니터링 및 오류 분석의 일환으로 운영체제는 OS 객체에 대한 동적 상태 정보를 제공하며, 이는 [SWS_Os_00829]에 따라 디버그 도구를 위한 ARTI 및 ORTI 컨테이너를 통해 평가될 수 있습니다. 아마도 이를 통해 스핀락에서의 블로킹 상황도 파악할 수 있을 것으로 보입니다. 질문 Q-bac194d4132f6e88 (열림)

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 ReleaseSpinlock [SWS_Os_00695] 📄 PDF

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);

Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3c94a21733b1 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 및 재진입 가능 함수 ReleaseSpinlock은(는) 이전에 점유된 스핀락 변수를 해제합니다([SWS_Os_00695]). SpinlockIdType 타입의 전달 매개변수 SpinlockId을(를) 통해 해제할 스핀락 인스턴스가 지정됩니다([SWS_Os_00695]).

순서 조건 및 제약 사항

호출에 대해 엄격한 시간적 및 구조적 요건이 적용됩니다([SWS_Os_00695]):

  • 태스크를 종료하기 전에 GetSpinlock()을(를) 통해 이전에 점유된 모든 스핀락 변수를 다시 해제해야 합니다([SWS_Os_00695]).
  • WaitEvent을(를) 호출하기 전에 예외 없이 보유 중인 모든 스핀락을 해제해야 합니다([SWS_Os_00695]).
  • 해제는 올바른 중첩 순서로 수행되어야 하며, 상위 스핀락이나 리소스가 여전히 점유된 상태에서 해제를 시도하면 실패합니다([SWS_Os_00695]).

반환값 및 오류 처리

성공 시 서비스는 표준 및 확장 상태 모두에서 E_OK을(를) 반환합니다([SWS_Os_00695]). 확장 상태(Extended Status)에서는 특정 오류 코드가 정의되어 있습니다([SWS_Os_00695]):

  • E_OS_ID: 전달된 SpinlockId이(가) 유효하지 않습니다([SWS_Os_00695]).
  • E_OS_STATE: 스핀락이 호출 태스크에 의해 점유되지 않았습니다([SWS_Os_00695]).
  • E_OS_ACCESS: 스핀락에 액세스할 수 없습니다([SWS_Os_00695]).
  • E_OS_NOFUNC: 다른 스핀락 또는 리소스를 먼저 해제해야 하는 동안 스핀락 해제를 시도했습니다([SWS_Os_00695]).

이 함수는 헤더 Os.h을(를) 통해 사용할 수 있습니다([SWS_Os_00695]). ARTI 설명 파일은 운영체제 객체의 동적 상태 및 성능 평가를 위한 ORTI 컨테이너를 지원합니다([SWS_Os_00829]).

이 텍스트는 AI에 의해 작성되었으며 autodocs에 의해 큐레이팅되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 TryToGetSpinlock [SWS_Os_00703] 📄 PDF

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 1d98a899f332 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 및 재진입 가능(reentrant) OS 함수인 TryToGetSpinlock은(는) 헤더 Os.h을(를) 통해 스핀록 인스턴스를 비차단(non-blocking) 방식으로 점유하는 역할을 합니다[SWS_Os_00703]. 이 함수는 GetSpinlock과(와) 동일한 기본 기능을 수행하지만, 요청된 스핀록이 다른 Core의 TASK에 의해 이미 점유되어 있는 경우 능동적으로 대기하지 않습니다[SWS_Os_00703].

매개변수 및 반환값

  • SpinlockId (입력): 잠글 구체적인 스핀락 인스턴스를 참조합니다 [SWS_Os_00703].
  • Success (출력): 락을 점유할 수 있었는지 여부를 TryToGetSpinlockType* 타입을 통해 나타냅니다[SWS_Os_00703]. 다른 Core에서 잠금이 이미 점유된 상태라면, 함수는 이 매개변수를 적절히 설정하고 E_OK을(를) 반환합니다[SWS_Os_00703].
  • 반환값: 오류가 없는 경우 표준 및 Extended 상태에서 E_OK을(를) 반환합니다 [SWS_Os_00703].

오류 처리 및 제약 조건

Extended 상태에서 운영체제는 잘못된 호출 및 데드락 시나리오를 검사합니다 [SWS_Os_00703]:

  • E_OS_ID: 전달된 SpinlockId이 유효하지 않습니다[SWS_Os_00703].
  • E_OS_ACCESS: 스핀락에 액세스할 수 없습니다 [SWS_Os_00703].
  • E_OS_INTERFERENCE_DEADLOCK: 동일한 잠금이 동일한 Core의 TASK에 의해 이미 유지되고 있는 동안, TASK가 해당 잠금의 점유를 시도하는 경우입니다[SWS_Os_00703].
  • E_OS_NESTING_DEADLOCK: TASK가 이미 다른 스핀락을 보유하고 있어 데드락을 초래할 수 있는 동안 스핀락 점유를 시도합니다 [SWS_Os_00703].

이 사용 지침은 AUTOSAR R20-11 명세를 기반으로 AI 시스템에 의해 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 ShutdownAllCores [SWS_Os_00713] 📄 PDF

void ShutdownAllCores (StatusType Error);

After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 751c4aeab334 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

서비스 ID 0x1c을(를) 가진 동기 시스템 함수 ShutdownAllCores은(는) 존재하는 모든 프로세서 코어에 걸쳐 AUTOSAR 운영체제를 제어되고 완전하게 셧다운하는 역할을 합니다([SWS_Os_00713]). 서비스가 호출되는 즉시 함수는 다른 모든 코어에서 셧다운을 강제하여 운영체제가 모든 AUTOSAR 코어에서 셧다운되도록 합니다([SWS_Os_00713]).

호출 컨텍스트 및 동시성

이 함수는 헤더 Os.h에 선언되어 있으며 재진입 가능하도록 지정되어 있습니다([SWS_Os_00713]). ShutdownAllCores의 호출은 태스크 레벨(TASK level)과 인터럽트 레벨(ISR level) 모두에서 제한 없이 허용됩니다([SWS_Os_00713]). 또한 이 서비스는 AUTOSAR OS에 의해 운영체제 내부에서 직접 실행될 수도 있습니다([SWS_Os_00713]).

매개변수 및 제어 흐름

이 인터페이스는 StatusType 타입의 Error을(를) 유일한 입력 매개변수로 받습니다([SWS_Os_00713]). 이 매개변수에는 반드시 AUTOSAR 운영체제에서 지원하는 유효한 오류 코드가 전달되어야 합니다([SWS_Os_00713]). 출력 또는 입출력 매개변수는 존재하지 않습니다([SWS_Os_00713]). 이 함수는 시스템 전반의 셧다운을 트리거한 후 호출자에게 결코 반환되지 않으므로 반환값을 가지지 않습니다(void) ([SWS_Os_00713]).

이 사용 지침은 AUTOSAR R20-11 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 ControlIdle [SWS_Os_00769] 📄 PDF

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);

This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 33a045f6c446 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 함수 ControlIdle을(를) 통해 호출자는 운영체제의 유휴 시간 동안(태스크나 ISR이 모두 활성 상태가 아닐 때) 실행할 작업을 정의할 수 있습니다 [SWS_Os_00769]. 이는 주로 에너지 절약 조치를 구현하는 데 사용됩니다. 실제 유휴 모드는 하드웨어에 따라 다르며 표준화되어 있지 않습니다. 각 프로세서 코어의 기본 모드는 IDLE_NO_HALT입니다 [SWS_Os_00769]. 인터페이스는 헤더 파일 Os.h을(를) 통해 제공됩니다 [SWS_Os_00769].

이 함수는 두 개의 입력 매개변수를 기대합니다:

  • CoreID(CoreIdType 타입): 유휴 모드를 설정할 프로세서 코어를 선택합니다 [SWS_Os_00769].
  • IdleMode(IdleModeType 타입): 유휴 시간에 실행할 모드를 결정합니다 [SWS_Os_00769].

유효한 매개변수가 전달되고 오류가 발생하지 않은 경우 함수는 E_OK을(를) 반환합니다 [SWS_Os_00769], [SWS_Os_00770]. 지정된 CoreID 또는 IdleMode이(가) 유효하지 않은 경우(예: 참조된 코어가 존재하지 않거나 모드를 알 수 없는 경우), 호출은 EXTENDED 상태에서 오류 코드 E_OS_ID을(를) 반환합니다 [SWS_Os_00769], [SWS_Os_00771]. 싱글 코어 시스템에서는 매개변수 CoreID의 검사가 생략됩니다 [SWS_Os_00771].

동시성과 관련하여 함수는 재진입 불가(Non Reentrant)(으)로 명시되어 있습니다 [SWS_Os_00769]. 해석: 따라서 호출자는 서로 다른 실행 컨텍스트에서 ControlIdle의 호출이 동시에 또는 조정되지 않은 상태로 발생하지 않도록 해야 합니다. 질문 Q-7f239cb54752e826 (열림)

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ReadPeripheral [SWS_Os_91013] 📄 PDF

StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

This service returns the content of a given memory location (

).
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 00b6c6a1dbf2 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 ReadPeripheral(선언에서는 ReadPeripheral8(으)로 표기됨)은 정의된 하드웨어 주변 장치 영역 내의 메모리 주소를 동기식으로 읽는 데 사용됩니다 [SWS_Os_91013]. 인터페이스는 헤더 파일 Os.h을 통해 사용할 수 있습니다 [SWS_Os_91013]. 이 서비스는 입력 매개변수로 AreaIdType 타입의 영역 참조 Area과(와) const uint8에 대한 포인터인 대상 주소 Address을(를) 기대합니다 [SWS_Os_91013]. 메모리 위치에서 읽은 내용은 출력 매개변수 ReadValue을(를) 통해 제공됩니다 [SWS_Os_91013].

오류 처리

이 서비스는 StatusType 타입의 상태 코드를 반환하며, E_OK은(는) 오류 없는 실행을 나타냅니다 [SWS_Os_91013]. 확장 상태 검사(EXTENDED status)가 활성화되면 잘못된 호출이 특정 오류 값으로 구분됩니다 [SWS_Os_91013]:

  • E_OS_ID: 전달된 영역 식별자 Area이(가) 유효 범위를 벗어납니다 [SWS_Os_91013].
  • E_OS_VALUE: 지정된 메모리 주소 Address이(가) 지정된 주변 장치 영역에 속하지 않습니다 [SWS_Os_91013].
  • E_OS_CALLEVEL: 유효하지 않은 컨텍스트에서 호출되었습니다 [SWS_Os_91013].
  • E_OS_ACCESS: 호출한 태스크 또는 ISR이 해당 영역에 접근할 수 있는 필수 권한을 가지고 있지 않은 것으로 보입니다(해석) [SWS_Os_91013]. 질문 Q-19e2c22110352ebb (열림)

동시성 및 제약사항

이 API 서비스는 서비스 ID 0x28을(를) 가지며, 동기식으로 작동하고 재진입 가능하도록 설계되었습니다 [SWS_Os_91013]. 유효한 태스크 또는 ISR 컨텍스트에서만 호출이 허용되며, 유효하지 않은 호출은 확장 상태에서 E_OS_CALLEVEL(으)로 거부됩니다 [SWS_Os_91013].

이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ReadPeripheral16 [SWS_Os_91015] 📄 PDF

StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);

This service returns the content of a given memory location (

).
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5ae7289a82af 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 운영체제 함수 ReadPeripheral16은(는) 정의된 주변 장치 영역 내에서 지정된 메모리 주소의 16비트 값을 읽는 데 사용됩니다 [SWS_Os_91015]. 이 시스템 서비스는 서비스 ID 0x29 아래에 정의되어 있으며 헤더 파일 Os.h을 통해 사용할 수 있습니다 [SWS_Os_91015].

사용법 및 매개변수

이 서비스에는 입력 매개변수로 하드웨어 주변 장치 영역에 대한 참조(AreaIdType 타입의 Area)와 메모리의 대상 주소(const uint16* 타입의 Address)가 전달됩니다 [SWS_Os_91015]. 포인터 타입 uint16*의 출력 매개변수 Read Value을(를) 통해 메모리 주소에서 확인된 16비트 내용이 제공됩니다 [SWS_Os_91015]. 오류 없이 실행되면 함수는 StatusType 타입의 반환값 E_OK을(를) 반환합니다 [SWS_Os_91015].

오류 처리 및 접근 제한

확장 상태(EXTENDED status)에서 운영체제는 호출의 유효성을 검사하고 특정 상태 코드를 통해 오류를 보고합니다 [SWS_Os_91015]:

  • E_OS_ID: 전달된 영역 식별자 Area이(가) 유효 범위를 벗어납니다 [SWS_Os_91015].
  • E_OS_VALUE: 지정된 메모리 주소 Address이(가) 지정된 주변 장치 영역 Area에 속하지 않습니다 [SWS_Os_91015].
  • E_OS_CALLEVEL: API 함수에 유효하지 않은 컨텍스트에서 호출이 이루어졌습니다 [SWS_Os_91015].
  • E_OS_ACCESS: 호출한 태스크 또는 인터럽트 서비스 루틴(ISR)에 지정된 영역에 접근할 권한이 없습니다 [SWS_Os_91015].

이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic R20-11 사양의 요구사항만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ReadPeripheral32 [SWS_Os_91014] 📄 PDF

StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);

This service returns the content of a given memory location (

).
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a9f5d6c77f15 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기식 및 재진입 가능한 함수 ReadPeripheral32은(는) 지정된 메모리 주소의 내용을 읽습니다([SWS_Os_91014]). 호출자는 매개변수 Area을(를) 통해 하드웨어 주변 장치 영역에 대한 참조를 전달하고 Address을(를) 통해 원하는 메모리 주소를 전달합니다([SWS_Os_91014]). 이 주소에서 읽은 32비트 값은 출력 매개변수 ReadValue을(를) 통해 동기식으로 제공됩니다([SWS_Os_91014]). 인터페이스는 헤더 Os.h을 통해 제공됩니다([SWS_Os_91014]).

오류 처리

이 서비스는 StatusType 타입의 상태 값을 반환합니다. 오류 없이 실행되면 E_OK을(를) 반환합니다([SWS_Os_91014]). 확장 상태가 구성된 경우(EXTENDED status) 다음 오류 코드가 반환됩니다([SWS_Os_91014]):

  • E_OS_ID: 전달된 영역 식별자 Area이(가) 허용 범위를 벗어납니다([SWS_Os_91014]).
  • E_OS_VALUE: 지정된 주소 Address이(가) 지정된 영역 Area에 속하지 않습니다([SWS_Os_91014]).
  • E_OS_CALLEVEL: 유효하지 않은 호출 컨텍스트에서 함수가 호출되었습니다([SWS_Os_91014]).
  • E_OS_ACCESS: 호출한 태스크 또는 호출한 ISR에 필요한 접근 권한이 없습니다. 해석에 따르면 이는 주변 장치 영역을 참조하는 것으로 보입니다([SWS_Os_91014]). 질문 Q-e5893b29acc5133a (열림)

동시성 및 제약사항

ReadPeripheral32은(는) 재진입 가능으로 지정되어 있으며 여러 제어 흐름에서 병렬로 호출할 수 있습니다([SWS_Os_91014]). 서비스가 동기식으로 작동하므로 읽기 작업이 완료된 후에만 호출이 반환됩니다([SWS_Os_91014]). 호출자는 유효한 메모리 포인터를 전달하고 OS API에 대해 유효한 컨텍스트에서 호출이 이루어지는지 확인해야 합니다([SWS_Os_91014]).

이 텍스트는 AI에 의해 작성되었으며 R20-11 릴리스의 명세만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 WritePeripheral [SWS_Os_91010] 📄 PDF

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4e0ec4ae51d7 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

함수 WritePeripheral(사양에서는 Write Peripheral8(으)로도 지칭됨)은 주변 장치 영역의 지정된 메모리 주소에 값을 쓰기 위한 운영체제의 동기식 및 재진입 가능한 서비스입니다 [SWS_Os_91010]. 선언은 헤더 파일 Os.h을 통해 제공됩니다 [SWS_Os_91010]. 이 호출은 매개변수로 하드웨어 주변 장치 영역에 대한 참조(AreaIdType 타입의 Area), 메모리 주소(uint8* 타입의 Address) 및 기록할 값(uint8 타입의 Write Value)을 기대합니다 [SWS_Os_91010]. 해석: Write Value이(가) 사양 텍스트의 표에서 출력 매개변수로 나열되어 있지만, 시그니처의 값 전달 방식과 설명을 고려할 때 기록할 입력 값일 것으로 보입니다. 질문 Q-619c69ba7a85ed92 (열림)

오류 처리

이 함수는 StatusType 타입의 상태를 반환합니다 [SWS_Os_91010]:

  • E_OK: 쓰기 작업이 오류 없이 수행되었습니다 [SWS_Os_91010].
  • E_OS_ID: 전달된 영역 ID가 유효 범위를 벗어납니다(확장 상태에서) [SWS_Os_91010].
  • E_OS_VALUE: 대상 주소가 지정된 영역에 속하지 않습니다(확장 상태에서) [SWS_Os_91010].
  • E_OS_CALLEVEL: API 함수의 유효하지 않은 호출 컨텍스트입니다(확장 상태에서) [SWS_Os_91010].
  • E_OS_ACCESS: 호출한 태스크 또는 ISR에 해당 영역에 대한 접근 권한이 없습니다 [SWS_Os_91010].

동시성 및 제약사항

호출은 동기식으로 처리되며 재진입 가능합니다 [SWS_Os_91010]. 호출자는 실행 중인 태스크 또는 ISR이 유효한 컨텍스트에서 작동하고 주소 지정된 주변 장치 영역에 필요한 접근 권한을 가지고 있는지 확인해야 합니다 [SWS_Os_91010].

이 텍스트는 자동으로 생성되었습니다. 모든 내용은 참조된 AUTOSAR 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 WritePeripheral16 [SWS_Os_91012] 📄 PDF

StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4e4afea6b230 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 운영체제 함수 WritePeripheral16 ([SWS_Os_91012])은 주변 장치 영역의 메모리 주소에 16비트 값을 쓰는 데 사용됩니다. 이 서비스는 헤더 Os.h을 통해 제공되며 서비스 ID 0x2c을(를) 갖습니다.

사용법 및 매개변수

WritePeripheral16 호출 시 호출자는 [SWS_Os_91012]에 따라 대상 하드웨어 영역의 식별자(AreaIdType 타입의 Area), 대상 주소(uint16* 타입의 Address) 및 기록할 값(시그니처에서 Out 매개변수로 표기되어 있으나 값 전달로 사용되는 것으로 추정되는 uint16 타입의 Write Value)을 전달합니다. 질문 Q-2edc50ae2e7fd0b0 (열림) 이 서비스는 동기식으로 실행되며 StatusType 타입의 상태 값을 반환합니다.

오류 처리

성공 시 함수는 E_OK을(를) 반환합니다. EXTENDED 상태에서는 다음과 같은 오류 코드가 지정됩니다 ([SWS_Os_91012]):

  • E_OS_ID: 전달된 영역 식별자(Area)가 유효 범위를 벗어납니다.
  • E_OS_VALUE: 대상 주소(Address)가 지정된 주변 장치 영역에 속하지 않습니다.
  • E_OS_CALLEVEL: 유효하지 않은 컨텍스트에서 함수가 호출되었습니다.
  • E_OS_ACCESS: 호출한 태스크 또는 ISR에 지정된 영역에 대한 접근 권한이 없는 것으로 보입니다. 질문 (열림)

제약 사항 및 상호작용

이 함수는 재진입 가능하지만([SWS_Os_91012]), E_OS_CALLEVEL과(와) 같은 오류 상태를 방지하기 위해 유효한 호출 컨텍스트(태스크 또는 ISR)를 준수해야 합니다. 운영체제 객체의 모니터링 및 분석을 위해 AUTOSAR는 ARTI 설명 파일 제공을 규정하고 있습니다([SWS_Os_00829]).

이 사용 지침은 자동 생성되었으며 AUTOSAR 릴리스 R20-11의 명세 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 WritePeripheral32 [SWS_Os_91011] 📄 PDF

StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);

This service writes the to a given memory location ().

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a189c9cd92b9 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

모듈 Os의 동기식 및 재진입 가능한 함수 WritePeripheral32은(는) 주변 장치 영역의 지정된 메모리 주소에 32비트 값을 쓰는 역할을 합니다 [SWS_Os_91011]. 이 서비스는 헤더 Os.h을 통해 사용할 수 있으며 서비스 ID 0x2d을(를) 갖습니다 [SWS_Os_91011].

매개변수 및 호출

쓰기 접근을 실행하기 위해 함수에는 세 개의 전달 매개변수가 필요합니다 [SWS_Os_91011]:

  • Area (AreaIdType): 대상 하드웨어 주변 장치 영역에 대한 참조 [SWS_Os_91011].
  • Address (uint32*): 값을 기록할 메모리 주소 [SWS_Os_91011].
  • Write Value (uint32): 대상 주소로 전송되는 구체적인 32비트 값 [SWS_Os_91011].

반환값 및 오류 처리

이 호출은 StatusType 타입의 상태 값을 반환합니다 [SWS_Os_91011]. 성공 시 E_OK이(가) 보고됩니다 [SWS_Os_91011]. EXTENDED 상태가 활성화된 경우 E_OS_ID은(는) 유효하지 않은 영역 ID를, E_OS_VALUE은(는) 영역에 속하지 않는 주소를, E_OS_CALLEVEL은(는) 허용되지 않은 호출 컨텍스트를 나타냅니다 [SWS_Os_91011]. 호출한 태스크 또는 ISR에 해당 영역에 대한 접근 권한이 없는 경우 E_OS_ACCESS이(가) 반환됩니다 [SWS_Os_91011].

동시성

WritePeripheral32은(는) 재진입 가능하므로 해당 호출자가 런타임에 필요한 접근 권한을 가지고 있는 한 동시 실행 컨텍스트에서 이 서비스를 사용할 수 있습니다 [SWS_Os_91011].

이 사용 지침은 AUTOSAR Classic R20-11 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ModifyPeripheral [SWS_Os_91016] 📄 PDF

StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 031e78e21a3e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 의미론

동기식 및 재진입 가능한 운영체제 함수 ModifyPeripheral8 ([SWS_Os_91016])은 지정된 메모리 주소의 1바이트를 수정합니다 Address. 이때 기존 메모리 내용은 공식 *Address = ((*Address & Clearmask) | Setmask)에 따라 마스크 Clearmask을 사용한 비트 단위 AND 연산 및 마스크 Setmask을 사용한 비트 단위 OR 연산을 통해 업데이트됩니다([SWS_Os_91016]). 입력 매개변수로 이 함수는 AreaIdType 타입의 주변 장치 영역 참조 Area, 대상 주소 Address(타입 uint8*), 그리고 uint8 타입의 두 마스크 값을 기대합니다. 이 함수는 헤더 파일 Os.h을 통해 제공되며 서비스 ID 0x2e을(를) 갖습니다([SWS_Os_91016]).

오류 처리 및 반환값

StatusType 타입의 반환값은 작업의 성공을 E_OK(으)로 나타냅니다([SWS_Os_91016]). 확장 상태가 활성화되면 특정 오류 조건이 발생할 수 있습니다:

  • E_OS_ID: 전달된 영역 식별자 Area이(가) 허용 범위를 벗어납니다([SWS_Os_91016]).
  • E_OS_VALUE: 대상 주소 Address이(가) 지정된 영역 Area에 속하지 않습니다([SWS_Os_91016]).
  • E_OS_CALLEVEL: 유효하지 않은 호출 컨텍스트에서 서비스가 호출되었습니다([SWS_Os_91016]).
  • E_OS_ACCESS: 호출한 태스크 또는 ISR에 대상 영역에 대한 접근 권한이 없습니다([SWS_Os_91016]).

동시성 및 호출 조건

ModifyPeripheral8은(는) 재진입 가능으로 지정되어 있으므로 병렬 흐름에서 안전하게 호출할 수 있습니다([SWS_Os_91016]). 호출자는 오류 상태를 방지하기 위해 컨텍스트와 Area 및 Address에 대한 접근 권한이 모두 유효한지 확인해야 합니다([SWS_Os_91016]).

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ModifyPeripheral16 [SWS_Os_91018] 📄 PDF

StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f22ffe272912 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 함수 ModifyPeripheral16은(는) 계산 공식 *Address = ((*Address & Clearmask) | Setmask)에 따라 정의된 주변 장치 영역 내의 16비트 메모리 위치를 수정합니다 [SWS_Os_91018]. 매개변수로는 주변 장치 영역 참조 Area(타입 AreaIdType), 대상 주소 Address(타입 uint16*), 비트 단위 AND를 위한 비트 마스크 Clearmask 및 비트 단위 OR을 위한 Setmask이(가) 전달됩니다 [SWS_Os_91018]. 선언은 헤더 Os.h을 통해 사용할 수 있습니다 [SWS_Os_91018].

일반적인 성공 사례에서 이 서비스는 반환값 E_OK을(를) 제공합니다 [SWS_Os_91018]. 확장 상태 검사(EXTENDED status)가 활성화되면 잘못된 호출이 특정 오류 코드를 기반으로 감지되고 거부됩니다 [SWS_Os_91018]:

  • E_OS_ID: 전달된 영역 식별자 Area이(가) 유효한 값 범위를 벗어납니다 [SWS_Os_91018].
  • E_OS_VALUE: 전달된 메모리 주소 Address이(가) 지정된 영역 Area에 속하지 않습니다 [SWS_Os_91018].
  • E_OS_CALLEVEL: 유효하지 않은 컨텍스트에서 서비스가 호출되었습니다 [SWS_Os_91018].
  • E_OS_ACCESS: 호출 태스크 또는 호출 ISR에 지정된 영역에 대한 접근 권한이 없습니다[SWS_Os_91018].

호출자는 접근 위반을 방지하기 위해 실행 전에 참조된 영역에 대한 컨텍스트와 권한이 모두 존재하는지 확인해야 합니다 [SWS_Os_91018].

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ModifyPeripheral32 [SWS_Os_91017] 📄 PDF

StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c9ed5f9b2fff 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기식 및 재진입 가능한 운영체제 함수 ModifyPeripheral32은(는) [SWS_Os_91017]에 따라 32비트 메모리 주소의 타깃 비트 조작을 위해 사용됩니다. 인터페이스 Os.h을 통해 제공되는 이 함수는 대상 주소 Address에 고정된 계산 공식 *Address = ((*Address & Clearmask) | Setmask)을(를) 적용합니다. 여기서 먼저 비트 마스크 Clearmask을(를) 통해 비트 단위 AND 연산으로 비트가 재설정되고, 이후 Setmask을(를) 통해 비트 단위 OR 연산으로 설정됩니다.

입력 매개변수로 이 서비스는 주변 장치 영역 참조 Area, 주소 포인터 Address, 그리고 두 개의 32비트 마스크 [SWS_Os_91017]을(를) 기대합니다. 오류 없이 실행되면 상태 코드 E_OK이(가) 반환됩니다. 확장 상태(EXTENDED status)에서 함수는 타당성 검사를 수행하고 다음과 같은 오류 코드를 보고합니다:

  • E_OS_ID: 전달된 Area이(가) 유효한 값 범위를 벗어납니다 [SWS_Os_91017].
  • E_OS_VALUE: 대상 주소가 지정된 주변 장치 영역에 속하지 않습니다 [SWS_Os_91017].
  • E_OS_CALLEVEL: 허용되지 않은 컨텍스트에서 함수가 호출되었습니다[SWS_Os_91017].
  • E_OS_ACCESS: 호출한 태스크 또는 ISR에 접근 권한이 없습니다 [SWS_Os_91017] (해석: 주변 장치 영역에 대한 접근 권한 부족). 질문 Q-b4d959765dc59c72 (열림)

호출 컨텍스트가 유지되는 한 재진입성 덕분에 동시 호출이 허용됩니다 [SWS_Os_91017]. 전체 시스템에서 이러한 직접적인 레지스터 수정은 [SWS_Os_00829]에 따른 ARTI 디버그 정보 등의 프레임워크 내에서 평가되는 동적 데이터 결정을 위한 계산 공식과는 구별됩니다.

이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 EnableInterruptSource [SWS_Os_91020] 📄 PDF

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

Service EnableInterruptSource.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 0e3279bf544b 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

동기 및 재진입 가능 시스템 함수 EnableInterruptSource은(는) 인터럽트 컨트롤러의 레지스터를 수정하여 인터럽트 소스를 활성화합니다 [SWS_Os_91020], [SWS_Os_00811]. OS는 구성된 각 카테고리 2 인터럽트 소스에 대해 이 서비스를 제공합니다 [SWS_Os_00808].

매개변수 및 호출

매개변수 ISRID을(를) 통해 카테고리 2 ISR의 식별자가 전달됩니다 [SWS_Os_91020]. 불리언 매개변수 ClearPending은(는) 활성화 시 대기 중인 인터럽트 플래그를 지울지(TRUE) 또는 변경하지 않고 유지할지(FALSE) 여부를 결정합니다 [SWS_Os_91020], [SWS_Os_00811]. 이 함수는 헤더 파일 Os.h을(를) 통해 제공됩니다 [SWS_Os_91020].

오류 처리 및 반환값

오류가 감지되지 않으면 호출 시 E_OK이(가) 반환됩니다 [SWS_Os_91020], [SWS_Os_00810]. OS가 오류를 감지하면 StatusType 타입의 해당 상태 코드를 반환하고 ErrorHook()을(를) 호출합니다 [SWS_Os_00810]. 정의된 오류 상태는 다음과 같습니다:

  • E_OS_ID: 매개변수 ISRID이(가) 유효한 카테고리 2 ISR 식별자가 아닙니다(상태 EXTENDED에서) [SWS_Os_91020].
  • E_OS_CALLEVEL: 함수가 허용되지 않은 호출 컨텍스트에서 호출되었습니다(상태 EXTENDED에서) [SWS_Os_91020].
  • E_OS_ACCESS: Service Protection의 범위 내에서 호출 애플리케이션이 지정된 ISRID의 소유자가 아닙니다 [SWS_Os_91020].

상호 작용

이 함수는 DisableInterruptSource 및 ClearPendingInterrupt과(와) 함께 OS에서 개별 카테고리 2 인터럽트 소스(OsIsrCategory == CATEGORY_2)를 특정하여 제어하기 위한 API 트리오를 형성합니다 [SWS_Os_00808], [SWS_Os_00810].

이 텍스트는 R20-11 릴리스의 사양을 바탕으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 DisableInterruptSource [SWS_Os_91019] 📄 PDF

StatusType DisableInterruptSource (ISRType ISRID);

Disables the interrupt source by modifying the interrupt controller registers.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: c278819b07d9 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용

동기 및 재진입 가능 함수 DisableInterruptSource은(는) 인터럽트 컨트롤러의 레지스터를 통해 특정 인터럽트 소스를 직접 비활성화합니다 [SWS_Os_91019], [SWS_Os_00812]. 이 함수는 헤더 파일 Os.h을(를) 통해 제공되며 각 카테고리 2 인터럽트 소스(OsIsrCategory == CATEGORY_2)에 대해 제공됩니다 [SWS_Os_91019], [SWS_Os_00808]. 매개변수로는 해당 ISR의 식별자(ISRID)가 전달됩니다. 성공적으로 실행되면 해당 서비스는 E_OK을(를) 반환합니다 [SWS_Os_91019], [SWS_Os_00810].

오류 처리

실행 중에 OS가 오류를 감지하면 해당 StatusType이(가) 반환되고 ErrorHook()이(가) 호출됩니다 [SWS_Os_00810]. 가능한 오류 코드는 다음과 같습니다:

  • E_OS_ID: 전달된 ISRID이(가) 유효한 카테고리 2 ISR 식별자가 아닙니다(EXTENDED 상태에서) [SWS_Os_91019].
  • E_OS_CALLEVEL: API 함수의 유효하지 않은 호출 컨텍스트입니다(EXTENDED 상태에서) [SWS_Os_91019].
  • E_OS_ACCESS: 호출한 OS-Application이 지정된 ISR의 소유자가 아닙니다(Service Protection) [SWS_Os_91019].
  • E_OS_NOFUNC: 요청된 인터럽트 소스가 이미 비활성화되어 있습니다(중첩 호출 시 EXTENDED 상태에서) [SWS_Os_00809].

상호작용 및 경계 조건

이 함수는 EnableInterruptSource 및 ClearPendingInterrupt과(와) 함께 카테고리 2 인터럽트 소스를 제어하기 위한 API 트리오를 형성합니다 [SWS_Os_00808]. 동시 또는 반복 호출은 확장 상태에서 E_OS_NOFUNC의 반환을 통해 보호되므로 중복 비활성화를 제어 가능한 상태로 유지할 수 있습니다 [SWS_Os_00809]. 또한 호출자는 Service Protection으로 인한 런타임 오류를 방지하기 위해 적절한 접근 권한을 보유해야 합니다 [SWS_Os_91019].

이 사용 지침은 AUTOSAR 사양을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 ClearPendingInterrupt [SWS_Os_91021] 📄 PDF

StatusType ClearPendingInterrupt (ISRType ISRID);

Service ClearPendingInterrupt.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: bf5abba4980e 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용법 및 호출 컨텍스트

함수 ClearPendingInterrupt은(는) 카테고리 2 소스에 대해 대기 중인 인터럽트를 재설정하는 데 사용됩니다 [SWS_Os_00808]. 이 함수는 유일한 입력 매개변수로 카테고리 2 ISR의 식별자 ISRID을(를) 수신하고 인터럽트 컨트롤러의 관련 레지스터를 직접 수정합니다 [SWS_Os_91021], [SWS_Os_00813]. 이 호출은 동기적으로 처리되며 헤더 파일 Os.h을(를) 통해 제공됩니다 [SWS_Os_91021].

오류 처리 및 반환값

오류가 없는 경우 상태 코드 E_OK이(가) 반환됩니다 [SWS_Os_91021]. 실행 중에 OS가 오류를 감지하면 해당 서비스는 StatusType 타입의 해당 오류 코드를 반환하고 반드시 ErrorHook()을(를) 호출합니다 [SWS_Os_00810]. 이 인터페이스에 대해 정의된 오류 상태는 다음과 같습니다 [SWS_Os_91021]:

  • E_OS_ID: 전달된 매개변수 ISRID이(가) 유효한 카테고리 2 ISR 식별자가 아닙니다(상태 EXTENDED에서 반환됨) [SWS_Os_91021].
  • E_OS_CALLEVEL: 함수가 허용되지 않은 호출 컨텍스트에서 호출되었습니다(상태 EXTENDED에서 반환됨) [SWS_Os_91021].
  • E_OS_ACCESS: Service Protection의 범위 내에서 호출 애플리케이션이 전달된 ISR의 소유자로 권한이 부여되지 않았습니다 [SWS_Os_91021].

OS에서의 동시성 및 상호작용

이 인터페이스는 재진입 가능으로 정의되어 있으므로 동시 호출을 안전하게 수행할 수 있습니다 [SWS_Os_91021]. OS는 DisableInterruptSource 및 EnableInterruptSource도 포함하는 제어 API의 고정 구성 요소로서 각 카테고리 2 인터럽트 소스(OsIsrCategory == CATEGORY_2)에 대해 ClearPendingInterrupt을(를) 제공합니다 [SWS_Os_00808].

이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

함수 ActivateTaskAsyn [SWS_Os_91022] 📄 PDF

void ActivateTaskAsyn (TaskType id);

Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 6cc8f60dfafe 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

ActivateTaskAsyn 함수(서비스 ID 0x33)는 태스크 활성화를 위한 비동기 변형을 나타내며 헤더 파일 Os.h을(를) 통해 제공됩니다([SWS_Os_91022]). 이 함수는 주로 멀티코어 시스템에서 코어 간 태스크 활성화를 위해 설계되었습니다([SWS_Os_91022]).

유일한 입력 매개변수로 활성화할 태스크를 지정하는 TaskType 타입의 id이(가) 전달됩니다([SWS_Os_91022]). 인터페이스에는 반환값이 없으며(void) 입출력 매개변수나 순수 출력 매개변수도 정의하지 않습니다([SWS_Os_91022]).

활성화 시 발생할 수 있는 오류는 호출자에게 보고되지 않습니다([SWS_Os_91022], [SWS_Os_00816]). 대신 오류가 발생하는 경우 글로벌 오류 훅(Error Hook)이 구성되어 있다면 이를 통해서만 독점적으로 보고됩니다([SWS_Os_00816]).

동시성과 관련하여 이 함수는 재진입이 가능하며 완전히 비동기식으로 작동하므로([SWS_Os_91022]) 호출 컨텍스트가 실행을 위해 블로킹되지 않습니다. 운영체제는 [SWS_Os_00816]에 따라 이 인터페이스를 제공할 의무가 있습니다.

이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 SetEventAsyn [SWS_Os_91023] 📄 PDF

void SetEventAsyn (TaskType id, EventMaskType m);

Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.

함수 Ioc [SWS_Os_91026] 📄 PDF

void IocInit (void);

This service initializes the data structures of the IOC. Tags: atp.Status=draft

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 50632b8f91d3 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 작동 방식

함수 Ioc Init(릴리스 R20-11에서 초안으로 표시됨)은 Inter-OS-Application Communication(IOC)의 내부 데이터 구조를 초기화합니다 [SWS_Os_91026]. 호출은 동기식으로 수행되며 전달 매개변수를 받지 않고 반환값도 없습니다 [SWS_Os_91026]. 운영체제 생성기가 "IOC mode"로 실행되는 경우 소스 파일 Ioc.c에 IOC 코드만 생성하고 헤더 파일 Ioc.h에 관련 인터페이스를 선언하며 [SWS_Os_00834], 이를 통해 Ioc Init도 제공됩니다 [SWS_Os_91026].

오류 처리 및 동시성

사양에서 Ioc Init에 대해 특정 오류 반환값이나 DET 또는 DEM으로의 오류 보고는 제공되지 않습니다 [SWS_Os_91026]. 이 서비스는 명시적으로 재진입 불가능(Non Reentrant)으로 정의됩니다 [SWS_Os_91026]. 해석: 재진입성의 부재와 초기화 작업의 특성상, 이 서비스는 동시 통신 접근이 발생하기 전 시스템 시작 단계에서 순차적으로 호출되어야 할 것으로 보입니다. 질문 Q-47f99a4725b57c89 (열림)

IOC 통신 기능과의 상호작용

데이터 구조의 올바른 초기화는 생성된 IOC 통신 인터페이스를 사용하기 위한 전제 조건입니다:

  • 전송 및 쓰기: 송신자는 단일 값 서비스(예: Ioc Send [SWS_Os_00718] 및 Ioc Write [SWS_Os_91003]) 또는 그룹 함수(예: Ioc Send Group [SWS_Os_00728] 및 Ioc Write Group [SWS_Os_91004])를 통해 데이터를 비동기식으로 전송합니다.
  • 수신 및 읽기: 수신자는 Ioc Receive [SWS_Os_00738], Ioc Read [SWS_Os_91005] 또는 해당 그룹 서비스 [SWS_Os_00746] [SWS_Os_91006]을(를) 통해 데이터를 동기식으로 검색합니다.
  • 큐 관리 및 알림: 버퍼링된 통신이 구성된 경우 Ioc Empty Queue을(를) 사용하여 내부 큐의 내용을 동기식으로 비울 수 있습니다 [SWS_Os_00754]. 또한 데이터 수신 시 대상 코어에서 구성된 수신자 콜백 <Receiver Pull CB>을(를) 실행할 수 있습니다 [SWS_Os_00757].

이 텍스트는 AI에 의해 작성되었으며 R20-11 릴리스의 명세만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

함수 <ReceiverPullCB> [SWS_Os_00757] 📄 PDF

void <ReceiverPullCB> (void);

This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: fe12c77b2732 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

콜백 함수 <Receiver Pull CB>은(는) 통신 수신자를 위해 선택적으로 구성할 수 있으며 헤더 Os.h을(를) 통해 선언됩니다[SWS_Os_00757]. 이 콜백이 설정되어 있으면, IOC(Inter-OS-Application Communicator)는 데이터 수신 시마다 수신 Core에서 해당 함수를 동기식으로 호출합니다[SWS_Os_00757]. 콜백 함수의 구체적인 식별자는 수신자 측 구성 속성 OsIocReceiverPullCB을(를) 통해 정의됩니다[SWS_Os_00757].

호출 및 인터페이스 속성에 대해 다음 요구사항이 적용됩니다:

  • 시그니처 및 매개변수: 이 함수는 프로토타입 void <Receiver Pull CB> ( void )을(를) 가지며, 매개변수를 받지 않고(입력, 입출력 또는 출력 매개변수 없음) 반환값을 제공하지 않습니다 [SWS_Os_00757].
  • 동기성 및 재진입성: IOC에 의한 호출은 수신자 코어에서 직접 동기 의미 체계로 수행됩니다 [SWS_Os_00757]. 또한 콜백 함수는 재진입 가능한 것으로 명시되어 있습니다 [SWS_Os_00757].
  • 오류 처리: 명세에서는 이 함수에 대해 반환값이나 특정 오류 코드 또는 오류 알림을 제공하지 않습니다 [SWS_Os_00757].

시그니처가 페이로드를 전혀 전달하지 않으므로, 이 호출은 주로 수신자에게 새 데이터의 도착을 알리고 후속 페이로드 가져오기를 트리거하기 위한 알림 신호 역할을 할 것으로 보입니다. 질문 Q-2365bb46ad77a476 (열림) 개발자는 실행이 수신자 코어에서 동기식으로 수행된다는 점에 유의해야 합니다 [SWS_Os_00757].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR CP R20-11 규격을 기반으로 합니다.

함수 ProtectionHook [SWS_Os_00538] 📄 PDF

ProtectionReturnType ProtectionHook (StatusType Fatalerror);

The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 85982be9edad 출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

함수 ProtectionHook은(는) 운영체제의 중앙 콜백 역할을 하며 심각한 오류가 발생할 때마다 항상 동기식으로 호출됩니다 [SWS_Os_00538]. 일반적인 오류 시나리오로 명세에서는 최악 실행 시간(Worst Case Execution Time) 초과 및 메모리 보호 위반을 명시적으로 언급합니다 [SWS_Os_00538]. 인터페이스 선언은 헤더 Os_Externals.h을(를) 통해 제공됩니다 [SWS_Os_00538].

입력 매개변수로 루틴은 StatusType 타입의 Fatalerror을(를) 전달받으며, 이는 훅 호출을 트리거한 원인을 전달합니다 [SWS_Os_00538]. 추가적인 입출력 매개변수 또는 순수 출력 매개변수는 시그니처에 정의되어 있지 않습니다 [SWS_Os_00538].

ProtectionHook은(는) ProtectionReturnType 타입의 반환값을 통해 훅 실행 후 추가 오류 처리를 위해 운영체제가 시작해야 하는 조치를 확정적으로 정의합니다 [SWS_Os_00538]. 반환값으로 다음과 같은 조치를 사용할 수 있습니다 [SWS_Os_00538]:

동시성 및 실행 동작과 관련하여 ProtectionHook은(는) 재진입 가능하며 동기식으로 명시되어 있습니다 [SWS_Os_00538]. 심각한 오류가 발생하는 즉시 호출되며, 이후 운영체제는 정의된 조치를 실행합니다 [SWS_Os_00538].

이 텍스트는 사양을 기반으로 AI에 의해 작성되었습니다.

구현자 가이드 준비 중 (복잡도 I2)

타입 AppModeType [SWS_Os_91007] 📄 PDF

App Mode of the core shall be inherited from another core.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: e91976813761 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

열거형 타입 AppModeType은 헤더 파일 Os.h에 정의되어 있으며 운영체제 [SWS_Os_91007]에서 애플리케이션 모드를 설정하는 데 사용됩니다. 멀티코어 시스템에서 이 타입은 프로세서 코어의 애플리케이션 모드를 다른 Core로부터 상속받을 수 있도록 합니다 [SWS_Os_91007].

값 범위에 대해 값 DONOTCARE이 지정되어 있습니다 [SWS_Os_91007]. 해석: 이 값은 Core가 독립적인 모드를 시작하지 않고 상위 Core의 동작을 인계받도록 명시적으로 구성하는 데 사용될 것으로 보입니다. 질문 Q-2b7d9f1c8e5f1a3f (열림) 해당 타입 자체에 대해 정의된 특정 오류 코드나 반환값은 없습니다.

진단 및 시스템 상태와 관련하여 분석 도구와의 상호작용이 중요합니다. [SWS_Os_00829]에 따르면 ARTI 모듈 설명 파일은 연결된 디버그 도구가 운영체제 및 그 객체에 대한 정보를 평가하고 표시할 수 있도록 모든 ORTI 컨테이너를 지원해야 합니다. ARTI 디버그 정보는 수식을 통해 확인되는 동적 속성을 제공합니다 [SWS_Os_00829]. 해석: 따라서 애플리케이션 모드의 상태는 도구 레벨에서 해당 ARTI 객체 속성을 통해 매핑되고 읽힐 것으로 보입니다. 질문 Q-410d011cbcf1b158 (열림)

이 사용 지침은 명세 요구사항을 기반으로 자동 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ApplicationStateType [SWS_Os_00773] 📄 PDF

This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 71b2dfdfc31d 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 ApplicationStateType은(는) Classic AUTOSAR 운영체제에서 OS-Application의 상태를 고유하게 식별하는 데 사용됩니다 [SWS_Os_00773]. 스칼라 기본 타입으로 지정되어 있으며 헤더 파일 Os.h을(를) 통해 제공됩니다 [SWS_Os_00773].

ApplicationStateType의 허용되는 값 범위는 OS-Application에 대한 세 가지 개별 상태를 포함합니다 [SWS_Os_00773]:

  • APPLICATION_ACCESSIBLE: OS-Application이 작동 준비가 되어 있으며 해당 리소스에 액세스할 수 있음을 나타냅니다 [SWS_Os_00773].
  • APPLICATION_RESTARTING: OS-Application이 현재 재시작 단계에 있음을 알립니다 [SWS_Os_00773].
  • APPLICATION_TERMINATED: OS-Application이 종료되었으며 더 이상 동작을 수행하지 않음을 나타냅니다 [SWS_Os_00773].

사용 및 다른 컴포넌트와의 상호작용 측면에서, 이 타입은 호출자에게 애플리케이션의 현재 수명 주기 상태를 전달하기 위해 상태 모니터링을 위한 해당 OS 시스템 서비스에서 반환값 또는 출력 매개변수로 사용될 것으로 추정됩니다. 질문 Q-9a4f2254f4013853 (열림) 이는 기본 타입 정의이므로, 표준에서는 이에 대해 독립적인 오류 코드, DET 또는 DEM 메시지를 명시하지 않으며 호출 컨텍스트나 재진입성에 관한 별도의 제한 사항도 규정하지 않습니다 [SWS_Os_00773].

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양 데이터를 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ApplicationStateRefType [SWS_Os_00774] 📄 PDF

This data type points to location where a Application State Type can be stored.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ae68f3712f9a 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

데이터 타입 ApplicationStateRefType은 AUTOSAR Classic 플랫폼의 운영체제(모듈 Os)의 일부이며, 헤더 파일 Os.h을 통해 제공됩니다 [SWS_Os_00774]. 이 타입은 포인터에서 파생되며, OS 애플리케이션의 상태(Application State)가 저장될 수 있는 메모리 위치를 직접 가리킵니다 [SWS_Os_00774].

실제 사용 측면에서 이 포인터 타입은 애플리케이션 상태를 참조하는 역할을 합니다. 해석: 포인터 타입인 ApplicationStateRefType은(는) 주로 OS 애플리케이션의 상태를 호출자에게 전달하는 운영체제 쿼리 함수의 참조 또는 출력 매개변수로 사용될 것으로 보입니다. 따라서 호출자는 런타임에 잘못된 포인터 접근을 방지하기 위해 매개변수를 전달하기 전에 대상 상태에 유효한 쓰기 가능한 메모리 영역이 예약되어 있는지 확인해야 합니다. 질문 Q-948bb914d3672a38 (열림)

이 기본 타입에 대해 사양에는 특정 오류 처리 메커니즘, DET 또는 DEM용 오류 코드, 재진입성 및 동시성에 대한 별도의 규정이 명시되어 있지 않습니다 [SWS_Os_00774]. 허용된 호출 컨텍스트 또는 준수해야 하는 동기화 의무에 대한 모든 제한 사항은 함수 시그니처에서 이 타입을 사용하는 운영체제 인터페이스에서만 전적으로 발생합니다.

이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF

This data type points to a structure which holds the arguments for a call to a trusted function.

타입 AccessType [SWS_Os_00777] 📄 PDF

This type holds information how a specific memory region can be accessed.

타입 ObjectAccessType [SWS_Os_00778] 📄 PDF

This data type identifies if an OS - Application has access to an object.

타입 MemoryStartAddressType [SWS_Os_00780] 📄 PDF

This data type is a pointer which is able to point to any location in the MCU address space.

타입 ScheduleTableStatusType [SWS_Os_00784] 📄 PDF

This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 334083bea161 출처 열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

ScheduleTableStatusType 타입은 [SWS_Os_00784]에 따라 AUTOSAR 운영체제에서 스케줄 테이블의 현재 실행 및 동기화 상태를 나타냅니다. 헤더 파일 Os.h을(를) 통해 제공되며 구현별 값 범위를 기반으로 합니다.

다음 상태 값이 지정되어 있습니다:

  • SCHEDULETABLE_STOPPED: 스케줄 테이블이 시작되지 않았습니다.
  • SCHEDULETABLE_NEXT: 스케줄 테이블은 현재 활성 상태인 스케줄 테이블이 만료된 후에 시작됩니다(Interpretation: 이는 NextScheduleTable() 서비스로 전달된 후에 발생합니다). 질문 Q-8cbcfc83969eea23 (열림)
  • SCHEDULETABLE_WAITING: 스케줄 테이블이 명시적 동기화를 사용하며 이미 시작되어 글로벌 시간과의 조정을 기다리고 있습니다.
  • SCHEDULETABLE_RUNNING: 스케줄 테이블이 실행 중이지만 현재 글로벌 시간 소스와 동기화되지 않았습니다.
  • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: 스케줄 테이블이 실행 중이며 글로벌 시간 소스와 동기화되어 있습니다.

순수 상태 데이터 타입으로서 ScheduleTableStatusType은(는) 자체 런타임 오류나 DET/DEM 알림을 정의하지 않습니다. 분석 도구와의 연동에서 이 타입은 [SWS_Os_00829]에 따라 동적 운영체제 객체의 ARTI 기반 평가 및 표시에 사용되며, 이를 통해 시스템의 상태 및 동기화 편차를 투명하게 파악할 수 있습니다.

이 텍스트는 AI에 의해 작성되었으며 AUTOSAR R20-11 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF

This data type points to a variable of the data type Schedule Table Status Type.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 316994fde661 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 정의

데이터 타입 ScheduleTableStatusRefType은 [SWS_Os_00785]에 따라 데이터 타입 Schedule Table Status Type의 변수에 대한 포인터 타입으로 정의됩니다. 이 타입은 헤더 Os.h을 통해 제공되며 AUTOSAR 운영체제에서 스케줄 테이블(Schedule Table)의 상태에 대한 참조 타입으로 사용됩니다 [SWS_Os_00785].

사용 및 제약 조건

일반적인 운영체제 호출에서 이 포인터 타입은 OS 시스템 함수가 참조된 Schedule Table의 현재 상태를 호출자에게 반환하는 출력 매개변수로 작동할 것으로 보입니다. 질문 Q-53364f3a9953dae3 (열림) 사양에서는 타입 정의만 규정하므로, 호출 컴포넌트는 사용 시 다음 사항을 주의해야 합니다:

  • 메모리 제공: 이 타입의 참조를 전달하기 전에 호출자는 포인터가 전체 호출 동안 유효하게 유지되는 유효하고 쓰기 가능한 메모리 영역을 가리키는지 확인해야 합니다.
  • 유효성 및 널 포인터: 널 포인터(NULL) 전달은 운영체제 구성(표준 또는 확장 상태)에 따라 호출된 OS 서비스에서 해당 오류 응답을 유발할 수 있습니다. 질문 Q-63d77f8c7857e6c4 (열림)
  • 메모리 보호: 안전이 중요한 멀티코어 또는 메모리 보호 OS 환경에서는 호출하는 태스크 또는 OS 인스턴스가 참조된 메모리 영역에 접근할 수 있어야 합니다.

[SWS_Os_00785]은(는) 기본 타입에 대한 추가 런타임 속성이나 특정 오류 코드를 명시하지 않으므로, 재진입성 및 호출 컨텍스트는 이 포인터 타입을 매개변수로 사용하는 각 OS 서비스에 따라 결정됩니다.

이 사용 지침은 자동으로 생성되었으며 릴리스 R20-11의 사양 데이터만을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 ProtectionReturnType [SWS_Os_00787] 📄 PDF

This data type identifies a value which controls further actions of the OS on return from the protection hook.

타입 RestartType [SWS_Os_00788] 📄 PDF

This data type defines the use of a Restart Task after terminating an OS - Application.

타입 PhysicalTimeType [SWS_Os_00789] 📄 PDF

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

타입 CoreIdType [SWS_Os_00790] 📄 PDF

Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID

타입 SpinlockIdType [SWS_Os_00791] 📄 PDF

Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.

타입 TryToGetSpinlockType [SWS_Os_00792] 📄 PDF

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9c58c4e8227f 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

열거형 타입 TryToGetSpinlockType은(는) 헤더 파일 Os.h을(를) 통해 제공되며 호출자가 스핀록을 성공적으로 점유했는지 여부를 나타내는 상태 표시 역할을 합니다 [SWS_Os_00792]. 이는 운영체제에서 해당 점유 작업의 결과를 정의합니다 [SWS_Os_00792].

값 범위는 정확히 두 개의 지정된 리터럴로 구성됩니다 [SWS_Os_00792]:

  • TRYTOGETSPINLOCK_SUCCESS: 스핀록이 성공적으로 점유되었음을 알립니다 [SWS_Os_00792].
  • TRYTOGETSPINLOCK_NOSUCCESS: 스핀록을 점유할 수 없었음을 나타냅니다 [SWS_Os_00792].

동시성 및 시스템 컨텍스트

이 타입은 멀티코어 시스템의 동기화에 사용됩니다. Interpretation: 호출자는 반환값을 동기식으로 평가하여 보호된 임계 영역에 진입할 수 있는지 또는 TRYTOGETSPINLOCK_NOSUCCESS인 경우 블로킹 대기 없이 대체 프로그램 분기를 선택해야 하는지 즉시 확인할 것으로 보입니다 [SWS_Os_00792]. 질문 Q-a04e72802dc41325 (열림) 이 타입에 대해 자체 오류 코드나 DET 또는 DEM을 통한 오류 알림은 지정되어 있지 않습니다 [SWS_Os_00792].

진단 도구와의 상호 작용

도구 연결과 관련하여 ARTI 모듈 설명 파일은 운영체제, 운영체제의 상태 및 운영체제 객체에 대한 정보를 표시하고 동적 값을 확인하기 위해 모든 ORTI 컨테이너를 지원합니다 [SWS_Os_00829]. Interpretation: 이러한 인터페이스를 통해 디버깅 및 추적 도구를 위한 스핀록과 그 점유 상태도 시각화할 수 있을 것으로 보입니다 [SWS_Os_00829]. 질문 Q-a488e055eb7d402e (열림)

이 텍스트는 AI에 의해 생성되었으며 R20-11 릴리스의 AUTOSAR 사양을 기반으로 합니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 IdleModeType [SWS_Os_00793] 📄 PDF

This data type identifies the idle mode behavior.

AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 20e46b8167e3 출처 열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

사용 및 값 범위

스칼라 데이터 타입 IdleModeType은(는) 헤더 Os.h을(를) 통해 제공되며 유휴 모드에서 프로세서 코어의 동작을 지정하는 데 사용됩니다 [SWS_Os_00793]. 정의된 값 범위에는 IDLE_NO_HALT 모드가 지정되어 있으며, 이를 선택할 경우 프로세서 코어는 유휴 시간 동안 별도의 작업을 수행하지 않습니다 [SWS_Os_00793].

Interpretation: IdleModeType은(는) 스칼라 기본 타입에서 파생되었으므로, 운영체제 컨텍스트에서 코어 유휴 동작을 위한 제어 서비스의 구성 값 또는 호출 매개변수로 사용될 것으로 보입니다. 질문 Q-911a39efb537f1bc (열림) Interpretation: 사양 발췌문에는 특정 작업이 수행되지 않는다고만 명시되어 있지만, 기본값 IDLE_NO_HALT 외에도 구체적인 운영체제 구현이나 마이크로컨트롤러 아키텍처에서 잠재적으로 추가 대기 모드나 절전 모드를 제공할 가능성이 있습니다. 질문 Q-b6688f74cacbab45 (열림)

제약 사항 및 오류 처리

본 사양 범위에서는 IdleModeType에 대해 특정 오류 코드, DET 또는 DEM 알림, 재진입성이나 호출 컨텍스트에 대한 요구사항이 명시되어 있지 않습니다 [SWS_Os_00793]. 따라서 모든 기능적 제한 사항이나 전제 조건은 이 타입을 처리하는 상위 운영체제 인터페이스에서만 발생합니다.

이 텍스트는 SWS_Os_00793 사양을 기반으로 AI에 의해 생성되었습니다.

구현자 가이드 준비 중 (복잡도 I1)

타입 AreaIdType [SWS_Os_91000] 📄 PDF

Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

타입 StatusType [SWS_Os_00002] 📄 PDF

typedef uint8 StatusType;

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

구현자 가이드 준비 중 (복잡도 I2)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Os
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Os@rel:R20-11#c22266f5
Content hash
c22266f5
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016

주제 맵

상세 보기

개요에서 항목을 선택하세요.

서비스 · Get…

This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).

ApplicationType GetApplicationID (void);

This service returns the current state of an OS - Application.

StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
GetCoreID 함수

The function returns a unique core identifier.

CoreIdType GetCoreID (void);

This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().

ApplicationType GetCurrentApplicationID (void);

This service gets the number of ticks between the current tick value and a previously read tick value.

StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
GetISRID 함수

This service returns the identifier of the currently executing ISR.

ISRType GetISRID (void);

The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

uint32 GetNumberOfActivatedCores (void);

This service queries the state of a schedule table (also with respect to synchronization).

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);

Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.

StatusType GetSpinlock (SpinlockIdType SpinlockId);

서비스 · Start…

StartCore 함수

It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.

void StartCore (CoreIdType CoreID, StatusType* Status);

The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);

This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);

This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

This service starts an explicitly synchronized schedule table synchronously.

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

서비스 · Check…

This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.

AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);

This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs

ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);

This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.

AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);

서비스 · Modify…

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

서비스 · Read…

This service returns the content of a given memory location (

StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);

This service returns the content of a given memory location (

StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);

This service returns the content of a given memory location (

StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

서비스 · Write…

This service writes the to a given memory location (). Available vi a Os.h

StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);

This service writes the to a given memory location ().

StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

서비스 · 기타

This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.

ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);

Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.

void ActivateTaskAsyn (TaskType id);

This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.

StatusType AllowAccess (void);

A (trusted or non - trusted) OS - Application uses this service to call a trusted function

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);

Service ClearPendingInterrupt.

StatusType ClearPendingInterrupt (ISRType ISRID);

This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);

Disables the interrupt source by modifying the interrupt controller registers.

StatusType DisableInterruptSource (ISRType ISRID);

Service EnableInterruptSource.

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

This service increments a software counter.

StatusType IncrementCounter (CounterType CounterID);
IocInit 함수

This service initializes the data structures of the IOC. Tags: atp.Status=draft

void IocInit (void);

This service switches the processing from one schedule table to another schedule table.

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);

The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.

ProtectionReturnType ProtectionHook (StatusType Fatalerror);

Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);

Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.

void SetEventAsyn (TaskType id, EventMaskType m);

This service stops synchronization of a schedule table.

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.

void ShutdownAllCores (StatusType Error);

This service cancels the processing of a schedule table immediately at any point while the schedule table is running.

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);

Service SyncScheduleTable.

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service TerminateApplication.

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

콜아웃 및 예상 인터페이스

This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

void <ReceiverPullCB> (void);

타입

AccessType 타입

This type holds information how a specific memory region can be accessed.

AlarmType 타입

This data type represents an AUTOSAR OS alarm identifier.

typedef uint8 AlarmType;

This data type points to location where a Application State Type can be stored.

This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies the OS - Application.

App Mode of the core shall be inherited from another core.

AreaIdType 타입

Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

CoreIdType 타입

Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID

This data type identifies a counter.

This data type represents an event mask for extended tasks.

This data type identifies the idle mode behavior.

ISRType 타입

This data type identifies an interrupt service routine (ISR).

This data type holds the size (in bytes) of a memory region.

This data type is a pointer which is able to point to any location in the MCU address space.

This data type identifies if an OS - Application has access to an object.

ObjectType 타입

This data type identifies an object.

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies a value which controls further actions of the OS on return from the protection hook.

This data type defines the use of a Restart Task after terminating an OS - Application.

This data type points to a variable of the data type Schedule Table Status Type.

This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)

This data type identifies a schedule table.

Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.

StatusType 타입

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

typedef uint8 StatusType;
TaskType 타입

This data type identifies an AUTOSAR OS task.

typedef uint8 TaskType;
TickType 타입

This data type represents count values in ticks.

typedef uint32 TickType;

The total number of cores

This data type identifies a trusted function.

This data type points to a structure which holds the arguments for a call to a trusted function.

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.