'atmel'에 해당되는 글 2건

  1. 2015.06.10 ATmega8(A) 개발을 위한 atmel studio 소개
  2. 2015.06.03 AVR 개요

 특정한 기능을 수행하는 시스템을 uC를 이용하여 구현하려고 할 때 그 기능을 수행하도록 위해서는 물리적인 전기전자 회로를 설계해야 될 것이고 (필요에 따라 기계적인 요소도 들어갈 것이다.) 그 회로를 작동시키는 소프트웨어도 작성해야 한다. 이러한 하나의 제품을 만들어내는 과정을 ‘개발’이라고 한다. 이렇게 uC를 이용하여 제품을 개발할 때 프로그램 언어로서 일반적으로 C/C++언어와 어셈블리어가 많이 사용된다.


 이제 C/C++ 언어와 어셈블리어 중에서 어느 것을 사용할지의 선택의 문제가 발생한다. 각각 나름대로의 장점이 있으며 C/C++언어와 어셈블리어 하나만 아는 것보다는 둘 다 익혀두는 것이 더 유익하겠지만 여건상 한 가지만 집중적으로 해야 한다면 C/C++ 언어를 선택하는 것이 일반적이다. 어셈블리어만을 가지고 복잡한 알고리듬을 구현하기에는 한계가 있기 때문에 그렇다. C/C++언어가 코드를 작성하기 편리하고 하드웨어의 제약에서 어느 정도 벗어나서 알고리듬에만 집중할 수 있는 반면 어셈블리어는 프로그램의 명령어가 단순하고 코드가 짧으며 실행속도가 빠르다는 장점을 가진다. 따라서 프로그램 수행시간이 중요한 응용분야에서는 어셈블리어로 코드를 최적화할 필요가 있다. 또한 어셈블리 프로그램 자체가 단순하기 때문에 배우기 쉬우며 하드웨어에 대한 충분한 이해를 바탕으로 해야만 코드를 작성할 수 있기 때문에 하드웨어를 이해하는 폭을 넓혀준다. 어셈블리어에 익숙하다면 이는 C/C++ 언어로 프로그래밍을 할 때 그 이해의 폭을 깊게 해주므로 C/C++언어와 어셈블리어는 서로 배타적이 아니다. 따라서 uC로 시스템을 개발할 때에는 둘 다 익숙히 다룰 줄 안다면 여러모로 유리할 것이다. 실제로 제품 개발 프로젝트를 수행할 때 전 과정을 모두 어셈블리어로 작성하는 경우도 있겠지만 좀 더 일반적인 경우는 C프로그램으로 전체적인 윤곽을 잡고 실행 속도나 코드의 최적화가 중요한 서브루틴을 어셈블리어로 작성하여 끼워 넣는 경우도 있다.


 AVR uC를 생산하여 공급하는 Atmel사에서는 Atmel Studio (버전이 6.0 밑에서는  AVR Studio 라는 이름이었다.)라는 IDE(integrated development environment, 통합개발환경) 를 무료로 제공한다. Atmel 스튜디오는 텍스트 에디터, 시뮬레이터, 디버거 등을 포함하며 어셈블리어 프로그램까지 개발할 수 있는 Atmel사의 다양한 마이크로컨트롤러 전용 개발 프로그램이다. 사실 AVR 개발 프로그램은 CodevisionAVR과 같은 몇몇 상용 프로그램이 있으나 Atmel  Studio는 개발사에서 제공하고 무료로 사용할 수 있고 다른 상용 프로그램과 견주어 개발 과정에 불편함이 없으므로 교육 현장이나 실제 제품 개발에 많이 사용된다. 이것은 사용자가 작성한 어셈블리어와 C/C++ 언어를 손쉽게 작성하고 디버깅(debugging)이나 시뮬레이션을 수행한 후 실제 시스템에 간편하게 다운로드할 수 있는 환경을 제공한다.

[그림 1] avr studio 4.12


