AVR 관련 tool 팁 및 debug 팁들

들어가는 말

 

AVR관련 툴 들에 관한 팁을 모아 보았습니다. 이 툴 들을 처음 사용하시는 분들에게 도움이 되었으면 합니다. 가까운 시일 안에 내용을 더 보완할 예정입니다.

 

목차

 

Q.01 [PonyProg] 설치 후 동작이 안되는데, 어느 부분을 어떻게 셋팅해야 하나요?  

Q.02 [PonyProg] 이 프로그램을 다운 받을 수 있는 곳은 어디인가요?

Q.03 [PonyProg] 퓨즈 바이트를 셋팅하는 방법은 어떻게 되는지요?

Q.04 [PonyProg] 디바이스를 지우고, 프로그래밍하는 과정을 한번의 버튼으로 할 수 있는 방법이 있나요?

Q.05 [AvrEdit] 이 프로그램을 다운 받을 수 있는 곳은 어디인가요?

Q.06 [AvrEdit] hex파일이 생성되지 않는데 어떻게 해야 하나요?

Q.07 [AvrEdit] 컴파일 시 최적화(optimization) 옵션을 셋팅하는 방법은 어떻게 되는지요?

Q.08 [AvrEdit] 컴파일 시 에라가 분명 발생하였는데, 어떤 에라가 발생하였는지에 대한 에라 메시지를 발생시키지 않네요. 어떻게 디버그 해야 할지 난감해요.

Q.09 [WinAVR] AVR-GCC, WinAVR, AVREdit은 모두 같은 툴인가요?

Q.10 [WinAVR] 참고할 수 있는 매뉴얼은 어디서 구할 수 있나요?

Q.11 [AvrEdit] 참고할 수 있는 매뉴얼은 어디서 구할 수 있나요?

Q.12 [Debug :128] 이미 만든 ATmega128 보드는 잘 동작하는데, 새로 하나를 더 조립하니, 제대로 동작하지 않아요. PG2에서 이상한 신호도 나오고, PortA로는 신호가 나오지도 않네요, 어떻게 된걸까요?

(to be continued)

 

 

 

 

Q.01 [PonyProg] 설치 후 동작이 안되는데, 어느 부분을 어떻게 셋팅해야 하나요?  

  

프로그램을 설치 후 동작이 안되어 당혹스러운 경험이 있습니다. I/O Port setup을 바르게 설정해야 합니다. 메뉴에서 Setup > interface Setup......을 선택하면, Interface board setup 창이 뜹니다. 여기서 I/O port setup에서는 Parallel을 선택하고, 그 아래에 있는 dropdown box에서는 AVR ISP I/O를 선택합니다.  다음 LPT1을 선택하고, 그 아래에 있는 Select Polarity of the control line에서는 아무것도 선택하지 않습니다. (아무것도 선택하지 않는 것이 디폴트 상태임) 이렇게 선택하면 제대로 동작할 것입니다.

(위의 설명은 PonyProg ver. 2.05a beta Feb 24 2002를 기준으로 설명한 것입니다만, 최근 버전도 같을 것으로 생각됩니다. )

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.02 [PonyProg] 이 프로그램을 다운 받을 수 있는 곳은 어디인가요?

  

사실 이 프로그램을 어디서 다운받는지 몰라서 사용 못하시는 분은 없으리라 생각됩니다. 검색엔진과 약간의 시간을 들이면, 어디서 다운 받는지 금방 알 수 있습니다만, PonyProg를 실행시킬 때 마다 뜨는 창에 나와 있는 홈페이지는 www.LancOS.com 입니다.

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.03 [PonyProg] 퓨즈 바이트를 셋팅하는 방법은 어떻게 되는지요?

  

메뉴의 Command > Security and Configuration Bits...를 선택하면, 창이 하나 뜹니다. 이 창의 아래쪽에 있는 Read 버튼을 누르면, 마이콤에서 퓨즈 바이트를 읽어오며, 퓨즈 바이트 셋팅할 경우에는 셋팅할 비트에 체크를 한 다음 Write 버튼을 누르면 됩니다. 퓨즈 바이트를 셋팅할 경우에는 약간의 주의가 필요한데, 잘못 셋팅한 경우에는 다음 리셋 후 부터는 마이콤이 동작하지 않을 수 있으니 조심하시기 바랍니다. 잘못 셋팅하였다고 마이콤이 영원히 못쓰게되는 일을 없으니 조금은 안심하시고요. 퓨즈바이트를 잘못 셋팅하여, 다음 리셋 후 부터는 마이콤이 동작하지 않는 경우는 열쇠를 집안에 두고 문을 잠그고 밖으로 나온 것고 비슷합니다.

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.04 [PonyProg] 디바이스를 지우고, 프로그래밍하는 과정을 한번의 버튼으로 할 수 있는 방법이 있나요?

  

마이콤에 프로그램을 다운로드를 하기위해, 마이콤의 플레쉬메모리를 지우고, 새로 컴파일한 헥사파일을 읽어들이고, 프로그래밍하고 확인(verify)하는 과정을 일일이 메뉴에서 찾아서 한 단계씩 진행하는 것은 무척 귀찮은 일입니다. 이 것을 한번에 할 수 있는 방법인 있는데, 우선 메뉴의 Command > Program Options...를 선택하여 나오는 창에서, Reload Files와 Erase 그리고 Write Program memory(FLASH)에 체크를 합니다. 그 다음 Command > Program을 선택하면, 앞서 선택한 3가지가 순서대로 실행됩니다. 한편 이 명령이 툴바로도 제공되는데, 툴팁이 Launch program cycle로 표시되는 오른쪽을 가르키는 노란 화살표로 이루어진 툴바가 바로 이 것입니다. .

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.05 [AvrEdit] 이 프로그램을 다운 받을 수 있는 곳은 어디인가요?

  

