본문 바로가기
Communication Interface&Protocol

펌웨어(Firmware)

by 누워있는말티즈 2022. 8. 5.

임베디드 시스템 개발 업무를 담당하면서 가장 많이 들은 단어가 펌웨어이다. 다만 펌웨어가 무엇인지에 대한 정확한 개념이 정립되어있지 않아 꽤나 고생을 했다.

 

Firmware(펌웨어)는 전자 장비의 HW와 SW를 이어주는 다리 정도로 이해할 수 있다. 따라서 펌웨어는 하드웨어와 소프트웨어의 특성을 동시에 가지며 하드웨어의 논리 회로의 기능을 보완하가너 대신하며 소프트웨어가 구동할 수 있는 환경을 구성한다. 새로운 소프트웨어가 나올 때마다 전용의 하드웨어를 새로 생산할 수 없기에 하드웨어의 제한된 논리회로를 가지고 여러 소프트웨어의 기능을 가능케 하는 펌웨어의 영역은 매우 중요하다.

 

펌웨어는 기본적으로 하드웨어의 제어와 구동이 가능하며 주로 Flash나 PROM에 저장된다. 기능의 업데이트가 있을 시 이 펌웨어만 새로 Flash 해주면 동일한 하드웨어 상에서 새로운 펌웨어 기반의 기능을 수행할 수 있다. 예시로 PC 메인보드의 BIOS 등이 있다. 과거에는 ROM에 펌웨어를 작성하였으나 ROM은 수정이 불가능하기에 최근에는 위에 서술했듯이 Flash나 PROM으로 넘어가는 추세이다.

 

거창한 디바이스의 펌웨어라 생각할 수 있지만 가장 간단하게 접할 수 잇는 펌웨어는 아두이노의 소스 코드 등이 있다. 아두이노 보드도 엄연히 ATmega128, 2560 등의 MCU 기반의 micro computing device로 여기에 우리가 작성해서 업로드하는 코드 또한 해당 보드에 대한 펌웨어라고 할 수 있다!

반응형

댓글