STM32 팁

디버깅 메시지를 출력하는 몇 가지 방법 - 3. RTT (Real Time Terminal)

plainy 0 4,462 2017.04.06 00:25

J-Link를 사용하는 경우 RTT(Real Time Terminal)을 사용하여 디버깅 메시지를 출력할 수 있습니다.

RTT는 J-Link에서만 지원하는 기능으로 ST-Link등 다른 디버깅 장비에서는 사용할 수 없습니다.

 

RTT는 Device의 RAM에 Read/Write를 위한 영역을 설정한 후 이를 주기적으로 읽어 Data를 전송하는 방식입니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405899_3497.png


 

Cortex Core는 Debug Block내에 AHB-AP (AHB Access Port)라는 기능을 내장하고 있으며 AHB-AP는 Core의 상태와 관계없이 AHB에 접근할 수 있습니다. RTT는 AHB-AP를 통해 RAM의 내용을 주기적으로 Read/Write하여 printf와 같은 Data를 전송하게 됩니다.

따라서 RTT를 사용하기 위해서는 약간의 RAM을 필요로 합니다.

 

메모리 사용량

 Memory

Usage 

 ROM Usage

 ~500 Bytes

 RAM Usage

 24 Bytes fixed + (24 + SizeofBuffer) Bytes / channel

 

 

RTT 특징

RTT는 위 설명과 같이 Memory를 직접 접근하기 때문에 SWO나 Semihosting과 달리 속도가 빠릅니다.

 

아래 그래프는 Segger 홈페이지에서 가져온 그래프로 SWO, Semihosting과 RTT의 속도를 비교한 그림입니다.

168Mhz로 동작하는 STM32F407에서 82Byte를 출력할 때 RTT는 1uS, SWO는 120uS, Semihosting은 10700uS의 속도를 보여주고 있습니다.


220f5d5b3a25fe3f18fc6ae70530e7a2_1491405906_4654.png
 


 

또한 RTT는 Ansi Control 문자를 지원하기 때문에 아래와 같이 Color 출력을 사용할 수 있습니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405914_085.png
 

 

 

 

 

RTT사용하기

J-Link의 Software Pack을 설치하면 RTT를 사용한 예제 코드가 함께 설치됩니다.

아래 폴더에서 RTT예제와 라이브러리를 확인할 수 있습니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405919_4291.png
 



 

 

프로그램에서 RTT를 사용하기 위해서는 RTT Library를 추가하여야 합니다.

아래와 같이 Project에 RTT파일들을 추가합니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405927_665.png
 

 

 

 

RTT사용을 위한 코드를 추가합니다.

관련 예제소스는 J-Link Software아래의 RTT/Example에서 확인할 수 있습니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405933_1775.png
 



 

위와 같이 Source Code를 작성한 후 RTT를 확인하기 위해서는 J-Link RTT Viewer를 사용합니다.

※IAR은 Debug모드에서 RTT를 지원하지 않습니다. Debug 모드에서 RTT를 지원하는 개발환경은 Atolic Truestudio가 유일합니다

 

RTT Viewer를 실행한 후 Target Device와 Target Interface를 정확히 설정합니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405940_7928.png
 


 

 

RTT Viewer로 원하는 Data가 출력되는 것을 확인할 수 있습니다.

220f5d5b3a25fe3f18fc6ae70530e7a2_1491405947_0407.png

 

 


 

J-Link의 RTT기능은 J-Link의 모든 제품에서 사용할 수 있으며 RTT용 API를 지원하므로 필요한 경우 프로그램을 직접 제작할 수도 있습니다.

하지만 가장 많은 사람들이 사용하는 IAR EWARM에서 사용할 수 없는 부분은 큰 단점입니다.

   

Comments

Category
Facebook Twitter GooglePlus KakaoStory NaverBand