승코딩당당당
[AUTOSAR] OS Task 기반 LED 제어 실습 (TRK-MPC560XB) 본문
이번 실습에서는 AUTOSAR OS 환경에서 Task를 생성하고, 이를 주기적으로 실행하여 LED를 제어하는 과정을 수행하였다. 단순히 while문으로 LED를 제어하는 것이 아니라, AUTOSAR의 Task와 Alarm 기반 스케줄링 구조를 활용하여 실시간 시스템에서의 동작 흐름을 이해하는 데 목적이 있다.
특히, OS 레벨에서 Task가 어떻게 생성되고 실행되는지, 그리고 해당 Task가 실제 하드웨어 제어로 이어지는 과정을 직접 구현해보며 AUTOSAR 구조에 대한 이해를 높일 수 있었다.
실습 환경
- 보드: TRK-MPC560XB
- MCU: MPC5606B
- 개발 환경: mobilgene C Studio
- AUTOSAR Classic Platform 기반
실습 목표
- AUTOSAR OS Task 생성 및 설정
- Task를 Application에 등록
- Alarm을 이용한 주기 실행 구조 이해
- GPIO 레지스터 제어를 통한 LED 토글 구현
Task 생성 및 설정
AUTOSAR 설정 파일(ARXML)에서 OsTask_LED_Init Task를 생성하였다.
- Activation: 1
- Priority: 1
- Schedule: FULL

Task는 AUTOSAR OS에서 관리되는 실행 단위로, 해당 설정을 통해 OS가 Task의 실행 우선순위와 스케줄링 방식을 결정하게 된다.
Application 연결
생성한 Task는 OsApplication에 등록하였다.
이 과정은 매우 중요한 단계로, Task를 생성하는 것만으로는 실행되지 않으며, 반드시 Application에 연결되어야 OS가 해당 Task를 실행 대상으로 인식한다.


Task 구현
Task 내부에서는 LED를 ON/OFF하는 로직을 구현하였다.
static 변수를 활용하여 상태를 유지하고, Task가 실행될 때마다 값을 반전시켜 LED가 깜빡이도록 구성하였다.
GPIO 제어는 레지스터 직접 접근 방식으로 수행하였다.
- LED ON: STD_LOW 출력
- LED OFF: STD_HIGH 출력
이 과정을 통해 MCU의 포트를 직접 제어하는 방식과 AUTOSAR 환경에서의 하드웨어 제어 흐름을 동시에 확인할 수 있었다.


동작 구조
이번 실습의 전체 흐름은 다음과 같다.
Alarm → Task Activate → Task 실행 → GPIO 제어
즉, AUTOSAR OS가 Task를 스케줄링하고, 해당 Task가 실행되면서 하드웨어를 제어하는 구조이다.
단순 반복문이 아닌 OS 기반 실행 구조를 사용한다는 점이 핵심이다.
실습 결과
Task가 주기적으로 실행되며 LED2가 일정한 주기로 깜빡이는 것을 확인하였다.
이를 통해 AUTOSAR OS의 Task 스케줄링과 실제 하드웨어 제어가 정상적으로 연결되어 동작함을 검증할 수 있었다.

'개발 > 임베디드' 카테고리의 다른 글
| [AUTOSAR] Communication 구조와 BSW 통신 스택 정리 (0) | 2026.03.24 |
|---|---|
| [AUTOSAR] AUTOSAR 기반 소프트웨어 플랫폼과 OS 구조 정리 (0) | 2026.03.20 |
| [최적화] 임베디드 C 코드 최적화 전략 정리 (1) | 2026.03.03 |
| [메모리 구조] 변수 선언 방식에 따른 메모리 영역 확인 (0) | 2026.02.26 |
| [TC275] 4자리 FND 카운터 구현하기 (스위치 제어) (0) | 2026.02.23 |