디버깅 프로브는 임베디드 소프트웨어의 Cross 개발환경에서 중간 다리역할을 하며 개발되는 소트트웨어의 버그를 찾아내는 주요 기능을 가지고있습니다. 현재 디버깅 프로브는 다양한 기능의 여러 종류가 출시되어 사용 되고있으며 이 중 개발 되는 소프트웨어의 복잡도, 난이도 등을 고려하여 가장 적합한 디버깅 프로브를 사용하게됩니다. IAR Systems 에서 제공 드리는 다양한  디버깅 프로브의 종류와 기능, 그리고 장비의 테스트, 관리에 대하여 알아보겠습니다.

 

I-jet 
I-jet은USB interface 를 이용, Chip의 JTAG/SWD port 와 PC 와 연결하여 주는 작고 슬림한 인 서킷 디버거(In-Circuit Debugger) 입니다. IAR Embedded Workbench와 완벽하게 플러그 앤 플레이로 호환되며, 고속 디버깅과 파워 프로파일이 가능합니다. 또한 파워 디버깅이 가능하며 전류와 전압 측정이 가능한 I-Scope 제품과 결합하여 확장 사용도 가능합니다.

I-jet은 전면부에 MIPI-20 규격의 커넥터 연결이 가능하며 MIPI-10 또는 ARM-20 규격의 커넥터와 연결 가능하도록 커넥터와 아답터를 제공합니다.

 

주요 기능 
- ARM7/ARM9/ARM11과 Cortex-M/R/A cores 지원
- IAR Embedded Workbench IDE 와 완벽한 호환 (IAR Embedded Workbench for ARM version 6.30.8 or later)
- Hi-speed USB 2.0 지원 (480Mbps)
- USB 전원 사용으로 별도 전원이 필요없음
- 과부하 보호 기능, Target power 400mA까지 공급
- ~200μA resolution (at 200kHz)으로 소비전력 측정 가능
- JTAG and Serial Wire Debug (SWD) clocks: 32MHz 까지 지원
- UART포트를 이용한 Serial Wire Viewer (SWV)와Manchester encoding 지원
- SWO speeds: 60MHz 까지 지원
- Download speed: 1MB/sec 까지 지원
- 자동 core인식 기능
- Automatic chain detection과 Graphical display를 통한 다수의 JTAG 기기들 지원
- JTAG adaptive clocking (RTCK) 지원
- 자동 JTAG/SWD 인식
- JTAG 전원 측정 및 모니터링 기능 지원
- 1.65V 부터 5V 까지의 전원 공급
- ARM Cortex-M0/M0+에서 Micro Trace Buffer(MTB)  지원

IAR Embedded Workbench for ARM 의 C-SPY에서 I-jet을 이용하여 Power Debugging이 가능합니다.

- 프로그램 수행 동안 전류 소비량과 소스 코드 수행의 상관 관계를 알 수 있습니다.
- 소스 코드 디버깅과 전류 소비 데이터를 정적, 동적으로 다른 화면에서 비교 가능합니다.
- 애플리케이션의 전류 소비 프로파일 뷰를 제공합니다.

 

I-scope

I-scope는 I-jet 또는 I-jet Trace에 연결되어 보드 타겟 특정 부분의 전류 및 전압 측정 기능이 가능하게 해주는 작은 프로브입니다. 
측정은 전원 공급원과 관계없이 타겟 보드에 설계된 모든 지점에서 할 수 있으며 IAR Embedded Workbench for ARM의 C-SPY Debugger에 의해 실시간으로 정보를 표시 합니다.

 

주요 기능 
- I-scope는 전류 및 전압을 측정하고 I-jet로 정보를 전달합니다, 
- 이때 실행중인 응용 프로그램의 프로그램 카운터(PC) 데이터를 동기화합니다.
- 데이터는 실시간으로 그래프화 하고 프로파일할 수 있습니다. 그리고 IAR 
- Embedded Workbench for ARM에서 C-SPY Debugger를 사용하여 분석 할 수 있습니다.
- 전류 감지는 타겟 보드에 션트 저항을 통해 두 개의 차동 전류 측정 리드를 
- 연결하여 수행됩니다.
- 전력 분석은 다음과 같이 사용할 수 있습니다.
- 개별 함수 및 주변 장치의 전력 소비를 파악
- 전류 스파이크를 일으키는 I/O 동작 식별
- 저전력 모드 진단
- MCU Clock 및power saving 분석
- 잘못된 하드웨어 설정 파악
- 원치 않는 전류 스파이크를 식별하고 제거하여 RF 방출을 감소
- 다양한 MCU들의 Sleep모드에서 배터리 소모 측정과 비교

 

I-jet Trace 
새로이 출시된 신제품으로 I-jet Trace는 디버깅과 Trace기능을 가지고있는 고급 기능의 프로브입니다. 대용량의 Trace 메모리가 있으며 USB 3.0 지원으로 고속 통신이 가능합니다. 

I-scope와 연결하여 전류 소비량과 전압의 측정 값과 코드와의 상관 관계를 확인 할 수 있는 파워 디버깅 기능 확장이 가능합니다. 

I-jet Trace는 전면부에 MIPI-20 규격의 커넥터 연결이 가능하며 MIPI-10 또는 ARM-20 규격의 커넥터와 연결 가능하도록 하는 커넥터와 아답터를 제공합니다. ETM Trace 기능은 MIPI-20 규격 연결에서만 가능하며 MIPI-10과 ARM-20 연결에서는 JTAG/SWD/SWO 연결의 디버깅이 가능합니다. 

 

