OSEK - NM Network Management 네트워크 관리는 ECU간 커뮤니케이션의 안전성과 신뢰성을 보장하기 위해 사용된다. 이를 통해 각 노드를 허가된 범위내에서 접근할 수 있고, 일시적인 고장과 관련해 최대 허용치를 설정하며, 네트워크 관련 진단 기능을 지원할 수 있다. 전장 분야에서 사용하는 NM(Network Management) 구현 방법은 몇 가지 방식으로 구분된다. OSEK은 위 표와 같이 Direct OSEK NM과 Indirect OSEK NM을 제공한다. OSEK NM 중 주로 DIRECT OSEK NM이 사용되니 DIRECT OSEK NM에 대해 설명한다. DIRECT OSEK NM 동일 버스내 각 ECU들은 순서를 가지며 따라서 자신의 ID(Souce)와 목적 ID(Destination)를 .. OSEK - COM Communication OSEK COM의 가장 큰 특징은 메시지를 전송 단위로 하는 publish/subscribe 통신 모델을 사용하며, 다양한 통신 옵션을 제공한다는 점이다. OSEK은 CCCB(Communication Conformance Class)를 지원한다. - Unqueued Messages - Queued Messages 태스크와 ISR이 메시지를 읽고 쓰는 접근자이며, 접근 타입은 SENT 와 RECEIVED가 있다. 메시지 접근은 메시지 버퍼를 바로 접근할 수 있고, 메시지 복사를 통한 간접 접근을 할 수 있다. Message Communication Model 태스크 및 ISR간 통신은 메시지를 통해 이뤄진다. 메시지는 publish / subscribe 방식으로 전송된다. 송신 태.. OSEK - OS(3) Counters and Alarms 임베디드 시스템에서는 일정 간격을 두고 되풀이되는 태스크가 존재한다. OSEK OS는 이런 프로세스를 처리하기 위한 두 단계의 컨셉을 제공한다. 알람과 카운터이다. 카운터는 OS 객체로 시시각각 변하는 틱(tick)의 갯수를 추적한다. 되풀이되는 이벤트는 특정한 카운터의 구현으로 등록된다. 카운터의 특정 상수는 OIL 구성 파일에서 정의된다. 카운터는 시스템 타이머로 알람에 의해 사용된다. 관련된 API : GetCounterInfo / GetCounterValue / CounterTrigger Alarms alarm management는 counter management 위에서 구성된다. 일정한 카운터 값에서 태스크를 실행하거나 이벤트를 발생시키거나 콜백 함수를 부르.. OSEK - OS (2) Resoure Management 태스크나 인터럽트의 공유 자원에 대한 동시다발적인 접근을 제어하기 위해 사용되며, 모든 CC에서 제공된다. 자원 관리는 다음을 보증한다. - 두 개 이상의 모듈이 동일한 자원을 동일한 시간에 소유할 수 없다. - 자원을 소유하고 있는 동안 우선 순위 역전은 발생하지 않는다. - 데드락은 발생하지 않는다. - 태스크,인터럽트는 LIFO 원리에 따라 자원을 요청/해제할 수 있다. Access to Resource - DeclareResource() : 자원의 존재를 선언한다. - GetResource() : 자원의 사용을 시작한다. - ReleaseResource() : 자원의 사용을 마친다. - RESOURCE 정의를 통해 시스템 구성 단계에서 정의되어야 한다. - 우선순.. OSEK - OS (1) OSEK OS 개요 OSEK OS는 기본적인 실시간 운영체제를 정의한다. 구체적으로 멀티 태스킹, 이벤트/자원 관리, 인터럽트 관리, 알람, 에러 처리 다섯 가지 기능을 제공한다. 멀티 태스킹이란 한 CPU 위에서 여러 개의 태스크를 동시에 수행시키는 기능을 의미한다. OSEK OS를 통해 병렬적으로 여러 프로세스가 제한된 시간을 지켜서 작업을 수행할 수 있다. CPU 점유를 위해 경쟁하는 요소들은 태스크, 인터럽트가 있다. 이런 프로세스의 우선순위를 정하고 실제 어떤 프로세스가 CPU를 점유할지를 판단하는 것이 스케줄러이다. 앞으로 태스크, 인터럽트, 스케줄러에 대해 알아보도록 하겠다. Processing Levels OSEK은 세가지 프로세스 레벨을 정의한다 : Interrupt level, Logi.. OSEK - Overview Motivation & Goal of OSEK 애플리케이션 외적인 부분의 개발 및 유지보수관리 비용이 크다. 서로 다른 제조사간 제어기 호환성이 떨어진다. -> 가능한 한 추상적이고 애플리케이션에 독립적인 사양을 통해 애플리케이션 소프트웨어의 이식성을 높이고, 재활용성을 크게 향상시키자! Why OSEK? 이미 다른 오픈소스 RTOS가 있지만 이들 OS의 문제는 자동차 산업에 특화되어 있지 않다는 점이다. 예) 자동차 산업에 필요한 만큼 실시간이지 않으며, API가 동기 비동기 조합 task scheduling에 이상적이지 않다. System philosophy, Advantage Standardized interface : C와 같이 사용가능 Scalability : 각기 다른 CC(Conformanc.. OSEK - 역사 CLASSIC AUTOSAR를 이해하기 위해 먼저 OSEK을 이해하는 것이 좋다. 왜냐하면 CLASSIC AUTOSAR는 OSEK을 확장한 개념이기 때문이다. 플랫폼 통합의 효과 현재 휴대폰 운영체제는 크게 안드로이드와 IOS로 나뉜다. 개발자가 애플리케이션을 개발하고 싶을 경우, 안드로이드용 따로 IOS용 따로 두 번 작업해야하는 번거로움이 있다. (크로스 개발이나 변환 도구를 사용한다고 해도 결국 두 애플리케이션은 본질적으로 같지 않다.) 모든 휴대폰 운영체제가 동일하다면 애플리케이션 개발자들이 훨씬 개발에 집중하고 중복된 일을 줄일 수 있을 것이다. 자동차에 들어가는 전자 부품도 휴대폰과 다를 바 없다. 동일한 제어기를 동일한 회사에서 개발할 경우 하드웨어에 따라 플랫폼이 달라지고 달라진 플랫폼에 .. 싱가포르 출장 두 번째 업무 : 첫 번째 구글 테스트 수트 생성 순서가 좀 바뀐 것 같지만 각각의 구글 테스트 수트를 통합해서 실행하고 리포트를 생성하는 첫 번째 업무는 잘 마무리되었다. 첫 번째 업무를 수행하면서 배운 내용들은 이후에 블로그에 정리해야겠다. 이제 구글 테스트 수트를 수행해보자! 근데 구글 테스트가 뭐지.. 내가 생각해도 어이가 없다. 간단하게 구글 테스트에 대한 구글링을 수행했다. (라임 지렸다..) 구글 테스트는 구글에서 개발된 C++ 테스트 프레임 워크이다. 인터넷에서 라이브러리를 쉽게 구할 수 있다. ASSERT_%조건% 혹은 EXPECT_%조건%으로 테스트한다. ASSERT는 실패하면 즉시 바로 함수를 빠져나가고 EXPECT는 그냥 계속 진행한다는 차이점이 있다. 기본적으로 테스트를 모두 돌린 후, 결과 확인을 통해 어떤 테스트가 실패했는지를.. 이전 1 2 3 4 다음