DEENESPTFRRUARHIKOZHNL

AUTOSAR RTE

ModulRte (Runtime Environment)
BSW-Modul-ID2
Standard-Header#include "Rte.h"
SWS-SpezifikationAUTOSAR_SWS_RTE.pdf
ClusterRuntime Environment (RTE)

모듈 가이드AI 생성

소프트웨어 컴포넌트 상호 간 및 Basic Software와의 연결을 수행하고 이들의 실행을 조율합니다.
AI 생성 미검증 모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: db6362f39e13 출처 열린 질문 (2)
인과 앵커: R20-11 R20-11부터 유효 이 사양 릴리스용으로 새로 합성되었습니다.
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문

소프트웨어 컴포넌트 상호 간 및 Basic Software와의 연결을 수행하고 이들의 실행을 조율합니다.

Runtime Environment(RTE)는 AUTOSAR 소프트웨어 컴포넌트 상호 간 및 기본 소프트웨어 모듈과의 연결을 제공하며, Basic Software Scheduler(SchM)를 통해 Classic Platform에서 결정론적 스케줄링을 제어합니다(SWS_RTE 100쪽). 라이프사이클은 SchM_Init 및 Rte_Start부터 Rte_Stop 및 SchM_Deinit에 이르는 표준화된 인터페이스를 통해 조정됩니다 [SWS_Rte_08060], [SWS_Rte_03015]. Sender-Receiver 및 Client-Server 패턴 외에도, 캘리브레이션 매개변수를 위한 소프트웨어 포인터 기법과 파티션 경계에서의 메모리 보호 검사는 견고한 실시간 동작을 보장합니다 [SWS_Rte_03914], [SWS_Rte_02752].

Runtime Environment(RTE)는 AUTOSAR 소프트웨어 컴포넌트를 ECU 하드웨어로부터 분리하고, Basic Software Scheduler(SchM)와 함께 모든 애플리케이션 및 기본 소프트웨어 실행 시퀀스를 조율합니다(SWS_RTE 100쪽). 제어된 시작(Startup)은 EcuStateManager를 통해 단계적으로 수행됩니다: 먼저 SchM_Init이 스케줄러 구조를 초기화하고, 이어서 BswM_Init 호출 전 SchM_Start가 호출되며, 주기적인 BSW 이벤트를 활성화하기 위한 SchM_StartTiming가 실행됩니다 [SWS_Rte_08060], [SWS_Rte_07273], [SWS_Rte_04548]. 이후 애플리케이션 SW-C는 Rte_Start을 통해 시작되고, 셧다운 시에는 SchM_Deinit을 통한 초기화 해제 전에 Rte_Stop에 의해 중지됩니다 [SWS_Rte_03015], [SWS_Rte_01262], [SWS_Rte_04551].

EcuM, SchM 및 RTE 간의 시작 및 종료 조정EcuMSchMBswMRTEUse Case: BSW-Scheduler HochlaufphaseSchM_Init(ConfigPtr)Interne Datenstrukturen & initial ModeMachines initialisierenSchM_Start()BswM_Init(ConfigPtr)SchM_StartTiming()BswTimingEvents periodisch aktivierenUse Case: RTE ApplikationsstartRte_Start()Applikations-Runnables & ModeTransitions freigebenRTE_E_OKUse Case: Herunterfahren (Shutdown)Rte_Stop()Runnables stoppen, Kommunikation ignorierenRTE_E_OKSchM_Deinit()Rte_Rips_SchM_Deinit() & Ressourcen freigeben

시퀀스 다이어그램: EcuM, SchM 및 RTE 간의 시간적 시작 및 셧다운 조정. 출처: [SWS_Rte_08060], [SWS_Rte_07273], [SWS_Rte_04548], [SWS_Rte_03015], [SWS_Rte_01262], [SWS_Rte_04551], [SWS_Rte_89019].

통신은 Intra-ECU 및 Inter-ECU 모두에서 Sender-Receiver 및 Client-Server 패턴을 지원합니다(SWS_RTE 286쪽). 버퍼링되지 않는 데이터 요소는 initValue을 통해 일관된 초기값을 보장하는 반면, 버퍼링된 이벤트는 FIFO 큐를 통해 처리됩니다 [SWS_Rte_06009], [SWS_Rte_02521]. Client-Server 상호작용에서 2개 요소로 구성된 트랜잭션 핸들(Transaction Handle)은 비동기 요청을 해당 응답과 연결합니다 [SWS_Rte_02649]. Rte_Switch를 통한 모드 전환은 결정론적인 10단계 시퀀스를 거치며, Distributed Shared Mode Queues는 여러 모드 머신의 엄격한 처리 순서를 보장합니다 [SWS_Rte_02631], [SWS_Rte_02665], [SWS_Rte_91102].

CalprmPointered cluster_single Single Pointered Method cluster_double Double Pointered Method refTabSingle <RteParameterRefTab> (RAM 내 void 포인터 배열) grpSingle1 ParameterElementGroup 1 (RAM / PIM / Flash) refTabSingle->grpSingle1 grpSingle2 ParameterElementGroup 2 (RAM / PIM / Flash) refTabSingle->grpSingle2 baseRef Base reference (RAM 내 포인터 변수) refTabRom Calibration reference table (ROM / Flash) baseRef->refTabRom Initial refTabRam Calibration reference table (RAM 내 복사본) baseRef->refTabRam 전환 후 grpRom ParameterElementGroup (Flash-Originaldaten) refTabRom->grpRom grpRam ParameterElementGroup (Modifizierte RAM-Kopie) refTabRam->grpRam

컨텍스트 다이어그램: Single Pointered 및 Double Pointered 캘리브레이션 방식의 주소 지정 및 간접 참조 구조. 출처: [SWS_Rte_03913], [SWS_Rte_03914], [SWS_Rte_03947], AUTOSAR_SWS_RTE 180쪽, AUTOSAR_SWS_RTE 181쪽.

온라인 캘리브레이션을 위해 RTE는 Single Pointered 또는 Double Pointered 원리에 따라 포인터 구조를 생성하여, 하드웨어 에뮬레이션 없이 RAM에서 매개변수 그룹을 수정할 수 있도록 합니다 [SWS_Rte_03913], [SWS_Rte_03914]. 유효하지 않은 범위 초과 또는 타임아웃은 Std_ReturnType를 통해 호출 컴포넌트로 보고되며, 파티션 경계의 메모리 보호 검사는 무단 조작을 방지합니다 [SWS_Rte_01034], [SWS_Rte_03845], [SWS_Rte_02752].

Classic Platform에서 RTE의 역할 및 시스템 경계

