728x90
반응형

2025/01/18 5

FreeRTOS 실전 예제

FreeRTOS 실전 예제FreeRTOS는 실시간 운영체제(RTOS)로서, 임베디드 시스템 개발자들에게 효율적인 태스크 관리와 자원 제어를 제공합니다. 이번 포스팅에서는 FreeRTOS를 활용한 간단한 IoT 프로젝트를 구현해보겠습니다. 프로젝트는 온도 및 습도 센서 데이터 수집 및 전송, OLED 디스플레이 제어, 태스크 및 자원 관리 최적화를 중심으로 구성됩니다.프로젝트 목표온도 및 습도 센서 데이터 수집 및 전송: 센서를 통해 데이터를 읽고 이를 UART 또는 BLE를 통해 전송합니다.OLED 디스플레이 제어: 수집된 데이터를 OLED 디스플레이에 출력합니다.태스크 및 자원 관리 최적화: FreeRTOS의 태스크 우선순위, 큐, 세마포어 등을 활용해 시스템 성능을 최적화합니다.프로젝트 준비물MCU:..

FreeRTOS 2025.01.18

FreeRTOS와 CMSIS-RTOS v1 비교 및 활용 방법

FreeRTOS와 CMSIS-RTOS v1 비교 및 활용 방법FreeRTOS는 전 세계적으로 널리 사용되는 실시간 운영 체제(RTOS)입니다. CMSIS-RTOS v1는 ARM에서 제공하는 추상화 레이어로, 다양한 RTOS에서 공통적으로 사용할 수 있는 API를 제공합니다. 이 글에서는 CMSIS-RTOS v1와 FreeRTOS의 확장 기능을 비교하고, FreeRTOS API 사용법 및 CMSIS v2와의 비교와 마이그레이션 전략을 소개하겠습니다.1. CMSIS-RTOS v1와 FreeRTOS 확장 기능CMSIS-RTOS v1의 주요 특징일관된 API 제공: 다양한 RTOS에서 동일한 API로 코드를 작성할 수 있도록 설계되었습니다.ARM 에코시스템 최적화: Cortex-M 기반의 임베디드 시스템 개발을..

FreeRTOS 2025.01.18

정렬 알고리즘 - 버블 정렬, 선택 정렬, 삽입 정렬

정렬 알고리즘 - 버블 정렬, 선택 정렬, 삽입 정렬정렬 알고리즘은 데이터를 정렬하는 가장 기초적인 알고리즘 중 하나로, 프로그래밍 입문자부터 고급 개발자까지 모두에게 중요한 주제입니다. 오늘은 대표적인 세 가지 정렬 알고리즘인 버블 정렬, 선택 정렬, 삽입 정렬을 살펴보고 각 알고리즘의 Java와 C 예제를 함께 제공하겠습니다.1. 버블 정렬 (Bubble Sort)버블 정렬은 두 인접한 원소를 비교하여 정렬하는 방식으로, 가장 큰 원소가 배열의 끝으로 이동하는 것을 반복합니다. 이름처럼 거품이 위로 올라가는 것과 유사한 방식으로 작동합니다.알고리즘 설명인접한 두 원소를 비교하여 정렬되지 않은 경우 위치를 바꿉니다.각 패스를 반복할 때마다 가장 큰 원소가 배열의 끝으로 이동합니다.배열이 정렬될 때까지 ..

Bash Shell Script 표준 입력/출력 및 리다이렉션

Bash Shell Script 표준 입력/출력 및 리다이렉션Linux Bash에서 Shell Script를 작성할 때 기본 명령어와 표준 입력/출력, 리다이렉션은 필수적으로 알아야 할 중요한 개념입니다. 이번 포스팅에서는 표준 입력/출력과 이를 활용한 리다이렉션(>, >>, , |)에 대해 설명하고, 예제를 통해 이해를 돕겠습니다.표준 입력/출력 기본 개념Linux 시스템에서는 프로세스가 데이터를 주고받는 데 사용되는 세 가지 표준 스트림이 있습니다.표준 입력 (Standard Input, stdin)기본 파일 디스크립터 번호: 0사용자 또는 파일로부터 데이터를 읽어들이는 스트림입니다.표준 출력 (Standard Output, stdout)기본 파일 디스크립터 번호: 1프로세스가 처리한 데이터를 화면에..

FreeRTOS 디버깅 및 문제 해결

FreeRTOS 디버깅 및 문제 해결FreeRTOS를 활용한 프로젝트를 진행하다 보면 디버깅과 문제 해결이 필수적입니다. 이 글에서는 FreeRTOS 디버깅에 필요한 도구와 기법, 주요 문제와 해결 방법을 정리하였습니다. CMSIS v1을 기반으로 디버깅을 진행할 때 특히 유용한 정보를 다룹니다.디버깅 도구 및 주요 기법1. 태스크 상태 모니터링FreeRTOS에서는 태스크의 상태를 모니터링하여 디버깅 정보를 얻을 수 있습니다. 주요 상태는 다음과 같습니다:Running: 현재 CPU에서 실행 중인 태스크.Ready: 실행 대기 상태.Blocked: 이벤트나 시간 대기 중인 상태.Suspended: 실행이 중단된 상태.예제 코드: 태스크 상태 출력#include "FreeRTOS.h"#include "ta..

FreeRTOS 2025.01.18
728x90
반응형