목록분류 전체보기 (114)
승코딩당당당
기존에는 GPIO 레지스터를 직접 제어하는 방식(Bare-Metal)으로 LED Blinking을 구현해보았다.https://xeungcoding.tistory.com/64 [STM32] GPIO 레지스터 직접 제어 – LED Blinking이번 실습에서는 STM32 MCU 기반 개발 보드인 Nucleo-L073RZ를 사용하여 GPIO 레지스터를 직접 제어하는 방식(Bare-Metal)으로 LED Blinking을 구현하였다.HAL 라이브러리나 CubeMX와 같은 고수준 추상화 도구를xeungcoding.tistory.com 이번 글에서는 해당 방식을 확장하여,HAL(Hardware Abstraction Layer) 기반의 GPIO 제어 방식으로 LED Blinking을 구현해보고자 한다.STM32에서 ..
임베디드 시스템은 가전제품, 자동차, 로봇, 의료기기 등 특정 목적의 기기 내부에 마이크로컨트롤러(MCU)와 소프트웨어를 내장하여 동작하는 전용 컴퓨터 시스템이다.범용 컴퓨터와 달리 미리 정해진 기능만 수행하며, 제한된 자원 환경에서 안정적이고 실시간으로 동작해야 한다는 특징을 가진다. 임베디드 시스템은 하드웨어와 소프트웨어가 밀접하게 결합된 구조를 가지며, 이를 제어하는 펌웨어(Firmware)는 하드웨어의 특성을 직접 다루는 핵심 요소이다.따라서 임베디드 개발자는 단순한 소프트웨어 개발자가 아니라, 하드웨어 특성을 이해하고 제어할 수 있는 펌웨어 개발자라고 볼 수 있다. 시스템 구성 측면에서는 입력 센서, 메인 프로세서, 출력 액추에이터로 이루어진 구조를 가지며,MCU는 CPU, 메모리, 각종 인터페..
AVRAVR이란?1996년 아트멜 사에서 개발된 하버드 구조를 가진 8비트 RISC 단일칩 마이크로컨트롤러이다.하버드 아키텍처: 명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 아키텍처명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것이 동시에 가능출시 당시 AVR은 프로그램을 저장하기 위해 단일칩 플래시메모리를 사용한 최초의 마이크로컨트롤러 중 하나이다.당시 다른 마이크로 컨트롤러는 ROM, EPROM, EEPROM을 사용했다. AVR의 종류 6가지tinyAVR - ATtiny 시리즈0.5~8 kB 프로그램 메모리6~32핀 패키지제한된 주변 장치(peripheral) 세트megaAVR - ATmega 시리즈8~256 kB 프로그램 메모리28~100핀 패키지확장된 명령어 집합 (곱셈 명령..
이번 실습에서는 STM32 MCU 기반 개발 보드인 Nucleo-L073RZ를 사용하여 GPIO 레지스터를 직접 제어하는 방식(Bare-Metal)으로 LED Blinking을 구현하였다.HAL 라이브러리나 CubeMX와 같은 고수준 추상화 도구를 사용하지 않고, 메모리 맵에 정의된 레지스터 주소에 직접 접근하여 GPIO 클럭 활성화, 핀 모드 설정(Output), 출력 데이터 제어(ODR)를 순차적으로 구성하였다.특히 PA5 핀을 출력(GPIO Output)으로 설정한 뒤, ODR 레지스터에 대한 XOR 연산을 이용한 토글 방식과 busy-wait 기반 delay 함수를 사용하여 LED가 주기적으로 깜빡이도록 구현하였다. 본 실습을 통해 아래를 직접 코드로 확인할 수 있었다.STM32가 32비트 MCU..
문제[C++] 백준 1929: 소수 구하기 SILVER 3https://www.acmicpc.net/problem/1929 접근 방법이 문제는 주어진 구간 [M, N] 안에 있는 모든 소수를 출력하는 문제다.가장 전형적으로 떠올릴 수 있는 방법은 에라토스테네스의 체를 사용하는 것이다.https://xeungcoding.tistory.com/58 소수(prime number) 구하기 - 에라토스테네스의 체그래프나 탐색 알고리즘뿐만 아니라, 코딩 테스트에서는 수학적 개념을 코드로 구현하는 문제도 자주 출제된다.그중 대표적인 주제가 바로 소수 구하기이다.소수는 정의 자체는 단순하지만, 입xeungcoding.tistory.com 아이디어는 다음과 같다:1) 먼저 0 ~ N까지 담을 수 있는 배열을 만든다.이..
문제[C++] 백준 13022: 늑대와 올바른 단어 SILVER 2https://www.acmicpc.net/problem/13022 접근 방법이 문제에서 “올바른 단어”는 w^n o^n l^n f^n 꼴의 문자열이 하나 이상 이어 붙은 형태여야 한다.즉,w가 n번바로 뒤에 o가 n번바로 뒤에 l이 n번바로 뒤에 f가 n번이 순서로 나와야 하고, 이런 블록이 여러 번 이어붙을 수 있다. 그래서 문자열을 왼쪽부터 차례대로 읽으면서 각 블록의 n을 먼저 구한 뒤,해당 구간이 정확히 w^n o^n l^n f^n 패턴을 만족하는지 확인하는 방식으로 풀었다. 상세 아이디어1) 한 블록의 w 개수(n) 구하기int n = 0;for (int i = index; i index에서 시작해서 문자열을 보면서,처음으로 ..
미래자동차는 단순히 동력원이 바뀐 자동차가 아니라, 전동화·자율주행·연결성을 기반으로 한 고도화된 전기·전자 시스템의 집합체라고 볼 수 있다. 특히 내연기관 중심의 기계 부품에서 벗어나, 전장부품과 소프트웨어가 차량 성능과 경쟁력을 좌우하는 핵심 요소로 자리 잡고 있다.🚗 이 글에서는 먼저 미래자동차 전동화가 왜 필요한지와 글로벌 자동차 산업의 변화 흐름을 살펴보고, 전기차·수소차·자율주행차로 대표되는 미래자동차의 핵심 전장부품과 그 중요성을 정리한다. 이어서 배터리, 모터, 전력변환장치 등 주요 전장부품에서 발생하는 열 문제와 이를 해결하기 위한 열관리의 필요성을 중심으로 설명한다.⚡ 또한 열전달의 기본 원리인 전도, 대류, 복사를 바탕으로 미래자동차에서 적용되는 열관리 기술과 방열 방식이 어떻게 구..
전기자동차의 핵심은 단연 배터리이며, 그 중심에는 리튬이온 배터리와 이를 관리하는 배터리관리시스템(BMS)이 있다. 전기자동차가 내연기관 차량과 달리 동력을 저장하고 사용하는 방식은 배터리의 구조와 특성에 크게 의존하며, 이로 인해 배터리 기술은 전기차 성능과 안전성을 결정짓는 가장 중요한 요소로 자리 잡았다.🚗 이 글에서는 먼저 리튬이온 배터리가 어떤 구조로 이루어져 있고, 리튬이온의 이동을 통해 어떻게 충전과 방전이 이루어지는지를 정리한다. 또한 배터리 셀의 형태와 데이터시트에 포함된 주요 성능 지표를 통해 배터리를 평가할 때 어떤 요소들을 살펴봐야 하는지도 함께 다룬다.🛠️ 이어서 전기자동차에서 배터리가 셀, 모듈, 팩 단위로 구성되는 방식과, 다수의 배터리를 안전하고 효율적으로 사용하기 위해 ..
자동차는 단순한 이동수단을 넘어, 기술과 사회 변화가 가장 빠르게 반영되는 대표적인 시스템이다. 과거에는 엔진과 기계 구조가 핵심이었다면, 현재의 자동차는 전자제어, 소프트웨어, 통신, 인공지능 기술이 결합된 복합 시스템으로 발전하고 있다.🚗 이 글에서는 먼저 자동차가 법·표준·일반적인 관점에서 어떻게 정의되는지 살펴보고, 사용되는 동력원과 기본적인 구조를 정리한다. 이어서 엔진, 차체, 샤시와 같은 물리적 구성 요소뿐만 아니라 전자 조향·전자 제동과 같은 제어 기술이 자동차에서 어떤 역할을 하는지 살펴본다.🔧 또한 스마트 자동차와 자율주행 기술의 개념을 중심으로, 자율주행이 어떤 원리로 동작하며 단계별로 어떻게 발전해왔는지 정리한다. 마지막으로 자율주행과 관련된 법·제도, 그리고 SDV(Softwa..
그래프나 탐색 알고리즘뿐만 아니라, 코딩 테스트에서는 수학적 개념을 코드로 구현하는 문제도 자주 출제된다.그중 대표적인 주제가 바로 소수 구하기이다.소수는 정의 자체는 단순하지만, 입력 범위가 커질 경우 효율적인 판별 방법을 알고 있는지를 묻는 문제가 많다.이번 글에서는 소수의 개념과 함께, 소수를 구하는 대표적인 알고리즘인 에라토스테네스의 체를 중심으로 정리해보려고 한다. ✍️ 소수란?소수(Prime Number) 란 1보다 큰 자연수 중에서, 자신보다 작은 두 자연수를 곱해 만들 수 없는 수를 말한다.같은 의미로, 아래를 소수라고 정의한다.1과 자기 자신 외에약수가 존재하지 않는 수예를 들어, 2, 3, 5, 7, 11 … 은 소수이지만 4(2×2), 6(2×3), 8(2×4) 등은 소수가 아니..