목록BareMetal (2)
승코딩당당당
임베디드 시스템은 가전제품, 자동차, 로봇, 의료기기 등 특정 목적의 기기 내부에 마이크로컨트롤러(MCU)와 소프트웨어를 내장하여 동작하는 전용 컴퓨터 시스템이다.범용 컴퓨터와 달리 미리 정해진 기능만 수행하며, 제한된 자원 환경에서 안정적이고 실시간으로 동작해야 한다는 특징을 가진다. 임베디드 시스템은 하드웨어와 소프트웨어가 밀접하게 결합된 구조를 가지며, 이를 제어하는 펌웨어(Firmware)는 하드웨어의 특성을 직접 다루는 핵심 요소이다.따라서 임베디드 개발자는 단순한 소프트웨어 개발자가 아니라, 하드웨어 특성을 이해하고 제어할 수 있는 펌웨어 개발자라고 볼 수 있다. 시스템 구성 측면에서는 입력 센서, 메인 프로세서, 출력 액추에이터로 이루어진 구조를 가지며,MCU는 CPU, 메모리, 각종 인터페..
이번 실습에서는 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..