본문 바로가기

Hardware/MCU

Cortex M3 LM8962 왕초보 설치기.... 헉헉

요즘 그리도 관심 받는다는 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 어쩌고를 눌러서 위의 표시된 폴더를 지정하고 살짝 빌드를 눌러주면, 에러들이 나타납니다..ㅜ.ㅜ... 그 에러들에 대해 제작사에 질문을 올렸는데, 답변이 나왔네요



먼저


위 설명처럼 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 -


반응형