null
vuild_
Nodes
Flows
Hubs
Login
MENU
GO
Notifications
Login
⌂
AUTOSAR 개발자 실전 가이드
Structure
overview
•
AUTOSAR가 필요한 이유
•
AUTOSAR 레이어드 아키텍처 구조
components
•
Core, Partition, OS Application 관계
•
SWC와 Runnable — 실행 단위 이해
rte-ports
•
P-Port, R-Port와 인터페이스 설계
•
Explicit vs Implicit Write — 언제 무엇을 쓰나
autosar-os
•
AUTOSAR OS Task와 ISR 설계
•
Alarm, Counter, Schedule Table 정리
•
OS Application과 메모리 보호 설정
spec-practice
•
MUST vs SHALL vs SHOULD — 스펙 용어 해석법
•
DET 에러 처리 — Det_ReportError와 RuntimeError
com-stack
•
ComSignal에서 PduR까지 — 신호가 CAN 프레임이 되는 경로
•
CanIf부터 CanNm까지 — CAN 통신 스택 계층 분리
diagnostics
•
DEM으로 DTC 관리하기 — 이벤트 상태와 고장 이력
•
DCM과 UDS 서비스 — 진단 통신의 실전 구조
ecum-bswm
•
EcuM 시동/종료 시퀀스 — ECU가 켜지고 꺼지는 순서
•
BswM 모드 전환 — 규칙 기반 상태 관리
nvm-schm
•
NvM 읽기/쓰기 패턴 — 비휘발성 메모리를 안전하게 다루는 방법
•
SchM Exclusive Area — 인터럽트와 Task 간 공유 자원 보호
Flow Structure
AUTOSAR가 필요한 이유
2 / 19
Core, Partition, OS Application 관계
☆ Star
↗ Full
AUTOSAR 레이어드 아키텍처 구조
#autosar
#bsw
#mcal
#rte
#layered
@devpc
|
2026-05-04 12:39:26
|
GET /api/v1/flows/24/nodes/423?fv=1&nv=1
Context:
Flow v1
→
Node v1
0
Views
1
Calls
# AUTOSAR 레이어드 아키텍처 구조 ## 전체 레이어 상세 ``` ┌──────────────────────────────────────────────┐ │ Application Layer │ │ SWC SWC SWC SWC SWC SWC │ ├──────────────────────────────────────────────┤ │ RTE │ ├───────────┬───────────┬──────────────────────┤ │ Services │ ECU Abstr │ Complex Drivers │ │ Layer │ Layer │ (직접 HW 접근) │ ├───────────┴───────────┴──────────────────────┤ │ MCAL (Microcontroller │ │ Abstraction Layer) │ ├──────────────────────────────────────────────┤ │ Hardware │ └──────────────────────────────────────────────┘ ``` --- ## 각 레이어 역할 ### Application Layer — SWC 기능 로직이 사는 곳. 엔진 제어, 에어백 판단, 공조 시스템 등 실제 차량 기능을 구현하는 소프트웨어 컴포넌트(SWC)들이 위치한다. SWC는 하드웨어를 직접 모른다. RTE API만 사용한다. ### RTE (Runtime Environment) SWC 간 통신을 중계하는 미들웨어다. 컴파일 타임에 설정에 따라 자동 생성되며, 같은 ECU 내부 통신(intra-ECU)이든 다른 ECU와의 통신(inter-ECU)이든 SWC 입장에서는 동일한 API로 접근한다. ```c /* SWC가 온도 데이터를 읽는 코드 */ Std_ReturnType ret; float32 temperature; ret = Rte_Read_TempSensor_Value(&temperature); ``` ### BSW — Services Layer - **AUTOSAR OS** — 태스크 스케줄러, 알람, 카운터 - **COM** — ECU 간 통신 (CAN, LIN, FlexRay, Eth PDU 전송) - **DCM** — 진단 통신 (UDS) - **NvM** — 비휘발성 메모리 관리 - **WDG** — 워치독 관리 ### BSW — ECU Abstraction Layer - **PORT** — GPIO 핀 방향·풀업 설정 - **DIO** — GPIO 레벨 읽기/쓰기 - **SPI** — SPI 버스 추상화 - **ADC** — 아날로그 입력 추상화 ### MCAL 레지스터를 직접 제어하는 최하위 드라이버. MCU 공급사 또는 AUTOSAR 툴벤더가 제공한다. 개발자가 직접 수정할 일은 거의 없다. ### Complex Drivers 레이어 규칙을 무시하고 하드웨어에 직접 접근하는 특수 드라이버. AUTOSAR 레이어를 통하면 성능이 안 나오는 경우(예: 고속 인코더, 전류 측정)에 사용한다. --- ## 개발자가 주로 건드리는 레이어 | 역할 | 주로 작업하는 레이어 | |------|-------------------| | 애플리케이션 개발자 | SWC, Runnable 구현 | | BSW 통합 담당 | BSW 설정, OS Task 설정, COM Stack | | MCAL 포팅 담당 | MCAL 드라이버 설정, Complex Drivers | 대부분의 기능 개발자는 **SWC/Runnable 구현**에만 집중하면 된다. RTE 아래는 툴과 통합 담당자 영역이다. --- ## 빌드 결과물 구조 AUTOSAR 프로젝트의 빌드 구조를 단순화하면 이렇다. ``` generated/ ← 툴이 자동 생성 (건드리지 말 것) Rte_*.c / Rte_*.h Os_Cfg.c / Os_Cfg.h src/ swc/ ← 개발자가 직접 작성 EngineControl.c BrakeSWC.c bsw/ ← BSW 라이브러리 (벤더 제공) Com/ Os/ NvM/ ``` `generated/` 폴더는 arxml 설정이 바뀔 때마다 재생성된다. 이 파일들을 수동으로 수정하면 다음 생성 시 덮어씌워진다.
AUTOSAR가 필요한 이유
Core, Partition, OS Application 관계
// COMMENTS
Newest First
ON THIS PAGE
No content selected.