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 레이어드 아키텍처 구조
3 / 19
SWC와 Runnable — 실행 단위 이해
☆ Star
↗ Full
Core, Partition, OS Application 관계
#autosar
#core
#partition
#os-application
#multicore
@devpc
|
2026-05-04 12:39:26
|
GET /api/v1/flows/24/nodes/424?fv=1&nv=1
Context:
Flow v1
→
Node v1
0
Views
1
Calls
# Core, Partition, OS Application 관계 ## 계층 구조 한눈에 보기 ``` ECU └── Core 0 (물리적 프로세서) │ └── Partition A │ ├── OS Application 1 │ │ ├── Task_10ms │ │ └── Task_100ms │ └── OS Application 2 │ └── Task_BG (Background) └── Core 1 └── Partition B └── OS Application 3 ├── Task_1ms └── Task_CanTx ``` --- ## Core — 물리적 자원 멀티코어 MCU(예: Aurix TC3xx)에서 각 코어는 독립적으로 실행된다. AUTOSAR 설정에서 어떤 Task/OS Application이 어느 코어에서 돌지를 정적으로 결정한다. - Core 간 통신: IOC (Inter-OS-Application Communication) 또는 SpinLock 사용 - Core 간 공유 메모리 접근은 명시적으로 설계해야 한다 --- ## Partition — 보호 경계 Partition은 메모리 보호(MPU/MMU 기반) 단위다. ASIL-D와 QM 소프트웨어를 같은 ECU에서 돌리면서 서로 간섭을 막을 때 필요하다. ``` Partition A (ASIL-D) Partition B (QM) ┌───────────────┐ ┌───────────────┐ │ OS App ASIL │ │ OS App QM │ │ Task_Safety │ │ Task_Comfort │ └───────────────┘ └───────────────┘ ↑ MPU boundary — 잘못된 포인터로 침범 불가 ``` 실제 프로젝트에서 Partition 설정은 시스템 아키텍트가 결정한다. 기능 개발자는 "내 SWC가 어느 OS Application에 속하는가"만 파악하면 된다. --- ## OS Application — Task 컨테이너 OS Application은 실행 권한과 리소스를 공유하는 Task/ISR/Alarm 묶음이다. 주요 속성: - **Trusted** vs **Non-Trusted** — Trusted는 MPU 제한 없이 실행 가능 - **Restart** 가능 여부 — 에러 발생 시 OS Application 단위로 재시작 가능 ```c /* OS Application 설정 예 (ARXML/설정 툴에서 생성됨) */ OsApplication OsApp_Safety { OsApplicationTrusted = TRUE; OsApplicationCoreRef = Core0; } ``` --- ## 실무 포인트 **"내 Task가 왜 Core 1에서 돌지?"** → 시스템 설계 시 OS Application → Core 매핑이 결정된다. arxml 또는 툴 설정에서 `OsApplicationCoreRef`를 확인한다. **"두 SWC가 데이터를 어떻게 공유해?"** → 같은 OS Application 내: RTE Sender-Receiver 포트로 통신한다. → 다른 OS Application (다른 코어): IOC (Inter-OS-Application Communicator)를 거친다. RTE가 이를 투명하게 처리한다. **"OS Application Restart가 실제로 동작하나?"** → FaultHandler에서 `TerminateApplication(OsApp_QM, RESTART)`를 호출하면 해당 OS Application의 Task들이 재시작된다. Safety-critical OS Application은 건드리지 않는다.
AUTOSAR 레이어드 아키텍처 구조
SWC와 Runnable — 실행 단위 이해
// COMMENTS
Newest First
ON THIS PAGE
No content selected.