기술자료

[CCS TIP] CCS 실행속도를 빠르게 ...

싱크웍스 2019.01.31 13:45:37 조회수 5,929

Code Composer Studio 에 대한 잡담

처음 사용했던 Code Composer Studio(CCS) 버전은 v2.x 였던 것으로 기억합니다. 그 후 v3.1, v3.3 으로 지속적인 버전 업이 이루어졌으며, v3.3 에 와서는 알려진 버그들도 대부분 개선되고 아주 쾌적한 개발환경을 제공했었습니다. 툴이 필요로하는 PC 자원도 작은 편이라 필자의 열악한(?) PC 사양에서도 쌩쌩 잘 돌아갔었습니다.


But! 그러나 TI가 Code Composer Studio를 v4.x 로 갱신하면서 무슨 바람이 불었는지 'Eclipse' 라는 JAVA 기반 소프트웨어 플랫폼을 사용하게 됩니다. 아~ v4.x~ 참 말이 많았던 버전이었습니다. 실행 중 갑자기 오류 창과 함께 꺼지는 경우도 많았고, 이런 저런 각종 버그들이 집약된 소프트웨어 같다는 느낌을 줄 정도로 불안했던 버전으로 기억에 남아 있습니다. 이때 TI 욕을 많이 했지요. (^^;) '왜 잘 돌아가던 CCS의 기반 플랫폼을 바꿔서 이따위로 만들었나?' 하는 생각을 참 많이 했었습니다. 그런 이유로 v4.x 버전의 경우는 잘 사용하지 않았습니다. 간혹, CCS v4.x 용 프로젝트를 만들어야 하는 경우에도, v3.3 에서 프로그래밍 및 디버깅을 모두 완료한 후 v4.x 에서 완성된 소스 파일을 이용해서 프로젝트를 생성하곤 했었습니다.


그런던 중, Code Composer Studio v5.x 가 출시되었습니다. 워낙 v4.x 버전에 대해 안좋은 기억이 많았던지라 사용 여부에 대해 고민을 했지만, 컴파일러의 버전 문제 등으로 종국에는 싫어도 최신 버전을 사용해야 하기에 속는셈치고 설치 후 실행을 해보았습니다. 어!? 기대(?)와는 달리 예전에 문제되던 버그들도 대부분 사라진듯하고 프로그램 안정성도 많이 개선되어 사용에 큰 불편함이 없었지요. 또, 조금 익숙해지고 나니까 v3.3 에 비해 더 편리한 기능들도 다수 눈에 보이더군요. 그때부터 v5.x 를 주로 사용했고, 그 이후 갱신되는 최신 버전들을 계속 사용해왔습니다. 현재는 v8.3.0.00009  버전까지 갱신된 상태입니다. 아마도 CCS v8.x에 대한 버전업은 여기서 마무리되고 곧 CCS v9.x가 출시되지 않을까 싶습니다. TI의 CCS Roadmap Wiki 페이지에 CCS v9 갱신 일정이 2019년 2월로 되어 있네요.

 

[TI CCS Roadmap Wiki Page]

http://processors.wiki.ti.com/index.php/Code_Composer_Studio_Roadmap

 

TI의 CCS Wiki 페이지 내용에 의하면, CCS v9.x 부터는 정식 64비트 어플리케이션으로 개발되는 것 같습니다. 32비트 운영체제를 사용하는 사람들은 CCS v8.x 혹은 그 이전 버전을 사용해야 한다는 안내가 눈에 보이네요. 아울러 XDS510 계열 에뮬레이터에 대한 지원도 CCS v8.x가 마지막인 것 같습니다.


[TI의 안내 원문]

 

Windows 32bit will not be supported with CCSv9. CCS to be a 64bit application on Windows in 2019.  This will mean that it will not work on 32bit Windows systems.  People with 32bit Windows Systems would need to stick with CCSv8 or earlier. 

XDS510 support deprecation with CCSv9. Support for XDS510 class probes was deprecated years ago for Linux and MacOS.  With the release of CCSv9 it will also be dropped on Windows.  If you need to use one of these older probes please use CCSv8 or earlier.

 

  

Code Composer Studio를 좀 더 빠르게 사용하기

아무튼 Code Composer Studio 가 v4.x 이후로 'Eclipse' 라는 소프트웨어 플랫폼을 기반으로 하고 있고, 향후로도 큰 문제가 없는한 이를 기초로 버전 갱신이 이루어질 것으로 생각됩니다. 앞에서 이런저런 이야기들을 풀어놓았지만, 정작 이 글을 쓰게된 이유는 이 'Eclipse' 를 기반으로 한 CCS를 좀 더 빠릿빠릿하게 만들 수 있는 방법이 있어 소개하고자 함 입니다.

먼저 PC에 설치된 Code Composer Studio를 실행해봅니다. 물론 PC에 CCS V8.x 가 설치되어 있어야 하겠지요. (^^) 작업할 Workspace 경로를 지정하고 나면, 아래와 같은 CCS 초기화면을 보실 수 있을 것 입니다. 참고로 필자는 Code Composer Studio v8.3.0.00009  버전을 사용하고 있습니다.



