고양이와 코딩
임베디드와 펌웨어 본문
728x90
임베디드(Embedded)
이름에서 알 수 있듯, 기계 내부에 탑재된 컴퓨터를 의미합니다.
특정 목적을 가지고 만들어진 프로그래밍이 가능한 컴퓨터!
펌웨어(Firmware)
임베디드 시스템에서 구현되는 소프트웨어로, 하드웨어와 소프트웨어 중간에 있다고 할 수 있습니다.
임베디드 시스템을 하드웨어로만 구현한다면, 직관적이고 빠른 속도가 장점이지만 기능을 수정하거나 확장하기가 어렵습니다.
따라서 펌웨어를 통해 소프트웨어와 병행하여 개발한다면 기능의 수정과 확장이 쉬워집니다!
소프트웨어 : 보드/펌웨어가 다 개발 된 상태에서 어플리케이션 제작 (C++, C# 등 주로 객체지향)
펌웨어: 하드웨어 회로도가 개발되고 그 위에 디바이스들의 동작을 제어 (C, 어셈블리)
하드웨어: 제품 회로도 개발 (SoC 설계 등)
임베디드 관련 알아두어야 할 것들
- RTOS(Real-Time Operating System): 실시간 응용 프로그램을 위한 운영 체제는 임베디드 시스템에서 매우 중요하므로, RTOS는 실시간 응용 프로그램에서 작업을 효율적으로 관리하고 시간 제약을 준수 하는 데 도움이 됩니다. ex) FreeRTOS, VxWorks, QNX
- 통신 프로토콜: 임베디드 시스템은 종종 다른 장치 또는 시스템과 통신해야 하는데, 이를 위해 UART, SPI, I2C와 같은 표준 통신 프로토콜을 잘 이해하고 구현할 수 있어야 합니다.
- 디버깅 및 테스트: 임베디드 시스템에서는 디버깅/테스트가 매우 중요하므로
- 배터리 관리 및 충전: 배터리 구동 장치의 경우, 배터리 관리 및 충전 시스템을 효율적으로 설계해야 합니다. 이를 위해 배터리 모니터링, 충전 제어 및 배터리 수명 연장을 위한 최적화 기술 도입이 필요합니다.
출처