본문 바로가기
보안 및 개발/SYSTEM

[HW] AVR 이란

by CH@3M 2019. 12. 13.

AVR 종류

MCU 중요 선택 요소 중 하나인 속도(Mhz)도 모델마다 다르며,
MCU가 확장보드와 연결되는 방식을 의미하는 '패키지' 역시 모델마다 다르다.

MCU 종류 (출처 : 해커스쿨 자료)

MCU 제품군은 AVR Tiny, MEGA AVR, AT90 AVR로 나눌 수 있다. 
AVR Tiny는 저렴하지만 성능이 낮은편 
MEGA AVR은 성능이 좋고 완성도가 높아 인기가 좋음 
AT90 AVR은 standard AVR로 불리며, 위의 두 종류의 MCU의 중간 단계 성능을 가진다 

AVR MCU의 모델이 ATmega128-16AU라고 하면, 이 이름에서 나타내는 것은 다음과 같다. 128은 프로그램 메모리의 크기, 16은 최대 속도(16Mhz), A는 패키지 타입(TQFP), 그리고 U는 유럽 환경규제의 일환으로 제품 제작 시 납을 사용하지  않았다는 것을 의미한다. 

 

MCU 기능

MCU를 비롯한 특정 칩 혹은 장치에 대한 정보를 얻는 가장 확실한 방법은 데이터시트(DataSheet)라고 불리는 일종의 공식 매뉴얼을 읽는 것이다.

 

AVR 개발 프로그램

1. WinAVR + AVR-Studio

AVR-Studio는 AVR 칩 생산 업체인 Atmel에서 개발하고 무료로 배포하는 개발도구로서, 소스코드 작성, 컴파일, AVR로의 프로그램 전송(다운로딩), 디버깅을 모두 제공하는 통합개발환경(IDE : Intergrated Development Environment)

AVR 생산 업체에서 공식적으로 제공하는 개발 도구인 만큼, 가장 일반적으로 사용된다. AVR-Studio는 소스코드를 기계어로 변환해주는 컴파일러는 내장하고 있지 않기 때문에 별도의 컴파일러인 WinAVR, 혹은 AVR-Toolchain을 따로 설치해야 한다.

2. CodeVision

코드비젼 역시 많은 사랑을 받고 있는 IDE이며, 예제 소스코드를 자동으로 생성해주는 기능이 있는 것이 특징. 코드비젼은 유료이며, 고가이다.

3. IAR EWAVR

EWAVR은 컴파일러 개발 전문 업체인 IAR사에서 판매하는 AVR 개발도구. 유료이며, 가격은 수백만으로 CodeVision보다도 훨씬 더 비싼 편. 홈페이지에서 체험판을 다운로드 받으면 30일간 무료로 사용해 볼 수 있다.

이처럼 AVR 개발 도구의 종류는 여러 가지이지만, AVR이라는 공통된 언어를 다루고 있기 때문에 각각의 개발 도구로 작성되는 소스 코드의 내용은 거의 비슷하다.

하지만, 각각의 개발 도구에서만 제공되는 함수나 정의(Define)들을 사용할 경우엔 서로 호환이 되지 않을 수 있습니다. 그래서 만약 어떤 예제 코드를 인터넷에서 다운받았는데 잘 되지 않는다면, 그것이 어떤 개발도구 환경에서 작성된 것인지를 확인해보고, 필요에 따라서는 내가 사용하는 개발도구에 맞게 수정을 해주어야 합니다. 대표적인 예로, AVR의 작동을 1초 멈추게 만드는 _delay_ms(1000) 코드는 AVR-STUDIO + WinAVR 환경에서만 정상적으로 작동합니다.

 

위 모든 내용은 다음의 문서를 참고하여 정리용으로 작성한 것입니다.

해커스쿨 하드웨어 해킹 자료 ppt : https://www.hackerschool.org/HardwareHacking/

문서 : https://www.hackerschool.org/Sub_Html/HS_University/HardwareHacking/10.html 등

 

※ AVR instruction set : http://ww1.microchip.com/downloads/en/DeviceDoc/40001917A.pdf

반응형

'보안 및 개발 > SYSTEM' 카테고리의 다른 글

serial 연결로 파일 가져오기  (0) 2024.07.30
[Car Hacker's Handbook] 위협 모델의 이해  (0) 2020.01.29
MIPS 정복기 start!  (0) 2019.10.07