Runtime Environment(RTE)는 소프트웨어 컴포넌트(SW-C)를 하부 연산 하드웨어 및 하드웨어 종속적인 Basic Software 모듈(BSW)로부터 완전히 분리함으로써 AUTOSAR Classic 아키텍처의 기능적 중추를 형성합니다(SWS_RTE 100쪽). RTE 생성기는 각 ECU에 맞춤화된 인터페이스를 생성하여, 마이크로컨트롤러 내부의 로컬 통신(Intra-ECU)과 통신 버스를 통한 네트워크 전반의 통신(Inter-ECU)을 모두 Rte_Read, Rte_Write 또는 Rte_Call과 같은 통일된 API 호출을 통해 처리합니다 [SWS_Rte_01091], [SWS_Rte_01102]. 생성된 BswModuleDescription 요소 및 관련 BswInternalBehavior 설명을 제공함으로써 RTE는 AUTOSAR의 구성 및 패키징 체계의 필수적인 부분으로 통합됩니다 [SWS_Rte_05165], [SWS_Rte_05166].

동일한 소프트웨어 컴포넌트의 다중 인스턴스화는 RTE에 의해 코드 공유 재진입 가능(Code-Sharing reentrant) Runnable Entity를 통해서만 해결되며, 코드 복제는 명시적으로 지원되지 않습니다 [SWS_Rte_03015], [SWS_Rte_02002]. 각 인스턴스에 대해 C 코드에서 고유한 인스턴스 식별자가 전달되거나 Component Data Structure(CDS)를 통해 주소가 지정되므로, 상호 데이터 손상 없이 공통 태스크 컨텍스트에서 병렬 인스턴스 실행이 보장됩니다(SWS_RTE 126쪽, SWS_RTE 804쪽). 애플리케이션 SW-C를 보완하여, RTE는 Basic Software Scheduler(SchM)를 통해 모든 BSW 모듈의 주기적 스케줄링 및 모드 관리를 다룹니다 [SWS_Rte_08060], [SWS_Rte_07273].

SchM 및 RTE의 라이프사이클 및 시작 조정

시스템 시작에는 BSW 스케줄러(SchM)와 애플리케이션 지향 RTE 간의 엄격하게 규정된 순서가 필요합니다(SWS_RTE 459쪽). SchM이 초기화되기 전에는 시스템 안전성상의 이유로 잠금 함수 SchM_Enter 및 SchM_Exit만 사용할 수 있습니다. EcuStateManager는 먼저 SchM_Init 함수를 호출하여 내부 데이터 구조와 모드 머신을 초기화하고 백그라운드 이벤트가 있는 BswSchedulableEntities를 시작합니다 [SWS_Rte_08060], [SWS_Rte_07584]. BswM_Init을 호출하기 전에 반드시 SchM_Start을 호출해야 합니다 [SWS_Rte_07273], [SWS_Rte_04548]. 이후 SchM_StartTiming을 통해 주기적인 BSW 동작(BswTimingEvents)의 활성화가 허용됩니다 [SWS_Rte_04548], [SWS_Rte_04551], [SWS_Rte_07574].

EcuM, SchM 및 RTE 간의 시작 및 종료 조정EcuMSchMBswMRTEUse Case: BSW-Scheduler HochlaufphaseSchM_Init(ConfigPtr)Interne Datenstrukturen & initial ModeMachines initialisierenSchM_Start()BswM_Init(ConfigPtr)SchM_StartTiming()BswTimingEvents periodisch aktivierenUse Case: RTE ApplikationsstartRte_Start()Applikations-Runnables & ModeTransitions freigebenRTE_E_OKUse Case: Herunterfahren (Shutdown)Rte_Stop()Runnables stoppen, Kommunikation ignorierenRTE_E_OKSchM_Deinit()Rte_Rips_SchM_Deinit() & Ressourcen freigeben

시퀀스 다이어그램: EcuM, SchM 및 RTE 간의 시간적 시작 및 셧다운 조정. 출처: [SWS_Rte_08060], [SWS_Rte_07273], [SWS_Rte_04548], [SWS_Rte_03015], [SWS_Rte_01262], [SWS_Rte_04551], [SWS_Rte_89019].

필요한 기본 서비스가 실행된 후에만 EcuStateManager는 Rte_Start으로 애플리케이션 SW-C의 실행을 활성화하고 번들링되지 않은 On-Entry Runnable에 대한 모드 전환을 시작합니다 [SWS_Rte_03015], [SWS_Rte_06766]. Rte_Start에서 리소스 할당에 실패하면 함수는 오류 코드 RTE_E_LIMIT를 반환합니다 [SWS_Rte_01262]. ECU가 셧다운될 때 Rte_Stop은 먼저 애플리케이션 실행을 종료하고 이 시점부터 수신되는 요청 및 데이터를 무시합니다 [SWS_Rte_02538], [SWS_Rte_02535], [SWS_Rte_02536]. Rte_Stop이 완전히 종료된 후에만 SchM_Deinit을 호출할 수 있으며, 이는 스케줄러의 모든 시스템 리소스를 해제하고 Rte_Rips_SchM_Deinit를 통해 플러그인 전용 정리 작업을 트리거합니다 [SWS_Rte_04551], [SWS_Rte_07277], [SWS_Rte_89019].

통신 패턴: Sender-Receiver 및 Client-Server

RTE는 Sender-Receiver 패러다임에서 데이터 시맨틱과 이벤트 시맨틱을 근본적으로 구분합니다(SWS_RTE 286쪽). 데이터 시맨틱(swImplPolicy != queued)의 경우 가장 최근에 기록된 값이 버퍼에 유지되며, Rte_Read를 통해 명시적으로 또는 Rte_IRead을 통해 암시적으로 소비됩니다 [SWS_Rte_01091], [SWS_Rte_06000]. 암시적 읽기의 경우 RTE는 Runnable Entity의 전체 실행 시간 동안 데이터 값의 일관된 복사본을 보장합니다 [SWS_Rte_06001]. 첫 번째 수신 전에 RTE는 초기화되지 않은 메모리 상태가 처리되지 않도록 구성된 initValue을 제공합니다 [SWS_Rte_06009], [SWS_Rte_06010].

DataSemantics를 사용하는 ECU 간 센더-리시버 통신Sender-SWCSender-RTECOM-StackEmpfaenger-RTEEmpfaenger-SWCUse Case: InitialisierungsphaseinitValue로 버퍼 초기화Rte_Read_p_o(&data)data = initValue (RTE_E_OK)Use Case: 데이터 전송Rte_Write_p_o(data)Com_SendSignal(signalId, &data)RTE_E_OKSignalempfang via Bus & Rte_COMCbk내부 신호 버퍼 업데이트Rte_Read_p_o(&data)data = empfangener Wert (RTE_E_OK)

시퀀스 다이어그램: 초기값 보장이 포함된 버퍼링되지 않는 신호의 Inter-ECU Sender-Receiver 통신. 출처: [SWS_Rte_01091], [SWS_Rte_06009], [SWS_Rte_01289], AUTOSAR_SWS_RTE 148쪽.

