2016년 2월 3일 수요일

Atmel Studio에서 아두이노 듀에(arduino due) 사용하기

Atmel studio에서 아두이노 듀에에 바이너리 파일을 넣으려면 bossa라는 프로그램이 필요하다. BOSSA(http://www.shumatech.com/web/products/bossa)는 Basic Open-Source Samba Application의 약자로 ATMEL의 ARM 프로세서 플래쉬에 writing을 위한 프로그램이다. 원래 ATMEL에서 SAMBA라는 툴을 제공하나 설정이나 사용이 복잡해 이 SAMBA를 기반으로 사용하기 쉽게 만든 프로그램이 BOSSA이다.

다만 기존의 bossa로는 아두이노 듀에에 사용할 수 없어 아두이노용으로 수정된 bossa가 필요하다. 혹시 자신의 컴퓨터에 bossac (BOSSA command line)이 설치되어 있으면 프롬프트에서 bossac -h 명령으로 버젼을 확인할 수 있다.


이렇게 나오면 아두이노 용으로 수정된 버젼이다. 만일 그렇지 않으면 아두이노용 bossa를 구해야 한다.

가장 쉬운 방법은 먼저 아두이노를 설치해서 실행한다. 실행한 후 화면 상단 메뉴 '툴->보드->보드 매니저'를 선택한다. 아래 스크린샷은 이미 설치가 되어 있지만 아두이노를 처음 설치하면 Arduino Due는 사용할 수 없는 상태이기 때문에 먼저 패키지를 설치해 줘야 한다.


 보드 매니저 윈도우에서 Arduino SAM Boards (32-bits ARM Cortex-M3) 를 선택한다.


 선택하면 오른쪽에 '설치' 버튼이 나타나므로 버튼을 눌러 패키지를 설치한다.


 설치가 끝나면 '닫기'를 눌러 보드매니저 윈도우를 닫고 다시 '툴->보드' 메뉴로 가 보면 이제 보드 목록 아래쪽에 Arduino Due 항목들이 보일 것이다.


 아두이노 듀에를 위한 툴체인이 설치된 것이다. 이제 설치된 툴체인에서 bossac을 찾으면 되는데 아두이노 1.6.5부터 툴체인 설치 위치가 이전 버젼과 달라졌을 뿐 아니라 시스템 숨김 파일로 되어 있어 그냥 찾으려고 하면 컴퓨터를 다 뒤져 봐도 찾을 수가 없다.

먼저 탐색기를 열어 사용자->[자신의ID] 폴더로 간다.


 탐색기의 '구성->폴더 및 검색 옵션' 메뉴을 선택한다.


폴더 옵션 윈도우가 열리면 '보기' 탭을 선택한 다음 '고급설정' 리스트를 아래로 스크롤 해 보면 아래 항목이 보일 것이다. 따로 설정을 변경하지 않았으면 디폴트로는 '보호된 운영 체제 파일 숨기기(권장)'가 체크 되어 있고, '숨김 파일 및 폴더'는 '숨김 파일, 폴더 또는 드라이브 표시 안 함'이 선택되어 있다.


 '보호된 운영 체제 파일 숨기기(권장)'는 체크를 없애고, '숨김 파일 및 폴더'는 '숨김 파일, 폴더 또는 드라이브 표시'를 선택한 다음 '확인' 버튼을 눌러준다.


이제 약간 희미한 폴더 아이콘들이 몇개 더 보이게 되었다. 여기서 'AppData' 폴더를 연다.


그 아래로 계속 쫒아가면 '...\AppData\Local\Arduino15\packages\arduino\tools' 에 bossac 폴더가 보인다. bossac 폴더 안에 폴더가 하나 더 있고 그 안에 bossac.exe 파일이 들어있다. 그냥 그 위치에 두고 사용해도 되지만 매번 찾기 귀찮으니 c 드라이브의 최 상단에 \utils 같은 폴더를 하나 만들어 그곳에 bossac.exe를 복사해 놓고 사용하면 편리하다.


이제 Atmel Studio를 실행한 후 상단 메뉴에서 'Tools->External Tools...'를 선택한다.


External Tools 윈도우가 열리면 초기 상태는 아래와 같다.


내용을 다음과 같이 변경한 후 'OK'버튼을 눌러 준다.

Title: Due writing <- 자신이 원하는 임의의 이름
Command: C:\Utils\bossac.exe   <- 아두이노용 bossac.exe 파일의 위치
Arguments: -e -w -v -b $(TargetDir)\$(TargetName).bin -R  <- 이대로 똑같이 입력
Initial directory: $(TargetDir)       <- 이대로 똑같이 입력

Use Output window는 체크


이제 Tools 메뉴를 보면 자신이 선택한 이름의 항목이 추가된 걸 볼 수 있다.


듀에에 USB 케이블은 Native USB 쪽에 꼽아주면 된다.


이제 SAM3X8E 프로세서용으로 프로젝트를 만들어 Build 한 후 위에서 추가한 메뉴항목(여기서는 Due writing)을 선택하면 bin 파일을 듀에의 플래쉬에 writing 해 준다. 만일 writing 하는데 포트를 찾을 수 없다고 에러가 나오면 먼저 ERASE 버튼을 잠시 눌러 준 후 듀에를 리셋 시키고 writing 을 하면 된다.




댓글 2개:

  1. 혹시 TargetDir, TargetName이 무슨 역할인지 알 수 있을까요?

    답글삭제
    답글
    1. 프로젝트의 디렉토리, bin 파일 이름이 들어있는 변수입니다. $(TargetDir) 이렇게 써 주면 실제로는 TargetDir 변수에 들어있는 값으로 치환이 되죠.
      즉 프로젝트 디렉토리가 c:\users\aaa\documents\mypjt 이고 프로젝트 이름이 helloworld 였다고 하면 각각 TargetDir에는 "c:\users\aaa\documents\mypjt"라는 값이, TargetName에는 "helloworld"라는 값이 들어가게 됩니다. 나중에 Atmel studio에서 bossac.exe를 실행할 때 어느 디렉토리에 있는 어떤 파일을 쓰라고 할지 알려줘야 하는데 argument 부분이 "-e -w -v -b $(TargetDir)\$(TargetName).bin -R"로 되어 있으면 실제로 atmel studio는 $(TargetDir), $(TargetName)이라고 되어 있는 부분을 해당 변수값으로 치환해서 실질적으로 "bossac.exe -e -w -v -b c:\users\aaa\documents\mypjt\helloworld.bin -R" 이라는 명령을 실행하게 됩니다.

      삭제