본문 바로가기

분류 전체보기74

Hook Hook OSEK RTOS에서 “hook”은 시스템 이벤트가 발생할 때 호출되는 사용자 정의 함수를 나타냅니다. OSEK에서 hook 함수는 시스템의 다양한 이벤트 포인트에서 실행되어 사용자가 특정 동작을 수행하도록 하는 확장성을 제공합니다. OSEK 표준은 다양한 유형의 훅을 정의하고 있습니다. 1. Startup Hook: • 시스템이 초기화될 때 호출되는 훅입니다. • 사용자가 초기화 코드를 추가하거나 특정 동작을 수행하도록 하는 데 사용됩니다. 2. Error Hook: • 오류가 감지되면 호출되는 훅입니다. • 시스템 에러 처리를 위해 사용자가 특정 코드를 추가할 수 있습니다. 3. PreTaskHook: • 각 태스크가 실행되기 전에 호출되는 훅입니다. • 태스크 실행 전에 특정 동작이 필요한.. 2024. 1. 21.
Alarm & Event Alarm OSEK RTOS에서 알람(Alarm)은 시간 주기에 따라 태스크를 활성화하는 데 사용되는 메커니즘입니다. 알람은 특정 카운터와 연결되어 있으며, 카운터가 특정 값에 도달하면 알람이 트리거되어 해당 알람과 연결된 태스크가 실행됩니다. Alarm을 추가하는 실습을 진행하며 이해하는 시간을 가지겠습니다. OIL파일을 수정하여 Counter와 alarm을 추가 COUNTER counter1{ MINCYCLE = 1; MAXALLOWEDVALUE = 127; TICKSPERBASE = 1; }; ALARM alarm1{ COUNTER = counter1; ACTION=ACTIVATETASK{ TASK=Task1; }; AUTOSTART = TRUE{ ALARMTIME = 5; CYCLETIME = 1.. 2024. 1. 20.
Task OSEK RTOS에서의 Task에 대해 알아보겠습니다. Task Task는 실행되어야 하는 코드 블록을 나타내며, 시스템의 주요 기능을 수행하는 데 사용됩니다. 각 태스크는 우선순위를 가지며, 시스템은 우선순위에 따라 태스크를 스케줄링하여 실행합니다. 작업 수행: 태스크의 주요 역할은 특정 작업 또는 일련의 작업을 수행하는 것입니다. 작업은 시스템의 요구사항에 따라 다양하게 정의될 수 있으며, 예를 들어 센서 읽기, 데이터 처리, 통신 등이 해당될 수 있습니다. 우선순위 지정: 각 태스크는 특정 우선순위를 가지며, 시스템은 이 우선순위에 따라 태스크를 스케줄링합니다. 높은 우선순위를 가진 태스크는 낮은 우선순위를 가진 태스크보다 더 높은 우선순위로 실행됩니다. 스케줄링 및 동기화: OSEK RTOS는 멀.. 2024. 1. 20.
OSEK project 기초 OSEK 프로젝트의 파일구조와 관리에 대해 알아보았기에 기본적인 함수를 사용하고 코드를 작성해보며 어떠한 구조로 이루어져있는지 알아보는 시간을 가지겠습니다. 첫번째로 Hello World를 출력하는 프로그램을 작성해보도록 하겠습니다. 1. Hello World bsw.cpp파일과 bsw.h파일, asw.c 파일과 conf.oil파일을 수정하면됩니다. #include “bsw.h” TASK(Task1) { printfSerial(“Hello World\n”); TerminateTask(); } TASK Task1{ PRIORITY = 1; STACK = SHARED; SCHEDULE = FULL; //preemptive AUTOSTART = TRUE; //자동시작 ACTIVATION = 1; }; 위 코드.. 2024. 1. 20.
OSEK project 생성과 파일구조 실습환경 구축을 성공하였으니 실습을 진행해봅시다. 실습은 IDE를 Eclipse를 사용합니다. 이를 통해 프로젝트 관리, 소스코드/Oil 파일 편집, 빌드 등을 할 수 있습니다. Termite라는 경량 시리얼 통신도구를 사용하여 Host target 간의 통신을 확인 할 수 있습니다. 프로젝트를 생성 1. File -> New -> RT-Druid v3 Oil and C/C++ Projects를 선택합니다. 2. Project name를 지정하고 Tool chains에 Cygwin GCC를 지정합니다 3. 사용할 소스코드를 복사 합니다. 4. 프로젝트 우클릭 -> "Build Project" 를 선택 5. 커널 라이브러리 및 바이너리 파일 확인 6. avrdude로 하드웨어에(아두이노)에 flash 7... 2024. 1. 18.
OSEK RTOS 실습 환경 구축 OSEK RTOS에 대해 알아보았으니 실습환경을 구축해보겠습니다. 저는 ERIKA Enterprise RTOS를 사용하여 실습환경을 구축하겠습니다. 진행하기 전에 간단하게 ERIKA Enterprise RTOS 에 대해 알아보겠습니다. ERIKA Enterprise RTOS ERIKA Enterprise (또는 ERIKA3)는 실시간 임베디드 시스템에 사용되는 실시간 운영 체제 커널로서, OSEK/VDX 표준을 기반으로 하는 오픈 소스 실시간 운영 체제입니다. ERIKA Enterprise RTOS의 몇 가지 주요 특징과 구성 요소는 다음과 같습니다. OSEK/VDX 호환성 ERIKA Enterprise는 OSEK/VDX 표준을 준수하며, 이는 실시간 자동차 시스템을 위한 표준화된 운영 체제 API를 제.. 2024. 1. 17.