The IAR C-SPY Debugger IAR C-SPY? 디버거와 일반적인 디버깅, 특히 C-SPY에 관련된 개념과 다양한 C-SPY 드라이버를 소개한다.  IAR 시스템즈 고성용 이사Sung-Yong.Ko@iar.com
  C-SPY소개 1. 통합 환경 

C-SPY는 임베디드 애플리케이션을 위한 고급 언어 디버거이다. IAR 시스템즈 컴파일러와 어셈블러사용을 위해 설계되었고 IDE에 완전히 통합되어 동일한 응용 프로그램 내에서 개발 및 디버깅 기능을 제공하며 이것은 다음과 같은 내용을 가능케 한다. 
 ① 디버깅하는 동안 편집. 디버그 세션 동안 디버깅을 제어하는 데 사용되는 동일한 소스 코드 윈도우에서 직접 수정할 수 있다. 변경된 내용은 다음의 프로젝트 재빌드시 적용된다. ② 개발 주기 동안 어느 위치에도 중단점(Breakpoint)을 설정할 수 있고 디버거가 실행되지 않은 경우에도 중단점 정의 내용을 수정하고 검사 할 수 있다.임베디드 워크 벤치의 워크스페이스에 열려있는 모든 창은 C-SPY 디버거를 시작할 때 열린 상태를 유지할 것이며 또한, C-SPY 전용 윈도우들도 열린다. 
 2. 일반적인 C-SPY 디버거 특징IAR 시스템즈는 전체 툴체인을 제공하기 때문에 컴파일러와 링커에서 생성된 결과물은 디버거에 대한 광범위한 디버그 정보를 포함 할 수 있으며, 이는 좋은 디버깅을 제공하기 위해서이다. 
 ① 소스 및 디스어셈블리(disassembly) 수준의 디버깅: C 또는 C++ 및 어셈블러 소스 코드에 대해 C-SPY는 필요에 따라 소스와 디스어셈블리 디버깅 사이를 전환 할 수 있다.
 ② 함수 호출 수준에서 단일 스테핑: 전통 디버거에 비교해서, 소스 레벨 스테핑에 대해 최고의 세분화는 한 라인씩 스테핑하는 것이다. C-SPY는 스탭 포인트로 모든 명령문과 함수 호출을 식별하여 미세한 수준의 컨트롤을 제공한다.
 ③ 코드 및 데이터 중단점: C-SPY 중단점 시스템은 특별히 관심이 있는 위치에 중지 할 수 있도록 디버깅을 하는 응용 프로그램에 다양한 종류의 중단점을 설정할 수 있다. 예를 들어, 프로그램 로직이 올바른지 여부를 조사하기 위해 또는 언제 어떻게 데이터가 변하는지를 조사하려 중단점을 설정한다. 
 ④ 변수와 표현 식 모니터링: 변수와 표현식을 위한 기능에 대해 다양하게 선택할 수 있다. 쉽게 지속적으로 또는 필요에 따라 변수와 표현식의 지정된 세트의 값을 모니터링 할 수 있으며 또한 지역 변수, 정적 변수 등을 모니터링 할 수 있다. 
 ⑤ 컨테이너 인식: C-SPY에서 응용 프로그램을 실행하면 STL 목록 및 벡터와 같은 라이브러리 데이터 유형을 볼 수 있다. C++ STL 컨테이너 작업을 할 때 아주 좋은 전체적인 개요와 디버깅 기회를 제공한다. 
 ⑥ 호출 스택 정보: 컴파일러는 다양한 호출 스택 정보를 생성하는데 디버거가 어떤 런타임 제약 없이 프로그램 카운터가 있던 어느 곳이든지 함수 호출에 대한 완전한 스택을 보여 준다. 호출 스택에서 함수를 선택할 수 있고, 각 함수에 있어 지역 변수와 사용 가능한 레지스터에 대한 유효한 정보를 얻을 수 있다.
 ⑦ 강력한 매크로 시스템: C-SPY는 수행할 작업의 복잡한 세트를 정의할 수 있도록 하는 강력한 내부 매크로 시스템을 포함하고 있다. 
 3. RTOS 인식 C-SPY는 실시간 OS 인식 디버깅을 지원하고 현재 다음의 운영 체제를 지원하고 있다. ① AVIX-RT② CMX-RTX③ CMX-Tiny+④ eForce mC3/Compact⑤ eSysTech X realtime kernel⑥ Express Logic ThreadX⑦ FreeRTOS, OpenRTOS, and SafeRTOS⑧ Freescale MQX⑨ MicriumuC/OS-II⑩ Micro Digital SMX⑪ MISPO NORTi⑫ OSEK (ORTI)⑬ RTXC Quadros⑭ SeggerembOS⑮ unicoi Fusion.C-SPY RTOS 인식 플러그인 모듈은 RTOS를 기반으로 구축 된 응용 프로그램을 통해 높은 수준의 제어 및 가시성을 제공한다. Task list, Queues, Semaphores, Mailboxes 그리고 다양한 RTOS 시스템 변수들과 같은 RTOS 특정 항목을 표시한다. 태스크 한정 중단 점 및 스테핑(Stepping)은 태스크 디버깅 작업을 쉽게 만든다. 로드된 플러그인은 디버그 세션이 시작될 때(RTOS가 응용 프로그램과 연결되어 제공) 자체 메뉴, 윈도우 세트, 그리고 버튼을 추가한다. 디버거 개념(Debugger Concepts)1.  C-SPY 및 대상 시스템소프트웨어 대상 시스템 또는 하드웨어 대상 시스템 중 하나를 디버깅하기 위해 C-SPY를 사용할 수 있다. C-SPY와 가능한 대상 시스템의 개요를 그림 1을 통해 살펴보자.


