요즘 그리도 관심 받는다는 Cortex-M3 코어를 사용해보고 싶은 마음만 앞서는 바람에 질러버렸습니다. 먼저 몇몇 보드를 구입해봐야겠지요. CPU보드와 JTAG을 구매 하기로 합니다. 먼저 Cortex-M3 코어를 내장한 LM3S3962는 엔코더 카운터 두 채널을 가지고 있고, Ethernet, CAN, SPI, I2C, UART 등의 거의 모든 통신이 다 되며, 플래시 메모리는 256KB, 64KB의 SRAM을 가지고 있습니다. 동작 주파수는 50MHz입니다.
- CPU 보드 : 디바이스마트 myCortex-LM8962
- JTAG 보드 : 디바이스마트 StellarisJTAG
- 기술지원 : Withrobot
이렇게 두 보드를 구입합니다. 위 기술지원 홈페이지에 가면 각종 기술지원을 받을 수 있으며, 또한 시작 메뉴얼을 구할 수 있습니다. 이 번 포스팅에는 JTAG부터 보드까지 초보가 설치하는 순서와 제작사에서 제공하는 메뉴얼에 없거나 혹은 제가 만났던 에러를 다루면서 가겠습니다. 물론 메뉴얼과 겹치는 부분도 분명 있을 것입니다.
먼저 Stellaris-JTAG을 USB에 전원없이 그냥 케이블만 연결하고, 메뉴얼에 나와있는데로 드라이버 위치잡고 설정들어가면, 총 3가지 장치가 잡혀야합니다.
위와같이 Board A, B와 가상 시리얼포트가 잡혀야합니다.
그 다음 설치 해야할 것이 CodeSourcery G++ Lite 입니다.
위에 보이는 화면에서 EABI라고 되어있는 항목을 다운받습니다.
설치중인 화면이에요...
다음이 당연히 Editor를 설치해야겠지요... Eclipse라는 툴을 제작사에서는 권하고 있습니다. 저는 처음이라 - 사실은 무료로 제공되는 것중에서 이렇게 복잡한 툴은 처음이라 아직도 좀 어리둥절합니다. 일단 위 링크로 이동하면
보이는 저 화면에서 표시된 부분을 클릭해서 Windows용을 받습니다. 현재 최신버전은 Eclipse 3.4.2네요. 아.. Eclipse는 설치라는 개념이 아니라 복사(^^)라는 개념입니다. 복사 위치는 압축풀고 Ecplise라는 폴더를 C:\program File 폴더에 두시면 됩니다. 그리고 뭐 실행아이콘 원하는데다 바로가기 두시구요. 실행해보면 저의 경우는
라는 에러가 뜨더군요. 언능 Java 깔아야지요...^^
살짝 자바깔고 나면 eclipse가 실행될 것입니다.
일단 시작 화면이 좀 마음에 들구요...^^
실행하자 마자 Help/Software Updates로 가셔서
Eclipse C/C++ GDB Hardware Debugging을 체크하셔서 업데이트를 하셔야합니다.
그 다음이 Cygwin을 설치하셔야합니다. 사실... WinARM이나 WinAVR, CodeVision, Code Composer. DevC++ 등등의 컴파일러 및 에디터등을 사용해봤지만 Cygwin이라는 것을 처음 보았습니다. 뭐하는 놈인진 정확하게는 모르겠지만 (솔직히 말하면 깔라니까 그냥 깔겠습니다. 이걸 공부하는게 목적이라기 보단 전 그냥 CortexM3를 가지고 제 헬리콥터에 장착하는게 목적이니까요..ㅜ.ㅜ). 여하튼 또 Cygwin 사이트로 이동해서 다운받고
위 화면에 나오는 애들을 설치해야합니다. 그리고 나서 내컴퓨터/우클릭/고급/환경변수 에서 C:\cygwin\bin 이라는 항목을 젤 앞에 추가해줍니다. 그 다음 다시 http://www.withrobot.com/entry/myCortex-LM8962 로 가서 StellarisWare API 함수 모음이라는 화일들을 받습니다.
그 압축을 풀고 실행화일 하나 있는 그놈을 실행하시고 나면 뭘 왕창 설치할텐데요. 거기서 C:\StellarisWare|boo_loader 폴더의 bl_check.c 화일을
열어서, 다음 부분과 같이 수정해줍니다.
위 세 가지 부분을 수정해야한다네요. 그 다음 다시 제작사 홈페이지인 Withrobot에서 예제 소스를 받아서 StellarisWare 폴더 하위에 examples 폴더를 만들고, 그 안에 다시 myCortex-LM8962 폴더를 만들어 카피해둡니다.
그리고 나서 Eclipse를 실행하고 File의 Workspace 어쩌고를 눌러서 위의 표시된 폴더를 지정하고 살짝 빌드를 눌러주면, 에러들이 나타납니다..ㅜ.ㅜ... 그 에러들에 대해 제작사에 질문을 올렸는데, 답변이 나왔네요
먼저
위 와같이 timer 를 열어두고 빌드를 시키면
이번에는 위와같은 워닝들이 나타남을 볼수있습니다.
timer프로젝트 이름에서 우클릭으로 속성을 보면
이와같이 나타나는데 저 Discovery profiles scope를 Per Language로 변경합니다.
저렇게 OCD_Server나 Programmer를 선택 실행하시던지
저 아이콘의 화살표를 눌러서 실행하시면 됩니다. 여기서 Programmer는 그냥 플래쉬메모리에 프로그램을 이식하는 것이고 Server는 디버깅툴이 동작하는 것인 모양입니다.
Programmer를 실행하면
Console창에 위와 같은 에러스러운 메세지들이 나타납니다. 역시 Withrobot에 문의하니 -그분들 저때매 꽤 귀찮았을듯...죄송...-
신경끄라더군요...ㅜ.ㅜ 그러나 동감입니다. OpenOCD를 깊게 공부할 것도 아니고 정상의 메세지라니 그냥 넘어가도록 하겠습니다.
그리고 에디트 창에 보면 timer.c를 열어서 보면
위와 같이 물음표가 나타나고 마우스를 올려보면 Unreserved... 어쩌고로 꽤 불안감을 조성하는 메세지가 나타납니다. 역시 문의했습니다. withrobot에...^^ 문의 내용은 저와 같은 물음표에도 불구하고 어떻게 컴파일이 정상적으로 되는가 인데... 뭐 답변은 역시 "이상없음"이었습니다. 그래서 저도 그냥 둘려고 했는데 그냥 두면 컴파일러 에디트창에서 저 화일들이 열리질 않습니다. 그래서 아까 그 프로젝트 속성창의 path지정하는 곳에서 저 화일들의 위치를 찾아서 Add해 줬습니다. 물론 물음표 사라졌지요...
다시 위 버튼의 server를 클릭하면
콘술창에 위와같이 뜨고
위와 같은 디버그 창이 뜹니다. 위 디버그창에 대해서는 좀 공부를 해야겠습니다. 일단 뭐 된다는거...ㅜ.ㅜ
일단 이렇게해서 보드사용준비는 마친모양입니다.^^.
그러고나면 LED하나가 깜빡깜빡거립니다. 아... 플래쉬후에는 리셋버튼 눌러줘야해요^^
- CPU 보드 : 디바이스마트 myCortex-LM8962
- JTAG 보드 : 디바이스마트 StellarisJTAG
- 기술지원 : Withrobot
이렇게 두 보드를 구입합니다. 위 기술지원 홈페이지에 가면 각종 기술지원을 받을 수 있으며, 또한 시작 메뉴얼을 구할 수 있습니다. 이 번 포스팅에는 JTAG부터 보드까지 초보가 설치하는 순서와 제작사에서 제공하는 메뉴얼에 없거나 혹은 제가 만났던 에러를 다루면서 가겠습니다. 물론 메뉴얼과 겹치는 부분도 분명 있을 것입니다.
먼저 Stellaris-JTAG을 USB에 전원없이 그냥 케이블만 연결하고, 메뉴얼에 나와있는데로 드라이버 위치잡고 설정들어가면, 총 3가지 장치가 잡혀야합니다.
위와같이 Board A, B와 가상 시리얼포트가 잡혀야합니다.
그 다음 설치 해야할 것이 CodeSourcery G++ Lite 입니다.
위에 보이는 화면에서 EABI라고 되어있는 항목을 다운받습니다.
설치중인 화면이에요...
다음이 당연히 Editor를 설치해야겠지요... Eclipse라는 툴을 제작사에서는 권하고 있습니다. 저는 처음이라 - 사실은 무료로 제공되는 것중에서 이렇게 복잡한 툴은 처음이라 아직도 좀 어리둥절합니다. 일단 위 링크로 이동하면
보이는 저 화면에서 표시된 부분을 클릭해서 Windows용을 받습니다. 현재 최신버전은 Eclipse 3.4.2네요. 아.. Eclipse는 설치라는 개념이 아니라 복사(^^)라는 개념입니다. 복사 위치는 압축풀고 Ecplise라는 폴더를 C:\program File 폴더에 두시면 됩니다. 그리고 뭐 실행아이콘 원하는데다 바로가기 두시구요. 실행해보면 저의 경우는
라는 에러가 뜨더군요. 언능 Java 깔아야지요...^^
살짝 자바깔고 나면 eclipse가 실행될 것입니다.
일단 시작 화면이 좀 마음에 들구요...^^
실행하자 마자 Help/Software Updates로 가셔서
위 화면에서
Eclipse C/C++ GDB Hardware Debugging을 체크하셔서 업데이트를 하셔야합니다.
그 다음이 Cygwin을 설치하셔야합니다. 사실... WinARM이나 WinAVR, CodeVision, Code Composer. DevC++ 등등의 컴파일러 및 에디터등을 사용해봤지만 Cygwin이라는 것을 처음 보았습니다. 뭐하는 놈인진 정확하게는 모르겠지만 (솔직히 말하면 깔라니까 그냥 깔겠습니다. 이걸 공부하는게 목적이라기 보단 전 그냥 CortexM3를 가지고 제 헬리콥터에 장착하는게 목적이니까요..ㅜ.ㅜ). 여하튼 또 Cygwin 사이트로 이동해서 다운받고
위 화면에 나오는 애들을 설치해야합니다. 그리고 나서 내컴퓨터/우클릭/고급/환경변수 에서 C:\cygwin\bin 이라는 항목을 젤 앞에 추가해줍니다. 그 다음 다시 http://www.withrobot.com/entry/myCortex-LM8962 로 가서 StellarisWare API 함수 모음이라는 화일들을 받습니다.
그 압축을 풀고 실행화일 하나 있는 그놈을 실행하시고 나면 뭘 왕창 설치할텐데요. 거기서 C:\StellarisWare|boo_loader 폴더의 bl_check.c 화일을
열어서, 다음 부분과 같이 수정해줍니다.
위 세 가지 부분을 수정해야한다네요. 그 다음 다시 제작사 홈페이지인 Withrobot에서 예제 소스를 받아서 StellarisWare 폴더 하위에 examples 폴더를 만들고, 그 안에 다시 myCortex-LM8962 폴더를 만들어 카피해둡니다.
그리고 나서 Eclipse를 실행하고 File의 Workspace 어쩌고를 눌러서 위의 표시된 폴더를 지정하고 살짝 빌드를 눌러주면, 에러들이 나타납니다..ㅜ.ㅜ... 그 에러들에 대해 제작사에 질문을 올렸는데, 답변이 나왔네요
먼저
위 설명처럼 StellarisWare/third_party/lwip-1.3.0/src/netif/etharp.c 화일의 내용중 위 그림의 파랑생글씨부분을 찾아서 if - else - endif 구문을 넣어줍니다.
이제 Eclipse 재실행하고
위 와같이 timer 를 열어두고 빌드를 시키면
이번에는 위와같은 워닝들이 나타남을 볼수있습니다.
timer프로젝트 이름에서 우클릭으로 속성을 보면
이와같이 나타나는데 저 Discovery profiles scope를 Per Language로 변경합니다.
그리고 C/C++ general 항목에 보면 위와같이 path들이 나타나는데요. 방금전 워닝에 대해서 Withrobot에 문의한 결과 세가지 정도의 해법이 있다고 합니다.
메뉴얼에는 제일 첫번째 것을 소개했는데요. 전 마지막 방법을 사용해서 워닝이 나타나는 폴더들을 해당경로에 만들어 줬습니다. (이부분이 가장 귀찮더군요..ㅜ.ㅜ) 그리고 빌드해보면 워닝이나 에러 없이 잘 나타난다는 사실을 알수있습니다.
이제 Run / External Tools / External Tools Configurations에서
OpenOCD의 경로를 위에서 처럼 수정해줍니다.
이제
저렇게 OCD_Server나 Programmer를 선택 실행하시던지
저 아이콘의 화살표를 눌러서 실행하시면 됩니다. 여기서 Programmer는 그냥 플래쉬메모리에 프로그램을 이식하는 것이고 Server는 디버깅툴이 동작하는 것인 모양입니다.
Programmer를 실행하면
Console창에 위와 같은 에러스러운 메세지들이 나타납니다. 역시 Withrobot에 문의하니 -그분들 저때매 꽤 귀찮았을듯...죄송...-
신경끄라더군요...ㅜ.ㅜ 그러나 동감입니다. OpenOCD를 깊게 공부할 것도 아니고 정상의 메세지라니 그냥 넘어가도록 하겠습니다.
그리고 에디트 창에 보면 timer.c를 열어서 보면
위와 같이 물음표가 나타나고 마우스를 올려보면 Unreserved... 어쩌고로 꽤 불안감을 조성하는 메세지가 나타납니다. 역시 문의했습니다. withrobot에...^^ 문의 내용은 저와 같은 물음표에도 불구하고 어떻게 컴파일이 정상적으로 되는가 인데... 뭐 답변은 역시 "이상없음"이었습니다. 그래서 저도 그냥 둘려고 했는데 그냥 두면 컴파일러 에디트창에서 저 화일들이 열리질 않습니다. 그래서 아까 그 프로젝트 속성창의 path지정하는 곳에서 저 화일들의 위치를 찾아서 Add해 줬습니다. 물론 물음표 사라졌지요...
다시 위 버튼의 server를 클릭하면
콘술창에 위와같이 뜨고
Window의 Debug나 메인창의 아이콘 눌러주면
위와 같은 디버그 창이 뜹니다. 위 디버그창에 대해서는 좀 공부를 해야겠습니다. 일단 뭐 된다는거...ㅜ.ㅜ
일단 이렇게해서 보드사용준비는 마친모양입니다.^^.
그러고나면 LED하나가 깜빡깜빡거립니다. 아... 플래쉬후에는 리셋버튼 눌러줘야해요^^
현재(2010년 3월) 새로운 버젼의 Eclipse가 발표되고난 후 withrobot측의 메뉴얼이 수정 - 재배포되고 있습니다. 그러므로 이 포스팅은 더이상 해당사항없음입니다.
- PinkWink -반응형
'Hardware > MCU' 카테고리의 다른 글
DC 모터의 모션(서보)제어 (Servo Control - Motion Control) (68) | 2011.07.06 |
---|---|
[Cortex M3] 엔코더해석 결과를 일정시간간격으로 시리얼통신으로 전송하기 (42) | 2009.06.04 |
[Cortex M3] 단순 시리얼통신 테스트 ComPortMaster (4) | 2009.06.04 |
WinARM에서 작업폴더 바꾸기 (0) | 2009.05.01 |
ARM7과 텍스트형 LCD (0) | 2009.04.15 |
외부 IO 핀 입출력 테스트 (2) | 2009.04.15 |
ARM7 테스트보드를 위한 회로구성 (0) | 2009.04.15 |