이와 대조적으로 이벤트 시맨틱(swImplPolicy = queued)은 FIFO 버퍼 구조를 통해 데이터 시퀀스를 손실 없이 처리하며, 이는 Rte_Send을 통해 채워지고 Rte_Receive에 의해 감소됩니다 [SWS_Rte_01072], [SWS_Rte_01092], [SWS_Rte_02521]. RteQueuedReceiverQueueLength을 통해 설정된 버퍼 한계에 도달하면 RTE는 새로 수신되는 데이터를 폐기하고 해당 오류 플래그를 설정합니다 [SWS_Rte_08940], [SWS_Rte_02523]. 대용량 데이터의 경우 RTE는 LdCom 또는 신호 버퍼 잠금 기능이 있는 Large-Data-COM과 같은 특수 전송 경로를 사용합니다 [SWS_Rte_01376], [SWS_Rte_01379].

Client-Server 통신은 동기 호출(Rte_Call)뿐만 아니라 Rte_Result을 통한 별도의 결과 조회가 포함된 비동기 상호작용도 지원합니다 [SWS_Rte_01102], [SWS_Rte_01111]. 서버 측에서 RTE는 직접 호출이 구성되지 않은 경우 들어오는 요청을 FIFO 큐에 버퍼링하는 반면, 클라이언트 측에서는 응답이 길이 1의 버퍼에 임시 저장됩니다 [SWS_Rte_02527], [SWS_Rte_02528]. 파티션 간 또는 ECU 간 호출의 경우, 클라이언트 식별자(Client Identifier)와 시퀀스 카운터(Sequence Counter)로 구성된 2개 요소의 트랜잭션 핸들이 응답 패킷을 원래 요청에 정확하게 매핑하도록 보장합니다 [SWS_Rte_02649], [SWS_Rte_08711].

모드 관리, 상태 전환 및 Distributed Shared Mode Queues

모드 관리는 Rte_Switch을 통해 제어되는 전용 모드 머신(ModeMachineInstances)을 통해 동작 상태의 조율된 전환을 가능하게 합니다 [SWS_Rte_02631]. 각 상태 전환은 모드 잠금 활성화, 영향을 받는 Runnable의 종료에 대한 제어된 대기, OnExit, OnTransition 및 OnEntry 엔터티의 순차적 실행을 포함하는 10단계의 결정론적 시퀀스를 거칩니다 [SWS_Rte_02665]. 모든 단계가 완전히 완료된 후에만 응답 확인 이벤트 ModeSwitchedAckEvent이 트리거되며, 해당 상태는 Rte_SwitchAck를 통해 조회할 수 있습니다 [SWS_Rte_02679], [SWS_Rte_02725], [SWS_Rte_02758].

ModeTransition s1 1. Mode Disabling 활성화 s2 2. 영향을 받는 ExecutableEntity의 종료 대기 s1->s2 s3 3. OnExit ExecutableEntity 실행 s2->s3 s4 4. 모든 OnExit Entity의 완료 대기 s3->s4 s5 5. OnTransition ExecutableEntity 실행 s4->s5 s6 6. 모든 OnTransition Entity의 완료 대기 s5->s6 s7 7. OnEntry ExecutableEntity 실행 s6->s7 s8 8. 모든 OnEntry Entity의 완료 대기 s7->s8 s9 9. Mode Disabling 전환 s8->s9 s10 10. ModeSwitchAckEvent 트리거 s9->s10

액티비티 다이어그램: ModeMachineInstance 내에서 모드 전환의 결정론적 10단계 흐름. 출처: [SWS_Rte_02665], [SWS_Rte_02679], EXP_ModeManagementGuide 16쪽.

여러 모드 머신에서 모드 변경의 엄격한 순서를 강제하기 위해(예: 점화 상태와 엔진 상태 간), RTE는 Distributed Shared Mode Queues(DSMQ)를 제공합니다(SWS_RTE 442쪽). 이러한 큐에서의 인큐 및 디큐 작업 상태는 Rte_DsmqStatusType 유형을 통해 신호화됩니다 [SWS_Rte_91102]. 소프트웨어 클러스터 전환의 경우 Rte_Rips_SwitchNotificationStatusType은 해당하는 인큐 및 디큐 상태를 매핑합니다 [SWS_Rte_91113]. 해석: 주기적 태스크를 활성화하기 전에 결정론적인 시스템 상태를 구축하기 위해, BSW 스케줄러에서는 Rte_Start 이전의 동기화 지점 구성을 선택하는 것으로 보입니다 [SWS_Rte_06767]. 질문 Q-d194460a04c885f3 (열림)

캘리브레이션, 데이터 에뮬레이션 및 메모리 토폴로지

RTE 생성기만이 ECU의 모든 컴포넌트 및 파티션의 전체 할당을 알고 있으므로, 캘리브레이션 매개변수는 RTE에 의해 메모리에 중앙 집중식으로 배치됩니다 [SWS_Rte_03961]. 특수 에뮬레이션 하드웨어 없이 온라인 캘리브레이션을 지원하기 위해 RTE는 Single Pointered Method 및 Double Pointered Method와 같은 소프트웨어 에뮬레이션 방식을 지원합니다(SWS_RTE 236쪽, SWS_RTE 237쪽). Single Pointered Method에서는 RAM에 ParameterElementGroups를 가리키는 void* 항목으로 구성된 포인터 테이블(<RteParameterRefTab>)이 존재합니다 [SWS_Rte_03913], [SWS_Rte_03947].

CalprmPointered cluster_single Single Pointered Method cluster_double Double Pointered Method refTabSingle <RteParameterRefTab> (RAM 내 void 포인터 배열) grpSingle1 ParameterElementGroup 1 (RAM / PIM / Flash) refTabSingle->grpSingle1 grpSingle2 ParameterElementGroup 2 (RAM / PIM / Flash) refTabSingle->grpSingle2 baseRef Base reference (RAM 내 포인터 변수) refTabRom Calibration reference table (ROM / Flash) baseRef->refTabRom Initial refTabRam Calibration reference table (RAM 내 복사본) baseRef->refTabRam 전환 후 grpRom ParameterElementGroup (Flash-Originaldaten) refTabRom->grpRom grpRam ParameterElementGroup (Modifizierte RAM-Kopie) refTabRam->grpRam

컨텍스트 다이어그램: Single Pointered 및 Double Pointered 캘리브레이션 방식의 주소 지정 및 간접 참조 구조. 출처: [SWS_Rte_03913], [SWS_Rte_03914], [SWS_Rte_03947], AUTOSAR_SWS_RTE 180쪽, AUTOSAR_SWS_RTE 181쪽.

