디바이스 드라이버(영어:device driver)는 특정 하드웨어나 장치를 제어하기 위한커널의 일부분으로 동작하는 프로그램이다. 컴퓨터를 구성하는 다양한 입출력 장치마다 각각 장치드라이버가 프로그램 되어 커널에 통합되어 실행된다. 높은 수준의컴퓨터 프로그램들이 컴퓨터하드웨어장치와 상호 작용하기 위해 만들어진 하나의 컴퓨터 프로그램이다.
장치드라이버는 커널의 일부분이기는 하나 커널과 통합되는 것은 처음부터 해당 드라이버 프로그램 코드소스가 커널 전체 소스에 포함되어 컴파일되는 경우도 있고, 그리고 별도로 컴파일된 파일(윈도의 *.sys, 리눅스의 *.o)의 형태로 존재하고 부팅 시 또는 필요 시 해당 파일이 로드되어 커널과 통합되기도 한다.
드라이버는 흔히컴퓨터 버스, 또는 하드웨어와 이어진 통신 하위 시스템을 통해 장치와 통신한다. 요청하는 프로그램이 드라이버의 명령어를 호출하면, 드라이버는 장치에 명령어를 전달한다. 장치가 드라이버에게 데이터를 되돌려 주면, 드라이버는 원래 요청한 프로그램의 명령어로 데이터를 다시 전달한다. 드라이버는 하드웨어에 의존하며 특정한 운영 체제를 따른다. 이러한 드라이버는 비동기 시간에 의존하는 하드웨어 인터페이스에 필요한 인터럽트를 다룰 수 있다.
장치 드라이버는 흔히 장치 칩의레지스터에 접근하여하드웨어를 제어하며 하드웨어와 주변 기기를 사용하는 프로그램의 중간 다리 역할을 한다.
마이크로컨트롤러(Microcontroller) 또는MCU(Micro Controller Unit)는마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다.
CPU 코어, 메모리 그리고 프로그램 가능한 입/출력을 가지고 있다. NOR플래시 메모리[1][3],EPROM[2]그리고 OTP ROM등의 메모리를 가지고 있어 정해진 기능을 수행하도록 프로그래밍 코딩하고 이 기계어 코드를 써 넣는다. 기계어 코드가 실행되기 위한 변수나 데이터 저장을 위해 적은 용량의SRAM을 가지고 있다. 기타 칩에 따라EEPROM을 내장하기도 한다.
MCU는 임베디드 애플리케이션을 위해 디자인되었으며 임베디드 시스템에 널리 사용된다. 개인용 컴퓨터가 다양한 요구에 따라 동작하는 일반적인 일에 사용된다면, MCU는 기능을 설정하고 정해진 일을 수행하도록 프로그래밍되어 장치 등에 장착되어 동작한다. 따라서 일반적으로 성능이 PC에 비해 낮고 형상도 다르다. 한 번 프로그래밍하면 코드를 나중에 바꿀 일이 거의 없기 때문에 냉장고, 전자레인지 등의 기기에 사용된다.
-위키백과
MCU 는 CPU 메모리 보조 모듈로 구성
메모리와 CPU는 명령 & 데이터
메모리 : ROM(Flash rom, EEPROM) 프로그램 저장 / RAM 임시저장 데이터 데이터 읽고 쓰는 장치
CPU : ALU(산술장치 ), Register(임시저장 데이터 ), Shifter
보조모듈 : SPI, UART, I2C, ADC, DAC, 타이머
Program Memory(Flash Memory) : 프로그램 명령어 저장
Core(CPU) : 명령어 수행
Data Memory(SRAM) : 명령어 수행한 임시데이터 저장
SRAM, 변수나 스택등에서 사용하는 읽기, 쓰기 전용 메모리
Flash ROM, 프로그램 굽는 용도 읽기전용의 상수 데이터도 저장함
EEPROM 읽고 쓰기가 가능하지만 속도가 느리며 횟수제한이 있으므로 변경하지 않는 설정값 저장
DataFlash 플래시 메모리 중의 일부분을 읽고 쓰기 가능하도록 만든 것으로써 일부 제품만 이런 기능이 있다