쉽다고 생각했던 "hello, world" 출력이 생각보다 쉬운 프로그램이 아니라는 것을 알게 되었으므로 임베디드 시스템에서 해볼수 있는 가장 쉬운 프로젝트를 구현해 보도록 하겠다. 그 방법은 다름 아닌 LED를 켰다, 껏다 해보는 것이다. 사실 LED를 제어하는 코드는 단 한줄만으로도 확인할 수 있지만 왜 그렇게 동작이 되는지 확실히 이해하기 위해서는 상당히 많은 지식을 필요로 한다. 이러한 배경 지식은 하루 아침에 습득할 수 있는 내용이 아니므로 프로젝트를 진행해 나가면서 하나씩 하나씩 익혀 나가면 된다. 먼저 LED 제어를 위한 하드웨어부터 구성하도록 하겠다. 아래 그림과 같은 회로를 브레드 보드에 꾸민다. 이번 프로젝트에 사용될 부품은 빨간색 LED 하나와 초록색 LED하나가 필요하다. 물론 LE..
앞의 글에서 개발도구 설치와 더불어 'hello' 프로젝트를 작성하여 성공적으로 빌드하였다면, 이번에는 그 결과로 만들어진 실행 파일을 실제 AVR에서 동작시키는 방법에 대해서 설명하도록 하겠다. 첫번째로 해야 할 일은 하드웨어 준비 글에서 소개한 부품을 이용하여 회로부터 구성하는 것이다. 회로 구성을 위해서는 AVR의 외부로 나오는 핀들에 대한 설명을 보아야 한다. 핀 구성의 상세 내용을 알기 위해서 ATMEL사 홈페이지에서 ATmega328P의 데이터쉬트를 다운로드 받아서 열어 본다. 일단 파일을 다운로드 받았으면 데이터쉬트에 어떤 내용이 들어 있는지 처음부터 끝까지 전체적으로 대충대충 훑어본다. 그래야 나중에 필요한 내용을 빨리빨리 찾아볼 수 있기 때문이다. 데이터쉬트 앞 부분에서 다양한 칩 패키지..
프로젝트 요구사항에 맞는 CPU를 선정했으면, 그 CPU에서 수행되는 실행파일을 만들 수 있는 개발환경을 구축하여야 한다. CPU종류도 다양하게 있지만 개발도구도 CPU마다 여러가지가 있을 수 있다. 많은 자료와 기술 지원을 받을 수 있는 유료 개발 환경도 있을 것이고, 개발자가 필요한 파일들을 인터넷에서 다운로드 받아 스스로 개발환경을 구축해야 하는 무료 도구도 있다. 무료 개발 환경의 경우 프로젝트 개발중에 문제가 발생하면 개발자 스스로가 알아서 문제를 해결해야 되는 고충이 있다. 하드웨어 선정할때와 마찬가지로 개발 환경 구축할 때에도 여러가지 사항을 고려하여 선정하여야 한다. 이 블로그에서 사용하고자 하는 개발 도구는 ATMEL사에서 무료로 제공하는 Atmel Studio를 이용할 것이다. 심화과정..