반면에 Double Pointered Method는 2단계 간접 참조를 사용합니다. ROM/Flash에 저장된 참조 테이블이 매개변수 그룹을 가리키며, RAM의 수정 가능한 기본 포인터(Base reference)는 초기에 이 Flash 테이블을 가리키고 캘리브레이션 시 수정된 RAM 복사본을 가리키도록 변경될 수 있습니다 [SWS_Rte_03914]. 여기서 ParameterDataPrototypes는 해당 swAddrMethod에 따라 별개의 그룹으로 분리됩니다 [SWS_Rte_03908]. RTE 생성기는 캘리브레이션 도구(예: INCA 또는 CANape)에 A2L 주소 지정에 대한 정밀한 접근 권한을 제공하기 위해 McSupportData 컨테이너의 모든 구조 및 포인터 정보를 McSwEmulationMethodSupport를 통해 내보냅니다 [SWS_Rte_05118], [SWS_Rte_05137], [SWS_Rte_05138]. 해석: 포인터 테이블 자체가 주로 보호된 Flash에 남아 있고 활성 캘리브레이션 중에만 RAM 버퍼를 점유하므로, 고집적 안전 ECU에는 Double Pointered Method가 선호될 것으로 추정됩니다. 질문 Q-fb532d79c1eb906d (열림)

파티셔닝, 메모리 보호 및 Inter-OS-Application 통신

멀티코어 및 메모리 보호 아키텍처에서 RTE는 Inter-OS-Application Communication(IOC)을 통해 파티션 경계(OS-Applications)를 넘어 소프트웨어 컴포넌트를 연결합니다(SWS_RTE 372쪽). 이때 RTE는 내부 신호 버퍼를 하드웨어 종속적인 IOC 버퍼 및 생성된 보호 기능으로 대체합니다. 배타 영역(ExclusiveAreas)에 접근하기 위해 통합자는 인터럽트 비활성화부터 코어 간 접근을 위한 OS 스핀록에 이르는 메커니즘별 구성 매개변수(RteExclusiveAreaImplMechanism)를 선택합니다(SWS_RTE 203쪽).

테스트되지 않았거나 신뢰할 수 없는(Non-Trusted) 파티션이 신뢰할 수 있는 BSW 또는 SWC 파티션에 포인터 매개변수를 전달하는 경우, RTE는 필수적으로 주소 및 메모리 영역 검사를 수행합니다 [SWS_Rte_02752], [SWS_Rte_02753]. 포인터 전달은 참조된 메모리 객체 전체가 호출 파티션에 속하는 경우에만 수행되므로, 보호 영역 위반 및 타 메모리 영역의 무단 덮어쓰기가 효과적으로 방지됩니다(SWS_RTE 378쪽).

오류가 발생한 경우의 동작

RTE의 오류 처리는 인프라스트럭처 오류와 애플리케이션 오류를 엄격하게 구분합니다(SWS_RTE 579쪽). 모든 오류 상태는 반환 타입 Std_ReturnType을 통해 호출자에게 즉시 신호로 전달됩니다[SWS_Rte_01034]. 즉각적인 인프라스트럭처 오류에는 RTE_E_TIMEOUT(129), RTE_E_LIMIT(130), RTE_E_NO_DATA(131), RTE_E_UNCONNECTED(134), RTE_E_IN_EXCLUSIVE_AREA(135) 및 RTE_E_SEG_FAULT(136) 등이 포함됩니다(SWS_RTE 586쪽).

Rte_Read에서의 범위 검사 및 오류 전파COM-StackRTE-EmpfangRTE-PufferApplikations-SWCNeuer Signalwert empfangenDataSemantics 범위 검사 수행alt정의된 범위 내의 값Pufferwert aktualisieren, Status = RTE_E_OK범위를 벗어난 값(Out of Range)Pufferstatus = RTE_E_OUT_OF_RANGERte_Read_p_o(&data)반환값: RTE_E_OUT_OF_RANGE

시퀀스 다이어그램: Rte_Read를 통한 값 범위 오류의 감지 및 전파. 출처: [SWS_Rte_01091], [SWS_Rte_01371], [SWS_Rte_03845], AUTOSAR_CP_SWS_RTE 409쪽.

데이터 유효성 검증(DataSemantics range check)이 활성화된 경우 RTE는 수신된 신호 값을 정의된 값 범위와 비교하여 검사합니다[SWS_Rte_01371]. 수신된 값이 한계를 벗어나면 읽기 API는 RTE_E_OUT_OF_RANGE [SWS_Rte_03845], [SWS_Rte_03846]를 반환합니다. Invalidation-Policy가 적용된 신호의 경우 RTE는 replace 시 값을 initValue(으)로 대체하거나, keep 시 이전 값을 유지하고 오류 이벤트를 설정합니다[SWS_Rte_05030], [SWS_Rte_05049]. aliveTimeout을 통한 타임아웃 모니터링 시 RTE는 Rte_COMCbkRxTOut을 통해 미도착을 등록하고 대기 중인 SW-C에 RTE_E_TIMEOUT을(를) 전파합니다[SWS_Rte_08061], [SWS_Rte_03763].

더 자세한 증거

RTE 및 스케줄러의 정확한 기술적 설계는 페이로드의 다음과 같은 핵심 요구사항을 기반으로 합니다:

이 모듈 가이드는 R20-11용 AUTOSAR 사양을 기반으로 AI 큐레이션 어시스턴트에 의해 작성되었습니다.

AUTOSAR RTE

The RTE realizes the Virtual Functional Bus (VFB) on a specific ECU, providing communication between Software Components and basic software.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

함수 Rte_Start [SWS_Rte_03015] 📄 PDF

Std_ReturnType Rte_Start (void);

Rte_Start is intended to allocate and initialize system resources and communication resources used by the RTE.

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

함수 Rte_Start은(는) RTE가 사용하는 시스템 및 통신 리소스를 할당하고 초기화합니다 [SWS_Rte_03015]. 이 API는 항상 생성되며 [SWS_Rte_01309], 시그니처 Std_ReturnType Rte_Start (void)을(를) 갖고 [SWS_Rte_02569] 무한 루프 없이 유한한 실행 시간 내에 반드시 반환되어야 합니다 [SWS_Rte_02585].

이 함수는 RTE에 필요한 모든 Basic Software 모듈이 초기화된 후, 신뢰할 수 있는 OS 컨텍스트에서 EcuStateManager에 의해 각 Core당 정확히 한 번만 호출될 수 있습니다 [SWS_Rte_CONSTR_09035]. 호출은 각 Core에서 독립적으로 실행되며 [SWS_Rte_07615] 이 Core에 할당된 모든 파티션에 대한 파티션별 시작 작업을 수행합니다 [SWS_Rte_07616].