주요 기능 
- ARM Cortex-M cores 지원 
- IAR Embedded Workbench IDE 와 완벽한 호환 (IAR Embedded Workbench for ARM version 7.30.3 or later)
- SuperSpeed USB 3.0 지원(5Gbps)
- USB 2.0 지원 (480Mbps)
- USB 전원 사용으로 별도 전원이 필요없음
- 과부하 보호 기능, Target power 400mA까지 공급
- 자동 core인식 기능
- JTAG and Serial Wire Debug (SWD) clocks: 100MHz 까지 지원
- Support for SWO using Manchester and UART, at up to 200Mbps
- Automatic chain detection과 Graphical display를 통한 다수의 JTAG 기기들 지원
- JTAG adaptive clocking (RTCK) 지원
- 자동 JTAG/SWD 인식
- JTAG 전원 측정 및 모니터링 기능 지원
- ~160μA resolution (at 200kHz) 으로 소비전력 측정 가능
- ARM Cortex-M0/M0+에서 Micro Trace Buffer(MTB)  지원
- ETM trace clocks: 최대150MHz
- Memory capacity: 32Msamples
- 타이밍 분석을 위한 CPU 사이클 정확도의 64-bit 타임 스탬프

I-jet trace는 ETM trace 기능으로 실행된 코드의 히스토리를 관리합니다. 또한 각종 프로파일 기능 과 코드 커버리지(code coverage) 기능도 보다 세밀하게 지원합니다. 복잡한 코드의 오류를 검출하는데는 실행된 코드의 히스토리를 검토하여 역 추적할 수 있는 기능이 매우 중요합니다.

디버깅 프로브 사용을 위한 프로젝트 설정
앞서 설명한 IAR Systems의 디버깅 프로브를 사용하기위한 프로젝트 설정 방법입니다. 먼저 프로젝트 옵션의 Debugger 카테고리 내 Setup탭에서 Driver 설정 항목을 I-jet/JTAGjet으로 변경합니다. 

I-jet/JTAGjet 카테고리 내 Setup 탭에서 Reset 방법과 Target power 설정 등 디버거 장비의 일반적인 설정이 가능합니다.

JTAG/SWD 탭에서는 디버거 장비와 타겟과의 연결 관련한 여러 설정이 가능합니다.

Trace 탭에서는 SWO관련한 설정과 Trace data 수집에 대한 설정이 가능합니다.

EmuDiag 활용
EmuDiag는 I-jet, I-jet Trace, JTAGjet 등 IAR Systems에서 제공하는 에뮬레이터의 Firmware upgrade, 연결 테스트와 상태확인을 할 수 있는 프로그램입니다. EmuDiag는 기본적으로 IAR Embedded Workbench의 기본 설치프로그램으로 설치 항목에 자동 포함되어 설치됩니다.

EmuDiag 실행은 Embedded Workbench의 프로젝트 옵션에서 사용 디버거 장비를 IAR 제품으로 설정 하신 후 나타나는 디버거 이름의 메뉴의 EmuDiag항목을 클릭합니다. 

또는 EmuDiag가 설치된 경로에서 직접 프로그램을 수행합니다.

- IAR Embedded Workbench가 설치된 폴더 ➔ arm ➔ bin ➔ jet ➔ EmuDiag.exe
 (경로 예: C:Program Files (x86)IAR SystemsEmbedded Workbench x.xarmbinjetEmuDiag.exe) 

 

장비 테스트와 JTAG 연결 테스트

EmuDiag는 자동화된 여러 테스트를 지원합니다. 화면 오른쪽 중간 부분의 테스트 항목 버튼을 눌러 테스트를 수행합니다.

Test Connection : 연결된 에뮬레이터 장비가 정상 동작하는지 지속적으로 읽기/쓰기를 반복하며 테스트를 합니다.
Test JTAG : 에뮬레이터와 JTAG 연결된 디바이스의 정보를 확인 할 수 있으며 연결 시험과 연결 관련 여러 설정을 할 수 있습니다.
JTAG Cmd : JTAG 관련 명령어를 수동으로 입력 및 수행이 가능합니다.
I-jet Power : I-jet 장비로부터 공급되는 Power의 정보를 확인할 수 있으며 전원 공급의 On/Off를 수동으로 제어 할 수 있습니다.

 

Firmware update

EmuDiag 를 이용하여 연결된 에뮬레이터의 Firmware Update가 가능합니다. 화면 오른쪽의 Update Firmware 버튼을 누르십시오.

Update Firmware 버튼을 누르시면 Firmware upgrade 파일(.upg)을 선택할 수 있도록 창이 뜹니다. Firmware upgrade 파일은 다음 경로에서 찾을 수 있습니다.
(해당 디바이스 이름의 폴더 ➔ 버전 명 폴더 ➔ <디바이스 이름>.upg)
파일을 선택한 후 열기 버튼을 누르시면 EmuDiag에서 자동으로 Firmware를 update합니다. Update가 완료되면 다음과 같은 팝업창을 확인 할 수 있습니다.

Firmware Update 중 장비를 PC에서 분리하거나 PC를 강제 종료 하시면, 고장의 원인이 될 수 있습니다. Update 완료까지 반드시 PC와 연결 상태를 유지하여 주십시오.

 

맺음말
IAR Embedded Workbench와 완벽하게 호환되는 IAR Systems의 다양한 디버깅 프로브의 기능, 사용법, 관리방법 등을 알아 보았습니다. 개발 중인 소프트웨어에 적합한 프로브의 선택과 다양한 디버깅 기능을 활용하여 개발되는 코드의 품질을 향상 시키십시오. 감사합니다.

 

고성용 이사 / IAR 시스템즈
Sung-Yong.Ko@iar.com

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지