본문 바로가기

개발/embed

C2000Ware Sample code 를 다른곳으로 가져 가기

TI TMS320 입문 연재 입니다.

 

1. CCS, C2000Ware, sprc191 (sprc097) 설치, compile       ==          https://bahk33.tistory.com/205

2. XDS100, XDS200 로 CCS Debug 하기                           ==           https://bahk33.tistory.com/207

3. UniFlash 로 ( CCS 없이 ) FW Download 하기-                ==           https://bahk33.tistory.com/208  

4. C2000Ware Sample code 를 다른곳으로 가져 가기        == 본글   https://bahk33.tistory.com/209  

==========================================

본글 목차    250312

 

1.  소스 가져 오기

2. ".project" 수정하기

3. 필요 파일( .c, .asm , .h,  )들 복사 하기

4.  Include Path 조정

5. 라이브러리 가져오기

6. Build ( Compile) 하기

 

================================

1.  소스 가져 오기

> 작업 디렉토리로 

~\C2000Ware_5_04_00_00\device_support\f2806x\examples\c28\gpio_toggle\

의 것을 내가 원하는 곳으로 복사 합니다.

> 여기서는 "E:\Src\prjBahk\gpio_toggle" 로 합니다.

 

 

2. ".project" 수정하기

> ".project"를 열어 수정 합니다.   저는 편의상 Notepad++ 를 사용 합니다.     ( https://notepad-plus-plus.org/ )

> 2가지를 합니다:  "프로젝트명 수정 하기" 와 "파일 목록 지우기",  

1) 프로젝트 명 수정 하기

> 프로젝트 이름을 Example_2806xGpioToggle 에서 Bahk_2806xGpioToggle  바끕니다.

> 파일 맨위에 

<projectDescription>
   <name>Example_2806xGpioToggle</name>

를 

<projectDescription>
   <name>Bahk_2806xGpioToggle</name>

와 같이 바꿉니다

 

>  바꿀 이름은 마음대로 하셔도 되는데, 바꾸지 않으면, 혹시 나중에 같은 프로젝트 어쩌구 저쩌구 할 수도 있읍니다.   일단 바꾸시고 , 낭중에 고수가 되시면 알아서 하시는 것이 좋을 거 입니다.

 

2)  파일 목록 지우기

> <linkedResources> 와 </linkedResources> 사이에 있는 모든 파일 목록을 지웁니다.

> CCS 에서는 작업 디렉토리 아래 있는 파일project 파일에 있든 없든 다 컴파일 하는 군요,

  뭘 잠시 가져다 놓지 못하게 하는 군요 ?

  이렇게 안되게 하는 방법이 있는지 모르지만, 어째든 일단 지우고,  

  다음 작업에서 필요 한것은 복사 할 것 입니다.

 

	<linkedResources>
		<link>
			<name>28069_RAM_lnk.cmd</name>
			<type>1</type>
			<locationURI>INSTALLROOT_F2806x/common/cmd/28069_RAM_lnk.cmd</locationURI>
		</link>
        ... ... ...
        ... ... ...
	</linkedResources>
        
을

	<linkedResources>
		
	</linkedResources>

와 같이

 

( 사족이지만 )맨 아래 

	<variableList>
		<variable>
			<name>INSTALLROOT_F2806x</name>
			<value>$%7BPARENT-3-PROJECT_LOC%7D</value>
		</variable>

 

는 그냥 놔 두셔요

 

3) 수정 한 파일 저장 하셔요.

 

3. 필요 파일( .c, .asm , .h,  )들 복사 하기

> 복사한 폴더를 CCS 에서 불러 Build(compile) 하면서 에러 잡으면 되는 일입니다. 그것을 설명 합니다.

두 디렉토리 폴더 ( 프로젝트 )

1)    "~\C2000Ware_5_04_00_00\device_support\f2806x\examples\c28\gpio_toggle"

  와 

 2)   "E:\Src\prjBahk\gpio_toggle"

   를 로드( > File > Import Project ) 합니다.( 복사 한 프로젝트 이름을 바꾸지 않았으면 궁시렁 뎁니다. )

 

3)  첫번째 프로젝트에만 있는 파일 중 일단 "28069_RAM_lnk.cmd" 에서 마우스 오른쪽 버튼

4) "Copy Path" 

해서 NotePad 에 붙이면, 

"E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\cmd\28069_RAM_lnk.cmd"  와 같이 됩니다.

마찬 가지로 첫번째 프로젝트에만 있는 모든 파일 을 보면 아래와 같읍니다.