AVR 스튜디오 v4.12에서부터는 gcc계열의 WINAVR 컴파일러를 지원하기 시작하였고 v5.x로 판올림을 하면서부터는 Visual Studio 2010의 에디팅 환경을 차용하여 IDE의 외형 뿐만이 아니라 32비트 uC인 AVR32도 개발 가능하게 되는 등 상당히 많은 변화가 일어났다. 2015년 6월 현재는 다시 판올림을 하면서 이름도 바뀌어 Atmel Studio 6.x 정식 버전이 배포 중이며 이제는 이 프로그램을 이용하여 AVR계열 뿐만 아니라 ARM계열의 프로세서들까지도 개발할 수 있다. 프로그램의 외관은 [그림 2]와 같으며 [그림 1]과 비교하여 외형상으로도 많은 변화가 있음을 확인할 수 있다.


 

[그림 2] atmel studio 6.x

 본 블로그에서는 Atmel Studio 6.0버전을 가지고 실습을 진행한다. 하지만 AVR Studio 5.0을 사용해도 여기에서 제공하는 예제들을 실행하는데 아무런 지장이 없다.



Posted by 살레시오
,

 AVR은 미국의 Atmel사에서 제공하고 있는 8비트 마이크로컨트롤러(이하 uC)이다. Atmel은 마이크로프로세서, 플래시메모리, 센서 등을 개발하여 공급하고 있는 다국적 반도체 회사로서 플래시 메모리의 기술과 장점을 살린 다양한 uC를 출시하고 있다. 그중 AVR은 저가형 8비트 마이크로컨트롤러로서 1990년에 Norwegian 공과대학의 컴퓨터 일렉트로닉스/ 컴퓨터 사이언스 과의 학생인 Alf Bogen과 Vegard Wollan의 두 사람이 연구한 RISC CPU가 원형이다. 이 후 Atmel사에 입사해서 연구된 CPU가 AVR uC가 되어 1997년 출시된 이후 현재 산업계 및 교육 현장에서도 폭넓게 보급되어 사용되고 있다.


[그림 1] www.atmel.com 홈페이지


 AVR은 Atmel사의 비휘발성 메모리 기술을 기반으로 플래시 메모리, SRAM, 그리고 EEPROM을 기본적인 사양으로 내장하도 있으며 개발/양산의 편의성과 외부 회로를 최소화할 수 있도록 고려하여 설계하였다는 특징이 있다, 특히 ISP (in-system programming)가 가능하다는 큰 장점을 가지고 있다으며 개발자는 이 기능을 이용하여 uC에 프로그래밍하는데 별도의 롬라이터 없이 타겟 보드 상에서 PC의 직렬/병렬 포트와 연결하여 프로그램/데이터를 플래시롬/EEPROM에 다운로드할 수 있다.


 AVR은 프로그램 메모리와 데이터 메모리를 접근하기 위한 버스를 독립적으로 사용하는 하바드 구조(Harvard architecture)와 파이프라인 처리 방식을 기반으로 하는 RISC(reduced Instruction set computer) 기술을 적용하여 1명령 싸이클이 내부 클록의 1클록에 의해 처리되는 매우 높은 성능을 발휘한다. 또한 Atmel사에서 개발하여 무료로 공급하고 있는 Atmel Studio (예전에는 AVR Studio라는 avr 전용 IDE가 있었으나 요즘에는 ARM 개발도구와 통합되어 Atmel Studio라는 이름으로 배포하고 있다.) 라는 강력한 IDE가 있으며 역시 무료로 사용할 수 있는 C/C++ 컴파일러가 있어서 손쉽게 저가로 개발 환경을 갖출수 있다는 큰 장점을 가지고 있다.


 이러한 장점으로 인해 AVR은 가장 늦게 출시되었음에도 불구하고 8051시리즈나 PIC계열의 uC를 능가하는 인기를 단시간에 얻게 되었다. 또한 2007년에 출시되ㅓㅇ 전세계적으로 널리 사용되고 있는 아두이노(arduino)라는 프로토타이핑(prototyping) 보드의 메인 프로세서로 사용되면서 그 인기를 이어가고 있다.



Posted by 살레시오
,