상단 메뉴들 중 Window --> Preferences 를 선택하면 아래와 같은 화면이 나타납니다.


ac529e42505d44c546987399c43ef2c1_170340.png
 

좌측에는 여러 설정들이 그룹화된 카테고리들을 볼 수 있고 우측에서 'Show heap status' 라는 옵션 항목을 찾으실 수 있을 것 입니다. 이 옵션을 체크하고 하단의 'OK' 버튼을 클릭하여 설정을 저장합니다. 그리고 나서 CCS 화면 우측 하단을 보면 전에 없던 무엇인가가 생겼음을 볼 수 있을 것 입니다.



'Eclipse' 는 JAVA를 기반으로 하고 있습니다. 위의 이미지 우측하단에 표시된 것이 JVM(Java Virtual Machine)의 Heap 메모리 사용량 입니다. 그냥 CCS를 실행만하고 아직 아무것도 안했는데 이미 202Mbytes의 메모리가 사용되고 있습니다. 최대 값은 271M 로 표시되어 있는데요. 현재 약 75% 정도 사용중이네요. CCS v8.x 는 개발 편의를 위해 다양한 기능들을 제공하고 있고, 이는 곧 프로그래밍이나 디버깅 과정에서 위의 화면 위에 다수의 추가 창들이 나타나게 됨을 의미합니다. 또한, 여러가지 GUI(Graphic User Interface)들도 있고, 만약 RTO/S까지 사용하게 된다면 이것이 제공하는 각종 창들 및 GUI 들을 다뤄야 하기에 더더욱 많은 메모리가 필요하게 될 것 입니다. 실제로 간혹 CCS v8.x 에서 다수의 정보 창들을 띄워놓고, GUI 들을 조작하다보면 알 수 없는 동작을 한다던지 메모리 부족에 대한 경고 메시지가 나오곤 합니다.

요즘은 예전같지 않아서 PC의 성능 및 자원들이 상당히 우수하고 풍부해졌습니다. 요즘 판매하는 PC들을 보면 주 메모리 용량이 거의 8GB 이상입니다. CPU 코어도 듀얼코어를 넘어 쿼드코어가 보편화 되었습니다. 여기서 '그럼 PC의 이런 자원들을 보다 효율적으로 CCS에 할당해서 CCS를 좀 더 빠르게 쓸 수 없을까?' 하는 생각이 들게 됩니다. PC의 여유 메모리 용량이 좀 된다면 이를 이용하여 CCS를 보다 쾌적하게 이용할 수 있습니다. 그 방법들 중 한가지를 알려드리겠습니다.

일반적으로 CCS v8.x 를 기본설정으로 설치하면 아래의 경로에 CCS가 설치되게 됩니다.

- CCS v8 기본 설치 경로 : C:\ ti \ ccsv8

위의 경로에 CCS가 설치되었다고 가정하고, 아래의 경로를 찾아보시면 'ccstudio.ini' 라는 파일을 확인하실 수 있을 것 입니다. 메모장이나 유사 텍스트 에디터를 이용해서 이 파일을 열어봅시다. 원래 Eclipse의 기본환경설정 파일은 eclipse.ini 이지만 CCS는 아래의 파일을 사용합니다.

- C:\ ti \ ccsv8 \ eclipse \ ccstudio.ini



이런 저런 알 수 없는 내용들이 적혀있습니다. 그 중 21번, 22번 줄(사용자에 따라 줄번호는 다를 수 있습니다.)을 보면 '-Xms128m' 라는 항목과 '-Xmx768m' 이라는 항목이 있습니다. 이것이 JVM Heap size를 설정한 것 입니다. '-Xms' 가 초기의 Heap 크기를 의미하고, '-Xmx' 는 최대 Heap 크기를 나타냅니다. 즉, Eclipse 기반 CCS v8.x 가 실행된 후, JVM Heap 크기가 기본 128MByte 부터 최대 768MByte 까지 상황에 따라 유동적으로 사용된다고 볼 수 있습니다. 이것을 아래와 같이 수정해보겠습니다.

-Xms768m

-Xmx768m



수정 후 파일을 저장하고 CCS를 다시 실행한 후, CCS 화면 우측하단의 JVM Heap size 사용량 안내를 살펴봅니다.