E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\cmd\28069_RAM_lnk.cmd
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\source\F2806x_CodeStartBranch.asm
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\source\F2806x_DefaultIsr.c
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\headers\source\F2806x_GlobalVariableDefs.c
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\headers\cmd\F2806x_Headers_nonBIOS.cmd
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\source\F2806x_PieCtrl.c
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\source\F2806x_SysCtrl.c
E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\source\F2806x_usDelay.asm

>  주로 common, headers 라는 폴더 아래 있는 것을 알 수 있읍니다.

 

5) 파일 하나씩 복사하는 거 보다 폴더를 복사 하고 지우도록 하겠읍니다.

>  디렉토리 E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\common\

   을  E:\Src\prjBahk\gpio_toggle 아래 복사 하셔요

> 디렉토리 E:\_t\_d\_ti\c2000\C2000Ware_5_04_00_00\device_support\f2806x\headers\

   을  E:\Src\prjBahk\gpio_toggle 아래 복사 하셔요

 

>  그럼 다음과 같이 디렉토리 E:\Src\prjBahk\gpio_toggle 가 보입니다.

 

6)  ~\common\cmd  디렉토리 

> 아래와 같이 "28069_RAM_lnk.cmd" 만 남기고 지웁니다.

 

7)  ~\common\source 디렉토리 

> 아래와 같이 있으면 안되는 파일들 지웁니다.

 

8)  ~\headers\cmd 디렉토리 

> 아래와 같이 있으면 안되는 파일들 지웁니다.

 

 

4.  Include Path 조정

> "\common\include"  와 "\headers\include" 가 "E:\Src\prjBahk\gpio_toggle\"  에 있다고 설정 하는 작업 입니다.

> 작업 폴더 마우스로 선택뒤 > Project > Properties

 

 

 

> "C2000 Compiler"  > 편집 ( 연필 같은거 ) > "\common\include"  와 "\headers\include"  앞에 있는

   "INSTALLROOT_F2806x" 를 "PROJET_LOC" 로 바꾸고

> 체크 > [Save and Close] 

 

> 그다음 보면, include path 가 변경 된것을 볼 수 있읍니다.

 

> 사족이지만, PROJECT_LOC 라는 변수 이름을 어찌 알 았냐 며는, 

> General > Variables 에서 확인 가능 합니다.

 

> 얼추 다 되었는데, 아직도 빌드 하면 에러가 나네요.

 

> 라이브 러리 2개 없다는 군요.

 

5. 라이브러리 가져오기

1) 먼저 C2000 Linker 에서 Library 위치를 수정 합니다.

   >  Linker 를 보시면, 2개 의 라이브러리가 어디 있는지

    ("E:/libraries/math/IQmath/c28/lib", "E:/libraries/math/FPUfastRTS/c28/lib" )

   알 수 있는데,

>  복사해 놓을 곳을 지정하기 위하여  "연필 같은 거" 누르시고 > "\common\lib"  앞에 있는

   "INSTALLROOT_F2806x" 를 "PROJECT_LOC" 로 바꾸고

> 체크 > [Save and Close] 

 

2)  사실 "E:\Src\prjBahk\gpio_toggle\common"  에 "lib" 라는 디렉토리 없으니 만드시고

 

3)  lib 파일 2개 를 만든 "~common\lib" 로 복사 합니다

"~\C2000Ware_5_04_00_00\libraries\math\IQmath\c28\lib\IQmath_fpu32.lib" 

"~\C2000Ware_5_04_00_00\libraries\math\FPUfastRTS\c28\lib\rts2800_fpu32_fast_supplement.lib"

를 디렉토리 "E:\Src\prjBahk\gpio_toggle\common\lib" 로 복사 합니다.

 

 

6. Build ( Compile) 하기

> Project > Build Projet 하면,  아직도 경고(Warning) 이 나오네요... "~_coff.lib"  가 없다고

 

 

 

> 2개 lib 추가로 복사 해주고, (자세한 설명 안해도 되겠지요 ? ㅎ)

 

 

 

 

> 빌드 하시면, 원래 있던 프로젝트와 같이 잘 되는것을 확인 할 수 있읍니다.

 

 

자 이제 들고 뛸수 있는 프로젝트로 만들었읍니다.  만든 집 파일첨부 합니다.

 

gpio_toggle.zip
0.29MB

 


============================

수고 하셨읍니다.

도움이 되셨으면, 댓글 부탁합니다. 댓글 하나에 힘이 됩니다.

고맙읍니다.