실행 중에 RTE는 구성된 전략에 따라 RAM 블록용으로 할당된 변수를 초기화합니다 [SWS_Rte_07632]. 변수 초기화 후, 그러나 러너블(Runnables)이 실행되기 전에 RTE는 관련된 모든 RTE Implementation Plug-In의 초기화 함수 Rte_Rips_Rte_Start을(를) 호출합니다 [SWS_Rte_80052]. 그런 다음 RTE는 InitEvent에 의해 트리거된 모든 러너블을 1회 활성화하고 [SWS_Rte_06761] 초기 모드로의 전환을 시작합니다 [SWS_Rte_06766]. API Rte_StartTiming이(가) 존재하지 않는 경우, Rte_Start은(는) TimingEvent [SWS_Rte_07575] 또는 BackgroundEvent [SWS_Rte_07178]에 의해 트리거되는 러너블의 활성화도 시작합니다.

오류 처리를 위해 RteDevErrorDetectUninit이(가) 활성화된 경우 RTE 또는 SchM은 SchM_Init 이전에 Rte_Start이(가) 호출되면 오류 RTE_E_UNINIT(0x07)을(를) 보고합니다 [SWS_Rte_07683]. Rte_Start의 실행 전에는 RTE의 런타임 API를 호출해서는 안 되며, 그렇지 않으면 이 또한 RTE_E_UNINIT(으)로 이어집니다 [SWS_Rte_07682]. 반면 Rte_SetMirror은(는) Rte_Start 이전에도 이미 호출될 수 있습니다 [SWS_Rte_07319].

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

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

함수 Rte_Stop [SWS_Rte_01262] 📄 PDF

Std_ReturnType Rte_Stop (void);

Rte_Stop is used to finalize the RTE on the core it is called. This service releases all system and communication resources allocated by the RTE on that core.

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

함수 Rte_Stop([SWS_Rte_02570])은(는) 모든 구성에서 생성되며([SWS_Rte_01310]), 실행 중인 Core에서 RTE를 종료(finalize)하는 데 사용됩니다([SWS_Rte_01262]). 이 과정에서 해당 Core의 RTE에 의해 할당된 모든 시스템 및 통신 리소스가 해제됩니다([SWS_Rte_01262]). 이 동기 호출은 유한한 실행 시간 내에 반환되는 것이 보장됩니다([SWS_Rte_02584]).

전체 시스템에서 Rte_Stop은(는) RTE에 필요한 Basic Software 모듈들이 셧다운되기 전에 EcuStateManager에 의해 호출되어야 합니다([SWS_Rte_CONSTR_09038]). 실행 중에 RTE는 관련된 모든 RTE-Implementation-Plug-In의 중지 함수 Rte_Rips_Rte_Stop을(를) 호출하며([SWS_Rte_80053]), 이들 플러그인은 이러한 라이프사이클 인터페이스를 제공해야 합니다([SWS_Rte_70047]). Rte_Stop이(가) 완전히 종료된 후에만 SchM_Deinit을(를) 실행할 수 있습니다([SWS_Rte_CONSTR_09056]).

하나의 Core에서 Rte_Stop을(를) 호출한 후에는 해당 Core의 RTE에 의해 더 이상 어떠한 RunnableEntity 인스턴스도 활성화, 시작 또는 해제되지 않습니다([SWS_Rte_02538]). 그럼에도 불구하고 기반 OS가 활성 상태인 한 Rte_GetMirror은(는) 계속 호출 가능한 상태로 유지됩니다([SWS_Rte_07350]).

오류 발생 시, 내부 한도가 초과되었거나 필요한 리소스의 할당이 실패하면 함수는 RTE_E_LIMIT을(를) 반환합니다([SWS_Rte_01262]). RteDevErrorDetectUninit이(가) 활성화되어 있는 경우, Rte_Stop 이후에 올바르지 않은 API가 호출되면 RTE는 오류 RTE_E_UNINIT(0x07)을(를) 보고합니다([SWS_Rte_07682]).

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

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

함수 Rte_StartTiming [SWS_Rte_06753] 📄 PDF

void Rte_StartTiming (void);

Rte_StartTiming API is intended to release the activation of RunnableEntitys triggered by TimingEvents and BackgroundEvents after the last call of a Rte_Init function.

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

함수 Rte_StartTiming은(는) RTE 초기화가 완료된 후 TimingEvent 또는 BackgroundEvent에 의해 트리거되는 RunnableEntity의 활성화를 허용하는 데 사용됩니다([SWS_Rte_06753], [SWS_Rte_06756]). 매개변수와 반환값이 없는 함수로 구현되며([SWS_Rte_06754], [SWS_Rte_06758]), 유한한 실행 시간 내에 반환되어야 합니다([SWS_Rte_06757]).

호출 컨텍스트 및 순서와 관련하여 API에는 엄격한 제약 조건이 적용됩니다:

  • 이 함수는 RTE가 완전히 초기화된 후에만, 구체적으로는 Rte_Start 호출이 완료된 후에만 호출될 수 있습니다([SWS_Rte_CONSTR_09061]).
  • 이 함수는 Rte_Init 함수의 마지막 호출 이후에 실행되도록 의도되었습니다([SWS_Rte_06753]).
  • 적어도 하나의 Rte_Init API가 생성되는 즉시 이 API가 생성되거나 제공됩니다([SWS_Rte_06755]).

Rte_StartTiming이(가) 호출되면 주기적 및 백그라운드 기반 활성화를 즉시 시작합니다([SWS_Rte_06759], [SWS_Rte_06760]). 반면 구성에 해당 API가 없는 경우 Rte_Start 호출이 대신 TimingEvent 및 BackgroundEvent에 의해 트리거되는 Runnable의 활성화를 인계합니다([SWS_Rte_07178], [SWS_Rte_07575]). 이 호출에 대해 정의된 특정 오류 코드나 반환값은 없습니다([SWS_Rte_06754]).

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

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

함수 SchM_Init [SWS_Rte_08060] 📄 PDF

void SchM_Init (const SchM_ConfigType* ConfigPtr);

SchM_Init is intended to allocate and initialize system resources used by the Basic Software Scheduler part of the RTE for the core on which it is called.

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

사용법 및 의미론

SchM_Init 함수는 호출 Core에서 RTE의 Basic Software Scheduler(SchM)가 사용하는 시스템 리소스를 할당하고 초기화합니다([SWS_Rte_08060]). 이 인터페이스는 항상 생성되며([SWS_Rte_07271]) void SchM_Init(const SchM_ConfigType* ConfigPtr) 시그니처를 갖습니다([SWS_Rte_07270]). 동기식으로 실행되며 무한 루프에 빠지지 않고 유한한 실행 시간 내에 반드시 반환되어야 합니다([SWS_Rte_07273]).

초기화 프로세스 중에 SchM_Init은(는) 다음 단계를 수행합니다:

  • Basic Software Scheduler에 속하는 각 모드 머신 인스턴스에 대해 초기 모드로의 전환을 시작합니다([SWS_Rte_07532]).
  • BswBackgroundEvent 이벤트에 의해 트리거되는 BswSchedulableEntity 인스턴스의 활성화를 시작합니다([SWS_Rte_07584]).
  • 참여하는 모든 RTE Implementation Plug-In의 초기화 함수 Rte_Rips_SchM_Init을(를) 호출합니다([SWS_Rte_80051]).

