본문 바로가기

전자 공학/기타

펌웨어란(Firmware)?

반응형

 

안녕하세요. 취업한 공대누나입니다.

오늘은 펌웨어가 무엇인지에 대한 이야기를 해보려고 합니다.

실제로 학부생 때 펌웨어라는 용어 자체를 많이 썼었나 싶은데요.

그래서 그런지 제 주변에 이 용어를 모르는 친구들도 꽤 많았습니다. 실제로 다 해보고 말이죠.

제가 지금 하고 있는 일 중에 하나도 펌웨어인데요. 펌웨어 엔지니어라는 직업이 있을 정도로 전문성 있는 분야입니다.

한 번 알아보도록 하겠습니다.

 

1. 펌웨어(Firmware)란?

펌웨어란 간단하게 말해서는 하드웨어의 제어와 구동을 담당하는 운영체제라고 보면 됩니다.

대표적이니 예로 PC 메인보드의 BIOS등이 예로 들어집니다.

 

예전의 기기들은 펌웨어가 보통 ROM에 저장이 되곤 했었는데요.

ROM은 아시다시피 수정이 불가능한 메모리이기 때문에 한 번 펌웨어가 들어가게 되면 수정이 어려웠습니다.

그래서 요즘은 PROM 혹은 Flash에 펌웨어가 저장이 되게 됩니다.

기능을 업그레이드 해야 할 일이 있으면 펌웨어를 수정하여 업데이트 하면 되기 때문입니다.

 

펌웨어에 대한 설명을 조금 더 직관적으로 드리도록 하겠습니다.

전자공학과를 나오셨다면 Atmega128을 한 번 쯤은 다뤄보셨을 것 같은데요.

이러한 Atmega128과 같은 칩을 우리는 Mcu라고 하며 이 mcu를 제어하기 위한 코드를 말합니다.

라인트레이서 소스 같은 것들을 떠올리시면 됩니다.

 

Atmega128 Datasheet

Atmega128의 데이터시트입니다. 

Atmega128을 이용해서 우리는 LED ON/OFF를 제어 할 수도 있고, 모터를 돌릴 수도 있습니다.

이러한 여러 기능들을 하기 위해서 저 핀을 High로 만들어라 Low로 만들어라 명령을 내리는 것이 펌웨어라고 할 수 있습니다.

 

또 한 번쯤 사용해보셨을 것 같은 아두이노 보드 혹은 FPGA의 소스 코드 또한 우리는 펌웨어라고 할 수 있습니다.

 

그렇다면 펌웨어는 어떻게 MCU에 넣어주게 될까요?

일반적으로는 다운로더 툴이 따로 있습니다.

 

사용하는 Tool 마다 다릅니다.

한쪽은 MCU 쪽에 연결하고 한 쪽은 컴퓨터에 연결하여 펌웨어를 다운로드 해주면 되는 것입니다.

아두이노 같은 경우는 그냥 USB 케이블로 다운로드 되는 것으로 알고 있습니다.

 

'펌웨어'의 개념 자체는 어려운 내용은 아니긴 하나, 실제로 MCU를 컨트롤하는 것은 저는 정말 어려운 것 같습니다.

데이터시트도 꼼꼼히 봐야 하고, 에러도 왜 발생했는지 모르겠는 것들이 너무 많기 때문입니다.

그래도 펌웨어를 잘할 줄 알면 먹고 사는 데는 큰 무리가 있진 않을 것으로 생각됩니다.

반응형

'전자 공학 > 기타' 카테고리의 다른 글

TC - Timer Counter란?  (0) 2021.01.14
CCL(Critical Component List)이란?  (0) 2021.01.12
ADC - 펌웨어  (0) 2021.01.08
WDT - 와치독이란?  (0) 2021.01.05
PWM 이란?  (0) 2021.01.01