레이블이 IDE-CCSv6인 게시물을 표시합니다. 모든 게시물 표시
레이블이 IDE-CCSv6인 게시물을 표시합니다. 모든 게시물 표시

7/24/2015

CCS v6 기능확장 for Linux

1. CCS Debug 

 아래의 사이트 Modules Library 에서 원하는 CPU에서 각각의 모듈의 지원을 확인하자.

  • TI Main Wiki 관련문서 검색
관련 모드자료를 쉽게 검색이 가능하며, Training 에 가면 본인의 MPU에 맞게 훈련이 가능.
TI에서 제공하는 MCU들의 정보들을 그룹별로 간단하게 파악이 가능하다

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

  • TI Traning 관련자료 
상위 Main-> Training 이며, 본인이 사용하는 MCU에 관한 Training 자료가 있으니,
반드시 참고하고 숙지해야 할 것 이다.

  http://processors.wiki.ti.com/index.php/Hands-On_Training_for_TI_Embedded_Processors
  https://training.ti.com/search-catalog/categories/products

  • TI CCS V6 Training 정보 및 CCSV6 칩 별로 기능지원확인 
  http://processors.wiki.ti.com/index.php/Category:CCSv6_Training#Videos


1.1 CCS or Eclipse LINUX Debug 구성

CCS는 기본적으로 Eclipse으로 기반으로 구성되어있기 때문에, 동일한 부분이 상당히 많으며, Eclipse를 나누어서 공통으로 생각해야 할 부분이 많다.
  • Linux 기본 Debugging 구성
  1. App은 Gdb와 Gdbserver
  2. Kernel JTAG을 이용한 Debug이지만, CCS에서 vmlinux로 실행 

  상세한내용은 아래의 TI에서 제공해주는 PPT 자료를 한번보자

  http://processors.wiki.ti.com/index.php/CCS_Modules_Library#Linux_Debug
  http://processors.wiki.ti.com/index.php/Linux_Debug_in_CCSv5

  •   View->Other->Profiling  (eclipse에서 기본제공)
  1. gcov
  2. gprof   

1.2 Linux Tools Install (CCS or Ecplise에 설치)

Eclipse or CCS 동일하며, Linux Tools 라는 Profile Program을 제공을 해준다.
Valgrind, OProfile, RPM, SystemTap, GCov, GProf, LTTng의 기능을 제공을 해준다고 하는데, 이미 GCov와 GProf 기능은 존재한다.

Valgrind Heap Memory Profile 해주는 Tool , OProfile, SystemTap, LTTng 기능을 사용하고 싶지만, 아직 사용을 못해봤다.
하지만 설치는 가능하다.

  관련설명
  http://www.eclipse.org/linuxtools/


  • Help->Install New Software 


   1. Available Software Sites에서 현재 추가된 Site 확인가능


    2. Linux Tools update Site 추가
    1. Add 로 사이트 추가 
    2. Name : Linux Tools 
    3. Location: http://download.eclipse.org/linuxtools/update/


 
  • Linux Tool Package 설치방법
  https://wiki.eclipse.org/Linux_Tools_Project/PluginInstallHelp


  • Linux Tool Download (강제설치 방법)
  Linux Tool 관련 zip 파일 Download 한 후 상위에서 동일하게 Add로 추가
  Archive Menu를 이용하여 직접 추가 한 후 강제로 설치
  http://www.eclipse.org/linuxtools/downloads.php


  • Help->Install Details 
      Update or 설치된 Package를 제거 가능하다. 





  • Help->Eclipse Marketplace
    Eclipse에서 많이 사용되어지는 Package를 설치가능하고 최신 Package도 적용해보자.
  1. PyDev   (Python IDE)
  2. Vrapper (Vim)



CCS를 Eclipse 처럼 동일하게 많이 이용하여 좋지만 CCS에는 TI에서 제공해주는 많은 Package도 설치하여 동작하기 때문에
가능하면 CCS의 본연의 기능으로 이용하는 것이 좋을 것 같다.
예를들면, TI의 Compiler version Package 문제로 빌드오류 발생 문제든지, 다른 Package로 문제성이 있겠다.


1.3 Kernel Debug on Window CCS
  • KERNEL DEBUG 환경설정  (요약)
Kernel Debug을 위해서는 JTAG을 사용하는데, zImage를 사용하지 않고, debugging을 포함한 vmlinux elf 포맷의 이미지를 사용한다, 그리고,
이를 CCS에서 Run->load -> Load Sysmbols로 ARM CPU에 올려준다.

이를 View->Modules 에서 올라간 vmlinux를 간단히 확인가능하지만, TI Reference 처럼 실행을 할 수가 없다.


참고로, KERNEL Source에서 menuconfig 할때에는 아래와 같이 ARCH를 넣어줘야함.
만약, 매번 넣기 귀찮다면, export 이용하거나 source를 이용함.

$ make ARCH=arm menuconfig
      Kernel hacking-> 필요한 debug 선택  