호출 컨텍스트 및 순서 조건

SchM_Init은(는) Basic Software Scheduler에 필요한 BSW 모듈들이 초기화된 직후([SWS_Rte_CONSTR_09055]), 각 Core에서 EcuStateManager에 의해 정확히 한 번만 호출되어야 합니다. Rte_Start과(와) 같은 후속 API는 SchM_Init이(가) 완전히 종료된 후에만 호출될 수 있습니다([SWS_Rte_CONSTR_09036]).

오류 처리

SchM_Init이(가) 매개변수로 NULL 포인터와 함께 호출되면 Basic Software Scheduler는 오류 RTE_E_DET_ILLEGAL_VARIANT_CRITERION_VALUE (0x02)을(를) 보고합니다([SWS_Rte_07684]). SchM_Init 이전에 스케줄러 API(예: SchM_Switch, SchM_Mode 또는 SchM_Start) 또는 Rte_Start이(가) 호출되면, RteDevErrorDetectUninit이(가) 활성화된 경우 오류 RTE_E_UNINIT (0x07)이(가) 보고됩니다([SWS_Rte_07683]).

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

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

함수 SchM_Start [SWS_Rte_07273] 📄 PDF

void SchM_Start (void);

Basic Software Scheduler initialized. Shall be called before BswM_Init().

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

사용

함수 SchM_Start은(는) RTE 모듈에서 Basic Software Scheduler를 구동하는 데 사용되며 인터페이스 생성 과정에서 원칙적으로 항상 제공됩니다 [SWS_Rte_04547]. 이 함수는 매개변수가 없는 C 시그니처 void SchM_Start(void)을(를) 가지며 [SWS_Rte_04546] 반환값을 반환하지 않습니다. 실행에 대해서는 호출이 유한한 실행 시간 내에 반환되어야 하며 결코 무한 루프에 빠져서는 안 된다는 필수 요건이 적용됩니다 [SWS_Rte_04548]. 비동기 콜백 메커니즘이 없으므로 이는 동기 블로킹 초기화 호출일 것으로 보입니다. 질문 Q-b6ad9ed696841d7a (열림)

호출 컨텍스트 및 동시성

호출 컨텍스트 및 다른 시스템 구성 요소와의 상호 작용에 대해 엄격한 제한 사항이 적용됩니다:

  • 호출자 및 빈도: 이 함수는 각 프로세서 코어에서 EcuStateManager에 의해 배타적으로, 그리고 각각 정확히 한 번만 호출될 수 있습니다 [SWS_Rte_CONSTR_09055].
  • 순서 조건: RTE의 Basic-Software-Scheduler 부분에 필요한 모든 Basic Software 모듈이 완전히 초기화된 후에만 호출이 수행될 수 있습니다 [SWS_Rte_CONSTR_09055].
  • 시스템 시작 시 상호 작용: 실행 후 Basic Software Scheduler가 작동 준비 상태가 되며, 호출은 BswM_Init()을(를) 통한 BSW 관리자 초기화 이전에 반드시 수행되어야 합니다 [SWS_Rte_07273].

오류 처리

이 함수에 대해 페이로드에 특정 오류 코드, 반환값 또는 DET나 DEM으로의 알림은 정의되어 있지 않습니다.

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

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

함수 SchM_StartTiming [SWS_Rte_04548] 📄 PDF

void SchM_StartTiming (void);

Start periodical events for BSW/SWCs. SchM_Init() has to be called before.

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

사용

함수 SchM_StartTiming은(는) 매개변수가 없는 시그니처 void SchM_StartTiming(void) [SWS_Rte_04549]을(를) 가지며, RTE 생성기에 의해 항상 생성됩니다 [SWS_Rte_04550]. 이 함수의 호출은 BswTimingEvent에 의해 트리거되는 BswSchedulableEntity 인스턴스의 활성화를 개시함으로써 BSW 및 SWC에 대한 주기적 이벤트를 시작합니다 [SWS_Rte_04548] [SWS_Rte_07574]. 이 함수는 유한한 실행 시간 내에 반환되어야 하며 무한 루프를 실행해서는 안 됩니다 [SWS_Rte_04551].

호출 컨텍스트 및 제약 사항

SchM_StartTiming을(를) 호출하기 전에 반드시 SchM_Init이(가) 호출되어 있어야 합니다 [SWS_Rte_04548]. 또한 Basic Software Scheduler에 필요한 모든 기본 소프트웨어 모듈이 초기화된 후, SchM_StartTiming은(는) 각 Core에서 EcuStateManager에 의해 정확히 한 번만 호출될 수 있다는 구속력 있는 제약 조건이 적용됩니다 [SWS_Rte_CONSTR_09055].

오류 처리

SchM_Init 전에 SchM_StartTiming이(가) 호출되면, 개발 오류 감지 RteDevErrorDetectUninit이(가) 활성화되어 있는 경우 Basic Software Scheduler 또는 RTE가 오류 RTE_E_UNINIT(0x07)을(를) 보고합니다 [SWS_Rte_07683].

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

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

함수 SchM_Deinit [SWS_Rte_04551] 📄 PDF

void SchM_Deinit (void);

SchM_Deinit is used to finalize Basic Software Scheduler part of the RTE of the core on which it is called. This service releases all system resources allocated by the Basic Software Scheduler part on that core.

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

사용 및 기능 범위

함수 SchM_Deinit은(는) 호출된 해당 Core에서 RTE의 Basic Software Scheduler 부분을 종료하는 데 사용됩니다 [SWS_Rte_04551]. 이 과정에서 해당 서비스는 이 Core에서 BSW 스케줄러가 점유했던 모든 시스템 리소스를 해제합니다 [SWS_Rte_04551]. 이 함수는 매개변수와 반환값이 모두 없으며(void SchM_Deinit(void)) [SWS_Rte_07274], 원칙적으로 RTE 생성기에 의해 항상 생성됩니다 [SWS_Rte_07275]. 타이밍 동작과 관련하여 명세에서는 SchM_Deinit이(가) 유한한 실행 시간 내에 반환되어야 한다고 요구합니다 [SWS_Rte_07277].

호출 컨텍스트 및 순서 조건

ECU의 셧다운 단계 동안의 호출에 대해 구속력 있는 순서 규격이 적용됩니다:

  • 함수 SchM_Deinit은(는) RTE가 완전히 종료된 후, 즉 Rte_Stop이(가) 종료된 후에만 사용될 수 있습니다 [SWS_Rte_CONSTR_09056].
  • 호출은 Basic Software Scheduler의 동작에 필요한 기본 계층들이 셧다운되기 전에 EcuStateManager에 의해 수행되어야 합니다 [SWS_Rte_CONSTR_09057].
  • 어떤 Core에서 SchM_Deinit이(가) 호출된 후에는, BSW 스케줄러가 해당 Core에서 더 이상 어떠한 BswSchedulableEntity 인스턴스도 활성화하거나 시작해서는 안 됩니다 [SWS_Rte_07586].

