본문 바로가기

기술/개발 지식

AUTOSAR - OS

AUTOSAR OS 개요

AUTOSAR OS 기존 OSEK OS 기반으로 추가적인 기능을 더했다.

OSEK OS CC 확장성을 제공하듯이 AUTOSAR OS 아래와 같이 가지의 SC(Scalability Class) 확장성을 제공한다.

OSEK 비교되는 AUTOSAR OS 가장 특정 2가지는 다음과 같다.

1. OSEK/VDX에서는 1ms 단위를 보장하는 Software Timer 필수이고, 1us 단위를 보장하는 Hardware Timer 기본적으로 제공하지 않았다. 그러나 AUTOSAR OS 1us Hardware Timer 필수로 있다.

2. 차량용 통신 프로토콜인 FlexRay 완벽히 처리하기 위한 Schedule Table 필수로 새롭게 추가되었다.

Schedule Table

Schedule Table 고정적으로 정의되어 있는 expiry point 집합이다. 빗대어 표현하면 일종의 시간표다.

Expiry Point 일종의 시간표의 수업이다. Offset 지정해서 schedule table 시작부터 tick간격을 설정할 있고, Action 설정해서 Task Activation/Event Setting 수행할 수도 있다.

Schedule Table Initial Expiry Point부터 Final Expiry Point까지 Offset 증가하는 순서로 처리된다.

동시에 여러 Schedule table 처리할 있다.

실행 방식은 Single-shot(한번 실행 종료), Repeating(반복 실행)으로 나뉘어진다.

Stack Monitoring

Stack 설정된 값보다 초과되어 사용되고 있지 않은지 검사한다. Task, Category 2 ISR 검사한다.

검사 시점은 context switching time 시점이다. SC3, SC4 monitoring fault 전에 memory protection error 발생한다.

Protection Hook

OS 의해 감지되는 심각한 에러의 발생을 알리기 위해 사용되는 것으로 API함수 형태로 호출된다.

ProtectionReturnType ProtectionHook(StatusType Fatalerror)

Protection Hook 설정된 경우 ProtectionHook 호출하며 Hook 설정되지 않은 경우 ShutdownOS 호출한다.

Timing Protection

Timing ProtectionTask ISR이 지정된 시간에 동작할 수 있도록 timing fault가 발생시 이에 대한 에러 처리를 수행하는 것이다.

Timing Fault가 발생하는 원인은 taskdead line을 만족하지 못하는 경우 발생한다. 다만 deadline을 만족하지 못하는 task/ISR이 항상 문제의 원인인 것은 아니다.

Timing Fault의 종류는 Execution Budget / Lock Budget / Time Frame 이 있다.

OS-Application

 

OS-Application이란 OS Object들의 모음이다.

OS-Application을 사용하면 모든 OS objectOS-Application에 속해야 한다.

Resource는 어느 App에도 속하지 않지만 명시적으로 access가 주어져야 한다.

하나의 OS-Applicationobject는 모두 동일한 core에 있어야 한다.

OS-Application 아래와 같이 세가지 상태를 갖는다.

동일한 OS-Application 속한 Objects간에는 서로 접근이 가능하다.

하지만 다른 OS-Application Objects 대한 접근을 설정이 필요하다.

OS-Application type Trusted OS-Application Non-Trusted OS-Application으로 나뉜다.

Trusted OS-Application 다른 application service 제공할 있고 monitoring, protection disable되어 있다. 또한 무제한적인 Memory, OS모듈에 대한 접근 권한이 있을 있다.

Non-Trusted OS-Application non-privileged 모드에서 동작하며 제한적으로 API hardware 자원에 접근할 있다.

IOC

정보 전달 방법에는 가지가 있다. OS-Application 통신에는 RTE 사용하고, ECU 통신에는 COM 사용한다. 마지막으로 OS-Application 통신은 IOC(Inter OS-Application Communication) 사용한다.

Core 정보 교환을 수행할 있으며 memory 보호되는 application 통신에서 사용된다.

Call Trusted Function

Trusted OS-Application 자기 함수를 Trusted function으로 제공하고, Non Trusted OS-Application 이를 통해 Trusted OS-Application 함수를 호출할 있다.

다만 이는 동일한 Core 내의 application간에만 사용할 있다.

Memory Protection

Memory Protection 실행 프로그램이 특정 메모리 영역에 대하여 권한 없이 접근하지 못하도록 보호하는 서비스이다. 이를 위해서 위에서 살펴본대로 SC3/SC4 선택해야 한다. 또한 HW Memory Protection 지원해야 하고 OS 관리하는 object 대해서만 보호가 가능하다.

실행 프로그램이 특정 매모리 영역에 권한 없이 접근할 경우 ProtectionHook(E_OS_PROTECTION_MEMORY) 호출한다.

Service Protection

Service Protection 잘못된 OS Service 사용에 의해 OS 문제가 생기는 것을 방지하기 위함이다.


http://egloos.zum.com/songky08/v/6597405