다시 Kernel을 build 후 vmlinux 사용하기위해 u-boot 설정을 변경한다.
문제는 fdtfile을 사용하기에, kernel 의 arch/arm/mach-omap2에서 board-generic.c를 사용한다.
(DT_MACHINE_START(AM43_DT, 이곳에 breakpoint를 걸지라도 fdtfile 필요하다. )


1.4 Kernel Debug on Linux CCS

기본적으로 유사하지만, 이클립스에서 source를 Project를 만들어 hw breakpoint를 만들수 있다. 하지만 이클립스에서 Project를 만들 경우, kernel 및 uboot 소스가 변형이 된다.
그러므로, 이부분은 주의해야한다.

특히 커널은 메뉴가 x86로 자동으로 설정이 되어서, 에러가 발생이 된다.

  • TI LINUX DEBUG 
최근에 새로 찾은 사이트이며, 아래 사이트가 정리가 잘되어있기에, 너무 좋음
TI 기본적으로, LINUX에서 CCS를 설치하는 것을 권장하는 것 같음

관련설정
  http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_uboot_linux_debug_with_ccsv5


  • Linux Board Porting 관련 동영상 
  TI에서 제공해주는 Linux Porting Guide , 개발환경설치 Guide  

7/23/2015

CCS v6 기본 사용법

1. CCS v6 의 모드 및 전체구성

TI에서 CCSv6는 Window과 Linux Version을 동시제공하며, 둘다 비슷하게 기능을 제공을 하고 있는 것 같다.
기본적으로 Linux 기반으로 개발을 한다면,Linux Version으로 사용해야 완벽한 Debugging을 사용하는 것 같다.

Linux 기반 설치는 아래의 설치 메뉴얼을 보자. (설치를 해봤지만, Virtual Box로 불편하다)
Window version으로 Samba로 연결하여 동작하려고 해보려고 했으나, 추후 시간이 있을 경우 시도.

  • CCS v6 모드설정
CCS는 상단우측에 3개의 모드로 구성하며 ,각 모드마다 창을 볼수 있는 권한이 정해져 있다.
처음 접하면 혼란스러울수 있으나, 사용하다보면 익숙해지고 편해질 것이다.
나의 경우는 3모드로 구성을 했지만, 본인이 추가를 한다면 몇개의 모드로도 구성이 가능하다.
하지만 모드가 많아질수록 헷갈리며, 추가되는 모드와 상단의 아이콘이 겹치므로, 가장 좋게 구성하는 것은 아래와 같이 구성하는 좋을 것 같다.

  • CCS의 모드구성  
  1. CCS Edit:  프로젝트관리 및 소스관리와 빌드 그리고, Target 설정 , Console
  2. CCS Debug: CCS가 Target과 연결된 후 각종 정보를 얻으며, Debugging 하는 모드  
  3. CCS Simple: 상위 두창을 간단히 필요한 내용을 조합한 메뉴. (옵션)


1.1 CCS Edit 기본구성 

CCS Edit모드의 기본구성은 CCS Project의 소스수정과 빌드 및 Target Board관리정도로 생각을 하면 될 것 같다. (BreakPoint 설정 및 관리)

  • CCS Edit의 사용용도 
  1. Target Configuration으로 Target Board 관리
  2. CCS의 Project 소스 관리 및 빌드 
  3. CCS의 Project의 Index설정 ( 소스분석용이)
  4. CCS의 Project의 소스편집 및 Breakpoint 설정 

  • Index 관리 및 설정 
Eclipse에 이는 기본기능이며 소스분석을 이용하여 쉽게 Call 흐름 분석 및 관련함수로 이동이된다.
아래와 같이 둘중 하나로 설정을 하며 Index File이 생성이 된다.
  1. Project->C/C++ Index->Freshed All Files
  2. Project Explorer를 이용하여 우측 마우스에서 Index 설정 

  • CCS Edit 모드의 관련메뉴 
File /Edit /View /Navigate /Project /Run/Scripts /Window /Help

  • CCS Edit 관련 창(View) 기본설정  (나의 경우)
  1. View->Project Explorer 
  2. View->Target Configuration 
  3. View->Console           
  4. View->Problem          
  5. View->Advice             
  6. View->Outline   
  7. View->Debug
  8. View->Others->C/C++

이외에도 본인이 원하면 관련부분을 세부 설정이 가능하며, GIT창을 추가도 가능하다.
Eclipse 의 사용해본 유저라면 쉽게 적응이 갈 것이며, Eclipse의 기본기능이라고 생각하면 되겠다.


1.2 CCS Debug 구성 
CCS Debug 모드의 경우는 JTAG에 연결되었을 때 가능한 작업이며, 관련창도 이에 관련해서 구성을 하자 

  • CCS Debug의 사용용도 
  1. 설정된 Breakpoint 및 새로운 Breakpoint 설정 
  2. MPU의 Memory 정보확인 및 분석 
  3. Disassembly를 이용하여 정확한 기능확인 
  4. ARM의 Register 관련 확인 (e.g pc or ARM Mode) 
  5. Debug를 위해 Stack 및 전역변수 Debug 

  • CCS Debug 모드의 관련메뉴
File /Edit /View /Project /Tools /Run /Scripts /Window /Help


  • CCS Edit 관련 창(View) 기본설정  (나의 경우)
  1. View->Debug
  2. View->Console
  3. View->Memory Browser 
  4. View->Breakpoints  
  5. View->Registers 
  6. View->Disassembly
  7. View->Expressions 
  8. View->Variables  
  9. View->Other->Debug 


1.3 CCS의 Simple 모드 
CCS의 Simple 모드의 경우는 나의 경우는 소스 분석전 필요한 것들을 쉽게 정리하거나, 관련보드 설정을 할수 있도록 구성을 한다.
그래서 필요한 것을 확인할 경우 본인이 원하는 것을 이곳에 넣자.

예를 들면 아래와 같이 필수적인 것 하나만을 넣어 구성을 하자 , 만약 필요없다면 이 모드는 사실 필요가 없다.

  1. CCS 관련 설정 Update (CCS App Center, Getting Started )
  2. Target Board의 상태관리 (Target Configuration) 
  3. CCS의 Project 의 관리 

  • CCS Simple 모드의 관련메뉴
File /Edit /View /Project /Scripts /Window /Help




2. CCSv6  관련메뉴 설명

기본구성의 자세한 설명은 상위 TI-사이트를 참조하면 될 것 같으며, Getting Started를 보면, 아래는 주로 교육을 위는 App 자료로 구성이 되어 있다.

Project 메뉴기능은 이곳에서 생략하고, 이 부분은 빌드와 관련된 부분이기때문에 추후 다시 설명하도록 한다.

2.1 View Menu 

CCS or Eclipse에서 제공해주는 View기능으로 대부분 모든 메뉴에서 설정은 가능하지만, 제한적이다.
상위에서 설명했듯이 JTAG이 연결되어 Debugging 모드로 동작했을 때 동작되는 View들이 존재하기 때문이다.

  • 주요 Project 관리 및 빌드 창(View)
  1. View->Project Explorer :  프로젝트 관리 및 Index 실행 
  2. View->Console          :  빌드 상황 및 프로그램 실행 및 JTAG의 상태.
  3. View->Problem         :   빌드시 문제사항 및 기타 문제사항을 보고 
  4. View->Advice           :   Problem에 문제발생시 Advice를 볼수 있다. 
  5. View->Outline          : 소스분석시 용이하게 관련함수를 보여준다. 

  • Target Board 설정 및 상태 창(View)
  1. View->Target Configuration :  Target 설정 및 연결           
  2. View->Debug                     : Target의 Connection 및 Debug  
  3. View->Memory Browser       : MPU에 연결된 DRAM(Memory) 상태확인 
  4. View->Registers                   : ARM Registers 정보 확인  
  5. View->Script Console            : Script를 이용하여 Target의 정보를 볼수 있다. 

** Target Configuration 중요하기 때문에 이부분은 별도 자세히 설명

  • CCS Debug 관련설정 창(View) 
  1. View->Memory Browser      : Memory 정보비교 및 저장, 수정 , Symbol Table
  2. View->Registers                 : ARM Register 정보 확인 및 ARM Mode , PC확인
  3. View->Script Console          : Script를 이용하여 Target의 정보를 볼수 있다. 
  4. View->Expressions              : 소스의 전역변수 및 본인이 원하는 것을 조합가능
  5. View->Variables                 : 소스의 Local 변수 및 Static 변수 Debug 
  6. View->Disassembly             : 소스의 Assembly Code 분석 
  7. View->Breakpoints              : JTAG Breakpoint 설정 및 Breakpoint 관련 Event 
  8. View->Modules                  : COFF 파일의 Symbol Table 및 관련분석  
  9. View->Other->Debug      : 세부 Debug를 위해 사용하는 창 
  10. View->Other->Tracing     : 아직 사용해보지 못함                

Debug모드로 동작할 경우 , JTAG을 이용하여 a.out(COFF)를 MPU Memory에 로딩한 후 벌어지는 상황이다.

**Registers
주로 ARM계열을 사용을 할 것이지만, 다른 MPU를 사용한다면 해당 Register들이 표시가 될 것이다.
ARM으로 한다면, 당연히 ARM Mode와 기본 Register들의 이해가 필요하다.
또한 현재 실행 되는 부분을 ARM의 PC를 이용하여 변경하여 재실행도 가능하다.

**Modules
ELF는 아직 테스트를 못해봤으며, TI에서 제공되는 Compiler가 A.out(COFF) 만 지원하기 때문에 이를 이용하여 확인했으며, linux에서 readelf 정도라고 생각하면되겠다.

**Breakpoints
JTAG을 이용하여 Breakpoint 지점을 설정할 수 있며, 좀 더 세부적으로 사용하고 싶다면 관련설정을 변경하여 다른 것과 같이 사용해보자.
예를들면, Breakpoint가 꼭 멈추는 것이 아니라, 횟수 및 다른 Debug와 연결을해서 분석을 해보는 것이다

**Variables
Breakpoint와 함께 설정된 해당 함수의 Local 변수 및 Static 변수를 관찰하고 이를 Debug한다.  (Stack 영역)

** Expression의 확장사용
Debug 모드로 동작할 경우, Expressions는 전역변수(Symbol Table)를 확인가능하며 본인이 별도로 설정하여 이를 지속적으로 관찰이 가능하다.

예를들면 전역변수 or 특정 Register를 지속적으로 감시하고 싶다면아래와 같이 설정해보자.
  1. Add new expression 
  2. 관련 전역변수 추가 ( Structure 추가시 관련부분 확인가능) or 본인이 아래와 같이 직접설정 

본인이 아래와 같이 직접설정

*(unsigned int *)0x1112222
*(unsigned int *)(0x1112222+11)

원래 기본 Type은 int이지만 상위처럼 본인이 변경가능하며, Value도 Hex 및 Dec로 변경가능

  https://www.youtube.com/watch?v=I1uwIgzNvNA
  https://www.youtube.com/watch?v=JlHLqzsb3D4


  • CCS의 추가기능지원   (**중요)
  1. View->CCS App Center    :  CCS의 Compiler 설치 및 기능 추가     
  2. View->Getting Started      :  CCS의 처음 시작할 경우 관련설명   

    Project or 설정을 하다보면, 지원을 못하는 Compiler or 추가기능을 이곳에서
    설치 가능하다.

  • View->Other  
다양한 기능 제공을 제공하고 있으며, 이부분은 Eclipse CDT와 거의 유사하지만, CCS에서만 제공되는 기능이 존재하고, Eclipse의 기능도 이용도 가능하다. 


  1. Remote Systems->Remote Systems : SSH및 SFTP 설정가능  
  2. Terminal->Terminal :  RS-232 설정 가능 
  3. Debug->MMU Page Table 
  4. Debug->Pin Connect, Port Connect
  5. Debug->Target Status
  6. Debug->Memory Browser
  7. Debug->Registers 
  8. Debug->이외 다양한 기능 
  9. Git       : Git download , compare 
  10. 기타 많은 기능을 포함하고 있다. 

2.2 Tools Menu

CCS Debug 모드에서만 제공하는 Menu이며, Debugging 용도로 사용이 되고
각 정보상태를 확인 및 확인한다.
  • Tools->ARM Advanced Features : MMU ON/OFF , Cache Control 및 기타  , 
  • Tools->Gel Files :  현재 Gel 파일의 상태 알수 있다. 
  • Tools->Memory Map :  MMU의 Mapping 된 정보 확인 
  • Tools->Pin Connect :  추후 사용해보고 수정 
  • Tools->Port Connect :  추후 사용해보고 수정 
  • Tools->Console  :  Console 기능 사용 

Console :  JTAG 의 Error 및 내부 관련 Message를 볼수 있으므로, 반드시 필요한다.

  • Tools->Runtime Object View (Debug 방법)
  https://www.youtube.com/watch?v=MI_2iM2WbU8&t=101s

  • Pin Connect
  http://processors.wiki.ti.com/index.php/Pin_Connect
  http://processors.wiki.ti.com/images/1/10/Pin_connect.pdf


2.3 Run Menu  

CCS Edit 와 CCS Debug 모드에 존재하지만 두 모드간의 Run 메뉴구성은 다르다.
기본목적은 Target Board를 연결과 실행과 직접 Debugging을 다루며
 a.out/elf 를 load하여 실행도 가능하도록 하는 것이다.

  • Run->Connect /Disconnect : 상위 아이콘으로 존재하며 Target Board와 연결  
  • Run->Load : A.out/ELF 파일 Load ,Symbol table 지원 및 미지원 
  • Run        : Load 한 파일 실행 및 Control 및 Debug 

2.4  Script Menu

모든메뉴에서 사용이 가능하며, 주로 GEL 파일의 선택이 가능하다.

2.5  Window Menu

각 창의 설정을 독자적인 하고 싶거나, CCS의 전체 설정을 전반적으로 다루고 있는 부분이다.
본인이 새로운 창을 구성하고 싶다면 이곳을 이용해야한다.
이 부분은 중요 한곳이기에 추후 별도로 설명


3. Target Configuration 설정 과 JTAG 연결  

CCS에서 Target Board와 연결하기 위해서는 JTAG이 필요할 것이다.
우선 필요한 정보는 본인의 Target Board의 정보와 JTAG의 정보이다. .

  • 많이 사용되는 JTAG
- 아래의 모델 숫자가 증가할 수록 JTAG의 TCLK 설정가능 및 에러율은 적고 커넥션하기가, 용이하다.
  1. XDS100
  2. XDS510 
  3. XDS560 

3.1 Target Configuration 생성 및 설정 (ccxml 생성)

CCS에서 제공하는 JTAG을 이용하여 Target board에 접속하기 위해서는 이 작업이 필수이며 관련된 자료가 필요하다.

CCS Debug or CCS Edit에서 가능하지만, 가능하면 CCS Edit에서 진행하자
아래의 절차대로 설정하고 변경을 하자.





  • Target Configuration 창 설정 
    1. Target Configuration 창이 없다면,  view->Target Configuration생성
    2. Target Configuration 창에서 본인이 만든 *.ccxml 파일을 더블 클릭 

    • Target Config 생성방법 (둘 중 하나 선택)
    1. File->New->Target Configuration File 선택 
    2. Target Configuration 창에서 User Define->New Target Configuration 선택
    New Target Configuration  선택    

    • (*.ccxml)->Basic 기본설정 
    1. 좌측의 *.ccxml 파일을 Target 이름변경 (e.g AM335x.ccxml, DM368.ccxml)
    2. ccxml 파일 선택하면 Basic/Advanced/Source 세부메뉴 설정가능 
    3. Basic을 선택 
    4. General Setup의 본인 JTAG 설정과 Board 설정
    5. 우측의 TEST Connection (JTAG SCAN TEST 진행 , 문제 발생시, 3.4 확인 )

    • Basic->General Setup
    1. Connection  :   510 or 560 , Others  Emulator ( JTAG  설정)
    2. Board or Device:   Target Deivce 설정  현재 사용중인 Device 설정 ( MPU 설정)

    • Basic->Advaced Setup
    1. Save Configuration-> Save 
    2. Test Connection      ( JTAG이 Connected가 된경우가 동작이 됨)  

    새로생긴 CCXML 파일의 설정을 확인 (Connection / Board or Device) 


     본인의 JTAG을 설정 및 TEST Connection 진행 

    • *.ccxml 의 세부 설정구성 
    1. Basic :  JTAG 설정/ Board 설정/ JTAG SCAN TEST    
    2. Advanced :  각 CPU에 GET File 설정 가능 
    3. Source  :  XML 전체 소스 확인  

    • Advanced->Target Configuration 
        보통 기본 GEl 파일이 제공되지만, Gel파일을 변경을 원할 경우, 아래와 같이 변경한다.
    1. ARM9 선택 
    2. CPU Properties -> initialization script :  GEL 파일 설정 및 변경
       아래의 그림처럼 GEL파일 설정 한 후 Script에서 설정가능


      http://processors.wiki.ti.com/index.php/GSG:Adding_GEL_files_to_a_target_configuration_v5

    3.2 Custom Target Configuration
      이부분은 거의 사용할 일 없을 것 같은데, Target Configuration의 내부 Deivce를
      본인이 직접 세부적으로 설정하여 만드는 것이다.

      이전 CCS에서도 이 기능을 이용하여 본인이 직접 설정하였다.

        http://processors.wiki.ti.com/index.php/Target_Configuration_-_Custom_Configurations


      3.3 Target Configuration Update 

      Help->Check For Update

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

      • 아래 사이트를 이용하여 XML을 Download 후 CCS 에 추가하자
        http://processors.wiki.ti.com/index.php/Device_support_files

      • Automotive File XML and GEL Download 
        http://processors.wiki.ti.com/index.php/Device_support_files?keyMatch=Automotive%20device%20support&tisearch=Search-EN#Automotive


      3.4 Target Configuration JTAG TEST 문제생길 경우 


      [Start: Spectrum Digital XDS510USB Emulator_0]
      
      Execute the command:
      
      %ccs_base%/emulation/drivers/sdjtag.exe -f %boarddatafile% -v -X reset -X scantest
      
      [Result]
      
      ** BoardFilePath: C:\Users\JHLEE\AppData\Local\TEXASI~1\CCS\ti\0\0\BrdDat\testBoard.dat
      ** Resetting Emulator
           ERROR -- XDS510USB Reset Failed
           ERROR -- Check power to your emulator/eZdsp
           ERROR -- Then check your port address
      
      [End: Spectrum Digital XDS510USB Emulator_0]
      


      • 에러 해결방안
      1.   JTAG 다시 연결 후 Test Connection 진행 
      2.   JTAG USB Driver 인식 확인 
      3.   TCLK 설정변경방법 

      • CCS V3.3과  Target Config 호환성 
      기존의 CCS V3.3의 Setup과 동일하며, 다만 확장자가 달리 변경이 되었다.
      Target을 설정하고, Launch를 하면 자동으로, CCS Debug로 화면이 이동한다.
      기본 동작방식은 CCS V3.3과 유사하다.

      • CCS V3.3 Target Config File:  *.ccs
      • CCS V6   Target Config File:  *.ccxml
      C:\Program Files (x86)\SpectrumDigital\Emulation\Drivers

      4. Target Configuration Launch / Debugging  

      CCS의 상위 Taget JTAG 설정완료 되었으니, 이제 Target Board와 직접연결하여 해보자

      • Target  Board 와 연결   
      1. Target Configurations의 창에서 해당 *.ccxml 파일 선택 후 우측버튼 클릭 
      2. Launch Selected Configuration 실행 (아래 그림 참조)
      3. Debug 창에서 Launch 된 *.ccxml 파일 확인
      4. CPU가 여러 개 일수 있으므로, 개별 CPU를 Connect Target
      5. GEL 파일도 참고해서 볼수 있다. 

      아래와 같이 쉽게 그림으로 보자.
      Target Configurations 창에서 설정한 target.ccxml 파일의 마우스 우측버튼이용.

      ** Target.ccxml-> Launch Selected Configuration


      Launch Selected Configuration 선택

      제대로 Launch가 되었다면, 우측 창의 Debug에 Launched Target Configuration의  Status를 볼수 있다. ( *.ccxml)
      기본 상태는 Disconnected 이며 이를 이제 Connect Target를 이용하여 Target Board와 연결하자.

      Target과 Connected가 된 후에는 CCS Debug 창을 이용하자


      **해당 ARM Core -> Connect Target 


      • 아래는 DM368



      • 아래는 AM335x의 연결상태





      4.1 Script 메뉴에서 GEL 선택   
      상위 Target Configuration에서 설정된 GEL파일은 Target과 Connected과 된상태라면, Scirpt 메뉴에서 GEL 파일의 이용이 가능하다.
      GEL 파일은 TI에서 제공해주는 Script파일이며, MPU의 쉽게 초기화 해주고 설정해주는 Script라고 생각하면되겠다.

      • Script->GEL 선택가능  
      아래와 같이 Video의 Color_bar TEST를 제공해주는 GEL File
      아래와 같이 hotmenu로 제공되는 script들을 실행을 해보자.





      4.2 a.out or ELF 실행 
      Target과 Connected과 된 상태라면,
      CCS에서는 A.out 파일의 포맷을 실행파일을 실행이 지원이 가능하다.
      이를 Run->Load 하여 Load 한 후에 Run을 이용하여 실행하자.




      5.  CCS Debug 모드 

      CCS Debug 모드는 Target과 Connected를 한 후에는 주로 이용을 되며,
      CCS v3.3의 Main프로그램과 동일하게, Gel을 Control 할 수 있으며,
      Reset 및 Load Program 및 Run이 가능하다. 

      5.1. Memory Browser 

      Connect 가 된후 View->Memory Browser  에서 원하는 Register 및 Data를 손쉽게
      변경이 가능하다.


      5.2 Gel Script 사용 

      Gel 파일의 Script를 사용하고 싶다면, 상위 Debug창에서 Connect Target 한 후 
      Scripts->선택 하여 Gel 파일의 함수를 이용하자

      5.3 Target Reset

      기본적으로 Reset이 제공이 되며, 모듈 Reset도 가능하다.
      Run->System Reset
      부분 모듈만 Reset 하고 싶다면,  View->Registers 통해 모듈 Reset를 하자 
       

      5.4 Linux Kernel에서 Register 확인 

      Linux Kernel은 기본적으로 MMU를 사용하여 virtual address를 이용한다.
      그래서 만약 직접적으로 register를 확인하고자 한다면, MMU기능을 OFF하고 확인이 가능


       A. UBOOT 동작확인 

      우선 U-BOOT에서 기본적으로 확인해보자.
      (Debug 창으로 이동)

      1. Target Disconnect 상태 유지 
      2. U-BOOT Booting 확인 
      3. Connect Target  을 하면, CPU의 상태는 자동으로 Suspended로 변경 
      4. Run->Resume 으로 CPU의 상태를 Run으로 변경 
      5. U-BOOT 동작 확인 

       B. KERNEL 동작확인

      Linux Kernel이 동작하면 MMU가 ON이 되어, MPU의 Register들을 볼수가 없다.
      임시방편으로 보고 싶다면 MMU를 잠시 OFF하면 MPU의 Register 상태를 볼수가 있다
      다만, Linux Kernel은 제대로 돌아가지 않는다.
      1. Target Disconnect 상태 유지 
      2. Kernel Booting 후 보고 싶을 때, Connect를 시도
      3. CPU의 상태는 Suspended로 변경되는 것을 확인 
      4. Tools -> ARM Advanced Features -> MMU Enabled  ( OFF)  
      5. View->Memory Browser 창 에서 본인이 찾고자하는 Register 확인 및 Data 확인 
      6. Tools -> ARM Advanced Features -> MMU Enabled   (ON) 
      7. Run -> Resume  변경 하고 CPU의 상태가 Running되는 것 확인 

      5.5  MPU 내부의 Register 

      CCS에서는 MPU의 Registers들을 직접 Control이 가능하며, 이를 설정이 가능하다.
      View->Registers에서 ARM에 해당하는 Register를 Control 해보자.


      5.6 Scripting Console (CCS 내부 Command)
         
      CCS에서는 내부 Command를 제공할 뿐만 아니라 Script도 제공을 한다.
      세부적으로 자동적으로 Control 하고 싶다면 이메뉴를 사용해야겠다.

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


      A. 확인방법
      1. View->Scripting Console
      2. tab key 가능한 명령 표시   (처음 tab key)
      3. help 각 명령어 입력 
      B. 기본 Command 

      reset 및 run , GEL 관련 기본 command들도 다수 존재

      C. MMU 관련명령어  

      간단한 아래 명령으로 리눅스에서 Mapping되어있는 Address를 확인해보자.

        https://www.youtube.com/watch?v=-txegVCHm8Y
        http://processors.wiki.ti.com/index.php/Page_Table_Visibility_DSS_API's

      D. 에러 사항 (MMU 관련 이용시)

      아래와 같은 에러 발생,
      추후 시간이 있다면 원인을 알아보자, 혹시 이 기능은 Linux version 만 제공이 되는지?


      Wrapped java.lang.NullPointerException (C:\ti\ccsv6\eclipse\configuration\org.eclipse.osgi\343\0\.cp\resources\debugserver\pagetable.js#40)
      


      5.7 Others

      다른 Quick Tips

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


      6. CCS v3.3 호환 

      CCSv3.3 호환은 Window version만 지원이 가능하며, 이미 만들어진 프로젝트는 아래와 같이 추가한다.

      1. File->import->Code Composer Studio->Legacy CCSv3.3 Projects 선택 
      2. 해당 프로젝트파일 *.pjt 검색 및 추가
      3. Project Explorer에서 추가확인 
      4. Project Exploer->Properties 확인하여 빌드옵션을 확인 (엔디안 및 컴파일러, ELF)

      • 주의사항 
      빌드를 했지만, 되지 않을 수도 있다. 이럴 경우, project 창 안에 log가 발생 할 것이니,
      이부분을 자세히 보거나, migration 을 했을 경우 되지 않을 경우가 많다.

      7. 추가 설치 및 Update


      • Help->CCS App Center 

      본인이 추가적으로 설치할 패키지를 설치
      TI Cloud를 이용하면 현재 제공되는 예제를 쉽게 볼수 있다.



      • Help->Check For Update 

      기존 설치된 Package 체크하고 Update 관련부분을 Update 진행



      • Help->Installation Details 

      Installed Package 및 관련 Version 정보
      Package History파악
      Installed Package Uninstall



      • Help->Install new software

      Available Software Sites 선택하여 관련 설정을 확인하자
      Code Composer Studio v6 Update
      Code Generation Tools Updates
      기타 등등



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

      7/22/2015

      CCS v6 설치방법 와 TI-JTAG 종류

      1. Code Composer Studio v6

      최근에 CCSV6가 나와서 기존의 나에게 익숙하던 CCS V3.3과는 너무 다르기에,다음과 같이 비교를 하면서 사용 및 설치를 한다.

      일단 CCSv6는 Eclipse 기반으로 구성이 되어있다고 하는데, 기존에 사용해봤던 Eclipse CDT와 거의 유사하지만 CCS의 기능이 추가되었다.

      • V3.3 과 V6 변경사항 
      지금까지 v3.3까지만 사용 해보다가 , v6을 사용을 해보니 많은 부분이 변경이 되어 있어,
      많은 부분에 있어, 사용하는데 어려움을 겪었다.

      1. 기본적으로 큰 변화는 이클립스와 결합으로, 기존에 이클립스에서 제공해주었던,C나 자바 기반으로 된 개발환경을 제공
      2. 컴파일러 부분에서는 TI-Complier 와 GCC 동시에 제공.
      3. LINUX CCS와 WINDOW CCS를 OS별로 각각 제공.
      4. LINUX CCS를 지원가능하기에, 더욱 완벽한 LINUX 디버깅 개발환경제공 
      위 기능만으로만 봐도, 사실 많은 변화가 있어 상당히 놀랐으며, 이제 다른 IDE Tool 처럼
      예를들면, Android or Visual Studio 변화가 많이 있어 나에게 있어 좋았다.


      2.  CCSv6 설치전 확인 및 문제사항확인 

      CCSv6/v5는 Window 뿐만 아니라 Linux에서도 지원이 되므로, Linux에서 설치할 기회가 된다면,아래와 같이 설치를 해보자.

      CCSv5보다 CCSv6를 추천하는 것은 사용자에게 좀 더 편하고 사용하기가 더 편해진 것 같아서 CCSv6로만 설명한다.


      • CCSv6 Window Version
      • CCSv6 Linux Version 



      2.1 CCSv6 - Window Version

      기존과 동일하게 BIOS 기반으로 한다면, SDK를 설치하고 컴파일러는 TI 선택해서 사용가능할것이지만,
      Project의 변화로 호환성의 문제가 많이 발생한다.
      CCS V3.3 에서는 거의 없던 개념이며, 이제 Project 단위로 구성을 해서 설정하고 해야하기때문에 구성자체는 더욱 좋다.

      • 문제사항 
      1. CCS V3.3 호환성문제 ( WINDOW CCS V6만 가능)
      2. Source 호환성 문제 

         
      2.2 CCSv6 - Linux Version

      LINUX CCS가 지원이 가능하여, 더욱 완벽한 LINUX 디버깅 개발환경을 구축이 가능하다.
      하지만 기능이 다소 제한적이다.이부분은 각각 확인을 해야한다. 

      • CCSv6 설치전 확인사항 
           Ubuntu OS 64bit일 경우 추가 Package 설치
           설치전 필요한 패키지들 아래의 사이트에서 각 OS에 맞게 확인하고 먼저 설치하자.

      • Ubuntu 12.04 64bit 추가 Package   

      $sudo apt-get install ia32-libs libgnomevfs2-0:i386 liborbit2:i386 libjpeg62:i386 

           ** libgnomevfs2-0:i386 liborbit2:i386 ( CCS V6.0 이상 경우)

      • 다른 Version 추가 Pakage 아래 사이트참고
              http://processors.wiki.ti.com/index.php/Sitara_Linux_SDK_64_Bit_Ubuntu_Support


      3. JTAG종류

      아래의 모델 숫자가 증가할 수록 JTAG의 TCLK 설정가능 및 에러율은 적고 커넥션하기가, 용이하다.

      아래는 JTAG의 종류지만, 제조사에 따라 중복이 되며, 가격도 다르다.
      보통 스펙트럼 디지털과 블랙호크를 많이 사용하지만 다른 제조사들도 존재하는 것 같다.

      • JTAG Interface 
      1. XDS-100 (USB JTAG) : 보통 TI-EVM 안에 내장이 되어있기에 USB 잭만연결하면된다. 
      2. XDS-510               :  USB 연결 타입으로 제어 
      3. XDS-510 PLUS       :  USB 연결 타입으로 제어
      4. XDS-560               :   USB 연결과 파워를 필요로 한다. 

      • JTAG의 특징
      1. XDS100: 보통 EVM에 포함이 되어있으며, USB만 연결이 되면 쉽게 가능하다. 
      2. XDS510: 종류가 많으것 같은데, 보통 USB연결 Type을 사용하며 쉽게 사용이 가능하다. 
      3. XDS560: 상위 모델보다 가격은 비싸며, 상태를 나타 내는 LED와 사용방법은 아래를 참조. 
      XDS-510 인경우 초당 10 KBytes 이지만, XDS-560인 경우는 130 KBytes/second 와 2 MBytes/second 이상을 제공한다고 한다. .


      4. CCSv6 on Window 설치

      • CCS V6 Download
        CCS v6를  Download 하기위해서는 TI 사이트에 가입을 해야하며, 무료로 제공한다.
        설치시 각 회사의 JTAG Probe와 필요한 Compiler 및 Tool을 확인하자

        http://processors.wiki.ti.com/index.php/Category:Code_Composer_Studio_v6


      기본적으로 JTAG XDS-100은 설치가 필요가 없지만, XDS-510 or 560은 추가 Driver가 설치를 필요하다.
      아래와 같이 각 제조사의 찾아 설치를 하자.


      4.1 JTAG Driver 설치 및 TEST 

      JTAG 제조사는 크게 spectrum digital 사 or blackhawk사 제공이 되며, 설치시 기본 driver도 제공이 되나, 기본으로 설치되어 있지는 않다.

      설치가 되지 않았다면, 아래와 같이 설치하자. (spectrum digital 사의 XDS510)

                     C:\ti\ccsv6\ccs_base\emulation        //  Emulation 에 관한 모든 정보가 나온다. JTAG 
      
                     C:\ti\ccsv6\ccs_base\emulation\specdig\xds510usb  
      
                     // 이곳에 Driver 위치가 있어야 하나, readme를 읽어보면 driver 위치가 아래와 같이 변경되었다.
                     C:\Program Files\SpectrumDigital\Emulation\Drivers for 32-bit Windows 
                     C:\Program Files (x86)\SpectrumDigital\Emulation\Drivers for 64-bit Windows
      

      장치관리자에서 설치가 되었는지 확인을 하고 Driver가 설치가 되었다면, 테스트를 진행.



      • Blackhawk 560

      C:\Program Files (x86)\Blackhawk\Emulation\Drivers 




      • Spectrum Digital 510

      C:\Program Files (x86)\SpectrumDigital\Emulation\Drivers





      4.2 JTAG 설정 및 TEST
        스펙트럼 디지털사는 별도의 테스트 프로그램을 제공하며, 아래의 프로그램으로 테스트를 진행하자.
        아래의 아이콘 SDconfigex를 이용하여 JTAG Emulator Test를 진행을 하면된다.

        BlackHawk 역시 동일하기때문에 이부분은 생략하겠다.




        • JTAG 기본 설정 
        본인은 아래와 같이 XDS510USB을 사용하기에 아래와 같은 설정을 세부적으로 살펴보자
        주의 해야 할 것은 XDS510USB도 Version이 존재하며, PLUS라는 것이 별도로 존재한다.
        그러므로 본인의 JTAG 모델을 정확히 아는 것이 중요하다



        XDS510USB-PLUS 기능 설정



          http://support.spectrumdigital.com/guides/JTAG_Emulator_guide/#2.1.4
          http://emulators.spectrumdigital.com/

        XDS510USB JTAG
          http://www.spectrumdigital.com/xds510-usb-jtag-emulator/

        XDS510USB JTAG PLUS
          http://www.spectrumdigital.com/xds510-usb-plus-jtag-emulator-with-20-pin-cti-cable-and-20-pin-to-14-pin-adapter/

        • JTAG 기본 TEST 진행
        나의 모델은 XDS510USB-PLUS이며, 아래는 XDS510USB-PLUS version의 TEST 진행사항이다.
        하단의 아이콘을 보면 아래와 같이 구성이 되었으며, Emulator 항목을 보면 세부사항도 나온다.

        1. Verify Connection  (JTAG Connection 검증)
        2. Emulator TEST      ( JTAG 기본 TEST 진행)
        3. Emulator Reset     ( XDS510 Reset)


           (현재 Board에 연결이 안된 상태이며, 기본 JTAG TEST진행)




        중요한 정보는 ccsv6->ccs_base 있기에 기본위치를 파악해두자.




        5. CCSv6 on Linux 설치 
        설치전 아래의 사이트에서 필요한 Package 미리 설치하고 필요한 Tool을 설치하자.
        설치후,  /home/ti/Code Composer Studio 6.1.0.desktop 기본 아이콘이며,
           
        실행후 혼동하지 말아야 할 것이, 작은메뉴로 변경해도,메인메뉴는 맨위에 고정되어 있다.
             
        Readme 참조
        Window 버전과 동일 (라이센스 등록방법)
              http://processors.wiki.ti.com/index.php/Linux_Host_Support_CCSv6#Ubuntu_12.04_64bit


        6. CCS License 등록 방법

        • 현재상태확인
             Help->Code Composer Studio Licensing Information ->Status 확인
             혹은 우측하단에 Full License or Free License 확인가능

        • 등록
             Help->Code Composer Studio Licensing Information ->Upgrade
                   Launch License Setup에서 등록가능

              진행을 하면, TI-사이트에서 License 파일을 이메일로 받아 등록이 가능하다.

          http://www.mcublog.co.kr/1620


        • CCS 라이센스에 관한 정보
          http://processors.wiki.ti.com/index.php/Licensing_-_CCS


        7. 무료 CCS의 제공사항 및 제한사항 

        XDS-100 (USB JTAG) 사용할 경우, 무료 CCS를 기본적으로 사용하는데 크게 지장이 없는거 같지만, XDS-100이 속도가 느리기에, JTAG을 변경을 한다며, License 가 필요하다.

        무료 CCS는 제한적으로 XDS-510과 XDS-560을 지원해주며, XDS-100은 무료로 지원을 해준다.

        TI-EVM으로 사용한다면, XDS-100 (USB JTAG)으로 지원이 가능하니,다만 반응속도가 느리며, XDS-510 or XDS-560에 비해 좋지 않다.