태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


이번엔 본 주제의 마무의리~ 로 TI가 기본 제공하는 칩-지원 소스들을 하나의 라이브러리 파일로 만들어보겠습니다. 아래와 같은 파일들인데요. TI가 칩-초기화 과정에서 사용하라고 각 주변회로별로 잘 만들어서 제공하고 있는 파일이지만 필요한 것들을 선택해서 프로젝트에 일일이 삽입하는것이 귀찮을 수 있습니다. 더욱이 이 소스파일들에서 제공되는 함수들의 대부분은 사용자가 수정이나 내용 추가없이 그냥 가져다쓰기만 하는 경우가 많습니다. 수정이 필요해도 원본 함수를 그대로 호출하고 달라지는 부분을 메인함수 안에서 다시 정의하는 경우가 많죠~ 그래서, 이 파일들을 하나로 묶어서 라이브러리로 만들어보겠습니다.


TMS320F28377D용 칩-지원 소스파일 목록 1

>>경로 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_common\source

 


TMS320F28377D용 칩-지원 소스파일 목록 2

>>경로 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_headers\source

 



총 29개나 되네요. 이제 저것들을 하나의 라이브러리 파일로 만들어보겠습니다. 앞서의 포스팅에서 라이브러리 파일 생성에 관한 각 단계별 절차들은 상세히 다뤘으므로 아래에서는 주요 포인트만 설명하겠습니다.





A1. 라이브러리 파일 제작용 프로젝트 생성

저는 'TiCspV200F28377DCpu1.lib' 란 이름으로 만들어보려고 합니다. CCS를 실행하고 라이브러리 파일 생성용으로 프로젝트를 만들어 줍니다. 'Advanced settings: ' 그룹에서 'Output type: ' 을 Static Library 로 설정하는 것 잊지 않으셨죠? ^^


 



메인 함수가 필요없어서 그냥 깔끔하게 'Project templates and examples' 옵션 그룹에서 'Empty Project' 항목을 골랐습니다.


 



A2. 라이브러리 파일로 묶을 칩-지원 소스들 추가하기

이제 생성한 프로젝트에 'Add Files...' 메뉴를 통해 TI 칩-지원 소스들을 전부다 추가합니다. 아래의 두 경로에 있는 파일 전부를 추가해주면 됩니다.

>>경로 1 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_common\source

>>경로 2 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_headers\source


 


이제 프로젝트 옵션으로 가서 필요한 항목들을 설정해줘야 합니다. 일단 저 소스파일들이 참조할 헤더파일의 경로를 설정해줘야 하겠습니다. TI 칩-지원 소스들이 참조할 헤더파일들은 아래의 두 경로에 모여 있습니다.

>>경로 1 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_common\include

>>경로 2 : C:\ti\controlSUITE\device_support\F2837xD\v200\F2837xD_headers\include


 


CCS 화면 좌측의 'Project Explorer' 창에서 TiCspV200F28377DCpu1' 프로젝트 이름을 마우스 우측버튼으로 클릭합니다. 그러면 단축메뉴가 나오는데요. 맨 아래에 'Properties' 항목을 클릭해주세요. 프로젝트 환경설정 창이 나타나면 Build --> C2000 Compiler --> Include Options 항목을 선택합니다. 위쪽의 'Specify a preinclude file' 란은 개별 헤더파일들을 추가할 수 있는 공간이고, 아래쪽의 'Add dir to #include search path' 란이 내 프로그램 소스에서 '#include xxxx.h' 라고 했을때 해당 헤더파일들을 검색할, 디렉터리 경로를 설정하는 공간 입니다. 해당 란 우측 상단쪽에 '+' 아이콘을 클릭하고 위의 헤더파일 경로 2개를 모두 설정해줍니다.


 


 



그리고 한가지 더!! 기존의 싱글코어 28X 칩들은 안그랬는데, TMS320F28377D는 듀얼코어다보니, TI 칩-지원 소스들이 CPU1 혹은 CPU2 라는 이름의 라벨에 따라 각기 다른 코드가 선택되도록 되어 있습니다. Build --> C2000 Compiler --> Advanced Options --> Predefined Symbols 항목을 선택하고 'Pre-define NAME' 란에 'CPU1'을 추가합니다. 마치 소스나 헤더파일에 '#define CPU1'와 같이 정의하는 것과 같은 역활을 하는데요. 이렇게 추가한 키워드는 프로젝트 전역에 유효하게 됩니다.


 



이제 'OK' 버튼을 클릭해서 변경한 내용을 저장해줍니다. 프로젝트 환경설정 내용을 저장하고 살펴보면 프로젝트의 'Includes' 항목 아래에 설정했던 헤더파일 탐색경로 2개가 추가되었음을 확인할 수 있습니다.



 




A3. 프로젝트 빌드 & 라이브러리 파일 생성

이제 프로젝트를 빌드(Build)해서 'TiCspV200F28377DCpu1.lib' 파일을 만들어주세요. 프로젝트 경로 아래에 있는 'Debug' 란 서브 경로에 라이브러리 파일이 생성됩니다.


 



2Mbyte가 넘네요 ㄷㄷㄷ... '이거 프로젝트에 넣고 쓰면 Output 파일 크기도 어마어마하게 커지는거 아닌가?' 하는 생각을 하실수도 있습니다. 하지만 걱정하지 않으셔도 됩니다. 이제 실제로 예제에다가 라이브러리 파일을 삽입해서 확인해보겠습니다.



A4. 라이브러리 파일 확인해보기

앞서 테스트에 사용했던 'blinky_cpu01' 예제를 다시 이용해보겠습니다. 해당 예제에는 아래와 같이 몇개의 TI 칩-지원 소스들이 사용되었습니다. 이것들을 모두 빼버리고 새로 만든 라이브러리로 대체해보겠습니다.


 



샤샤삭~!!!!!


 

 



어떤가요? 프로젝트가 굉장히 깔끔해졌습니다. ㅎㅎㅎ 이제 blinky_cpu01 프로젝트를 빌드(Build) 해보죠~ 전처럼 잘 컴파일되서 Output 파일이 생성되는지...





오류 하나 없이 깔끔하게 Output 파일이 생성되었습니다. 그럼 파일 크기는 어떨까요? 앞서 라이브러리로 묶은 오브젝트들만 해도 2Mbyte가 넘었었죠....




짜잔~! 470kbyte 정도네요. (^^)

라이브러리 파일로 묶인 오브젝트들이 컴파일 과정에서 전부 Output 파일에 포함되지 않습니다. 내가 사용한 것들만 쏙! 쏙! 골라서 Output 파일 생성에 포함됩니다.



여기까지... CCS의 프로젝트를 이용해서 Static Library를 만들어보는 팁 포스트를 마치겠습니다.

앞으로도 CCS 기능 중에 유용하다싶은... 초심자분들께 어렵다 싶은... 것들이 있으면

꾸준히 올려보겠습니다.


읽어주셔서 감사합니다.


(^^) (__) (^^)/"


CodeComposerStudio,CCS,라이브러리,StaticLibrary,Library,TMS320F28377,Project,프로젝트,TIP,팁

저작자 표시
신고
Posted by 남상일

댓글을 달아 주세요