목록MCU (5)
승코딩당당당
📌 개요임베디드 시스템은 제한된 메모리와 낮은 연산 자원을 기반으로 동작하는 경우가 많기 때문에, 동일한 기능을 구현하더라도 코드를 어떻게 작성하느냐에 따라 성능과 자원 사용량이 크게 달라진다. 특히 MCU 환경에서는 ROM과 RAM이 모두 한정되어 있고, 실행 속도 또한 시스템 안정성과 직결되기 때문에 C 코드 최적화는 선택이 아니라 필수에 가깝다. 이번 글에서는 임베디드 C 코드 최적화를 메모리 관점, 실행 속도 관점, 데이터 처리 관점, 흐름 제어 관점으로 나누어 정리하였다. 단순히 “빠르게 만드는 방법”이 아니라, 메모리 절약과 실행 속도 향상 사이의 균형을 어떻게 잡아야 하는지에 초점을 두고 살펴본다. 또한 자료형 선택, 타입 변환 최소화, 비트 연산 활용, 루프 최적화, 인라인 함수 사용 등..
이번 실습에서는 Infineon AURIX TC275와 Easy Module Shield v1을 이용해 하나의 ERU 모듈에서 두 개의 외부 인터럽트를 동시에 처리하는 Multi-interrupt 구성을 구현한다. P02.0과 P02.1에 연결된 두 개의 버튼을 각각 ERS2, ERS3로 매핑하고, 이를 통해 Blue LED(P10.2)와 Red LED(P10.1)의 상태를 독립적으로 토글하도록 설계했다.ERS2 → ERU0 → ISR0는 Blue LED 토글, ERS3 → ERU1 → ISR1은 Red LED 토글을 담당하며, 두 인터럽트 소스가 서로 간섭하지 않도록 SCU_EICR, SCU_IGCR, SRC_SCU_SCU_ERU0/1 레지스터를 각각 분리해서 설정하는 것이 핵심이다. 특히 ERS3 경..
마이크로컨트롤러에서 Timer(System Timer)는단순한 시간 측정을 넘어, 인터럽트 발생, 외부 이벤트 계수, 신호 캡처, 그리고 PWM 파형 생성까지 담당하는 핵심 주변장치이다. STM32를 포함한 Cortex-M 계열 MCU는 코어 내부에 SysTick(System Timer)를 기본적으로 제공하며,이 타이머는 주로 1ms 주기의 시스템 시간 관리와 RTOS의 태스크 스케줄링, Delay 구현 등에 활용된다. 또한 MCU 내부의 일반 Timer는 Prescaler(PSC), Counter(CNT), Auto Reload Register(ARR), Capture/Compare Register(CCR)와 같은 레지스터를 기반으로 동작하며, 다양한 모드를 통해 시간 기반 제어와 신호 처리를 가능하게..
임베디드 시스템은 하드웨어와 소프트웨어가 긴밀하게 연결된 구조를 가지며, 그 중심에는 센서와 액츄에이터, 그리고 이들을 연결하는 다양한 인터페이스가 존재한다.이 글에서는 임베디드 시스템의 기본적인 하드웨어 구조부터 입력 센서와 출력 액츄에이터의 역할을 살펴보고, 아날로그·디지털 신호의 차이와 신호 변환 과정에 대해 정리한다. 또한 MCU와 주변 장치 간 통신을 가능하게 하는 인터페이스 개념을 중심으로 ADC, GPIO, UART, I2C, SPI와 같은 대표적인 통신 방식의 특징을 비교하며 이해한다.통신의 방향성과 데이터 전송 방식, 데이터율(Baud rate, Bit rate)의 개념까지 함께 다루어 임베디드 시스템에서 인터페이스가 왜 중요한지를 흐름 있게 설명한다. 마지막으로 UART 기반 시리얼 통..
임베디드 시스템은 가전제품, 자동차, 로봇, 의료기기 등 특정 목적의 기기 내부에 마이크로컨트롤러(MCU)와 소프트웨어를 내장하여 동작하는 전용 컴퓨터 시스템이다.범용 컴퓨터와 달리 미리 정해진 기능만 수행하며, 제한된 자원 환경에서 안정적이고 실시간으로 동작해야 한다는 특징을 가진다. 임베디드 시스템은 하드웨어와 소프트웨어가 밀접하게 결합된 구조를 가지며, 이를 제어하는 펌웨어(Firmware)는 하드웨어의 특성을 직접 다루는 핵심 요소이다.따라서 임베디드 개발자는 단순한 소프트웨어 개발자가 아니라, 하드웨어 특성을 이해하고 제어할 수 있는 펌웨어 개발자라고 볼 수 있다. 시스템 구성 측면에서는 입력 센서, 메인 프로세서, 출력 액추에이터로 이루어진 구조를 가지며,MCU는 CPU, 메모리, 각종 인터페..