최대 Heap size 를 768MBytes 로 설정해준 후, 사용량에 비해 아직 여유용량이 충분함을 확인할 수 있습니다. 여기서 한가지 더 말씀을 드리면, 앞서 '-Xms' 가 초기 Heap size, '-Xmx' 가 최대 Heap size 라고 말씀을 드렸었고, 이를 수정하면서 초기나 최대 크기를 모두 768MBytes 로 동일하게 바꿔줬습니다. 초기 크기와 최대 크기를 다르게 설정할 수도 있지만 이를 동일하게 해줬을때 보다 더 빠른 성능을 기대할 수 있습니다. 그 이유는, 초기와 최대 크기가 서로 다를 경우 사용량에 따라 유동적으로 Heap 메모리가 사용되게 되고, 필요에 따라 현재 할당된 Heap 메모리 크기를 늘려야 하는 경우 이미 배치된 정보들을 다시 재-배치하는 과정이 필요하기에 보다 시간이 걸리기 때문입니다. 그리고, 앞서는 768MBytes 로 Heap 크기를 지정했지만 내가 사용중인 PC의 주 메모리 용량이 8GB 이상이라면(예, 8GB, 16GB, ...), '-Xms1024m', '-Xmx1024m' 과 같이 더 큰 용량을 배정할 수도 있습니다. 하지만, 무조건 키운다고 좋은 것은 아님을 주의하세요. Heap 메모리에 너무 많은 PC 메모리 용량을 할당하면 PC의 총 여유 메모리 용량이 작아지고 CCS 실행속도가 오히려 더 느려질수도 있습니다. (^^;)

이 외에도 Eclipse 플랫폼의 최적화를 위한 옵션들이 많이 있습니다. 웹에서 'Eclipse 최적화' 란 키워드로 검색해보시면 보다 많은 정보들을 확인하실 수 있으실 것 입니다. 

 

 

총 댓글 0
로그인을 하셔야 댓글을 등록하실 수 있습니다.
번호 제목 작성자 날짜
번호 제목 날짜 작성자 조회
22 [E2E 스레드] F28x의 16비트 주소 지정과 엔디안(Endian) 정리 이미지첨부 있음 2026.09.16 인터럽트 26
21 [TIP] 배열 초기화 작업 어떻게 하고 계신가요? (loop unroll / memset 함수 활용) 이미지첨부 있음 인기글 2019.02.27 싱크웍스 4003
20 [CCS TIP] CCS 실행속도를 빠르게 ... 이미지첨부 있음 인기글 2019.01.31 싱크웍스 5929
19 [CCS TIP] CCS 실시간 디버깅 시, 화면 갱신율 조정 방법 이미지첨부 있음 인기글 2018.10.11 싱크웍스 2513
18 [CCS TIP] CCS에서 라이브러리 파일(*.lib)을 만들기 - 3편 이미지첨부 있음 인기글 2016.10.21 싱크웍스 4353
17 [CCS TIP] CCS에서 라이브러리 파일(*.lib)을 만들기 - 2편 이미지첨부 있음 인기글 2016.10.19 싱크웍스 2016
16 [CCS TIP] CCS에서 라이브러리 파일(*.lib)을 만들기 - 1편 이미지첨부 있음 인기글 2016.10.18 싱크웍스 1946
15 [SPRAAD8A] 6. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.16 이지영 1058
14 [SPRAAD8A] 5. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.15 이지영 626
13 [SPRAAD8A] 4. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.13 이지영 647
12 [SPRAAD8A] 3. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.10 이지영 722
11 [SPRAAD8A] 2. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.09 이지영 989
10 [SPRAAD8A] 1. TMS320280x and TMS3202801x ADC 교정(Calibration) 이미지첨부 있음 인기글 2010.09.08 이지영 1927
9 [SPRAAU8] 5. TMS320C28xxx DSC에서 컴파일러 섹션을 Flash로부터 RAM으로 복사하는 방법 인기글 2010.03.30 싱크웍스 1374
8 [SPRAAU8] 4. TMS320C28xxx DSC에서 컴파일러 섹션을 Flash로부터 RAM으로 복사하는 방법 인기글 2010.03.30 싱크웍스 1157
7 [SPRAAU8] 3. TMS320C28xxx DSC에서 컴파일러 섹션을 Flash로부터 RAM으로 복사하는 방법 이미지첨부 있음 인기글 2010.03.30 싱크웍스 1450
6 [SPRAAU8] 2. TMS320C28xxx DSC에서 컴파일러 섹션을 Flash로부터 RAM으로 복사하는 방법 인기글 2010.03.30 싱크웍스 1732
5 [SPRAAU8] 1. TMS320C28xxx DSC에서 컴파일러 섹션을 Flash로부터 RAM으로 복사하는 방법 인기글 2010.03.30 싱크웍스 2667
4 [SPRAAH1] 4. TMS320F280x, 28xxx의 eQEP 모듈을 Capture로 활용하기 인기글 2010.03.25 싱크웍스 641
3 [SPRAAH1] 3. TMS320F280x, 28xxx의 eQEP 모듈을 Capture로 활용하기 이미지첨부 있음 인기글 2010.03.25 싱크웍스 562
2 [SPRAAH1] 2. TMS320F280x, 28xxx의 eQEP 모듈을 Capture로 활용하기 이미지첨부 있음 인기글 2010.03.25 싱크웍스 821
1 [SPRAAH1] 1. TMS320F280x, 28xxx의 eQEP 모듈을 Capture로 활용하기 이미지첨부 있음 인기글 2010.03.25 싱크웍스 1552

비밀번호 인증

비밀번호를 입력해 주세요.

닫기
 
 

비밀번호 인증

글 작성시 설정한 비밀번호를 입력해 주세요.

닫기