배우고픈 공돌이

eclipse로 arm ( STM32F4 discovery ) 개발 구축 : 테스트편 본문

ARM/MP3 player

eclipse로 arm ( STM32F4 discovery ) 개발 구축 : 테스트편

내 마음 아홉수 2017. 11. 2. 01:48

이제 실제로 프로젝트를 만들어 사용해보자.


1. stm32cube를 사용하여 가지고 있는 보드에 맞춘 코드를 생성한다.






2. 이클립스를 실행하고, file->new->c project에서 hello world type으로 프로젝트를 생성한다.

(STM32F7XX type으로 생성 시, 템플릿 타입(hello world type)과 달리 mux에서 생성된 소스와 충돌이 난다고 한다.)





3. 생성된 프로젝트에서 includes를 뺀 나머지를 모두 지우자. 그 후, mux로 생성된 폴더로 가서 프로젝트에 startup / drivers / inc / src / -.ld(링크 파일)을 넣는다.


** 스타트업 파일을 가져올 때, startup.s의 확장자를 대문자 S로 바꾼다. 컴파일할 때 대소문자를 가려 고쳐야할 점이다.





4.  프로젝트에 속성에 들어가서 c를 빌드하데 필요한 셋팅 작업을 한다.


4-1) devices 셋팅



중요한 점은 configuration에서 debug와 release 모두 적용시켜주어야한다는 것이다.


4-2) tool 셋팅



preprocessor(전처리) 어셈블 / c / c++ 에서 심볼을 DEBUG 하나만 남긴다. 

(configuration이 release 일 때는 싹 다 밀어준다.)


**각 configuration에서 적용을 누를 때 메세지가 뜨는데 지금 설정으로 리빌드 하겠냐는 뜻으로 이 것 말고도 아직 수정해야할 부분이 있음으로 no라고 누르면 된다.


 




기존의 include 경로를 밀어버리고 새로 대체한 소스의 include 경로를 넣는다.

(configuration이 release, debug 동일)


링커를 사용시 스타트업을 사용함으로 체크박스를 해제한다. (그리고 기존 스크립트 파일(링크파일)을 가져온 링크파일로  교체하고 라이브러리 경로를 지운다.)

(configuration이 release, debug 동일)



자! 여기까지 힘들게 왔다. 이제 빌드를 해볼까....



와우.. 에러천지다 ㅜ ㅜ;;


이유는 타겟에 대한 심볼 설정을 건너 띄었기 때문!


stm32f4xx.h에 들어가서 해당 mcu( STM32F407xx  )을 프로젝트 속성 Define에 추가해주자.



이제 알았으니 다음부터는 한방에 넣자. ( 사실 알았으나, 아무런 생각없이 레퍼런스를 따라하다보니 ... )


5. 실행파일이 만들어졌으니 타겟보드에 다운로드할 수 있도록 디버그 셋팅을 해본다.




위와 같이 고치고, 디버그하면!



짜잔!! 테스트 소스가 디버깅된다.


여기까지 설치부터 테스트까지 사용해 보았다.


지금까지 사용한 툴은


IAR EWARM 구버전, KEIL MDK5, COIDE, EMBIZ 및 이클립스를 사용했는데,


솔직히 편이성은 KEIL이 가장 좋은 것 같다. ( 클릭 몇번에 라이브러리, 서드파티 등이 셋팅되는 기적! )


무료인 COIDE나 EMBIZ도 좋지만 F7 이상의 버전은 지원을 안함으로,


결국 이클립스를 선택!


했다는 소식과 더불어 시간이 늦었음으로 20000..


** 디버깅하기 전에 STLINK가 재대로 J-LINK로 드라이버 변환되었는지 확인하시고 하시길... 









Comments