www.terabank.co.kr에서 다운 받으실 수 있습니다.

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.06 [AvrEdit] hex파일이 생성되지 않는데 어떻게 해야 하나요?

  

설정 > 환경설정을 선택하면 나오는 환경 설정 창에서 컴파일러 탭을 선택한 다음, ROM 혹은 HEX 파일 만들기 선택하는 부분에서 HEX 파일 만들기를 선택하세요.

(처음 글 올린 날 : 06/22/2006, 마지막 수정 : 06/22/2006, r/t/e/l/d)

Q.07 [AvrEdit] 컴파일 시 최적화(optimization) 옵션을 셋팅하는 방법은 어떻게 되는지요?

  

설정 > 환경설정을 선택하면 나오는 환경 설정 창에서 컴파일러 탭을 선택한 다음 보이는 화면의, Compiler flags 편집창의 -O3가 디폴트 optimization option입니다. -O3는 실행속도를 빠르게하겠다는 의미이며, 경우에 따라서 프로그램 사이즈를 줄이고자 한다면, -Os를 사용하세요.

(처음 글 올린 날 : 06/23/2006, 마지막 수정 : 06/23/2006, r/t/e/l/d)

Q.08 [AvrEdit] 컴파일 시 에라가 분명 발생하였는데, 어떤 에라가 발생하였는지에 대한 에라 메시지를 발생시키지 않네요. 어떻게 디버그 해야 할지 난감해요.

  

만약 WinAVR(또는 AVREdit)을 처음 사용해 보시는 분이라면, main() 함수를 void 타입으로 선언했을 가능성이 큽니다. 이 경우 컴파일 후 에라가 있다는 창이 뜨지만, 구체적으로 어떤 에라가 발생했는지 표시해 주지 않아서 난감합니다. 메인 함수를 int main(void)로 시작하고 메인 함수를 빠져 나올 때 return 0;를 사용하세요.

(처음 글 올린 날 : 06/23/2006, 마지막 수정 : 06/23/2006, r/t/e/l/d)

Q.09 [WinAVR] AVR-GCC, WinAVR, AVREdit은 모두 같은 툴인가요?

  

AVR용으로 만들어진 GCC를 AVR-GCC라고 부릅니다. 한편 윈도우즈라는 O/S 환경하에서 실행 가능한 AVR-GCC를 WinAVR이라고 합니다. AVREdit은 일종의 통합 개발환경(IDE)이라고도 말할 수 있는데, WinAVR(컴파일러)과 프로그램을 편집할 수 있은 에디터기 함께 들어가 있습니다.

(처음 글 올린 날 : 06/23/2006, 마지막 수정 : 06/23/2006, r/t/e/l/d)

Q.10 [WinAVR] 참고할 수 있는 매뉴얼은 어디서 구할 수 있나요?

  

AVREdit을 설치한 디렉토리를 보시면, winavr이라는 폴더가 있습니다. 그 폴더 안에 doc라는 폴더가 있고, 그 폴더 아래에 다시 여러개의 폴더가 있는데, 이 중 눈여겨 보셔야 할 것은 avr-libc 폴더에 있는 avr-libc-user-manual.pdf 파일입니다. 171페이지 분량의 문서이며, 아직까지도 잘 정리된 느낌을 주지는 않지만, WinAVR의 사용방법을 설명하는 가장 권위있는 문서라고 말할 수 있을 것입니다.

(처음 글 올린 날 : 06/23/2006, 마지막 수정 : 06/23/2006, r/t/e/l/d)

Q.11 [AvrEdit] 참고할 수 있는 매뉴얼은 어디서 구할 수 있나요?

  

AVREdit 자체에 대한 도움말 파일을 메뉴의 도움말 > AvrEdit 도움알을 선택하면, 창이 하나 뜨는데, 도움말 창이 아닌, 색인(index) 창이 뜹니다. 이 창에서 아무 항목이나 선택한 다음 표시 버튼을 누르면, 도움말 창에 선택한 항목의 설명이 표시됩니다. 이 도움말 창의 목차 버튼을 클릭하면, 도움말 목차를 보실수 있습니다.

(처음 글 올린 날 : 06/24/2006, 마지막 수정 : 06/24/2006, r/t/e/l/d)

Q.12 [Debug] 이미 만든 ATmega128 보드는 잘 동작하는데, 새로 하나를 더 조립하니, 제대로 동작하지 않아요. PG2에서 이상한 신호도 나오고, PortA로는 신호가 나오지도 않네요, 어떻게 된걸까요?

  

아마도, 퓨즈 바이트 중의 M103C 비트가 체크되었 있을 가능성이 큽니다. 포니프로그를 사용하는 경우에는, 이 퓨즈 비트는 다른 퓨즈 비트와는 달리 다른 라인에 위치하여, 자칫 잘못하면 못보고 그냥 지나칠 가능성이 있습니다. 더우기, 공장에서 출하시 M103C 비트가 셋팅되어서 나오기 때문에, 이 비트를 못보고 지나치면, ATmega128이 이전에 조립하여 사용하던 것과는 다르게 사용자가 원하는 데로 동작하지 않는 경우가 생깁니다. 공장 출하시 체크과 되어있는 이 M103C 퓨즈비트의 체크를 없애고, 이 퓨즈 바이트 셋팅을 마이콤에 적용한 다음 사용해 보세요.

(처음 글 올린 날 : 07/22/2006, 마지막 수정 : 07/22/2006, r/t/e/l/d)

 (마지막으로 수정한 날자 : 07/22/2006)