안녕하세요. 번개쥐 입니다. 오늘은 여러가지 임베디드 보드들을 소개하는 시간을 갖도록 해보죠. 은근히, 헷갈려 하시는 분들도 좀 있고요. ㅎㅎ 크게 임베디드아키텍쳐들은 PIC,AVR,ARM 등등이 있습니다.(최근 인텔에서는 x86기반 임베디드도 내놓는 모양이더군요. 근데 제가 잘몰라요 갈릴레오 보드라던가?) 일단 국내에서는 가장 많이 사용되는건  AVR,ARM 일겁니다.

1.AVR
 
 
(위쪽이 아두이노 우노, 아래쪽은 atmega 128)
Atmel사에서 만든 아키텍쳐로 이쪽에 관심있으시다면 가장 많이 들어봤을 ATMEGAxxx 라고 불리는 칩들은 전부 AVR입니다. 다만 AVR이라도 조금 사용법이 갈리는데요. 저번에 설명한 아두이노라는 존재 때문입니다. 아두이노가 모두 AVR을 이용해서 만드는 것은 아니지만(ARM기반 칩셋도 사용합니다.) 저번에 소개 드린 아두이노 UNO경우 atmega 328칩이 박혀있기도 하니 avr칩이 박혀 있다는 가정하에 설명 드리죠. 일반적으로 avr의 가장 대표적인 제품인 atmega 128, atmega 38 둘다 8비트이고 16MHz의 클럭으로 움직이고요 128이 메모리는 좀더 많습니다.(128이 플래쉬 메모리가 128Kbyte 328은 32Kbyte) 128이 좀더 쓸수있는 핀도 많고요.


뭐 짜잘한건 신경 쓸 필요없이 메모리만 빼고보면 거의 비슷한 성능입니다. 다만 아두이노는 스케치라는 비교적 간편한 프로그래밍이 가능합니다. 당장 비교해 보시죠.

       (왼쪽이 avr,오른쪽은 아두이노)
똑같은 행동(led등을 깜빡깜빡)을 하는 프로그램인데 프로그램이 좀 다르지요? 조금더 복잡한 프로그래밍으로 가면
 
마찬가지로 똑같은 프로그램(메아리처럼 a라고 치면 a라고 대답해주는 프로그램입니다.)이지만 이렇게 조금만 복잡해지면 코드길이가 넘사벽으로... 이렇듯 입문 장벽이 아두이노가 정말 낮은편이라, 입문자들이 아두이노를 많이씁니다.(물론, 고급 활용으로 넘어가면 아두이노나 avr이나...)


2.ARM
 
위에 보이시는 크고 아름다운(?)것은 arm을 이용한 개발 보드라기엔 좀 크긴 하고 하여튼... 그러한 것입니다. 이건 특이하게 개발 방법이 꼭 C로만 하지 않아도 됩니다.
 
이런식으로 GUI, 그래픽 기반의 프로그래밍이 가능합니다.(위에서 보여주는 것은 LabView라고 하는 것입니다.) 그런데 이건 매우 편리하긴 합니다만, 단점이 많이 존재 합니다.


1. 비싸다.
myrio 단품만 해도 60만원을 호가하고(저는 학교에서 지원해준겁니다.) LabView도 라이센스비가 크고 아름답.....
2.간단한 프로그래밍은 좋지만은...
복잡한 프로그램을 랩뷰로 짜면 똑같이 짠 C에 비해서는 성능이 확실히 딸립니다.
뭐 물론 myrio도 C로 짤수 있습니다.
 
다만, 소스길이가 .... 이거 3배는 더 있어야 되는게 문제죠.
 
그리고 라즈베리 파이와 비글보드. 얘네들도 arm기반의 보드들입니다. myrio도 그렇고 얘네들도 그렇고 arm에서 cortex 8기반 이정도 되면 일반적인 pc처럼 사용이 가능합니다.(지금 들고있는 휴대폰도 얘네랑 똑같은 cpu가 들어가 있지요!) 그래서 저는 라즈베리 파이로는 개인 서버를 운영중이지요.


일단 avr이랑 arm의 가장큰 차이는 일단 arm은 32비트입니다. 8비트인 avr보다 훨씬 큰 데이터 처리가 가능하고 클럭이 높기 때문에 굉장히 빠른 연산속도를 지원합니다. 그리고 그거에 비례해서 프로그래밍 난이도는 산으로 갑니다. ㅎㅎ


대신에 arm에서는 avr류 보다는 훨씬 부유한 환경(?)이라고 볼수 있습니다. arm기반 프로세서들은 듀얼코어 쿼드코어도 많은 편이며 1기가의 메모리를 가지고 있는애들도 많으니깐요.(스맛폰!)


연휴라서 글을 좀 많이 적었네요. 보통 연재 주기가 1주일에서 2주일에 한편 정도일 것 같습니다. 다음시간에는 본격적으로 아두이노를 pc에 연결해서 프로그램 하나 짜서 넣는 내용과 c언어에 대한 고찰에 관한 내용으로 만나도록 하지요.