본문 바로가기
자동차 임베디드 SW/Adaptive Autosar

Adaptive Autosar - 기초 핵심 정리 (1)

by 존버매니아.임베디드 개발자 2024. 7. 8.
반응형

▶ 주요 내용은 아래 2개 PDF 파일 참조

 

▶용어의 정의를 정확하게 아는 것이 굉장히 중요한데,
오토사 표준 문서에 쓰여 있는 정의를 읽다보면 정신이 혼미해지고 읽을 수록 더욱 혼란스럽다.
대강 이런거구나~ 하고 이해하다가도. 어느 순간 엥 이게 무슨소리야? 하고 뒤죽박죽이 되버린다.
완벽한 내용은 잘 모르겠고. 대강의 느낌만 정리하자. 정확한 내용은 위 표준 문서들을 직접 읽어보면 된다.


Application : 요구사항 달성을 위한 코드 구현의 결과물
Executable(실행 가능 코드) , 실행과 관련된 각종 정보(Data, Parameter File) , Arxml 기반의 각종 Description 정보 등이 포함되어 있다.
 
Adaptive Application : A Specific type of Application. 
AUTOSAR Spec과 AUTOSAR 표준에 맞는 API 만을 준수하여 개발된 Application.
다른 종류의 Adaptive Autosar 플랫폼 간에 이식성(Portability) , 재사용성(Reuse)를 위해서는 Adaptive Application으로 개발되야 한다.
※ ARA(AUTOSAR Runtime for Adaptive) : Set of Programming Interfaces to Adaptive Application
 
오토사 문서에서 얘기하는 Application은 리눅스 등의 일반론적인 OS에서 사용되는 Appliation을 지칭하는 느낌이 강한 것 같다.  또한 Middleware(리눅스 OS?) 위에서 실행되는 유저레벨의 Application이 아니라 Middleware 영역에 속하는 Platfrom SW(BSW) 의 기능 구현에서도 쓰인다고 한다.
 
결과적으로 이 문서에서 이야기하는 Application은 모두 User Level의 Adative Application 으로 해석하는게 올바른 방향이라고 추측된다. (확실하진 않은데. 문서 여기저기 저술된 내용을 보면 그런 것 같음)
표현들이 애매하게 혼용돼있어서 짜증나는데 일단 대강 느낌만 알고 넘어가자.


Executable(실행 가능코드) : 말그대로 실행 가능한 코드를 말한다. 쉽게 설명하면 리눅스에서 hello world 프로그래밍 한 후 gcc Helloworld.c 해서 생성되는 a.out 같은 실행 파일을 의미한다.

하나의 Executable은 하나의 Entry Point만을 갖는다. (쉽게 말해서 main function을 1개 갖는 다는 소리)
 
하나의 Application은 최소 1개의 Executable을 갖고 있고, 여러개의 Executable을 포함할 수도 있다.
 
Manifest : Autosar Adaptive Platform 에서 사용되는 여러가지 Arxml Configuration 결과물
 
Execution Manifest :   Executable이 실행되기 위해 필요한 Configuration 정보 등을 갖고 있는 자료
(Startup parameter, 스케쥴링 정책, scheduling prioritie 등)
Application이 제어기에 배포 될 때는 Executable과 함께 배포되야한다.
 
나중에 설명하겠지만,
Execution Manifest에 작성된 정보를 바탕으로, Execution Management(EM)라는 모듈이 Process를 실행하게 된다.
또 뒤에서 설명하겠지만, 프로세스가 어떤 Functional Group State 일때 실행되는지 등의 정보도 Exeuction Manifest에 포함되는 정보이다.
 
Service Manifest : application에서 사용하려는 서비스에 대한 Configure 정보
 
그림으로 위에서 설명한 내용들을 표현해보면, 아래와 같이
Application 안에 Executable과 Manifest 정보가 함께 들어있고, 제어기에 함께 세트로 배포된다.

Process: File System에 설치되어있는 Excutable 코드를, OS 가 RAM에 올려서 Instance화되서 실제로 실행한 것.
쉽게 말하면 PPT 파일이 컴퓨터에 설치돼있을때, 이걸 실제로 실행하면 하나의 Process 화 된다.
오토사와 무관하게, OS 에서 일반론적으로 사용되는 용어라 여기에 뭐라 설명하기가 애매하다.
 
Machine

쉽게 말해서 하나의 제어기라고 이해하면 쉽다.
 
Machine Manifest:  특정 Application 이나 Excutable에 할당할 수 없는, machine 전체에 해당되는 Configuration 정보를 갖고 있는 파일 아래와 같은 정보를 갖는다.
(configured Machine States and Function Group States, resource groups, access right groups, scheduler
configuration, SOME/IP configuration, memory segmentation.)
 
Exeuction Management
Adaptive Autosar의 OS가 실행된 후 , 최초로 실행시키는 Process가 EM이다.
State에 따라 Application Process의 실행,종료 등을 관리한다.
 
※ processed Manifest:
앞에서 Manifest의 정의는 Arxml 형태의 Autosar Configuration 결과물이었음.
그런데 arxml은 내용이 복잡하고, 사용자 편의성이 떨어지기 때문에 오토사 표준에서는 ARXML로 작성된 내용을 제어기에서 사용하기 좋게 platform-specific 하게 바꿔서 사용하는 것을 가이드하고 있음.
(예를 들면 json 형태의 파일이 사용하기 편리함)
그렇게 해서 변경된 Manifest를 Processed manifest라고 지칭한다.
개발과정에서 미리 convert 할 수도 있고, 또는 machine에서 직접 Convert 할 수도 있고 그것은 구성하기 나름.
 
전체적인 구조를 그림으로 나타내보면 아래와 같다.

 
- OS가 실행 된 후, 최초로 실행시키는 Process(SW)가 EM (Execution management) 이다.
( 리눅스 OS 입장에서는 EM 도 다른 여러가지 SW(executable) 중 하나일뿐이지만,
어댑티브 오토사에서 EM은 App SW가 아니라 특수한 기능을 갖는 SW 모듈로 봐야한다. )
 
State 정보에 따라 EM이 Application Excutable을 실행한다. (process화 한다)
EM 동작에 대한 대한 자세한 얘기는 다른 글에서 상세히 다룬다.

반응형