펌웨어 소개
펌웨어(firmware)는 컴퓨팅과 공학 분야에서 특정 하드웨어 장치에 포함된 소프트웨어로, 소프트웨어를 읽어 실행하거나, 수정하는 것도 가능한 장치를 뜻함
컴퓨터 시스템
프로그램 내장 구조
- 중앙처리장치 : 기억장치에 저장된 명령어를 하나씩 가져와 의미를 해석하고 실행함
- 기억장치(메모리) : 프로그램과 데이터를 저장함
- 입출력 장치 : 컴퓨터 외부에서 프로그램과 데이터를 공급, 처리 결과를 표시
컴퓨터 시스템의 분류
- 용도에 따른 분류 : 범용 컴퓨터, 특수 목적 컴퓨터
- 범용 컴퓨터
- 기억장치에 부트로더와 운영체제 탑제, 나머지 영역 비어있음
- 부트 후 응용프로그램을 빈 영역에 적재하고 실행
- 실행하는 프로그램의 종류에 따라 컴퓨터 시스템의 기능 결정
- 특수 목적 컴퓨터
- 기억장치에 특수 용도를 수행하기 위한 프로그램을 적재하고 실행
- 운영 중 기억장치에 적재한 프로그램이 변경되지 않음
- 부트로더와 운영체제는 구분될 수 있음
- 범용 컴퓨터
- 역할에 따른 분류 : 단독 컴퓨터, 임베디드 시스템
- 단독 컴퓨터(stand alone computer)
- 컴퓨터 자체가 하나의 시스템
- 주로 범용 컴퓨터
- 입출력 장치 : 키보드 모니터 마우스 등
- 임베디드 시스템
- 다른 장비에 포함되어 있는 컴퓨터 시스템
- 입출력 장치 : 스위치, 센서, LCD 디스플레이
- 컴퓨터 시스템은 장치의 상태에 따라 장치를 제어
- 단독 컴퓨터(stand alone computer)
- 임베디드 시스템 정의 (위키백과)
- 임베디드 시스템(내장형 시스템)은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템
- 임베디드 시스템은 전체 장치의 일부분으로 구성되며 제어가 필요한 시스템을 위한 두뇌 역할을 하는 특정 목적의 컴퓨터 시스템
- Firmware 가 탑재된 시스템
- Firmware 는 소형 임베디드 시스템의 ROM 에 저장되어 실행되는 소프트웨어
- 일반적으로 firmware 가 탑재된 시스템은
- 하드웨어 자원이 부족하다. (프로세서 처리 능력, 기억장치 용량)
- 보조 기억장치가 없다.
- 운영체제를 사용하지 않는다.
- 입출력 디바이스에 대한 제어 기능을 수행한다.
요약
- 컴퓨터 시스템 = {중앙처리장치, 기억장치, 입출력장치} + 소프트웨어
- 하드웨어: 컴퓨터 시스템을 구성하는 기계 장치
- 소프트웨어: 컴퓨터 시스템의 기억장치에 적재되어 실행되는 프로그램
- 임베디드 시스템: 다른 장비에 포함되어 있는 컴퓨터 시스템, 주로 제어 기능을 수행함.
- 펌웨어: 소형 임베디드 시스템의 ROM 에 저장되어 실행되는 프로그램
앞으로 예정
- 제 2 장 AVR 마이크로제어기(Microcontroller)
- AVR
- ATmega328P: 특징, 내부구조, 메모리와 주변장치, 시스템 클록
- 아두이노 하드웨어
- 개발 환경 (IDE)
- 제 3 장 디바이스 프로그래밍
- 입출력 방법
- 펌웨어 개발 단계
- IDE 사용법
- 제 4 장 입출력 포트 (GPIO)
- 한 개의 비트로 구동하는 가장 기본적인 입출력
- 제 5 장 인터럽트
- 외부 장치의 이벤트 발생에 반응하는 방법
- 이벤트 구동 프로그램
- 제 6 장 아날로그 신호
- ADC & DAC 아날로그 신호 처리
- 제 7 장 타이머/카운터
- 주기적으로 수행되는 태스크 처리
- 제 8 장 직렬통신
- 외부 장치와의 직렬 통신 방법 (UART, SPI, I2C)
- 제 9 장 디바이스 통신
- I2C, TWI, 적외선 통신