그림 1. C-SPY 및 대상 시스템
 
  2. 디버거 예를 들어 C-SPY와 같은 디버거는 대상 시스템에 응용 프로그램을 디버깅하기 위해 사용하는 프로그램이다. 
 3. TARGET 시스템대상 시스템은 응용 프로그램을 디버깅할 때 응용 프로그램이 실행되는 시스템이다. 대상 시스템은 평가 보드 또는 자신의 하드웨어 설계 보드 중 하나의 하드웨어로 구성할 수 있고 소프트웨어에 의해 완전히 또는 부분적으로 시뮬레이션 할 수 있다. 대상 시스템의 각 유형들은 전용 C-SPY 드라이버가 필요하다. 
 4. 응용 프로그램사용자 응용 프로그램이란 사용자가 개발한 소프트웨어이며, C-SPY로 디버깅을 원하는 소프트웨어이다. 
 5. C-SPY 디버거 시스템C-SPY는 디버거 기능의 기본 세트을 제공하는 일반적인 부분과 대상 특정 백 엔드(Back End) 부분으로 구성되어 있다. 백 엔드는 두 가지 구성 요소로 구성된다. : 프로세서 모듈-마이크로 컨트롤러의 속성으로 정의되는 모든 마이크로 컨트롤러 그리고 C-SPY 드라이버이다.
 C-SPY 드라이버는 대상 시스템과의 통신과 제어기능을 제공하는 부분으로 예를 들어, 특수 중단점과 같은 대상 시스템에서 제공하는 기능에 대해 드라이버는 사용자 인터페이스도 제공한다. (메뉴, 윈도우, 대화 상자) 
 6. C-SPY PLUGIN 모듈 C-SPY는 플러그인 모듈의 형태로 디버거에 추가 기능을 구현하기 위해 오픈 SDK 방식의 모듈 형 아키텍처로 설계되어 있고 이 모듈들은 완벽하게 IDE에 통합되어 있다. 플러그인 모듈은 IAR 시스템즈에서 제공하거나 또는 타사 제조사에서 제공되기도 한다. 이러한 모듈의 예는 다음과 같다. 
 ① IDE에 통합되어 있는 코드 커버리지(Code Coverage)② 특정 디버그 시스템을 이용하여 디버깅을 하기 위한 다양한 C-SPY 드라이버③ 실시간 OS 인식 디버깅에 대하여 지원하도록 제공되는 RTOS 플러그인 모듈④ 주변장치 시뮬레이션 모듈은 C-SPY에서 주변 장치를 시뮬레이션한다. 이러한 플러그인 모듈은 IAR 시스템즈에서 제공되지 않지만 타사 공급 업체에서 개발하고 배포된다.⑤ IAR visualSTATE와 IAR 임베디드 워크 벤치를 연결하는 C-SPYLink는 일반 C 수준 심볼릭 디버깅을 포함한 C-SPY에서 직접적으로 진정한 높은 수준의 상태 머신 디버깅을 제공한다. 
 7. C-SPY 드라이버 개요 ARM 코어를 위한 IAR C-SPY 디버거는 다음의 대상 시스템과 평가보드용 드라이버를 사용할 수 있으며 IAR 임베디드 워크 벤치와 함께 제공된 드라이버뿐 아니라, 타사 공급 업체가 제공하는 디버거 드라이버를 로드할 수 있다.① Simulator② I-jet in-circuit debugging probe / JTAGjet debug probes③ J-Link / J-Trace JTAG/SWD probes④ JTAGjet probes⑤ RDI (Remote Debug Interface)⑥ Macraigor JTAG probes⑦ GDB Server⑧ ST-LINK JTAG/SWD probe (for ST Cortex-M devices only)⑨ TI Stellaris JTAG/SWD interface using FTDI or ICDI (for Stellaris Cortex devicesonly)⑩ TI XDS100 JTAG interface⑪ P&E Microcomputer Systems. ⑫ Angel debug monitor⑬ IAR ROM-monitor for Analog Devices ADuC7xxx boards, and IAR Kickstart Cardfor Philips LPC210x.
 8. C-SPY 드라이버의 차이점이 표는 시뮬레이터, I-jet/JTAGjet, J-Link/J-Trace, 그리고 ST-LINK 사이의 주요 차이점을 요약한 것이다.


