강좌 & 팁
커널에서 정식으로 arm 디버깅 중의 하나인 coresite 에 대한 지원이 정식으로 릴리즈 되었네요
이 분야는 워낙... 로우레벨 디버깅에 속하는지라 다큐먼트 역시 매우 하드합니다.
커널을 다운 받고 다큐먼트를 보았더니 아래 그림만 보이는군요.
캡쳐 사진이 첨부가 되지 않아 그려 넣었습니다.
파일은 Documentation/trace/coresight.txt
29 At typical coresight system would look like this:
30
31 *****************************************************************
32 **************************** AMBA AXI ****************************===||
33 ***************************************************************** ||
34 ^ ^ | ||
35 | | * **
36 0000000 ::::: 0000000 ::::: ::::: @@@@@@@ ||||||||||||
37 0 CPU 0<-->: C : 0 CPU 0<-->: C : : C : @ STM @ || System ||
38 |->0000000 : T : |->0000000 : T : : T :<--->@@@@@ || Memory ||
39 | #######<-->: I : | #######<-->: I : : I : @@@<-| ||||||||||||
40 | # ETM # ::::: | # PTM # ::::: ::::: @ |
41 | ##### ^ ^ | ##### ^ ! ^ ! . | |||||||||
42 | |->### | ! | |->### | ! | ! . | || DAP ||
43 | | # | ! | | # | ! | ! . | |||||||||
44 | | . | ! | | . | ! | ! . | | |
45 | | . | ! | | . | ! | ! . | | *
46 | | . | ! | | . | ! | ! . | | SWD/
47 | | . | ! | | . | ! | ! . | | JTAG
48 *****************************************************************<-|
49 *************************** AMBA Debug APB ************************
50 *****************************************************************
51 | . ! . ! ! . |
52 | . * . * * . |
53 *****************************************************************
54 ******************** Cross Trigger Matrix (CTM) *******************
55 *****************************************************************
56 | . ^ . . |
57 | * ! * * |
58 *****************************************************************
59 ****************** AMBA Advanced Trace Bus (ATB) ******************
60 *****************************************************************
61 | ! =============== |
62 | * ===== F =====<---------|
63 | ::::::::: ==== U ====
64 |-->:: CTI ::<!! === N ===
65 | ::::::::: ! == N ==
66 | ^ * == E ==
67 | ! &&&&&&&&& IIIIIII == L ==
68 |------>&& ETB &&<......II I =======
69 | ! &&&&&&&&& II I .
70 | ! I I .
71 | ! I REP I<..........
72 | ! I I
73 | !!>&&&&&&&&& II I *Source: ARM ltd.
74 |------>& TPIU &<......II I DAP = Debug Access Port
75 &&&&&&&&& IIIIIII ETM = Embedded Trace Macrocell
76 ; PTM = Program Trace Macrocell
77 ; CTI = Cross Trigger Interface
78 * ETB = Embedded Trace Buffer
79 To trace port TPIU= Trace Port Interface Unit
80 SWD = Serial Wire Debug
사용법도 간단히 나와 있습니다.
간략히 요약하면
1. 부트로더에서 DT 연동으로 활성화
2. sysfs 를 통한 active 및 enable 가능
3. 장치 파일을 통한 trace 압축 정보를 읽기 가능 ( ex: dd if=/dev/20010000.etb of=~/cstrace.bin )
4. tpm2human 을 이용한 압축해제
5. 분석은 각자~
즉 trace 에 대한 설정을 하면 커널에서 해당 내용을 압축해서 버퍼에 보관합니다.
비활성화 시키고 해당 버퍼에서 꺼내서 압축된 데이타를 풀고
분석하시면 됩니다.
뭐 깔끔해 보이긴 합니다만 사용보다는 분석 결과에 대한 해석이 중요할텐데
사용해 보시려고 도전하시는 분들께 건투를...