AUTOSAR Classic Operating System
클러스터 가이드AI 생성
결정론적 실시간 스케줄링, 메모리 보호, 멀티코어 동기화 및 오류 억제를 제공합니다.
결정론적 실시간 스케줄링, 메모리 보호, 멀티코어 동기화 및 오류 억제를 제공합니다.
Operating System 모듈 클러스터는 파티셔닝된 OS-Applications에서 태스크 및 ISR을 위한 결정론적 실시간 스케줄링과 함께 메모리 보호 및 오류 캡슐화를 제공합니다 [SWS_Os_00445]. 코어 간 스핀락, 비동기 태스크 활성화 및 Inter-OS-Application Communicator (IOC)를 통해 멀티코어 시스템을 지원합니다 [SWS_Os_00686], [SWS_Os_00824]. 보호 위반이 발생할 경우, OS는 구성 가능한 훅을 통해 런타임에 개별 파티션의 목표한 종료 또는 제어된 재시작을 가능하게 합니다 ApplicationLevelErrorHandling 53쪽.
“Operating System” 모듈 클러스터는 AUTOSAR Classic에서 소프트웨어 컴포넌트 및 기본 소프트웨어 모듈을 위한 기본 실행 및 보호 인프라를 제공합니다. 운영체제는 태스크, ISR, 알람 및 카운터와 같은 리소스를 OS-Applications에 캡슐화하고 [SWS_Os_00445], MPU 메모리 보호 기반의 엄격한 오류 억제를 보장하기 위해 신뢰 파티션(trusted)과 비신뢰 파티션(non-trusted)을 구별합니다 [SWS_Os_00446], SafetyConceptStatusReport 49쪽. 멀티코어 시스템에서 OS는 표준화된 코어 ID를 통해 논리 코어를 관리하며 [SWS_Os_00790], 코어 및 파티션 간의 데이터 및 이벤트 기반 교환을 위해 Inter-OS-Application Communicator (IOC)를 제공합니다 [SWS_Os_00824].
컨텍스트 다이어그램: AUTOSAR 기본 소프트웨어 아키텍처 내 OS 클러스터의 임베딩 및 EcuM, StbM, RTE, 하드웨어에 대한 인터페이스. 출처: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral 48쪽.
이벤트 기반 태스크 스케줄링 외에도 OS는 Schedule Tables를 통한 시간 기반 실행 추적을 가능하게 합니다 [SWS_Os_00783]. 이는 SyncScheduleTable을(를) 사용하는 Synchronized Time-Base Manager (StbM)을(를) 통해 글로벌 차량 시간 기반에 맞추어 조정될 수 있습니다 [SWS_Os_00199], SWS_SynchronizedTimeBaseManager 220쪽. 코어 경계를 넘어선 동기화를 위해 본 모듈은 데드락 감지 기능이 통합된 하드웨어 근접 스핀락을 제공하며 [SWS_Os_00686], 코어 간 태스크 활성화는 ActivateTaskAsyn을(를) 사용하여 비동기식으로 실행될 수 있습니다 [SWS_Os_91022].
오류 발생 시(예: 메모리 초과 시) OS는 ProtectionHook [SWS_Os_00538]을(를) 활성화합니다. 해당 반환값을 통해 전체 시스템을 리셋하지 않고도 결함이 있는 OS-Application을 격리하여 제어된 방식으로 종료하거나 전용 재시작 태스크를 통해 재초기화할 수 있습니다 [SWS_Os_00787], ApplicationLevelErrorHandling 53쪽.
상태 다이어그램: 오류 발생 시 AUTOSAR OS-Application의 수명 주기 및 파티셔닝 상태. 출처: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling 53쪽.
1. 시스템 아키텍처 & 모듈 클러스터의 역할
“Operating System” 모듈 클러스터는 AUTOSAR 계층 모델에서 모든 실시간 소프트웨어 컴포넌트 및 기본 소프트웨어 모듈의 실행과 조정을 위한 System Services의 핵심 기반을 형성합니다. 핵심 모듈 [SWS_Os_00445]은(는) 태스크, 인터럽트 서비스 루틴(ISR), 알람, 카운터(Counter) 및 실행 추적 테이블(Schedule Tables)을 구성 가능한 실행 단위인 소위 OS-Applications에 캡슐화합니다. 여기서 운영체제는 요구되는 확장성 클래스에 따라 기능 안전 및 메모리 보호를 제공하기 위해 신뢰(trusted) 및 비신뢰(non-trusted) OS-Applications를 엄격하게 구별합니다 [SWS_Os_00446], SafetyConceptStatusReport 49쪽.
멀티코어 아키텍처에서 OS는 CoreIdType 유형의 고유 식별자를 통해 참조되는 논리 코어를 관리합니다 [SWS_Os_00790]. 코어 ID는 0부터 시작하여 연속적으로 정렬되며 [SWS_Os_00825], 상수 OS_CORE_ID_MASTER은(는) 마스터 코어를 나타냅니다 SWS_OS 111쪽. 통합된 Inter-OS-Application Communicator (IOC)를 통해 운영체제는 안전하고 파티션 및 코어 간에 걸친 데이터 전송 메커니즘을 제공합니다 [SWS_Os_00824]. OSEK OS에 따른 인터페이스의 표준화 및 해당 AUTOSAR 특화 확장을 통해, OS는 ECU State Manager (EcuM), Synchronized Time-Base Manager (StbM) 및 런타임 환경 RTE와 같은 상위 모듈에 대해 결정론적 실시간 동작을 보장합니다 SWS_BSWGeneral 48쪽.
컨텍스트 다이어그램: AUTOSAR 기본 소프트웨어 아키텍처 내 OS 클러스터의 임베딩 및 EcuM, StbM, RTE, 하드웨어에 대한 인터페이스. 출처: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral 48쪽.
2. 상호작용 & 모듈 간의 상호작용 경로
OS 객체와 AUTOSAR 아키텍처 계층 간의 상호작용은 명확하게 구분된 제어 및 데이터 경로를 통해 이루어집니다. 파티션 간 데이터 교환을 위해 IOC는 대기열이 없는(unqueued, “data”, IocWrite / IocRead) 또는 대기열이 있는 시맨틱(queued, “event”, IocSend / IocReceive)을 갖춘 형식화된 통신 함수를 생성합니다 [SWS_Os_00718], [SWS_Os_00738]. 그룹 전송의 경우 IocSendGroup 또는 IocReceiveGroup 서비스가 사용됩니다 [SWS_Os_00728], [SWS_Os_00746]. 수신자의 내부 버퍼가 가득 차면, IOC는 IOC_E_LIMIT 상태를 송신자에게 알리고 후속 읽기 작업을 위해 IOC_E_LOST_DATA을(를) 기록합니다 SWS_OS 225쪽.
비신뢰 OS-Application이 신뢰 파티션의 권한 있는 서비스에 액세스해야 하는 경우, 시스템 서비스 CallTrustedFunction [SWS_Os_00097]을(를) 통해 제어된 컨텍스트 전환이 수행됩니다. 이때 매개변수는 TrustedFunctionParameterRefType 유형의 포인터 구조체를 통해 전달됩니다 [SWS_Os_00776]. 운영체제는 MPU 권한을 대상 애플리케이션의 권한으로 일시적으로 전환합니다 SWS_OS 172쪽. 함수 GetCurrentApplicationID은(는) 이 실행 중에 호출된 Trusted Application의 식별자를 반환하는 반면, GetApplicationID은(는) 원래의 호출자 애플리케이션을 반환합니다 [SWS_Os_00797].
외부 시간 기반과의 시간 정렬을 위해 StbM 모듈은 OS 인터페이스를 통해 명시적으로 구성된 Schedule Tables를 동기화합니다. StbM은 먼저 GetScheduleTableStatus을(를) 통해 주기적으로 동기화 상태를 쿼리하고 [SWS_Os_00227], 이후 SyncScheduleTable을(를) 사용하여 현재 동기화 값을 OS에 전달합니다 [SWS_Os_00199]. 그러면 운영체제는 만료 지점(Expiry Points)과의 편차를 계산하고 테이블이 글로벌 시간 기반과 동기화되어 실행될 때까지 지연 시간을 점진적으로 조정합니다 SWS_OS 57쪽, SWS_SynchronizedTimeBaseManager 220쪽.
시퀀스 다이어그램: Synchronized Time-Base Manager (StbM)에 의한 OS-Schedule-Table의 명시적 동기화. 출처: [SWS_Os_00199], [SWS_Os_00227], SWS_SynchronizedTimeBaseManager 220쪽.
3. 동기화, 재진입성 및 태스크 컨텍스트
런타임 모델은 태스크 레벨, 카테고리 1 인터럽트 레벨(Cat 1 ISR), 카테고리 2 인터럽트 레벨(Cat 2 ISR) 및 훅 루틴 간을 명확하게 구별합니다. Cat 1 ISR은 운영체제 오버헤드 없이 실행되며 OS 서비스를 호출할 수 없는 반면, Cat 2 ISR은 OS에 의해 완전히 관리됩니다 [SWS_Os_00782]. 활성 ISR 식별자는 GetISRID을(를) 사용하여 확인할 수 있으며, Cat 2 ISR 외부에서 호출되는 경우 서비스는 INVALID_ISR을(를) 반환합니다 [SWS_Os_00511]. 개별 인터럽트 소스는 EnableInterruptSource, DisableInterruptSource 및 ClearPendingInterrupt을(를) 통해 인터럽트 컨트롤러 레벨에서 목표에 맞게 제어될 수 있습니다 [SWS_Os_91020], [SWS_Os_91019], [SWS_Os_91021].
프로세서 코어 경계를 넘어 임계 영역을 동기화하기 위해 OS는 스핀락을 제공합니다 [SWS_Os_00791]. 스핀락은 GetSpinlock을(를) 통해 동기 블로킹 방식으로 획득되거나 [SWS_Os_00686], TryToGetSpinlock을(를) 통해 비블로킹 방식으로 쿼리됩니다 [SWS_Os_00703]. 해제는 ReleaseSpinlock을(를) 통해 수행됩니다 [SWS_Os_00695]. 데드락을 배제하기 위해 OS는 확장 상태에서 중첩 및 겹침 오류(E_OS_INTERFERENCE_DEADLOCK, E_OS_NESTING_DEADLOCK)를 확인합니다 SWS_OS 199쪽.
코어 간 태스크 활성화 및 이벤트 설정을 위해 OS는 비동기 API 변형을 제공합니다: ActivateTaskAsyn 및 SetEventAsyn은(는) 대상 코어에서의 실행을 기다리지 않고 호출자에게 즉시 반환됩니다 [SWS_Os_91022], [SWS_Os_91023]. 발생 가능한 오류는 호출자에게 반환되지 않고, 구성된 Error-Hooks를 통해 로깅됩니다 [SWS_Os_00816], SWS_OS 203쪽.
4. 전형적인 수명 주기 및 동작 모드
시스템 시작은 주로 ECU State Manager (EcuM)에 의해 조정됩니다. 마스터 코어에서 EcuM은 운영체제 시작 전에 OS 서비스 StartCore [SWS_Os_00676], SWS_ECUStateManager 82쪽을(를) 통해 종속 코어를 시작합니다. 이후 시작된 각 코어는 독립적으로 StartOS을(를) 호출합니다. StartOS 호출 후, 운영체제는 Startup-Hooks가 실행되기 전에 구성된 모든 OS-Applications를 APPLICATION_ACCESSIBLE 상태로 전환합니다 SWS_OS 62쪽. 성공적으로 부팅된 코어 수는 런타임에 GetNumberOfActivatedCores을(를) 통해 쿼리할 수 있습니다 SWS_OS 196쪽.
Schedule Tables는 명확하게 정의된 상태 머신을 따릅니다. 이는 StartScheduleTableAbs [SWS_Os_00358]을(를) 통해 절대적으로, StartScheduleTableRel [SWS_Os_00347]을(를) 통해 상대적으로, 또는 StartScheduleTableSynchron을(를) 통해 동기적으로 시작될 수 있습니다 [SWS_Os_00201]. 테이블은 연쇄될 수 있거나(NextScheduleTable, 상태 SCHEDULETABLE_NEXT) [SWS_Os_00191], StopScheduleTable을(를) 사용하여 즉시 유휴 상태 SCHEDULETABLE_STOPPED(으)로 전환될 수 있습니다 [SWS_Os_00006]. 진행 중인 명시적 동기화는 SetScheduleTableAsync을(를) 사용하여 중단될 수 있으며, 이때 Expiry Points의 처리는 계속됩니다 [SWS_Os_00422].
유휴 상태에서의 절전 모드를 위해 OS는 ControlIdle 인터페이스를 제공하며, 이를 통해 EcuM은 개별 코어의 유휴 상태를 구성할 수 있습니다 [SWS_Os_00769]. 셧다운 시 EcuM은 모든 계층의 초기화 해제를 조정하고 최종적으로 ShutdownAllCores 또는 ShutdownOS을(를) 호출하여 전체 시스템을 제어된 방식으로 정지시킵니다 SWS_ECUStateManager 90쪽.
5. 오류 처리, DET 추적 및 디그레이데이션
보호 위반(메모리 초과 또는 타이밍 위반 등)은 글로벌 ProtectionHook [SWS_Os_00538]의 활성화로 이어집니다. 오류에 따라 훅은 ProtectionReturnType 유형의 반환값을 통해 복구 전략을 결정합니다 [SWS_Os_00787]: 유발 엔티티 종료(PRO_TERMINATETASKISR), 영향을 받는 파티션의 완전한 종료(PRO_TERMINATEAPPL), 제어된 파티션 재시작 시작(PRO_TERMINATEAPPL_RESTART) 또는 전자 제어 장치(ECU) 셧다운(PRO_SHUTDOWN) ApplicationLevelErrorHandling 60쪽.
OS-Application이 종료되거나 재시작되면, OS는 이를 APPLICATION_ACCESSIBLE 상태에서 APPLICATION_RESTARTING 또는 APPLICATION_TERMINATED 상태로 전환합니다 [SWS_Os_00773]. 파티션의 모든 활성 태스크, ISR, 알람 및 Schedule Tables는 즉시 중지되고 모든 인터럽트는 비활성화됩니다 [SWS_Os_00447]. APPLICATION_RESTARTING 상태에서는 정상 작동이 다시 허용되기 전에 정리를 수행하기 위해 배타적으로 OsRestartTask이(가) 실행됩니다 ApplicationLevelErrorHandling 53쪽, ApplicationLevelErrorHandling 76쪽.
상태 다이어그램: 오류 발생 시 AUTOSAR OS-Application의 수명 주기 및 파티셔닝 상태. 출처: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling 53쪽.
예방적 오류 방지를 위해 운영체제는 CheckTaskMemoryAccess 및 CheckISRMemoryAccess [SWS_Os_00512], [SWS_Os_00513]과(와) 같은 메모리 보호 검사 기능과 CheckObjectAccess 및 CheckObjectOwnership [SWS_Os_00256], [SWS_Os_00017]을(를) 통한 액세스 권한 검사를 제공합니다. 이러한 표준화된 검사를 통해 신뢰할 수 없는 컴포넌트가 메모리에서 허가되지 않은 쓰기 또는 실행 액세스를 수행하지 않도록 보장할 수 있습니다 SWS_OS 73쪽.
본 가이드의 컨텍스트: Release R20-11용 AUTOSAR Classic 사양을 기반으로 작성되었습니다. 모든 인터페이스 및 상태 전이는 참조된 SWS 요구사항에 의해 엄격하게 입증됩니다.
Das AUTOSAR Operating System ist ein statisch konfiguriertes, echtzeitfähiges preemptives Betriebssystem nach OSEK/VDX mit Tasks, Events, Alarmen, Schedule-Tables und Speicherschutz.
Module im Cluster
서비스 · Get…
서비스 · Start…
서비스 · Check…
서비스 · Modify…
서비스 · Read…
서비스 · Write…
서비스 · 기타
AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceIncrementCounterIocInitNextScheduleTableProtectionHookReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlock콜아웃 및 예상 인터페이스
<ReceiverPullCB>타입
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockType함수
<ReceiverPullCB>AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionCheckISRMemoryAccessCheckObjectOwnershipCheckTaskMemoryAccessClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceGetApplicationIDGetApplicationStateGetCoreIDGetCounterValueGetCurrentApplicationIDGetElapsedValueGetISRIDGetNumberOfActivatedCoresGetScheduleTableStatusGetSpinlockIncrementCounterIocInitModifyPeripheral16ModifyPeripheral32ModifyPeripheral8NextScheduleTableProtectionHookReadPeripheral16ReadPeripheral32ReadPeripheral8ReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStartCoreStartNonAutosarCoreStartScheduleTableAbsStartScheduleTableRelStartScheduleTableSynchronStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockWritePeripheral16WritePeripheral32WritePeripheral8타입
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockType주제 맵
Os
79이 릴리스에 대한 요소 데이터가 없습니다
Os
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);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);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);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 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);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);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);This service increments a software counter.
StatusType IncrementCounter (CounterType CounterID);This service initializes the data structures of the IOC. Tags: atp.Status=draft
void IocInit (void);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);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);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);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);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);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 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 type holds information how a specific memory region can be accessed.
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.
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
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.
typedef uint32 EventMaskType;This data type identifies the idle mode behavior.
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.
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.
This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).
typedef uint8 StatusType;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.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문