파워 디버깅(power debugging) - iar systems · 2019-04-04 · 전자기술 _201 9•4 57 e...

3
57 전자기술 | 2019 4 ELECTRONIC ENGINEERING 이현도 IAR Systems 과장 파워 디버깅(Power Debugging) IAR Embedded Workbench의 C-SPY 디버거의 기능 중 하나인 파워 디버깅(Power Debugging)은 디버깅 프로브에 의해 측정되는 전류 소비량과 수행된 소스코드와의 상관관계를 확인 할 수 있는 기능이다. 배터리 를 사용하는 소형 IoT 디바이스, 웨어러블 장비 등의 저전력 고효율을 요구하는 디바이스 장비를 개발하는 경우 전류 소비를 최소화 시키는 노력이 필요하다. 하드웨어의 경우 전류 소비율이 적은 파트를 선정하여 사용하면 전류 소비에 최적화된 하드웨어를 구성할 수 있으나 구성된 하드웨어를 소프트웨어에서 제어를 어떻게 하느냐에 따라서 전체의 전류소율은 크게 변할 수 있다. 예를 들어. 사용하지 않는 I/O를 켜 놓거나 사용하지 않는 페리페럴을 동작시키는 경우 불필요한 전류를 소비하게 된다. 이러한 소프트웨어에 의해 불 필요한 전류를 소비하는 경우를 확인하고 전류소비에 최적화된 소프트웨어를 위해 실시간으로 전류 소비량 과 수행된 코드의 위치를 기록할 수 있는 C-SPY의 파워 디버깅 기능이 유용하게 사용된다.

Upload: others

Post on 23-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 파워 디버깅(Power Debugging) - IAR Systems · 2019-04-04 · 전자기술 _201 9•4 57 E EERING 이현도 IAR Systems 과장 파워 디버깅(Power Debugging) IAR Embedded Workbench의

57전자기술 | 2019•4

ElEctronic EnginEEring

▶▶ 이현도 IAR Systems 과장

파워 디버깅(Power Debugging)

IAR Embedded Workbench의 C-SPY 디버거의 기능 중 하나인 파워 디버깅(Power Debugging)은 디버깅

프로브에 의해 측정되는 전류 소비량과 수행된 소스코드와의 상관관계를 확인 할 수 있는 기능이다. 배터리

를 사용하는 소형 IoT 디바이스, 웨어러블 장비 등의 저전력 고효율을 요구하는 디바이스 장비를 개발하는

경우 전류 소비를 최소화 시키는 노력이 필요하다. 하드웨어의 경우 전류 소비율이 적은 파트를 선정하여

사용하면 전류 소비에 최적화된 하드웨어를 구성할 수 있으나 구성된 하드웨어를 소프트웨어에서 제어를

어떻게 하느냐에 따라서 전체의 전류소율은 크게 변할 수 있다. 예를 들어. 사용하지 않는 I/O를 켜 놓거나

사용하지 않는 페리페럴을 동작시키는 경우 불필요한 전류를 소비하게 된다. 이러한 소프트웨어에 의해 불

필요한 전류를 소비하는 경우를 확인하고 전류소비에 최적화된 소프트웨어를 위해 실시간으로 전류 소비량

과 수행된 코드의 위치를 기록할 수 있는 C-SPY의 파워 디버깅 기능이 유용하게 사용된다.

Page 2: 파워 디버깅(Power Debugging) - IAR Systems · 2019-04-04 · 전자기술 _201 9•4 57 E EERING 이현도 IAR Systems 과장 파워 디버깅(Power Debugging) IAR Embedded Workbench의

58

Technical Report

일반적인 전류소모 측정 VS 파워 디버깅일반적으로 가장 많이 사용되는 보드 전체 또는 보드의

특정 파트의 전류소모를 측정하는 방법은 전류 측정장비

(Current meter)를 사용하는 방법이다. 전류측정 장비를

사용하면 다른 어떠한 방법보다 아주 정확한 전류 소비량

측정이 가능하다. 하지만 이러한 방법의 소비전류 측정은

측정된 전류 소비량과 수행된 코드와의 상관관계 확인이

되지 않아 전류소비량이 최소화된 소프트웨어를 작성하

는데 큰 도움이 되지 않을 수 있다. 이에 반해 C-SPY의

파워 디버깅 기능은 디버깅 프로브 또는 특정 장비를 이

용하여 전류 소모량을 샘플링하는 동시에 MCU의

PC(Program Counter)를 샘플링 한다. 즉, PC 값을 동

시에 기록하기에 응용프로그램의 코드 수행에 따른 전류

변화를 알 수 있다. 이는 전류 소모량에 최적화된 소프트

웨어 개발에 많은 도움이 될 수 있다. 이번 글에서는 파워

디버깅의 동작과 사용법에 대하여 설명하도록 하겠다.

파워 디버깅 동작 C-SPY 환경에서 파워 디버깅을 사용하기 위해 전류 소

비값을 측정 가능한 I-jet / I-jet Trace / J-link /

J-link Ultra 등의 디버깅 프로브 장비가 필요하다. 또한

해당 디버깅 프로브의 전원 출력핀을 통해 보드에 전원

(5V)공급돼야 하며 디버깅 프로브에 내장된 AD 컨버터

(Converter)를 이용해 전류 소비 값을 샘플링 한다. 파워

