/

임베디드 시스템이란?

임베디드 시스템은 특정 기능을 수행하기 위해 설계된 컴퓨팅 시스템입니다. 일반적인 컴퓨터와 달리, 임베디드 시스템은 특정 작업을 수행하는 데 최적화되어 있습니다.

예시:

  • 스마트폰
  • 가전 제품 (전자레인지, 세탁기)
  • 자동차 (엔진 제어 시스템, 인포테인먼트 시스템)
  • 의료 기기 (심장 박동기, MRI 장비)
  • 산업용 기기 (로봇 팔, PLC)

임베디드 시스템의 주요 특징

  • 특정 용도: 범용 컴퓨팅이 아닌 특정 기능을 수행하도록 설계됨.
  • 제한된 자원: 메모리, 저장 공간, 전력 등이 제한적임.
  • 실시간 작동: 실시간으로 작업을 수행해야 하는 경우가 많음.
  • MCU 칩 사용 : 컴퓨터 기본 동작에 필요한 CPU, 메모리, 저장장치를 하나에 모아둔 칩
    • 공간 절약, 비용 절감, 전력 효율성 등을 위함
    • 대표적인 MCU 제조사
      • STMicroelectronics
      • NXP Semiconductors
      • Texas Instruments
      • Microchip Technology
      • Renesas Electronics

 

임베디드 프로그래밍이란?

  • 특수한 목적을 위해 만들어진 보드에서 동작하는 프로그램. C/C++,Python, Rust 등으로 프로그래밍을 많이 하고 있음
  • 일반 프로그래밍과 다른점
    • 컴파일을 통해서 나온 Output을 보드의 특정 경로로 이동(업데이트)시켜서 파일을 실행한다
  • 보통 리눅스 시스템을 많이 사용한다. OS가 없는 경우도 있다.

임베디드 시스템 개발자가 하는 일

하드웨어 개발자

→ 하드웨어 개발자 --> 칩을 선정하고, 특수한 목적을 위해서 필요한 부품을 통해서 PCB 보드를 만든다

a. 마이크로컨트롤러 또는 마이크로프로세서

임베디드 시스템의 핵심 처리 장치입니다. 선택 기준은 성능, 전력 소비, 주변 장치 인터페이스 등을 포함합니다.

예시:

  • ARM Cortex-M 시리즈 (마이크로컨트롤러)
  • ARM Cortex-A 시리즈 (마이크로프로세서)
  • AVR, PIC 시리즈

b. 메모리

  • 프로그램과 데이터를 저장하는 데 필요한 메모리입니다. RAM, 플래시 메모리 등이 사용됩니다
  • NAND / NOR / EEPROM 등등

c. 주변 장치

임베디드 시스템이 특정 작업을 수행하기 위해 필요한 센서, 액추에이터, 통신 모듈 등의 주변 장치입니다.

예시:

  • 온도 센서, 압력 센서
  • 모터, LED
  • Wi-Fi, Bluetooth 모듈

소프트웨어 개자

→ 만들어진 장비(보드)에 프로그래밍을 하고, 보드의 주변 장치를 이용하여(serial port / 이더넷 포트, 디버그 포트 등) 동작을 시킨다. 보드가 목표로 하는 기능을 동작 시킨다.

a. 운영체제

임베디드 시스템에서 사용하는 운영체제는 주로 리얼타임 운영체제(RTOS) 또는 임베디드 리눅스입니다.

예시:

  • FreeRTOS, Zephyr (RTOS)
  • Yocto 프로젝트 기반 리눅스 배포판

b. 개발 도구

임베디드 소프트웨어 개발을 위해 필요한 컴파일러, 디버거, 등이 포함됩니다.

예시:

  • GCC (GNU Compiler Collection)
  • GDB (GNU Debugger)

c. 드라이버 및 미들웨어

하드웨어와 소프트웨어를 연결하는 드라이버와 다양한 기능을 제공하는 미들웨어가 필요합니다.

예시:

  • 디바이스 드라이버 (GPIO, UART, I2C, SPI 등)
  • 프로토콜 스택 (TCP/IP, USB, BLE 등)

 

임베디드 시스템을 개발할 때는 다음 사항들을 고려해야 합니다:

  • 커널 소스 및 빌드: 커널을 선택, 구성, 빌드, 설치.
  • 부트로더: 부트로더를 선택, 구성, 빌드, 설치.
  • 파일 시스템: 파일 시스템을 선택, 생성, 구성.
  • 패키지 관리: 패키지를 선택, 빌드, 설치.
  • 크로스 컴파일 툴체인: 툴체인을 다운로드, 설정.
  • 디바이스 드라이버: 드라이버를 작성, 빌드, 설치, 로드.
  • 네트워크 구성: 네트워크 인터페이스 및 서비스를 설정.

다음글에서는 Yocto에 대해서 알

아보도록 하겠습니다.

+ Recent posts