본문 바로가기
개발/TI_TMS320

TI C2000Ware Sample code 를 다른곳으로 가져 가기 : TMS320입문

by 즐기며 2025. 3. 13.

TI TMS320 입문 연재 입니다.

 

>.  CCS, C2000Ware, sprc191 (sprc097) 설치, compile

>.  XDS100, XDS200 로 CCS Debug 하기    

>.  FLASH 에서 실행, DELAY_US 문제             

>.  UniFlash 로 (CCS 없이) FW Download 하기(Driver 설치)  

>.  C2Prog 로 (CCS 없이) FW Download 하기 

>.  C2000Ware Sample code 를 다른곳으로 가져 가기            == 본글

>.  CCS v20 Project 만들기  

>.  CCS,  다른 ( 옛날 ) Compiler (CGT) 버전 설치  

>.  TMS320 F28069 CCS SCI(UART) source  

>.  TMS320 F28069 CCS PWM source     

>.  TMS320 F28069 CCS ADC source   


>>. 
 TMS320 error: program will not fit into available memory  

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

본글 목차    250312

 

1.  소스 가져 오기

2. ".project" 수정하기

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

4. 필요 없는 파일들 빼기

    - 직접 지우기

    - 빌드할때 빼기(Exclude from Build)

5.  Include Path 조정

6. 라이브러리 가져오기

7. 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 에서는 작업 디렉토리 아래 있는 파일기본적으로 다 컴파일 하는 군요,

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

 

	<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) 파일 하나씩 복사하는 거 보다 폴더를 복사 하고 지우도록(또는 Exclude from Build) 하겠읍니다.

>  디렉토리 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 가 보입니다.

 

 

4. 필요 없는 파일들 빼기

> CCS에서는 기본적으로 기본 디렉토리 아래 있는 모든 소스 파일들을 컴파일 합니다.

>  이에 따라 필요 없는 파일은 빼야 합니다.

 > 필요 없는 파일을 빼는 방법은,

      - 파일 자체를 지우는 방법 또는

      - 필요 없는 각파일을 "빌드할때 빼기(Exclude from Build)"로 설정 하는 방법이 있읍니다. 

1)  ~\common\cmd  디렉토리 

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

>  "빌드할때 빼기(Exclude from Build)"로 설정

 - 모든 파일 선택 > 마우스 오른쪽 버튼 > 빌드할때 빼기(Exclude from Build)  

 - "28069_RAM_lnk.cmd"  > 마우스 오른쪽 버튼 > 빌드할때 빼기(Exclude from Build)  선택 해제 합니다.

 

 

2)  ~\common\source 디렉토리 

> 아래와 같이 있으면 안되는 파일들 지웁니다.  또는  "빌드할때 빼기(Exclude from Build)"로 설정

필요 없는 파일을 지운 경우

 

3)  ~\headers\cmd 디렉토리 

> 아래와 같이 있으면 안되는 파일들 지웁니다. 또는  "빌드할때 빼기(Exclude from Build)"로 설정

필요 없는 파일 지운 경

 

4) 빌드할때 빼기(Exclude from Build) 하면

> 빌드할때 빼기(Exclude from Build)를 하면  ".cproject" 에 저장이 되어 다음에 

     File -> Import Project 하여도 빠지게 한것들 다시 빠져 있는것 보실 수 있읍니다.

 <sourceEntries>
   <entry excluding="spwm_2.c|spwm_1.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
 </sourceEntries>

> ".cproject" 를 열어 보시면, 위와 같이   <sourceEntries> 와  </sourceEntries> 사이에 들어 있으니, 나중에 이것을 수정 해도 되지 않을까 합니다. 직접 해보지는 않았읍니다.

 

5.  Include Path 조정

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

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

 

 

 

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

   "INSTALLROOT_F2806x" 를 "PROJECT_LOC" 로 바꾸고

> 체크 > [Save and Close] 

 

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

 

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

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

 

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

 

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

 

6. 라이브러리 가져오기

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" 로 복사 합니다.

 

 

7. Build ( Compile) 하기

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

 

 

 

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

 

 

 

 

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

 

 

자 이제 들고 뛸수 있는 프로젝트로 만들었읍니다. 

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

에서 만든 집 파일첨부 합니다.

gpio_toggle-250318.zip
0.29MB

 

 

 

추가로, 필요 없는 파일 지운게 아니라,

~\c2000\C2000Ware_5_04_00_00\device_support\f2806x\examples\c28\epwm_timer_interrupts

을 가져다 "빌드할때 빼기(Exclude from Build)"로 설정 한거 입니다.

ti-tms320f28069-epwm_timer_interrupts-250417.zip
0.69MB

 

ti-tms320f28069-epwm_deadband-250422.zip
0.43MB

 

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

다음 글은

   CCS v20 Project 만들기      

입니다.

 

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

수고 하셨읍니다.

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

고맙읍니다.