플러그인 정리

비초기화(deinitialization) 프레임워크 내에서 RTE는 SchM_Deinit 내부에서 참여하는 모든 RTE Implementation Plug-In의 함수 Rte_Rips_SchM_Deinit을(를) 필수적으로 호출하여 이들의 정리를 완료합니다 [SWS_Rte_80054].

이 사용 지침은 AUTOSAR Classic 릴리스 R20-11 명세를 기반으로 자동 작성되었습니다.

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

함수 <name of the Invocation Handler> [SWS_Rte_89015] 📄 PDF

void <name of the Invocation Handler> (void);

Performs invocation of server runnables, hard error runnables, ASCR runnables and triggered runnables via a transformer".

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

핸들러 함수 <name of the Invocation Handler>은(는) Rte 모듈에서 트랜스포머를 통해 다양한 Runnable 유형의 동기식 호출을 처리합니다 [SWS_Rte_89015]. 지원되는 단위에는 서버 Runnable, 하드 오류 Runnable, ASCR Runnable 및 트리거된 Runnable이 포함됩니다 [SWS_Rte_89015].

인터페이스는 입력, 입출력 또는 출력 매개변수를 갖지 않으며 값을 반환하지 않습니다(시그니처 void (void)) [SWS_Rte_89015]. 호출은 동기식으로 처리되며 서비스 ID 0xEE(으)로 식별됩니다 [SWS_Rte_89015]. 선언은 헤더 파일 Rte_Rips_<PlugIn>.h을 통해 제공됩니다 [SWS_Rte_89015].

동시성과 관련하여 이 함수는 조건부 재진입 가능(Conditional Reentrant)으로 선언되어 있습니다 [SWS_Rte_89015]. 이는 서로 다른 실행 컨텍스트 또는 분리된 플러그인 인스턴스가 존재하는 경우에만 동시 호출이 허용됨을 의미할 수 있습니다. 질문 Q-24aabb36a2be58f4 (열림) 식별자 <name of the Invocation Handler> 및 헤더 이름 <PlugIn>은(는) 플레이스홀더를 나타내며 실제 이름은 플러그인 구성 중에 정의될 것으로 보입니다.

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

함수 Rte_Rips_SchM_Deinit [SWS_Rte_89019] 📄 PDF

void Rte_Rips_SchM_Deinit (void);

Rte_Rips_SchM_Deinit deinitializes those RTE Implementation Plug-In parts which are relevant for the SchM related operations.

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

함수 Rte_Rips_SchM_Deinit은(는) Basic Software Scheduler(SchM)의 작동과 관련된 RTE Implementation Plug-In의 구성 요소를 초기화 해제하는 역할을 합니다 [SWS_Rte_89019]. 이는 Rte_Rips_SchM_Init, Rte_Rips_Rte_Start 및 Rte_Rips_Rte_Stop 외에도 모든 RTE Implementation Plug-In에서 반드시 제공해야 하는 필수 라이프사이클 인터페이스에 속합니다 [SWS_Rte_70047].

통합 및 사용에 대해 다음 규정이 적용됩니다:

  • 호출 컨텍스트 및 순서: 인터페이스는 void Rte_Rips_SchM_Deinit (void) 시그니처를 가지며, 매개변수를 받지 않고 반환값을 반환하지 않습니다 [SWS_Rte_89019]. 동기식으로 실행됩니다 [SWS_Rte_89019]. 호출은 소프트웨어 컴포넌트에 의해 수행되지 않고, 관련된 모든 플러그인을 위해 SchM_Deinit 내에서 RTE에 의해 조정됩니다 [SWS_Rte_80054].
  • 파일 포함 및 식별자: 선언은 헤더 Rte_Rips_<PlugIn>.h을(를) 통해 사용할 수 있으며, 함수는 서비스 ID 0xF3을(를) 갖습니다 [SWS_Rte_89019].
  • 동시성 및 제약 사항: 이 함수는 재진입 불가능(Non Reentrant)으로 명시되어 있습니다[SWS_Rte_89019]. 따라서 SchM_Deinit에서 호출하는 동안에는 경합하는 SchM 활동이 더 이상 플러그인에 접근할 수 없음을 의미하는 것으로 추정됩니다. 질문 Q-60aec1abc9e891b2 (열림)
  • 오류 처리: 사양에서는 Rte_Rips_SchM_Deinit에 대해 오류 코드나 반환값을 규정하지 않으며, DET 또는 DEM으로의 오류 보고를 정의하지 않습니다 [SWS_Rte_89019].

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

타입 Rte_Rips_SwitchNotificationStatusType [SWS_Rte_91113] 📄 PDF

Status of the en- and dequeue operation on a mode queue Tags: atp.Status=draft

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

데이터 타입 Rte_Rips_SwitchNotificationStatusType ([SWS_Rte_91113])은(는) uint8을(를) 기반으로 하며 Rte_Type.h을(를) 통해 제공됩니다. RTE Implementation Plug-In 컨텍스트에서 모드 큐(Mode Queue)에 대한 Enqueue 및 Dequeue 작업의 상태를 알리는 역할을 합니다.

값 범위에는 양쪽 작업 방향 모두에 대한 상태 코드가 포함됩니다([SWS_Rte_91113]):

  • RTE_SWITCH_NOTIFICATION_SKIP(0x00): 모드 전환 알림을 디큐할 수 없습니다.
  • RTE_SWITCH_NOTIFICATION_ENQUEUED_FIRST (0x01): 빈 큐에 알림이 인큐되었습니다.
  • RTE_SWITCH_NOTIFICATION_ENQUEUED_NOT_FIRST (0x02): 이미 차 있는 큐에 알림이 인큐되었습니다.
  • RTE_SWITCH_NOTIFICATION_ENQUEUE_FAILED(0x03): 비어 있지 않은 큐로의 큐잉에 실패했습니다.
  • RTE_SWITCH_NOTIFICATION_DEQUEUED_LAST (0x04): 큐에서 마지막 모드 전환 알림이 디큐되었습니다.
  • RTE_SWITCH_NOTIFICATION_DEQUEUED_NOT_LAST (0x05): 하나의 알림이 디큐되었으며, 큐에 추가 알림이 남아 있습니다.

사용 시 이 타입은 두 개의 동기식 reentrant 인터페이스에 나타납니다: 함수 Rte_Rips_<PlugIn>_Switch_<BswSwcI>_<MMI> ([SWS_Rte_91114])은(는) 플러그인에 Enqueue 과정을 알리기 위해 상태를 입력 매개변수 switchNotificationStatus(으)로 받습니다. 반면 함수 Rte_Rips_<PlugIn>_DequeueModeSwitch_<MMI>_<OsTask> ([SWS_Rte_91115])은(는) 마지막 On-Entry ExecutableEntity가 종료된 후 큐에서 알림을 디큐할 때 이 타입을 반환값으로 제공합니다.

