반응형

분류 전체보기 873

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

해시 테이블[ Hash Table ] 및 해싱 [ Hashing ]

해시 테이블( Hash Table ) 및 해싱 ( Hashing )해시 테이블은 효율적으로 데이터를 저장하고 검색하는 자료 구조입니다. 해싱은 데이터를 해시 함수를 사용해 특정 위치에 매핑하여 저장하는 기법을 말합니다. 이 포스팅에서는 해시 테이블의 기본 개념과 해싱 방법, 그리고 Java와 C로 해시 테이블을 구현하는 방법을 설명합니다.1. 해시 테이블이란?해시 테이블(Hash Table)은 키-값 쌍을 저장하는 자료 구조로, 데이터를 빠르게 검색할 수 있도록 설계되었습니다. 키 값을 해시 함수(Hash Function)에 넣어 해시 값을 생성하고, 이 값을 인덱스로 사용하여 배열 형태의 메모리에 데이터를 저장합니다. 이러한 방식 덕분에 해시 테이블은 평균적으로 O(1)의 시간 복잡도로 데이터를 삽입하..

Bash Shell Script 기본 출력 명령어 [ echo, printf ]

Bash Shell Script 기본 출력 명령어 (echo, printf)Linux Bash Shell Script에서는 출력 명령어를 사용하여 화면에 정보를 표시하거나 파일에 데이터를 기록할 수 있습니다. 이번 포스팅에서는 가장 기본적인 출력 명령어인 echo와 printf에 대해 알아보고, 각 명령어의 사용법과 활용 예제를 함께 살펴보겠습니다.1. echo 명령어echo란?echo는 간단한 문자열 출력 명령어로, Bash에서 가장 기본적으로 사용됩니다. 일반적으로 화면에 텍스트를 출력하거나, 스크립트에서 정보를 사용자에게 전달할 때 사용됩니다.사용법echo [옵션] [출력할 문자열]주요 옵션-n: 출력 후에 줄 바꿈을 하지 않음-e: 백슬래시() 문자를 해석하여 특수 문자를 처리--help: 사용법..

FreeRTOS 이벤트 그룹[ Event Group ] 사용 방법

FreeRTOS 이벤트 그룹( Event Group ) 사용 방법이벤트 그룹의 개념과 활용 사례이벤트 그룹은 FreeRTOS에서 여러 태스크 간의 동기화를 위해 사용되는 강력한 도구입니다. 이벤트 그룹은 비트 필드 형식으로 구성되며, 각각의 비트가 특정 이벤트를 나타냅니다. 이를 통해 여러 이벤트를 관리하고, 태스크 간의 협업을 쉽게 구현할 수 있습니다.이벤트 그룹의 주요 특징비트 기반 동기화: 각 비트는 고유의 이벤트를 나타냅니다.여러 이벤트 처리: 하나의 함수 호출로 여러 이벤트를 동시에 처리할 수 있습니다.효율적인 태스크 관리: 이벤트를 통해 태스크 간의 협업이 간소화됩니다.활용 사례센서 데이터 수집: 여러 센서에서 데이터를 수집한 후 이벤트로 태스크를 트리거.네트워크 통신: 데이터 송수신이 완료된..

FreeRTOS 2025.01.17

트리[ Tree ]와 그래프[ Graph ]의 기초

트리( Tree )와 그래프( Graph )의 기초트리와 그래프는 컴퓨터 과학에서 매우 중요한 자료구조입니다. 이 글에서는 트리와 그래프의 기초적인 개념과 차이점을 이해하고, Java와 C 언어로 기본적인 구현 예제를 통해 학습해 보겠습니다.트리란 무엇인가?트리는 계층적 구조를 가진 자료구조로, 노드와 간선으로 구성됩니다. 트리는 여러 노드가 연결된 구조지만, 특정한 규칙을 가지고 있어 그래프와는 다른 특성을 가집니다.루트 노드 (Root Node): 트리의 최상위에 위치한 노드로, 트리의 시작점입니다.자식 노드 (Child Node): 특정 노드에서 이어져 나오는 노드들입니다.부모 노드 (Parent Node): 자식 노드를 가지는 노드입니다.잎 노드 (Leaf Node): 자식 노드가 없는 노드입니다..

Bash Shell Script 파일 권한 설정과 실행 방법

Bash Shell Script 파일 권한 설정과 실행 방법Linux 환경에서 Shell Script를 작성하고 실행하는 방법은 매우 간단하면서도 기본적인 작업입니다. 이번 포스팅에서는 Shell Script 작성 및 실행을 위한 파일 권한 설정(chmod)과 실행(./script.sh) 방법에 대해 살펴보겠습니다. 간단한 예제를 통해 이해를 돕고자 합니다.1. Shell Script란?Shell Script는 Linux Shell 명령어를 작성한 스크립트 파일로, 일련의 작업을 자동화할 때 사용됩니다. 반복적인 작업이나 복잡한 명령어 실행을 단순화할 수 있습니다.2. Shell Script 작성 및 실행 환경 설정2.1 Shell Script 파일 생성Shell Script 파일은 일반 텍스트 파일로 ..

728x90
반응형