본문 바로가기
  • Masacorgi 's Dev Bloggg

분류 전체보기110

[펌웨어] 구조체와 포인터는 왜 중요한가 펌웨어에서 구조체와 포인터는 센서데이터 파싱, 시리얼 통신, 메모리 효율화 등 핵심 기능에 가장 많이 쓰이는 도구이다.펌웨어는 센서 데이터를 바이트 단위로 주고받는다. 이 데이터를 구조체로 정리하고, 포인터로 메모리에 직접 접근하면 코드 가독성 + 속도 둘 다 잡을 수 있다.1.1 구조체란?구조체(struct)는 C언어에서 관련 있는 데이터를 하나로 묶은 사용자 정의 타입이다.1.1.1 예시: 온습도 센서 데이터 구조typedef struct { uint8_t temperature; // 섭씨 온도 uint8_t humidity; // 상대 습도} SensorData;→ 이 구조체로 SensorData라는 이름으로 온습도 값을 모아 다룰 수 있다.(편리함)1.2 포인터란?C언어의 포인터는 메.. 2025. 5. 27.
[임베디드] 펌웨어 구조 : Main Loop, 인터럽트 1. 펌웨어 구조란?펌웨어는 MCU 위에서 동작하며, 센서 데이터를 읽고 처리하고 외부로 전송하는 역할을 한다.이 구조를 이해하면 펌웨어 흐름 분석과 수정에 한 걸음 가까워진다.1.1 main loop 중심 구조펌웨어는 대부분 while(1) 구조의 메인 루프 안에서 반복적으로 특정 작업을 수행한다.1.1.1 Arduino 예제// LED를 0.5초 간격으로 깜빡이게 하는 기본 구조void setup() { pinMode(13, OUTPUT); // 핀 13번을 출력으로 설정 (내장 LED)}void loop() { digitalWrite(13, HIGH); // LED ON delay(500); // 0.5초 대기 digitalWrite(13, LOW); // LED O.. 2025. 5. 27.
[펌웨어] 펌웨어 구조 : Main Loop, 인터럽트 # 1. 펌웨어 구조란?펌웨어는 MCU 위에서 동작하며, 센서 데이터를 읽고 처리하고 외부로 전송하는 역할을 한다. 이 구조를 이해하면 펌웨어 흐름 분석과 수정에 한 걸음 가까워진다.---## 1.1 main loop 중심 구조펌웨어는 대부분 `while(1)` 구조의 메인 루프 안에서 반복적으로 특정 작업을 수행한다.### 1.1.1 Arduino 예제```cpp// LED를 0.5초 간격으로 깜빡이게 하는 기본 구조void setup() { pinMode(13, OUTPUT); // 핀 13번을 출력으로 설정 (내장 LED)}void loop() { digitalWrite(13, HIGH); // LED ON delay(500); // 0.5초 대기 digitalWri.. 2025. 5. 27.
[임베디드] UART 실전 시리얼 패킷 분석 이번에는 우리가 실제로 다루는 센서 → MCU → 시리얼 → PC 흐름에서어떤 데이터가 어떻게 구조화되어 전송되는지를 분석하는 단계를 정리해보았다.1. 시리얼 패킷이란?UART로 데이터를 보낼 때, 한 줄씩 단순 문자만 보내는 경우도 있지만센서 장치나 펌웨어에서는 보통 **정해진 규칙(=패킷 구조)**에 따라 전송돼.1.1 UART 패킷 기본 구조 예시다음은 흔히 쓰이는 시리얼 패킷 포맷이야:[Header] + [Command] + [Data Length] + [Data] + [Checksum]1.1.1 구성 설명:필드명 역할Header시작 표시 (예: 0xAA 0x55)Command명령 코드 (예: READ_TEMP = 0x01)Data Length데이터 길이Data실제 센서값 등Checksum오류 검.. 2025. 5. 25.
[임베디드] UART란 무엇인가? (기초 통신 프로토콜) 이번에는 임베디드와 PC, MCU끼리의 통신에 가장 널리 쓰이는 UART에 대해 정리해보았다. 1. UART란 무엇인가?UART(Universal Asynchronous Receiver/Transmitter)는 MCU와 외부 장치가 비동기 방식으로 직렬 데이터를 주고받는 통신 규약이다.키보드 입력, 센서 데이터 전송, PC와 MCU 간 명령 주고받기 등 임베디드 실무에서 거의 항상 등장하는 통신 방식이다. 1.1 비동기 직렬 통신이란?직렬(serial): 데이터를 한 비트씩 순차적으로 전송비동기(asynchronous): 시계(클럭) 없이, 데이터 시작/끝을 구분하는 신호로 동기화1.1.1 UART 데이터 프레임 구조기본적으로 UART 통신은 다음과 같은 구조로 구성된다[Start Bit] + [Data.. 2025. 5. 25.
[임베디드] GPIO란 무엇인가? 2 이전 GPIO란 무엇인가? 의 GPT 답변에 이어 조금 더 자세히, 코드도 알아보았다.GPIO (General Purpose Input/Output)는 MCU가 외부와 신호를 주고받기 위한 다목적 핀이다.이 핀을 입력 모드(input)로 설정하면 센서의 값을 읽을 수 있고,출력 모드(output)로 설정하면 릴레이, LED, 모터 등을 제어할 수 있다.1.1 입력 모드스위치나 센서를 읽을 때 사용한다.입력 모드는 외부에서 전압이 걸리면 MCU가 이를 감지하는 방식이다. WET 접점을 감시한다고 볼 수 있다.하지만 여기에는 '풀업(Pull-up)' 또는 풀다운(Pull-down) 저항 개념이 꼭 필요하다.1.1.1 풀업 / 풀다운 저항이란?입력 핀은 신호가 연결되지 않으면 부동(floating) 상태가 된.. 2025. 5. 23.
[임베디드] MCU란 무엇인가? 1. MCU란 무엇인가?MCU(Microcontroller Unit)는 말 그대로 작은 컴퓨터다.우리가 사용하는 임베디드 기기 대부분은 이 MCU를 중심으로 동작하며, 센서 신호를 받아 처리하고, 외부로 명령을 내리는 두뇌 역할을 한다. 1.1 MCU의 구성 요소MCU는 아래의 구성 요소를 하나의 칩에 통합한 시스템이다:CPU (중앙처리장치): 연산과 명령 실행Flash 메모리: 프로그램 코드 저장 공간RAM: 프로그램 실행 중 임시 데이터 저장GPIO: 입출력 핀 (센서, 릴레이, LED 등 연결)ADC/DAC: 아날로그 → 디지털 변환 등 신호 처리통신 인터페이스: UART, I2C, SPI 등 외부 기기 연결 1.2 Cortex-M 계열이란?많은 임베디드 기기는 ARM사의 Cortex 시리즈의 코.. 2025. 5. 23.
[임베디드] 임베디드 시스템이란? 우리가 흔히 사용하는 가전제품, IoT 센서, 공장 자동화 기기 속에는 전용 컴퓨터가 하나씩 들어있다.이처럼 특정 목적을 가진 컴퓨터 시스템을 임베디드 시스템(Embedded System)이라고 한다.임베디드 시스템은 보통 우리가 쓰는 일반적인 컴퓨터(OS, 마우스, 화면이 있는)와 달리, 특정한 기능을 수행하는 데 최적화되어 있다. 임베디드 시스템은 대략 이런 흐름으로 구성된다: 센서(입력) -> 마이크로컨트롤러(MCU) -> 처리(펌웨어) -> 출력/통신 센서: 온도, 습도, 접점 등 외부 환경 데이터를 측정MCU: 마이크로컨트롤러. 입력된 데이터를 처리하고 명령 수행펌웨어: MCU 안에 탑재된 프로그램. 하드웨어를 제어함통신: 시리얼, 무선, 이더넷 등을 통해 서버로 데이터 전송 임베디드 시스템은 .. 2025. 5. 23.
임베디드 초보에서 IoT 백엔드 개발자로의 로드맵 본인이 지금 하고 있는 일은 IoT 시스템 개발의 “전초전”이다.기기 조립, 시리얼 통신 등 물리 계층부터 다뤄본 건 이후 개발자로의 전환에도 큰 자산이 될 것이다.이후 백엔드 IoT 개발자로 진화하기 위해 다음 3단계 로드맵을 추천 받았다.🧱 1단계: 임베디드 기초 + 펌웨어 이해목표: 펌웨어 흐름을 읽고, 수정할 수 있을 정도의 능력 확보▶ 기본 전자회로/MCU 이해전압, 전류, 저항, 트랜지스터, 릴레이 등 기초 전자 지식GPIO, ADC, UART, I2C, SPI 등의 MCU 주변장치 동작원리사용 중인 보드가 Cortex-M 계열이면 ARM 기반 구조 이해 필수▶ C 언어 마스터펌웨어는 대부분 C 기반포인터, 비트 연산, 구조체, 메모리 맵 등을 완전히 이해▶ 펌웨어 흐름 분석main loop.. 2025. 5. 22.
꾸준한 아티클 서칭, 작성을 위한 데일리 루틴 소개 아티클을 꾸준히, 부담 없이 작성하기 위한 데일리 루틴과 방법을 소개합니다.특히 IoT 관련 기술 아티클을 쓰려면 너무 거창하게 시작하기보다는, 작게 쪼개서, 하루에 하나씩 쓰는 게 좋습니다.아티클 작성을 위한 데일리 루틴 & 방법 정리1. 주제 쪼개기 (주 1회)일요일 or 월요일에 주제를 나눠둡니다.예: "IoT 백엔드 아키텍처"라는 큰 주제 → 아래처럼 분할날짜 소주제월IoT 전체 시스템 구조 요약화센서 데이터 수집 구조 (MQTT, HTTP 비교)수게이트웨이 역할과 장비 예시목클라우드/백엔드 아키텍처 개념금데이터 시각화 도구 비교 (Grafana vs Kibana)+ Tip: 미리 쪼개두면 "오늘 뭐 쓰지?" 고민 안 해도 됨2. 데일리 작성 루틴 (30~45분)2.1 시간 분배 예시 (하루 30.. 2025. 5. 20.
IoT 관련 아티클 서칭 꿀팁 정리 IoT(사물인터넷) 분야에서 취업에 도움이 될 만한 아티클 주제는 이론보다도 실무와 연계된 기술, 트렌드, 보안, 표준 등과 관련이 있으면 좋습니다. 1. 실무와 직접적으로 연계되는 취업용 추천 아티클 주제1.1 MCU와 RTOS를 활용한 저전력 IoT 시스템 설계 왜 좋은가: 임베디드와 펌웨어 개발 면접에서 매우 자주 등장하는 주제 담을 내용: FreeRTOS 구조와 장점 Sleep 모드, 센서 인터럽트 기반 이벤트 처리 실제 사례: 스마트팜/팩토리에서의 저전력 운용 1.2 MQTT vs CoAP: 경량 IoT 프로토콜의 선택 기준 왜 좋은가: IoT 통신 면접 질문 단골 / MQTT는 기본 담을 내용: 둘의 차이점과 사용 사례 스마트 홈 vs 산업용.. 2025. 5. 20.
[임베디드] ADC / UART / I2C 2025. 5. 20.