표 1. 드라이버의 차이, I-jet/JTAGjet, J-Link/J-Trace와 ST-LINK
 IAR C-SPY 시뮬레이터 C-SPY 시뮬레이터는 소프트웨어적으로 완전하게 대상 프로세서의 기능을 시뮬레이션한다. 이는 하드웨어가 준비되기 전에 프로그램 로직을 디버깅할 수 있다는 것을 의미하며, 하드웨어가 필요하지 않기 때문에 또한 많은 응용 프로그램에 대해 가장 비용적으로 효율적인 솔루션이다.1. 시뮬레이터 기능 C-SPY의 일반적인 기능뿐만 아니라, 시뮬레이터는 다음의 기능도 제공한다.① Instruction-level 시뮬레이션② 메모리 구성 및 검증③ Interrupt 시뮬레이션④ 주변 장치 시뮬레이션(즉각적인 breakpoint와 연계된 C-SPY macro system을 이용) C-SPY 하드웨어 디버거 드라이버C-SPY 는 인터페이스로써 C-SPY 하드웨어 디버거 드라이버를 사용하여 하드웨어 디버거에 연결할 수 있다. 디버깅 세션이 시작되면 응용 프로그램이 자동으로 다운로드되고 대상 메모리에 프로그램되며, 필요한 경우 이 기능을 해제 할 수 있다.




그림 2. 디버그 프로브 또는 에뮬레이터와 C-SPY 드라이버 통신 개요

 1. 통신 개요 많은 ARM core들은 내장, 온칩 디버그를 지원한다.  하드웨어 디버거로직이 코어 내에 실장 되어 있기 때문에 일반적인 ROM-monitor 프로그램 또는 디버그 프로브 이외의 디버깅 작업을 하기 위한 특정 추가 하드웨어가 필요 없다. 디버그프로브 또는 에뮬레이터와 대상 시스템은 에뮬레이터, 디버그 프로브 또는 호스트 컴퓨터와 평가 보드 사이에 연결된 디버그 어댑터로 구성되고, USB를 연결하여 사용하는 경우, USB 포트를 통해 프로브를 사용하기 전에 특정 USB 드라이버가 설치되어 있어야 한다.  ARM용 IAR 임베디드 워크벤치 설치 미디어에서 드라이버를 찾을 수 있다. 
 2. 하드웨어 설치하드웨어 설치에 대한 자세한 내용은 설명서와 제조업체에서 제공하는 대상 시스템과 동봉된 문서를 참조한다. 아래의 전원 인가 순서는 대상 보드, 에뮬레이터 또는 디버그 프로브, 그리고 C-SPY 간의 적절한 통신을 위해 권장한다. 
 A. 대상 보드에 프로브를 연결B. 디버그 프로브에 USB 케이블을 연결C. 이 USB를 통해 전원이 공급되지 않은 경우 디버그 프로브 전원을 인가D. 대상 보드에 디버그 프로브가 전원을 제공되지 못하는 경우 대상 보드에 전원 인가E. C-SPY 디버깅 세션을 시작
 3. USB 드라이버 설치USB 드라이버도 필요하다. 어떤 경우에는 이 드라이버가 자동으로 설치되지만 일부 프로브는 수동으로 설치해야 한다. 1) I-jet와 JTAGjet USB 드라이버 설치USB 포트를 통해 I-jet 또는 JTAGjet 인터페이스를 사용하기 전에 적절한 USB 드라이버가 설치되어 있어야 하고 I-jet과 JTAGjet프로브를 컴퓨터에 연결하려면 USB 케이블을 사용해야 한다. 2) 윈도우 7A. Windows 장치 관리자를 시작 B. 다른 장치를 선택하고, JTAGjet에서 마우스 오른쪽 버튼을 클릭하고 드라이버 소프트웨어 업데이트를 선택 C. 드라이버 소프트웨어를 내 컴퓨터에서 찾아보기를 클릭하고로 armdriversjetUSB로 이동 D. 다음을 클릭 한 다음 설치3) 윈도우 7 이전I-jet 또는 JTAGjet 인터페이스와 컴퓨터가 처음으로 연결되면 윈도우는 대화 상자를 열고 USB 드라이버가 위치한 곳을 묻는다. 드라이버는 제품이 설치된 armdriversjetUSB에서 찾을 수 있고 초기 설정이 완료되면, 다시 드라이버를 설치할 필요가 없다.          
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지