MDSTECH
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객지원
뉴스레터
Q&A
FAQ
원격지원
검색창
검색버튼
회원가입
로그인
TRACE32
TRACE32 Solution
TRACE32 Trace Solution
TRACE32 More Product
TRACE32 Software Solution
Why TRACE32?
교육신청
정규교육
교육과정 안내
교육장 안내
교육설문
자료실
TRACE32 소프트웨어
TRACE32 매뉴얼
iTSP
TRACE32 영상
인증서
고객 지원
뉴스레터
Q&A
FAQ
원격지원
사이트맵 보기
SWO 문서 원본 보기
←
SWO
이동:
둘러보기
,
검색
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게만 가능합니다:
사용자
문서의 원본을 보거나 복사할 수 있습니다:
<h2></h2> <p><strong style="font-size: 14px;"><span style="font-size: large;">Serial Wire Output 란</span></strong></p> <p><span style="font-size: small;">CoreSight 기반한 chip 에서 2pin debug 통신 프로토콜인 Serial Wire Debug 를 지원할 경우, Serial Wire Output 을 이용하여 1pin trace를 받을 수 있습니다. Serial Wire Debug 신호는 Serial Wire Clock(SWCLK), Serial Wire Data I/O(SWDIO) 이며, JTAG 신호에서 TCK와 TMS 신호 사용합니다.</span></p> <p> <img src="/data/wiki/2015-05-29/1432873330.png" alt="" /></p> <p><span style="font-size: small;">총 3pin으로 ITM data를 받아볼 수 있으며 Pin 설정은 10pin일 경우 아래와 같은 pin map을 가질 수 있습니다.</span></p> <p> <img src="/data/wiki/2015-05-29/1432873336.png" alt="" /></p> <h2></h2> <h2></h2> <h2><strong><span style="font-size: large;">Compiler 적용 방법 (for Cortex-M)</span></strong></h2> <p><strong><span style="font-size: large;"><br /></span></strong></p> <p><span style="font-size: small;">1) IAR EWARM</span></p> <p><span style="font-size: small;">IAR Compiler에서는 SWO Library 제공</span></p> <p><span style="font-size: small;">Option 적용으로 SWO output 가능</span></p> <p> <img src="/data/wiki/2015-05-29/1432873361.png" alt="" /></p> <p> </p> <p><span style="font-size: small;">2) Keil uVision</span></p> <p><span style="font-size: small;">SWO trace를 위한 Retargeting 코드가 적용되어야, SWO output 가능</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="714" valign="top"> <p><span style="font-size: small;">#define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n)))</span></p> <p><span style="font-size: small;">#define ITM_Port16(n) (*((volatile unsigned short*)(0xE0000000+4*n)))</span></p> <p><span style="font-size: small;">#define ITM_Port32(n) (*((volatile unsigned long *)(0xE0000000+4*n)))</span></p> <p><span style="font-size: small;">#define DEMCR (*((volatile unsigned long *)(0xE000EDFC)))</span></p> <p><span style="font-size: small;">#define TRCENA 0x01000000</span></p> <p><span style="font-size: small;">/* USER CODE BEGIN PV */</span></p> <p><span style="font-size: small;">struct __FILE { int handle; /* Add whatever needed */ };</span></p> <p><span style="font-size: small;">FILE __stdout;</span></p> <p><span style="font-size: small;">FILE __stdin;</span></p> <p><span style="font-size: small;">int fputc(int ch, FILE *f) {</span></p> <p><span style="font-size: small;"> if (DEMCR & TRCENA) {</span></p> <p><span style="font-size: small;"> while (ITM_Port32(0) == 0);</span></p> <p><span style="font-size: small;"> //ITM_Port32(0) = ch;</span></p> <p><span style="font-size: small;">ITM_Port8(0) = ch;</span></p> <p><span style="font-size: small;"> }</span></p> <p><span style="font-size: small;"> return(ch);</span></p> <p><span style="font-size: small;">}</span></p> </td> </tr> </tbody> </table> <h2></h2> <h2><span style="font-size: large;"><strong>TRACE32 Serial Wire Debug Out(SWO) 설정 및 예시</strong></span></h2> <h3><strong><span style="font-size: small;">1) TRACE32 Combiprobe cable</span></strong></h3> <p><span style="font-size: small;">- SWO 1pin trace를 받기 위해서는 TRACE32 Combiprobe cable이 필요합니다. </span></p> <p> <img src="/data/wiki/2015-05-29/1432873392.png" alt="" /></p> <h3></h3> <h3><strong><span style="font-size: small;">2) Serial Wire Debug Port (SWDP) Powerview 설정 명령어</span></strong></h3> <p><strong><span style="font-size: small;"><br /></span></strong></p> <p> <span style="font-size: small;">① SWDP 통신 연결 설정</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="730" valign="top"> <p><span style="font-size: small;"><strong>SYStem.CONFIG SWDP ON</strong></span></p> <p><span style="font-size: small;"><strong>SYStem.Up</strong></span></p> </td> </tr> </tbody> </table> <p><span style="font-size: small;">② TPIU pin을 Serial Wire Viewer mode의 ITM trace를 위한 ETM off설정</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="730" valign="top"> <p><span style="font-size: small;"><strong>ETM.OFF</strong></span></p> </td> </tr> </tbody> </table> <p><span style="font-size: small;">③ Port size와 ITM 설정,</span></p> <p><span style="font-size: small;"> 비동기적인 Serial Wire Output 신호는 CPU frequency에 받음에 따라 bit rate를 조정 가능</span></p> <p><span style="font-size: small;">à NRZ/2 는 CPU frequency를 둘로 나눌 경우</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="730" valign="top"> <p><span style="font-size: small;"><strong>ITM.PortSize SWV</strong></span></p> <p><span style="font-size: small;"><strong>ITM.PortMode <format></strong></span></p> </td> </tr> </tbody> </table> <p><span style="font-size: small;">④ bit rate를 고정적으로 설정할 경우 (Autofocus나 TraceClock 설정 중 가능)</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="730" valign="top"> <p><span style="font-size: small;"><strong>CAnalyzer.TraceCLOCK <frequency></strong></span></p> </td> </tr> </tbody> </table> <p><span style="font-size: small;">⑤ 자동으로 최적의 clock 을 찾는 Autofoucs 기능을 사용할 경우</span></p> <p><span style="font-size: small;">(Autofocus나 TraceClock 설정 중 가능)</span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="730" valign="top"> <p><span style="font-size: small;"><strong>CAnalyzer.AutoFocus</strong></span></p> </td> </tr> </tbody> </table> <h3><strong><span style="font-size: small;">3) Printf를 SWO 1pin으로 trace 받을 경우 예시</span></strong></h3> <p><span style="font-size: small;">printf를 SWO 1pin trace를 이용하여 해당 printf 코드에 해당하는 data를 받아 볼 수 있습니다. </span></p> <table border="1" cellspacing="0" cellpadding="0"> <tbody> <tr> <td width="736" valign="top"> <p><span style="font-size: small;"><strong>SYStem.CONFIG.SWDP ON</strong></span></p> <p><span style="font-size: small;"><strong>SYStem.Up</strong></span></p> <p><span style="font-size: small;"><strong> </strong></span></p> <p><span style="font-size: small;"><strong>ITM.PortMode NRZ</strong></span></p> <p><span style="font-size: small;"><strong>ITM.PortSize SWV</strong></span></p> <p><span style="font-size: small;"><strong>CAnalyzer.Init</strong></span></p> <p><span style="font-size: small;"><strong>CAnalyzer.AutoFocus</strong></span></p> </td> </tr> </tbody> </table> <p> </p> <p> </p> <p><img src="/data/wiki/2015-05-29/1432873420.png" alt="" /></p> <p><span style="font-size: small;">문자열 형태로 printf를 받는 것은 현재 구현 중이며, dll파일을 이용하여 해당 data log를 문자열 형태로 확인이 가능합니다. </span></p> <p> </p>
SWO
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
행위
검색
TRACE32 Dummy
TRACE32
iTSP User's Guide
aTSP User's Guide
Linux Debugging
Debugging Tips
Trace Analysis
Virtual Target
TRACE32로 바라본 ARM
TRACE32 FAQ
TRACE32 Trouble Shooting
TRACE32 Software Update
Software Revision History
DT10 / DT-Win
다운로드
DT10 Evaluation
DT-Win Evaluation
TestPoint 삽입 Error
Build Error
DT10 FAQ
도구
여기를 가리키는 문서
가리키는 글의 바뀜
특수 문서 목록
문서 정보