디버깅 기능을 사용하기 위해 디버깅 프로브와 타깃과의

연결 인터페이스는 SWD를 사용해야 하며 SWO핀이 연

결돼야 한다.

[그림 1]의 방법으로는 디버깅 프로브에 의해 전원이 공급

돼야 하며 전류 소비량 샘플링 또한 보드 전체의 전류소

비량만 측정 가능하다. 만일 보드 전체의 전류 소비량 측

정 외 특정 파트에 대한 전류 소비량 측정이나 보드의 전

원공급이 디버깅 프로브가 아닌 외부 전원을 사용하는 경

우 I-scope라고 하는 별도의 장비를 사용해야 한다.

I-scope 장비는 I-jet / I-jet Trace 장비와 연결할 수

있으며 타깃 보드와 디버깅 프로브 사이에 연결되며 프로

브 핀을 이용해 특정 전류소비 측정을 수행한다.

I-scope 장비를 사용하면 최대 전류 1채널과 2채널의 전

압을 동시에 측정 가능하다. 전류를 측정하지 않는다면

동시에 최대 3개 채널에서 전압 측정이 가능하다.

C-SPY에서의 파워 디버깅 사용C-SPY 디버거 환경에서 파워 디버깅을 위해 파워 로그

(Power Log), 파워 로그 셋업(Power Log Setup), 타임라

인(Timeline) 그리고 함수 프로파일러(Function Profiler)

의 디버깅 창이 지원되며 해당 창들은 C-SPY 디버거 환

경에서 디버깅 프로브 메뉴에서 실행 할 수 있다.

파워 로그파워 로그(Power Log) 창에서는 응용 프로그램 동작 중

그림 1.

그림 2.

그림 3.

Page 3: 파워 디버깅(Power Debugging) - IAR Systems · 2019-04-04 · 전자기술 _201 9•4 57 E EERING 이현도 IAR Systems 과장 파워 디버깅(Power Debugging) IAR Embedded Workbench의

59전자기술 | 2019•4

ElEctronic EnginEEring

PC(Program Counter), 전류 소비량과 측정 전압을 기

록하는 창이다. 측정 전압 값은 아이-스코프(I-scope)를

이용해 전압 측정을 했을 경우만 기록되며 아이-스코프

장비가 연결되지 않은 경우에는 전압을 측정할 수 없다.

파워 로그 창에 기록된 전류와 전압 샘플링 값은 측정된

위치의 수행된 실행 코드와 상관관계를 가지고 있으며 해

당 샘플을 더블클릭하면 연관된 실행 코드 위치를 에디터

창에 표시한다.

타임라인타임라인(Timeline) 창은 응용프로그램의 실행 중 측정

되는 값을 시간 경과에 따른 값을 확인 할 수 있도록 그래

프화 해 출력하는 창이다. 타임라인 창을 이용하면 응용

프로그램 실행 중 전류 소비의 전반적인 전류소비 양상

과 패턴을 한눈에 볼 수 있다. 그래프의 시간 단위 조정

이 가능하며 파워 로그 창과 마찬가지로 측정된 샘플을

더블 클릭하면 연관된 실행 코드 위치를 에디터창에 표

시한다.

함수 프로파일러함수의 프로파일링 정보를 확인 할 수 있는 함수 프로파일

러(Function Profiler) 창은 응용 프로그램이 실행되는 동안

가장 많이 시간을 소비하고 있는 함수가 어떠한 함수인지

파악하는데 유용하게 사용된다. 이러한 함수 프로파일러

창에 PC(Program Counter) 샘플 카운터 외 전류 소비량의

샘플 데이터 또한 출력할 수 있어사 함수 별 전류 소비율, 최

대 전류량, 최소 전류량, 평균 전류량을 확인 할 수 있다.

파워 로그 셋업파워 로그 셋업(Power Log Setup) 창은 파워 디버깅 사

용의 기본 설정을 할 수 있는 창이다. 전류와 전압의 단위

설정, 아이-스코프 장비를 이용 시 연결돼 있는 션트

(Shunt) 저장 크기 입력 등의 다양한 연결 정보 설정과

측정되는 전류, 전압 샘플에 따른 액션(Action) 설정이

가능하다.

예를 들어, 기준 전류값을 200mA로 설정 후 파워로그의

액션에 ‘Log All and Halt CPU Above Threshold’를 선

택하게 되면 응용 프로그램 동작 중 전류 샘플이 200mA

이 넘게 되면 CPU를 멈추게 된다. 해당 기능을 활용하면

특정 전류 소비량을 넘어 초과할 경우 수행되는 소스 코

드들을 쉽게 파악할 수 있어서 전류 소비에 최적화된 소

스 코드를 만들기 위해 유용하게 사용된다.

맺음말파워 디버깅을 효과적으로 하기 위한 많은 디버깅 창이

지원되고 있으며 다양하게 활용 될 수 있다. 전류, 전압

측정이 가능한 디버깅 프로브의 측정 성능에 제한이 있어

서 커런트 미터(Current Meter)와 오실로스코프

(Oscilloscope)처럼 높은 정밀도를 갖고 전류, 전압 값을

측정하지 못하지만 전류 소비와 소스 코드 수행의 상관관

계 파악으로 좀 더 빠르고 쉽게 전류 소비에 최적화된 소

스 코드를 작성 가능하게 도와준다.

그림 4.

그림 5.

그림 5.