인큐 시의 오류는 상태 값 RTE_SWITCH_NOTIFICATION_ENQUEUE_FAILED을(를) 통해 기능적으로 보고되며([SWS_Rte_91113]), 별도의 DET 또는 DEM 항목은 페이로드에 명시되어 있지 않습니다. 해석: Dequeue 상수에서 사양 텍스트인 “was enqueued from mode queue”는 편집상의 이유로 보이며 디큐 작업을 의미합니다. 질문 Q-6e9e040dcd341f66 (열림) 해당 요소 및 관련 인터페이스는 초안(Draft)으로 표시되어 있습니다([SWS_Rte_91113]).

이 사용 지침은 자동으로 작성되었으며 AUTOSAR 버전 R20-11의 사양 데이터만을 기반으로 합니다.

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

타입 Rte_DsmqStatusType [SWS_Rte_91102] 📄 PDF

Status of the enqueue operation on a distributed shared mode queue

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

데이터 타입 Rte_DsmqStatusType은(는) uint8을(를) 기반으로 하며, [SWS_Rte_80085] 및 [SWS_Rte_91102]에 따라 헤더 파일 Rte_Type.h에 해당 리터럴과 함께 정의됩니다. 이는 Distributed Shared Mode Queue(DSMQ)에서 모드 전환 알림을 위한 Enqueue 및 Dequeue 작업의 상태를 알리는 역할을 합니다 [SWS_Rte_91102].

값 범위에는 다음 리터럴이 포함됩니다 [SWS_Rte_91102]:

  • RTE_DSMQ_ENQUEUED_FIRST (0x01): 이전에 비어 있던 DSMQ에 알림이 인큐되었습니다.
  • RTE_DSMQ_ENQUEUED_NOT_FIRST (0x02): 이미 채워져 있는(비어 있지 않은) DSMQ에 인큐가 수행되었습니다.
  • RTE_DSMQ_ENQUEUE_FAILED (0x03): 비어 있지 않은 DSMQ로의 인큐에 실패했습니다.
  • RTE_DSMQ_DEQUEUED_LAST(0x04): DSMQ에서 마지막 모드 전환 알림이 디큐(dequeue)되었습니다.
  • RTE_DSMQ_DEQUEUED_NOT_LAST (0x05): 큐에 추가 알림이 남아 있는 상태에서 하나의 알림이 디큐되었습니다.

오류 처리를 위해 리터럴 RTE_DSMQ_ENQUEUE_FAILED은(는) 큐가 비어 있지 않을 때 인큐 작업이 실패했음을 알립니다 [SWS_Rte_91102].

이 타입은 RTE Implementation Plug-In(RIPS)의 인터페이스에 전달 매개변수 dsmqstatus(으)로 사용됩니다. 함수 Rte_Rips_<PlugIn>_DsmqSwitch_<BswSwcI>_<MMI>은(는) DSMQ로의 인큐에 대해 플러그인에 동기식으로 통지합니다 [SWS_Rte_91103]. 또한 Rte_Rips_<PlugIn>_DsmqTransitionEnd_<BswSwcI>_<MMI>은(는) DSMQ 전환 OsTask에서 모드 전환이 완료되었음을 RIPS에 동기식으로 보고합니다 [SWS_Rte_91106]. 두 콜백 서비스 모두 동기식 및 reentrant로 선언되어 있습니다 [SWS_Rte_91103], [SWS_Rte_91106].

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

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

타입 RteCalibrationSwAddrMethodRefParentContainerRteComponentType [SWS_Rte_05145] 📄 PDF

Reference to the SwAddrMethod for which software calibration support shall be enabled. Multiplicity 0..* Type Foreign reference to SW-ADDR-METHOD Post-Build Variant Multiplicity false Post-Build Variant Value false Multiplicity Configuration Class Pre-compile time X All Variants Link time – Post-build time – Value Configuration Class Pre-compile time X All Variants Link time – Post-build time – Scope / Dependency scope: local No Included Containers 8.7 Implicit communication configuration Figure 8.22: Configuration of the implicit communication SWS Item [ECUC_Rte_09034] Container Name

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

Record
AUTOSAR/AP/record/CP_MOD_Rte
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Rte@rel:R20-11#90515e56
Content hash
90515e56
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_RTE.pdf#nameddest=SWS_Rte_03015

초기화 및 상태

Rte_Rips_SchM_Deinit deinitializes those RTE Implementation Plug-In parts which are relevant for the SchM related operations.

void Rte_Rips_SchM_Deinit (void);

SchM_Deinit is used to finalize Basic Software Scheduler part of the RTE of the core on which it is called. This service releases all system resources allocated by the Basic Software Scheduler part on that core.

void SchM_Deinit (void);

Returns the version information of the Basic Software Scheduler.

void SchM_GetVersionInfo (Std_VersionInfoType* versioninfo);
SchM_Init 함수

SchM_Init is intended to allocate and initialize system resources used by the Basic Software Scheduler part of the RTE for the core on which it is called.

void SchM_Init (const SchM_ConfigType* ConfigPtr);

서비스

Rte_Start 함수

Rte_Start is intended to allocate and initialize system resources and communication resources used by the RTE.

Std_ReturnType Rte_Start (void);

Rte_StartTiming API is intended to release the activation of RunnableEntitys triggered by TimingEvents and BackgroundEvents after the last call of a Rte_Init function.

void Rte_StartTiming (void);
Rte_Stop 함수

Rte_Stop is used to finalize the RTE on the core it is called. This service releases all system and communication resources allocated by the RTE on that core.

Std_ReturnType Rte_Stop (void);
SchM_Start 함수

Basic Software Scheduler initialized. Shall be called before BswM_Init().

void SchM_Start (void);

Start periodical events for BSW/SWCs. SchM_Init() has to be called before.

void SchM_StartTiming (void);

콜아웃 및 예상 인터페이스

Performs invocation of server runnables, hard error runnables, ASCR runnables and triggered runnables via a transformer".

void <name of the Invocation Handler> (void);

타입

Status of the enqueue operation on a distributed shared mode queue

Status of the en- and dequeue operation on a mode queue Tags: atp.Status=draft

Reference to the SwAddrMethod for which software calibration support shall be enabled. Multiplicity 0..* Type Foreign reference to SW-ADDR-METHOD Post-Build Variant Multiplicity false Post-Build Variant Value false Multiplicity Configuration Class Pre-compile time X All Variants Link time – Post-build time – Value Configuration Class Pre-compile time X All Variants Link time – Post-build time – Scope / Dependency scope: local No Included Containers 8.7 Implicit communication configuration Figure 8.22: Configuration of the implicit communication SWS Item [ECUC_Rte_09034] Container Name