Notice
Recent Posts
Recent Comments
Link
승코딩당당당
[임베디드] 임베디드 소프트웨어 개발 기초 본문
AVR
AVR이란?
- 1996년 아트멜 사에서 개발된 하버드 구조를 가진 8비트 RISC 단일칩 마이크로컨트롤러이다.
- 하버드 아키텍처: 명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 아키텍처
- 명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것이 동시에 가능
- 하버드 아키텍처: 명령용 버스와 데이터용 버스로 물리적으로 분할한 컴퓨터 아키텍처
- 출시 당시 AVR은 프로그램을 저장하기 위해 단일칩 플래시메모리를 사용한 최초의 마이크로컨트롤러 중 하나이다.
- 당시 다른 마이크로 컨트롤러는 ROM, EPROM, EEPROM을 사용했다.
AVR의 종류 6가지
- tinyAVR - ATtiny 시리즈
- 0.5~8 kB 프로그램 메모리
- 6~32핀 패키지
- 제한된 주변 장치(peripheral) 세트
- megaAVR - ATmega 시리즈
- 8~256 kB 프로그램 메모리
- 28~100핀 패키지
- 확장된 명령어 집합 (곱셈 명령어, 큰 프로그램 메모리를 처리를 위한 명령어)
- 확장된 주변 장치(peripheral) 세트
- XMEGA - ATxmega 시리즈
- 16~384 kB 프로그램 메모리
- 44~64~100핀 패키지 (A4, A3, A1)
- 확장된 성능 (DMA, "Event System", 암호와 지원)
- 확장된 주변 장치(peripheral) 세트 (ADC)
- Application-specific AVR
- megaAVR을 기반으로 다른 AVR 계열에서 찾을 수 없는 LCD 제어, USB 제어, 진화된 PWM, CAN, 등의 모듈 추가
- FPSLIC (AVR에 FPGA 추가)
- FPGA 5K~40K 게이트
- AVR 코어는 50 MHz 이상에서도 실행
- 32-bit AVRs
- 2006년에 Atmel은 32비트를 기반으로 AVR32 구조를 만들었다. SIMD과 DSP 명령어를 추가하여 오디오와 비디오 처리를 할 수 있다.
- 32비트 계열은 ARM과 경쟁관계에 있다. 명령어 집합은 다른 RISC와 비슷하지만 원래 AVR이나 다양한 ARM 코어와 호환되지 않는다.
AVR의 특징 및 장단점
- 하버드 아키텍처
- 프로그램 메모리와 데이터 메모리가 분리되어 있다.
- 명령어를 읽어오는 동시에 데이터를 읽어올수 있어 처리 효율이 좋다.
- 다만 메모리 활용도는 낮다.
- 프로그램 메모리가 비어있어도 데이터 메모리가 꽉차면 메모리 에러
- 단일 클럭 사이클 명령어
- MHz당 1MIPS의 성능을 낸다. = 빠르다.
- 8051은 MHz당 1/4MIPS의 성능을 낸다. = 느리다.
- 왜냐면 RISC 구조이기 때문
- 풍부한 범용 레지스터
- 8비트 MCU 치고는 이례적으로 레지스터가 32개나 있다.
- 연산할때마다 RAM을 왔다 갔다 할 필요 없어 연산속도가 매우 빠르다.
- PIC16의 경우 Working Register 1개 뿐이다. ← 1원, 10원 아끼고자함
- 단일 전원 및 온칩 기능
- 칩안에 ADC, TIMER, UART, I2C등 웬만한건 다있다.
- 요새 대개의 칩들이 이렇게 나와서 크게 메리트는 없다.
- 뛰어난 C언어 최적화
- 애시당초 C언어와 같은 고수준 언어에 최적화되도록 만들어졌다.
- 예전 MCU는 C보다 어셈이 훨씬 빨랐다.
HAL의 소개 및 필요성
- HAL이란?
- HAL = Hardware Abstraction Layer = 하드웨어 추상화 레이어
- HAL은 하드웨어와, 운영체제의 소프트웨어 그 사이에 들어가는 추상계층을 의미한다.
- HAL은 하드웨어의 차이를 숨겨서 응용 프로그램이 작동할 수 있는 일관된 플랫폼을 제공한다.

'개발 > 임베디드' 카테고리의 다른 글
| [STM32] HAL 기반 GPIO 제어 – LED Blinking (1) | 2026.02.05 |
|---|---|
| [임베디드] 임베디드 C 프로그래밍 기초 (2) | 2026.02.03 |
| [STM32] GPIO 레지스터 직접 제어 – LED Blinking (0) | 2026.02.03 |
| [미래자동차응용] 미래자동차 열관리 (0) | 2026.02.02 |
| [미래자동차응용] 전기자동차 배터리 및 배터리관리시스템 (0) | 2026.02.02 |