'AVRISP'에 해당되는 글 1건

  1. 2014.12.06 Arduino Sketch 설정(1) : Bootloader 관련 / 아두이노 스케치


아두이노를 공부하기 시작했습니다...


일단... 구조부터 공부해 보려 합니다.



첫시간에는 좀 어렵지만. 부트로더...




아두이노 보드는 고객에게 전달 될 때 깡통 상태... 즉 내부 Flash memory에 아무것도 

없는 것이 아니라. 부트로더가 공장에서 올라가서 출하되는 것 같다.


부트로더는 보통 HW적으로는 마이컴의 동작 옵션을 입출력 핀의 H/L의 조합으로

특정 기능을 동작시키는 것을 칭하기도 하고...


마이컴의 메모리 공간 일부에 어떤 기능을 하기 위해 올라간 프로그램을 이야기 하기도 한다.

아두이노의 경우 아두이노 스케치 프로그램이 생성한 펌웨어 파일을 부트로더가 먼저 수신 받아 

남은 플래시 메모리에 저장해두고... 칩이 부팅하면 먼저 부트로더가 동작하고... 사용자가

생성했던 펌웨어 코드를 동작시키고...  만약 새로운 펌웨어를 다시 올리고 싶다면,

기존 펌웨어를 지우고 새것을 다시 올려주는... 일종의 관리자 역할을 한다고 할 수 있다.


위의 경우는 펌웨어로 구현된 부트로더이지만, 역시나 특정 조건으로 칩 초기동작시

동작을 안하게 할 수 도 있다고 추측된다.... (추측이다....)




아두이노 프로그래밍 작업을 위해 사용하는 컴퓨터의 OS가 윈도우 7 이라면...

아두이노 개인 설정은 보통 아래 위치에 저장된다. 


C:\Users\사용자이름\AppData\Roaming\Arduino


만약에 Mac이나, Linux라면...아래와 같이 찾아가면 된다.

    * /Users/<USERNAME>/Library/Arduino/preferences.txt (Mac)
    * c:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt (Windows)
    * ~/.arduino/preferences.txt (Linux) 






이 파일의 역할은 아두이노 프로그램을 할 수 있는 아두이노 스케치 프로그램의 설정값을 저장하는 것이다.


(참고로... 혹시 스케치를 지우더라도... 이 파일이 그대로 남을 수 있다. 만약 스케치 프로그램의 문제가 생겼다면,

스케치 프로그램을 지우고...이 설정 값도 사용자가 직접 지워놓고서.... 다시 스케치 프로그램을 설치해야...

문제가 해결 될 수 있다. 보통 문제는 잘못 설정된 값들이 일으키는 데, 일반인이 이것을 고치기는 어렵기 마련...)




이야기가 길어졌는데...

일반 개발자가 이 글을 읽고 있다면, 분명 아두이노 보드의 플레쉬 메모리 영역이 파괴되어...

아두이노 스캐치프로그램으로 통신, 프로그램 다운로드가 안되는 상황일 것이다.


이 경우... ISP를 할 수 있는 추가적인 장치들이 필요하며 예를 들면 AVRISP, USBTinyISP등등...

아두이노 사이트에서 가이드 하는 부트로더 다시 올리는 방법을 참고하여, 파괴된 부트로더를 복구 해야한다.



또는... 부트로더 영역이 낭비라고 생각하거나, 부팅 시간도 아까워서. 부트로더 없이 아트멜 마이컴을 프로그래밍하고 싶다면

이 ... 부트로더를 알아야 한다. 주로 양산 제품 개발자가 봐야할 부분이라고 생각하고...

일반 취미개발자나 학생의 경우... 여기 까지 알 필요는 그리 많지 않아 보인다.




참고 사이트 : http://arduino.cc/en/Hacking/Programmer 

Posted by 고무함지
,