AUTOSAR OS
Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).
Funktionen — Übersicht
ApplicationType GetApplication (void);This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller...ApplicationType GetCurrentApplication (void);This service determines the OS - Application where the caller of the service is currently executing.ISRType GetISRID (void);This service returns the identifier of the currently executing ISR.StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);A (trusted or non - trusted) OS - Application uses this service to call a trusted functionAccessType 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...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...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,...ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongsStatusType 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.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.StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);This service cancels the processing of a schedule table immediately at any point while the schedule table is running.StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);This service switches the processing from one schedule table to another schedule table.StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);This service starts an explicitly synchronized schedule table synchronously.StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);Service SyncScheduleTable.StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);This service stops synchronization of a schedule table.StatusType GetScheduleTable GetScheduleTableStatusof (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus); ⚠️This service queries the state of a schedule table (also with respect to synchronization).StatusType IncrementCounter (CounterType CounterID);This service increments a software counter.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...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.StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);Service TerminateApplication.StatusType AllowAccess (void);This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);This service returns the current state of an OS - Application.uint32 GetNumberOfActivated GetNumberActivatedCores (void); ⚠️The function returns the number of cores activated by the Start Core function.CoreIdType GetCore (void);The function returns a unique core identifier.void StartCore (CoreIdType CoreID, StatusType* Status);It is not supported to call this function after Start OS().void StartNonAutosar StartNonCore (CoreIdType CoreID, StatusType* Status); ⚠️The function start s the core specified by the parameter Core ID.StatusType GetSpinlock (SpinlockIdType SpinlockId);Get Spinlock tries to occupy a spin - lock variable.StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);Release Spinlock releases a spinlock variable that was occupied before.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...void ShutdownAllCores (StatusType Error);After this service the OS on all AUTOSAR cores is shut down.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.StatusType ReadPeripheral (AreaIdType Area, const uint8* Address, uint8* ReadValue);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 WritePeripheral (AreaIdType Area, uint8* Address, uint8 WriteValue);This service writes the to a given memory location ().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 ().StatusType ModifyPeripheral (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);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 EnableInterruptSource (ISRType ISRID, boolean ClearPending);Service EnableInterruptSource.StatusType DisableInterruptSource (ISRType ISRID);Disables the interrupt source by modifying the interrupt controller registers.StatusType ClearPendingInterrupt (ISRType ISRID);Service ClearPendingInterrupt.void ActivateTaskAsyn (TaskType id);Asynchronous version of the Activate Task() function.void SetEventAsyn (TaskType id, EventMaskType m);Asynchronous version of the Set Event() function.void Ioc (void);This service initializes the data structures of the IOC.void <ReceiverPullCB> (void);This callback function can be configured for the receiver of a communication.ProtectionReturnType ProtectionHook (StatusType Fatalerror);The protection hook is always called if a serious error occurs.
Typen — Übersicht
enum AppModeTypeApp Mode of the core shall be inherited from another core.TotalNumberOfCoresThe total number of coresApplicationTypeThis data type identifies the OS - Application.enum ApplicationStateTypeThis data type identifies the state of an OS - Application.ApplicationStateRefTypeThis data type points to location where a Application State Type can be stored.TrustedFunctionIndexTypeThis data type identifies a trusted function.struct TrustedFunctionParameterRefTypeThis data type points to a structure which holds the arguments for a call to a trusted function.AccessTypeThis type holds information how a specific memory region can be accessed.ObjectAccessTypeThis data type identifies if an OS - Application has access to an object.ObjectTypeThis data type identifies an object.MemoryStartAddressTypeThis data type is a pointer which is able to point to any location in the MCU address space.MemorySizeTypeThis data type holds the size (in bytes) of a memory region.ISRTypeThis data type identifies an interrupt service routine (ISR).ScheduleTableTypeThis data type identifies a schedule table.enum ScheduleTableStatusTypeThis type describes the status of a schedule.ScheduleTableStatusRefTypeThis data type points to a variable of the data type Schedule Table Status Type.enum ProtectionReturnTypeThis data type identifies a value which controls further actions of the OS on return from the protection hook.RestartTypeThis data type defines the use of a Restart Task after terminating an OS - Application.PhysicalTimeTypeThis data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_().CoreIdTypeCore Id Type is a scalar that allows identifying a single core.SpinlockIdTypeSpinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To...TryToGetSpinlockTypeThe Try To Get Spinlock Type indicates if the spinlock has been occupied or not.enum IdleModeTypeThis data type identifies the idle mode behavior.AreaIdTypeArea Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify...TimeInMicrosecondsType-CounterTypeThis data type identifies a counter.typedef TickTypeThis data type represents count values in ticks.enum StatusTypeThis data type represents standard OSEK OS status codes (e.typedef TaskTypeThis data type identifies an AUTOSAR OS task.typedef EventMaskTypeThis data type represents an event mask for extended tasks.typedef AlarmTypeThis data type represents an AUTOSAR OS alarm identifier.
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().
함수 GetISRID [SWS_Os_00511] 📄 PDF
ISRType GetISRID (void);
This service returns the identifier of the currently executing ISR.
함수 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
시스템 서비스 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.
함수 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.
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.
사용법 및 의미론
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
사용
동기 시스템 함수 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.
사용법 및 매개변수
시스템 서비스 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.
동기 및 재진입 가능(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.
동기 시스템 함수 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.
함수 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.
사용
시스템 서비스 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.
동기식 및 재진입 가능한 운영체제 서비스 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.
사용
동기식 운영체제 함수 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.
동기식 및 재진입 가능한 함수 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.
사용
동기 시스템 서비스 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)
함수 GetApplicationState [SWS_Os_00499] 📄 PDF
StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
This service returns the current state of an OS - Application.
함수 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
함수 GetCore [SWS_Os_00674] 📄 PDF
CoreIdType GetCoreID (void);
The function returns a unique core identifier.
함수 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.
동기 함수 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.
사용법 및 호출 컨텍스트
동기식이며 재진입이 불가능한 함수 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.
동기 및 재진입 가능 운영체제 함수 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.
동기 및 재진입 가능 함수 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.
동기 및 재진입 가능(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.
서비스 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.
동기 함수 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 (
).사용
함수 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 (
).동기식 및 재진입 가능한 운영체제 함수 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 (
).사용
동기식 및 재진입 가능한 함수 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
사용
함수 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
동기식 및 재진입 가능한 운영체제 함수 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
모듈 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 (
사용법 및 의미론
동기식 및 재진입 가능한 운영체제 함수 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 (
동기식 및 재진입 가능한 함수 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 (
동기식 및 재진입 가능한 운영체제 함수 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.
동기 및 재진입 가능 시스템 함수 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.
사용
동기 및 재진입 가능 함수 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.
사용법 및 호출 컨텍스트
함수 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.
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
사용 및 작동 방식
함수 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.
콜백 함수 <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.
함수 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]:
PRO_IGNORE[SWS_Os_00538]PRO_TERMINATETASKISR[SWS_Os_00538]PRO_TERMINATEAPPL[SWS_Os_00538]PRO_TERMINATEAPPL_RESTART[SWS_Os_00538]PRO_SHUTDOWN[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.
열거형 타입 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)
타입 TotalNumberOfCores [SWS_Os_91002] 📄 PDF
The total number of cores
타입 ApplicationType [SWS_Os_00772] 📄 PDF
This data type identifies the OS - Application.
타입 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
데이터 타입 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.
데이터 타입 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)
타입 TrustedFunctionIndexType [SWS_Os_00775] 📄 PDF
This data type identifies a trusted function.
타입 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.
타입 ObjectType [SWS_Os_00779] 📄 PDF
This data type identifies 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.
타입 MemorySizeType [SWS_Os_00781] 📄 PDF
This data type holds the size (in bytes) of a memory region.
타입 ISRType [SWS_Os_00782] 📄 PDF
This data type identifies an interrupt service routine (ISR).
타입 ScheduleTableType [SWS_Os_00783] 📄 PDF
This data type identifies a schedule table.
타입 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)
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.
사용 및 정의
데이터 타입 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
타입 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.
사용 및 값 범위
열거형 타입 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.
사용 및 값 범위
스칼라 데이터 타입 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
타입 TimeInMicrosecondsType [SWS_Os_00794] 📄 PDF
-
타입 CounterType [SWS_Os_00786] 📄 PDF
This data type identifies a counter.
타입 TickType [SWS_Os_00001] 📄 PDF
typedef uint32 TickType;
This data type represents count values in ticks.
타입 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)
타입 TaskType [SWS_Os_00003] 📄 PDF
typedef uint8 TaskType;
This data type identifies an AUTOSAR OS task.
타입 EventMaskType [SWS_Os_00004] 📄 PDF
typedef uint32 EventMaskType;
This data type represents an event mask for extended tasks.
타입 AlarmType [SWS_Os_00005] 📄 PDF
typedef uint8 AlarmType;
This data type represents an AUTOSAR OS alarm identifier.
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
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문