본문 바로가기
AUTOSAR

RTE 동작 원리 이해 (Rte_Read / Rte_Write 포함)

by Autosar 2026. 4. 11.
반응형

이전 글에서는 AUTOSAR의 전체 구조와 각 계층(SWC, RTE, BSW)의 역할을 중심으로

시스템을 어떻게 나누어 설계하는지 살펴보았다.


구조를 이해하는 것은 매우 중요하지만,

실제 개발에서는 “데이터가 어떻게 움직이는지”를 이해하는 것이 훨씬 더 중요하다.

출처: https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_RTE.pdf


AUTOSAR 환경에서 모든 데이터 흐름의 중심에는 RTE(Runtime Environment)가 존재한다.
SWC는 직접 통신을 하지 않으며, 모든 데이터는 반드시 RTE를 통해서만 전달된다.

이 글에서는 RTE가 단순한 중간 계층이 아니라,

실제로 어떤 방식으로 데이터를 전달하고 관리하는지? 그리고

우리가 사용하는 Rte_Read / Rte_Write API가 내부적으로 어떤 구조를 가지는지를 실무 관점에서 자세히 정리한다.

RTE의 역할 다시 이해하기

 

RTE를 단순히 중간 계층이라고 이해하면 부족하다.
조금 더 정확하게 표현하면 다음과 같다.

“SWC 간, 그리고 SWC와 BSW 간의 통신을 표준화된 방식으로 중재하고 연결하는 계층”

즉, 단순히 데이터를 전달하는 것이 아니라

누가 데이터를 쓰고, 누가 데이터를 읽으며, 어떤 시점에 데이터가 전달되는지
이 모든 흐름을 관리하는 역할을 한다.

 

SWC에서 데이터를 읽는 방식 (Rte_Read)

 

AUTOSAR에서 SWC는 데이터를 직접 접근하지 않는다.
반드시 RTE API를 통해 접근해야 한다.

가장 대표적인 예가 다음과 같은 코드이다.

Rte_Read_Speed(&speed);

 

이 코드 한 줄은 단순해 보이지만, 실제로는 다음과 같은 의미를 가진다.

- 특정 데이터 요소(Data Element)를 읽는다
- 해당 데이터의 최신 값을 가져온다
- 데이터의 출처는 신경 쓰지 않는다

즉, SWC는 데이터를 “어디서 오는지”가 아니라 “무슨 데이터인지”만 알고 사용한다.

 

Rte_Read의 내부 동작 (개념적 이해)

 

Rte_Read는 내부적으로 RTE가 관리하는 데이터 저장소에서 값을 읽어오는 방식으로 동작한다.
이를 단순화하면 다음과 같은 형태로 이해할 수 있다.

Std_ReturnType Rte_Read_Speed(uint16* data)
{
    *data = Rte_Buffer_Speed;
    return RTE_E_OK;
}

 

하지만 실제 AUTOSAR 시스템에서는 이보다 더 복잡한 구조를 가진다.

- 데이터는 단순 변수 하나가 아닐 수 있다
- 큐(Queue) 구조를 사용할 수도 있다
- 타이밍 이벤트와 연동될 수도 있다

따라서 “RTE Buffer 하나에서 읽는다”는 것은 개념을 단순화한 모델로 이해하는 것이 맞다.

 

데이터를 쓰는 방식 (Rte_Write)

 

데이터를 전달하는 경우에는 Rte_Write를 사용한다.

Rte_Write_Speed(speed);

 

이 함수는 특정 데이터 요소에 값을 기록하는 역할을 한다.

 

Rte_Write의 내부 동작 (개념적 이해)
Std_ReturnType Rte_Write_Speed(uint16 data)
{
    Rte_Buffer_Speed = data;
    return RTE_E_OK;
}

 

이 코드 역시 단순화된 형태이며, 실제 환경에서는 다음과 같은 동작이 포함될 수 있다.

- 데이터 갱신 시점 관리
- 데이터 일관성 유지
- 필요 시 이벤트 트리거

 

전체 데이터 흐름 (실무 관점)

 

AUTOSAR에서 데이터가 흐르는 과정을 단계별로 보면 다음과 같다.

1. BSW에서 CAN 메시지 수신
2. COM 모듈이 신호 단위로 데이터 파싱
3. RTE 내부 데이터 영역에 값 반영
4. SWC에서 Rte_Read를 통해 데이터 획득

또는 반대로:

1. SWC에서 Rte_Write 호출
2. RTE 내부 데이터 갱신
3. BSW(COM 등)를 통해 CAN 메시지로 전송

이처럼 RTE는 항상 “중간에서 데이터 흐름을 제어”한다.

 

정리

 

RTE를 한 문장으로 정리하면 다음과 같다.

“AUTOSAR 시스템에서 데이터 흐름을 제어하고 연결하는 핵심 인터페이스 계층”

SWC는 RTE API를 통해 데이터를 읽고 쓰며,
실제 데이터는 RTE 내부 구조를 통해 관리되고 전달된다.


이 구조 덕분에 AUTOSAR는 복잡한 시스템에서도 안정적이고 예측 가능한 데이터 흐름을 유지할 수 있다.

반응형